Skip to content

Commit e426b10

Browse files
authored
Merge pull request Sefiraat#188 from balugaq/master
Resolves Sefiraat#182 & Sefiraat#186
2 parents cd39a8e + e41c3ed commit e426b10

File tree

16 files changed

+191
-737
lines changed

16 files changed

+191
-737
lines changed

LICENSE

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,4 @@
1-
Unless otherwise specified, all code in this repository is licensed under the GPL-3.0 license.
2-
3-
Licenses:
4-
- LICENSES/GPL-3.0 - GNU General Public License v3.0
5-
- LICENSES/MIT - The MIT License
6-
7-
See LICENSES/GPL-3.0 for original license text.
8-
The following is a copy of LICENSES/GPL-3.0:
9-
1+
All code in this repository is licensed under the GPL-3.0 license.
102
Valid-License-Identifier: GPL-3.0
113
License-Text:
124

LICENSES/GPL-3.0

Lines changed: 0 additions & 677 deletions
This file was deleted.

LICENSES/MIT

Lines changed: 0 additions & 26 deletions
This file was deleted.

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<modelVersion>4.0.0</modelVersion>
77
<groupId>com.ytdd9527.networksexpansion</groupId>
88
<artifactId>NetworksExpansion</artifactId>
9-
<version>2.1-Alpha-10</version>
9+
<version>2.1-Alpha-11</version>
1010

1111
<distributionManagement>
1212
<repository>

src/main/java/com/balugaq/netex/utils/LineOperationUtil.java

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.balugaq.netex.utils;
22

33
import com.balugaq.netex.api.enums.TransportMode;
4+
import com.xzavier0722.mc.plugin.slimefun4.storage.controller.SlimefunBlockData;
45
import com.xzavier0722.mc.plugin.slimefun4.storage.util.StorageCacheUtils;
56
import io.github.sefiraat.networks.network.NetworkRoot;
67
import io.github.sefiraat.networks.network.stackcaches.ItemRequest;
@@ -57,6 +58,39 @@ public static void doOperation(Location startLocation, BlockFace direction, int
5758
}
5859
}
5960

61+
public static void doEnergyOperation(Location startLocation, BlockFace direction, int limit, Consumer<BlockMenu> consumer) {
62+
doEnergyOperation(startLocation, direction, limit, true, true, consumer);
63+
}
64+
65+
public static void doEnergyOperation(Location startLocation, BlockFace direction, int limit, boolean allowNoMenu, Consumer<BlockMenu> consumer) {
66+
doEnergyOperation(startLocation, direction, limit, allowNoMenu, true, consumer);
67+
}
68+
69+
public static void doEnergyOperation(Location startLocation, BlockFace direction, int limit, boolean allowNoMenu, boolean optimizeExperience, Consumer<BlockMenu> consumer) {
70+
Location location = startLocation.clone();
71+
int finalLimit = limit;
72+
if (optimizeExperience) {
73+
finalLimit += 1;
74+
}
75+
for (int i = 0; i < finalLimit; i++) {
76+
switch (direction) {
77+
case NORTH -> location.setZ(location.getZ() - 1);
78+
case SOUTH -> location.setZ(location.getZ() + 1);
79+
case EAST -> location.setX(location.getX() + 1);
80+
case WEST -> location.setX(location.getX() - 1);
81+
case UP -> location.setY(location.getY() + 1);
82+
case DOWN -> location.setY(location.getY() - 1);
83+
}
84+
final BlockMenu blockMenu = StorageCacheUtils.getMenu(location);
85+
if (blockMenu == null) {
86+
if (!allowNoMenu) {
87+
return;
88+
}
89+
}
90+
consumer.accept(blockMenu);
91+
}
92+
}
93+
6094
public static void grabItem(
6195
@Nonnull NetworkRoot root,
6296
@Nonnull BlockMenu blockMenu,
@@ -412,7 +446,7 @@ public static void pushItem(
412446
}
413447

414448
public static void outPower(@Nonnull Location location, @Nonnull NetworkRoot root, int rate) {
415-
var blockData = StorageCacheUtils.getBlock(location);
449+
final SlimefunBlockData blockData = StorageCacheUtils.getBlock(location);
416450
if (blockData == null) {
417451
return;
418452
}
@@ -427,14 +461,10 @@ public static void outPower(@Nonnull Location location, @Nonnull NetworkRoot roo
427461
return;
428462
}
429463

430-
final String charge = blockData.getData("energy-charge");
431-
int chargeInt = 0;
432-
if (charge != null) {
433-
chargeInt = Integer.parseInt(charge);
434-
}
464+
int existingCharge = component.getCharge(location);
435465

436466
final int capacity = component.getCapacity();
437-
final int space = capacity - chargeInt;
467+
final int space = capacity - existingCharge;
438468

439469
if (space <= 0) {
440470
return;

src/main/java/com/ytdd9527/networksexpansion/core/items/machines/AbstractAdvancedAutoCrafter.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,14 @@ public void init() {
291291
drawBackground(Icon.OUTPUT_BACKGROUND_STACK, OUTPUT_BACKGROUND);
292292
}
293293

294+
@Override
295+
public void newInstance(@Nonnull BlockMenu menu, @Nonnull Block b) {
296+
addMenuClickHandler(BLUEPRINT_SLOT, (player, slot, clickedItem, clickAction) -> {
297+
releaseCache(menu);
298+
return true;
299+
});
300+
}
301+
294302
@Override
295303
public boolean canOpen(@Nonnull Block block, @Nonnull Player player) {
296304
return player.hasPermission("slimefun.inventory.bypass") || (this.getSlimefunItem().canUse(player, false)

src/main/java/com/ytdd9527/networksexpansion/core/items/machines/AbstractAutoCrafter.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,14 @@ public void init() {
268268
drawBackground(Icon.OUTPUT_BACKGROUND_STACK, OUTPUT_BACKGROUND);
269269
}
270270

271+
@Override
272+
public void newInstance(@Nonnull BlockMenu menu, @Nonnull Block b) {
273+
addMenuClickHandler(BLUEPRINT_SLOT, (player, slot, clickedItem, clickAction) -> {
274+
releaseCache(menu);
275+
return true;
276+
});
277+
}
278+
271279
@Override
272280
public boolean canOpen(@Nonnull Block block, @Nonnull Player player) {
273281
return player.hasPermission("slimefun.inventory.bypass") || (this.getSlimefunItem().canUse(player, false)

src/main/java/com/ytdd9527/networksexpansion/implementation/machines/cargo/power/power_outlet/line/LinePowerOutlet.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ private void outPower(@Nonnull BlockMenu blockMenu) {
6262

6363
final NetworkRoot root = definition.getNode().getRoot();
6464
final BlockFace blockFace = getCurrentDirection(blockMenu);
65-
LineOperationUtil.doOperation(blockMenu.getLocation(), blockFace, this.maxDistance, false, (targetMenu) -> {
65+
LineOperationUtil.doEnergyOperation(blockMenu.getLocation(), blockFace, this.maxDistance, true, false, (targetMenu) -> {
6666
LineOperationUtil.outPower(targetMenu.getLocation(), root, this.rate);
6767
});
6868
}

src/main/java/com/ytdd9527/networksexpansion/implementation/tools/ItemMover.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
@SuppressWarnings("unused")
5050
public class ItemMover extends SpecialSlimefunItem implements DistinctiveItem {
5151
@Nonnull
52-
public static final Interaction[] CHECK_INTERACTIONS = new Interaction[] {
52+
public static final Interaction[] CHECK_INTERACTIONS = new Interaction[]{
5353
Interaction.PLACE_BLOCK, Interaction.BREAK_BLOCK, Interaction.INTERACT_BLOCK
5454
};
5555
@Nonnull
@@ -452,11 +452,6 @@ private static List<String> cloneDefaultLore() {
452452
return new ArrayList<>(DEFAULT_LORE);
453453
}
454454

455-
@Override
456-
public boolean canStack(@Nonnull ItemMeta itemMeta, @Nonnull ItemMeta itemMeta1) {
457-
return itemMeta.getPersistentDataContainer().equals(itemMeta1.getPersistentDataContainer());
458-
}
459-
460455
public static boolean hasPermission(Player player, Location location) {
461456
for (Interaction interaction : CHECK_INTERACTIONS) {
462457
if (!Slimefun.getProtectionManager().hasPermission(player, location, interaction)) {
@@ -471,4 +466,9 @@ public static boolean hasPermission(Player player, Location location) {
471466

472467
return true;
473468
}
469+
470+
@Override
471+
public boolean canStack(@Nonnull ItemMeta itemMeta, @Nonnull ItemMeta itemMeta1) {
472+
return itemMeta.getPersistentDataContainer().equals(itemMeta1.getPersistentDataContainer());
473+
}
474474
}

src/main/java/com/ytdd9527/networksexpansion/utils/ParticleUtil.java

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
/**
1313
* @author Final_ROOT
14+
* @author balugaq
1415
* @since 2.0
1516
*/
1617
public class ParticleUtil {
@@ -137,4 +138,47 @@ public static void drawCubeByLocations(@Nonnull Plugin plugin, @Nonnull Particle
137138
}
138139
ParticleUtil.drawCubeByLocations(plugin, particle, interval, locations);
139140
}
141+
142+
public static void drawRegionOutline(@Nonnull Plugin plugin, @Nonnull Particle particle, long interval, @Nonnull Location corner1, @Nonnull Location corner2) {
143+
World world = corner1.getWorld();
144+
if (world == null || corner1.getWorld() != corner2.getWorld()) {
145+
return;
146+
}
147+
148+
double minX = Math.min(corner1.getX(), corner2.getX());
149+
double minY = Math.min(corner1.getY(), corner2.getY());
150+
double minZ = Math.min(corner1.getZ(), corner2.getZ());
151+
double maxX = Math.max(corner1.getX(), corner2.getX());
152+
double maxY = Math.max(corner1.getY(), corner2.getY());
153+
double maxZ = Math.max(corner1.getZ(), corner2.getZ());
154+
155+
Location[] corners = new Location[]{
156+
new Location(world, minX, minY, minZ),
157+
new Location(world, minX, minY, maxZ + 1),
158+
new Location(world, maxX + 1, minY, maxZ + 1),
159+
new Location(world, maxX + 1, minY, minZ),
160+
new Location(world, minX, maxY + 1, minZ),
161+
new Location(world, minX, maxY + 1, maxZ + 1),
162+
new Location(world, maxX + 1, maxY + 1, maxZ + 1),
163+
new Location(world, maxX + 1, maxY + 1, minZ)
164+
};
165+
166+
drawLineByDistance(plugin, particle, interval, 0.25, corners[0], corners[1]);
167+
drawLineByDistance(plugin, particle, interval, 0.25, corners[0], corners[3]);
168+
drawLineByDistance(plugin, particle, interval, 0.25, corners[0], corners[4]);
169+
170+
drawLineByDistance(plugin, particle, interval, 0.25, corners[1], corners[2]);
171+
drawLineByDistance(plugin, particle, interval, 0.25, corners[1], corners[5]);
172+
173+
drawLineByDistance(plugin, particle, interval, 0.25, corners[2], corners[3]);
174+
drawLineByDistance(plugin, particle, interval, 0.25, corners[2], corners[6]);
175+
176+
drawLineByDistance(plugin, particle, interval, 0.25, corners[3], corners[7]);
177+
drawLineByDistance(plugin, particle, interval, 0.25, corners[4], corners[5]);
178+
179+
drawLineByDistance(plugin, particle, interval, 0.25, corners[4], corners[7]);
180+
drawLineByDistance(plugin, particle, interval, 0.25, corners[5], corners[6]);
181+
182+
drawLineByDistance(plugin, particle, interval, 0.25, corners[6], corners[7]);
183+
}
140184
}

src/main/java/com/ytdd9527/networksexpansion/utils/ReflectionUtil.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
import java.lang.reflect.Field;
77
import java.lang.reflect.Method;
88

9+
10+
/**
11+
* @author Final_ROOT
12+
*/
913
@UtilityClass
1014
public class ReflectionUtil {
1115

src/main/java/com/ytdd9527/networksexpansion/utils/databases/DataStorage.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ public static void saveAmountChange() {
116116
}
117117
}
118118
Networks.getInstance().getLogger().info(Networks.getLocalizationService().getString("messages.data-saving.saved-drawer"));
119+
Networks.getInstance().debug("Task amount: " + Networks.getQueryQueue().getTaskAmount());
119120
}
120121

121122
public static boolean isContainerLoaded(int id) {

src/main/java/io/github/sefiraat/networks/NetworkStorage.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import org.bukkit.Location;
99

1010
import java.util.HashSet;
11-
import java.util.Iterator;
1211
import java.util.Map;
1312
import java.util.Set;
1413
import java.util.concurrent.ConcurrentHashMap;

0 commit comments

Comments
 (0)