Skip to content

Commit d86f5e1

Browse files
committed
fix a few things
1 parent 6418f71 commit d86f5e1

File tree

8 files changed

+34
-45
lines changed

8 files changed

+34
-45
lines changed

src/main/java/gregtech/api/capability/impl/ItemHandlerList.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ public class ItemHandlerList implements IItemHandlerModifiable {
2020
private final Int2ObjectMap<IItemHandler> handlerBySlotIndex = new Int2ObjectOpenHashMap<>();
2121
private final Object2IntMap<IItemHandler> baseIndexOffset = new Object2IntArrayMap<>();
2222

23+
public ItemHandlerList(@NotNull IItemHandler @NotNull... handlers) {
24+
this(Arrays.asList(handlers));
25+
}
26+
2327
public ItemHandlerList(@NotNull List<? extends @NotNull IItemHandler> itemHandlerList) {
2428
int currentSlotIndex = 0;
2529
for (IItemHandler itemHandler : itemHandlerList) {

src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiblockNotifiablePart.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
import net.minecraft.util.ResourceLocation;
1010
import net.minecraftforge.fluids.IFluidTank;
11+
import net.minecraftforge.items.IItemHandler;
12+
import net.minecraftforge.items.IItemHandlerModifiable;
1113

1214
import org.jetbrains.annotations.NotNull;
1315
import org.jetbrains.annotations.Nullable;
@@ -26,13 +28,14 @@ public MetaTileEntityMultiblockNotifiablePart(ResourceLocation metaTileEntityId,
2628

2729
private @NotNull List<INotifiableHandler> getItemHandlers() {
2830
List<INotifiableHandler> notifiables = new ArrayList<>();
29-
var mteHandler = isExportHatch ? getExportItems() : getImportItems();
31+
IItemHandlerModifiable mteHandler = isExportHatch ? getExportItems() : getImportItems();
3032
if (mteHandler instanceof INotifiableHandler notifiable) {
3133
notifiables.add(notifiable);
3234
} else if (mteHandler instanceof ItemHandlerList list) {
33-
for (var handler : list.getBackingHandlers()) {
34-
if (handler instanceof INotifiableHandler notifiable)
35+
for (IItemHandler handler : list.getBackingHandlers()) {
36+
if (handler instanceof INotifiableHandler notifiable) {
3537
notifiables.add(notifiable);
38+
}
3639
}
3740
}
3841
if (getItemInventory() instanceof INotifiableHandler notifiable) {
@@ -54,7 +57,7 @@ public MetaTileEntityMultiblockNotifiablePart(ResourceLocation metaTileEntityId,
5457
private List<INotifiableHandler> getPartHandlers() {
5558
List<INotifiableHandler> handlerList = new ArrayList<>();
5659

57-
for (var notif : getItemHandlers()) {
60+
for (INotifiableHandler notif : getItemHandlers()) {
5861
if (notif.size() > 0) {
5962
handlerList.add(notif);
6063
}

src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityAEHostableChannelPart.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
public abstract class MetaTileEntityAEHostableChannelPart<T extends IAEStack<T>> extends MetaTileEntityAEHostablePart {
1818

1919
private final Class<? extends IStorageChannel<T>> storageChannel;
20-
protected int refreshRate;
2120

2221
public MetaTileEntityAEHostableChannelPart(ResourceLocation metaTileEntityId, int tier, boolean isExportHatch,
2322
Class<? extends IStorageChannel<T>> storageChannel) {

src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityAEHostablePart.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public abstract class MetaTileEntityAEHostablePart extends MetaTileEntityMultibl
3737
public static final String REFRESH_RATE_TAG = "RefreshRate";
3838

3939
private AENetworkProxy aeProxy;
40-
protected int refreshRate = ConfigHolder.compat.ae2.updateIntervals;
40+
private int refreshRate = ConfigHolder.compat.ae2.updateIntervals;
4141
protected boolean isOnline;
4242
protected boolean allowsExtraConnections = false;
4343
protected boolean meStatusChanged = false;
@@ -120,7 +120,8 @@ public int getRefreshRate() {
120120
}
121121

122122
protected void setRefreshRate(int newRefreshRate) {
123-
if (this.refreshRate == newRefreshRate) return;
123+
if (newRefreshRate == this.refreshRate) return;
124+
if (newRefreshRate < 1) throw new IllegalArgumentException("Refresh rate of AE part cannot be below 1!");
124125

125126
this.refreshRate = newRefreshRate;
126127
if (!getWorld().isRemote) {

src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEInputBase.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import net.minecraft.world.World;
2626
import net.minecraftforge.common.capabilities.Capability;
2727
import net.minecraftforge.common.util.Constants;
28+
import net.minecraftforge.items.IItemHandlerModifiable;
2829

2930
import appeng.api.config.Actionable;
3031
import appeng.api.storage.IMEMonitor;
@@ -68,10 +69,14 @@ public MetaTileEntityMEInputBase(ResourceLocation metaTileEntityId, int tier, bo
6869

6970
@Override
7071
protected void initializeInventory() {
71-
super.initializeInventory();
7272
this.aeHandler = initializeAEHandler();
7373
this.circuitInventory = new GhostCircuitItemStackHandler(this);
74-
this.importItems = circuitInventory;
74+
super.initializeInventory();
75+
}
76+
77+
@Override
78+
protected IItemHandlerModifiable createImportItemHandler() {
79+
return circuitInventory;
7580
}
7681

7782
protected abstract @NotNull IExportOnlyAEStackList<AEStackType> initializeAEHandler();
@@ -81,7 +86,7 @@ protected void initializeInventory() {
8186
@Override
8287
public void update() {
8388
super.update();
84-
if (!getWorld().isRemote && workingEnabled && isOnline && (getOffsetTimer() % refreshRate == 0)) {
89+
if (!getWorld().isRemote && workingEnabled && isOnline && (getOffsetTimer() % getRefreshRate() == 0)) {
8590
operateOnME();
8691
}
8792
}
@@ -401,7 +406,7 @@ protected NBTTagCompound writeConfigToTag() {
401406
}
402407

403408
tag.setByte("GhostCircuit", (byte) this.circuitInventory.getCircuitValue());
404-
tag.setInteger(REFRESH_RATE_TAG, this.refreshRate);
409+
tag.setInteger(REFRESH_RATE_TAG, getRefreshRate());
405410
return tag;
406411
}
407412

@@ -438,7 +443,7 @@ protected void readConfigFromTag(NBTTagCompound tag) {
438443
}
439444

440445
if (tag.hasKey(REFRESH_RATE_TAG)) {
441-
this.refreshRate = tag.getInteger(REFRESH_RATE_TAG);
446+
setRefreshRate(tag.getInteger(REFRESH_RATE_TAG));
442447
}
443448
}
444449

src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEInputBus.java

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
package gregtech.common.metatileentities.multi.multiblockpart.appeng;
22

3-
import gregtech.api.capability.INotifiableHandler;
43
import gregtech.api.capability.impl.ItemHandlerList;
54
import gregtech.api.capability.impl.NotifiableItemStackHandler;
65
import gregtech.api.metatileentity.MetaTileEntity;
76
import gregtech.api.metatileentity.interfaces.IGregTechTileEntity;
87
import gregtech.api.metatileentity.multiblock.AbilityInstances;
98
import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart;
109
import gregtech.api.metatileentity.multiblock.MultiblockAbility;
11-
import gregtech.api.metatileentity.multiblock.MultiblockControllerBase;
1210
import gregtech.api.mui.GTGuiTextures;
1311
import gregtech.api.mui.sync.appeng.AEItemSyncHandler;
1412
import gregtech.api.mui.sync.appeng.AESyncHandler;
@@ -27,7 +25,6 @@
2725
import net.minecraft.util.ResourceLocation;
2826
import net.minecraft.world.World;
2927
import net.minecraftforge.common.util.Constants;
30-
import net.minecraftforge.items.IItemHandler;
3128
import net.minecraftforge.items.IItemHandlerModifiable;
3229

3330
import appeng.api.storage.channels.IItemStorageChannel;
@@ -48,7 +45,6 @@
4845
import org.jetbrains.annotations.Nullable;
4946
import org.jetbrains.annotations.Range;
5047

51-
import java.util.Arrays;
5248
import java.util.List;
5349

5450
public class MetaTileEntityMEInputBus extends MetaTileEntityMEInputBase<IAEItemStack>
@@ -69,11 +65,14 @@ public MetaTileEntity createMetaTileEntity(IGregTechTileEntity iGregTechTileEnti
6965

7066
@Override
7167
protected void initializeInventory() {
72-
super.initializeInventory();
7368
this.extraSlotInventory = new NotifiableItemStackHandler(this, 1, this, false);
7469
this.extraSlotInventory.addNotifiableMetaTileEntity(this);
75-
this.importItems = new ItemHandlerList(
76-
Arrays.asList(getAEHandler(), this.circuitInventory, this.extraSlotInventory));
70+
super.initializeInventory();
71+
}
72+
73+
@Override
74+
protected IItemHandlerModifiable createImportItemHandler() {
75+
return new ItemHandlerList(getAEHandler(), circuitInventory, extraSlotInventory);
7776
}
7877

7978
@Override
@@ -94,27 +93,6 @@ public void clearMachineInventory(@NotNull List<@NotNull ItemStack> itemBuffer)
9493
}
9594
}
9695

97-
@Override
98-
public void addToMultiBlock(MultiblockControllerBase controllerBase) {
99-
super.addToMultiBlock(controllerBase);
100-
for (IItemHandler handler : ((ItemHandlerList) this.importItems).getBackingHandlers()) {
101-
if (handler instanceof INotifiableHandler notifiable) {
102-
notifiable.addNotifiableMetaTileEntity(controllerBase);
103-
notifiable.addToNotifiedList(this, handler, false);
104-
}
105-
}
106-
}
107-
108-
@Override
109-
public void removeFromMultiBlock(MultiblockControllerBase controllerBase) {
110-
super.removeFromMultiBlock(controllerBase);
111-
for (IItemHandler handler : ((ItemHandlerList) this.importItems).getBackingHandlers()) {
112-
if (handler instanceof INotifiableHandler notifiable) {
113-
notifiable.removeNotifiableMetaTileEntity(controllerBase);
114-
}
115-
}
116-
}
117-
11896
@Override
11997
protected @NotNull AESyncHandler<IAEItemStack> createAESyncHandler() {
12098
return new AEItemSyncHandler(getAEHandler(), this::markDirty, circuitInventory::setCircuitValue);

src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEInputHatch.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,8 @@ public MetaTileEntity createMetaTileEntity(IGregTechTileEntity iGregTechTileEnti
5959
}
6060

6161
@Override
62-
protected void initializeInventory() {
63-
super.initializeInventory();
64-
this.importFluids = new FluidTankList(false, getAEHandler().getInventory());
62+
protected FluidTankList createImportFluidHandler() {
63+
return new FluidTankList(false, getAEHandler().getInventory());
6564
}
6665

6766
@Override

src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEOutputBase.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ protected void initializeInventory() {
6868
@Override
6969
public void update() {
7070
super.update();
71-
if (!getWorld().isRemote && workingEnabled && isOnline && (getOffsetTimer() % refreshRate == 0)) {
71+
if (!getWorld().isRemote && workingEnabled && isOnline && (getOffsetTimer() % getRefreshRate() == 0)) {
7272
if (this.internalBuffer.isEmpty()) return;
7373

7474
IMEMonitor<AEStackType> monitor = getMonitor();
@@ -250,7 +250,7 @@ public void detectAndSendChanges(boolean init) {
250250
AEStackType newStack = internalBuffer.get(index);
251251
AEStackType cachedStack = cache.get(index);
252252

253-
if (init || !newStack.equals(cachedStack)) {
253+
if (init || !newStack.equals(cachedStack) || newStack.getStackSize() != cachedStack.getStackSize()) {
254254
AEStackType copy = newStack.copy();
255255
changedIndexes.add(index);
256256
cache.set(index, copy);

0 commit comments

Comments
 (0)