aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2022-06-11 22:13:15 +0900
committerGitHub <noreply@github.com>2022-06-11 15:13:15 +0200
commit43dba7b093eb742481af0da2b1e068d9031d88c8 (patch)
treeef3ecee5ef38683557c9f9a62be997573fc1ff1b /src
parent77c0cdb6dc6f59e3fbaf09197086f00f9d8cf8dc (diff)
downloadGT5-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')
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/nbthandlers/GT_MetaTileEntity_Hatch_MillingBalls.java6
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/nbthandlers/GT_MetaTileEntity_Hatch_NbtConsumable.java13
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;
}
/**