diff options
author | miozune <miozune@gmail.com> | 2022-06-11 22:13:15 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-11 15:13:15 +0200 |
commit | 43dba7b093eb742481af0da2b1e068d9031d88c8 (patch) | |
tree | ef3ecee5ef38683557c9f9a62be997573fc1ff1b /src | |
parent | 77c0cdb6dc6f59e3fbaf09197086f00f9d8cf8dc (diff) | |
download | GT5-Unofficial-43dba7b093eb742481af0da2b1e068d9031d88c8.tar.gz GT5-Unofficial-43dba7b093eb742481af0da2b1e068d9031d88c8.tar.bz2 GT5-Unofficial-43dba7b093eb742481af0da2b1e068d9031d88c8.zip |
Fixes for Housing (#208)
* Fix balls (and probably catalysts) not being depleted properly
* Fix breaking housing does not drop items in usage slots
* Disallow moving duplicated types of balls into usage slots
Diffstat (limited to 'src')
2 files changed, 14 insertions, 5 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/nbthandlers/GT_MetaTileEntity_Hatch_MillingBalls.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/nbthandlers/GT_MetaTileEntity_Hatch_MillingBalls.java index 7514855a2c..0f10272ad7 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/nbthandlers/GT_MetaTileEntity_Hatch_MillingBalls.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/nbthandlers/GT_MetaTileEntity_Hatch_MillingBalls.java @@ -11,15 +11,15 @@ import net.minecraft.item.ItemStack; public class GT_MetaTileEntity_Hatch_MillingBalls extends GT_MetaTileEntity_Hatch_NbtConsumable { public GT_MetaTileEntity_Hatch_MillingBalls(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional, 6, 4, "Dedicated Milling Ball Storage", true); + super(aID, aName, aNameRegional, 6, 4, "Dedicated Milling Ball Storage", false); } public GT_MetaTileEntity_Hatch_MillingBalls(String aName, String aDescription, ITexture[][][] aTextures) { - super(aName, 6, 4, aDescription, true, aTextures); + super(aName, 6, 4, aDescription, false, aTextures); } public GT_MetaTileEntity_Hatch_MillingBalls(String aName, String[] aDescription, ITexture[][][] aTextures) { - super(aName, 6, 4, aDescription[0], true, aTextures); + super(aName, 6, 4, aDescription[0], false, aTextures); } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/nbthandlers/GT_MetaTileEntity_Hatch_NbtConsumable.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/nbthandlers/GT_MetaTileEntity_Hatch_NbtConsumable.java index 56dff1b1e3..d65a4e6efa 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/nbthandlers/GT_MetaTileEntity_Hatch_NbtConsumable.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/nbthandlers/GT_MetaTileEntity_Hatch_NbtConsumable.java @@ -72,7 +72,7 @@ public abstract class GT_MetaTileEntity_Hatch_NbtConsumable extends GT_MetaTileE @Override public final boolean isValidSlot(int aIndex) { - return aIndex < mInputslotCount; + return true; } @Override @@ -112,6 +112,7 @@ public abstract class GT_MetaTileEntity_Hatch_NbtConsumable extends GT_MetaTileE @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { + validateUsageSlots(); if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.hasInventoryBeenModified()) { fillStacksIntoFirstSlots(); tryFillUsageSlots(); @@ -130,6 +131,14 @@ public abstract class GT_MetaTileEntity_Hatch_NbtConsumable extends GT_MetaTileE } } + protected void validateUsageSlots() { + for (int i = getSlotID_FirstUsage(); i <= getSlotID_LastUsage(); i++) { + if (mInventory[i] != null && mInventory[i].stackSize < 1) { + mInventory[i] = null; + } + } + } + // Only moves items in the first four slots protected final void fillStacksIntoFirstSlots() { for (int i = 0; i <= getSlotID_LastInput() ; i++) { @@ -244,7 +253,7 @@ public abstract class GT_MetaTileEntity_Hatch_NbtConsumable extends GT_MetaTileE @Override public final boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide == getBaseMetaTileEntity().getFrontFacing() && isItemValidForUsageSlot(aStack); + return aSide == getBaseMetaTileEntity().getFrontFacing() && isItemValidForUsageSlot(aStack) && aIndex < mInputslotCount; } /** |