diff options
Diffstat (limited to 'src/main/java/gregtech/common/tileentities/automation')
3 files changed, 48 insertions, 31 deletions
diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java index c6c73cb02f..a5b495d73d 100644 --- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java +++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Filter.java @@ -5,6 +5,7 @@ import static gregtech.api.enums.Textures.BlockIcons.AUTOMATION_FILTER_GLOW; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; import com.gtnewhorizons.modularui.api.screen.ModularWindow; import com.gtnewhorizons.modularui.api.screen.UIBuildContext; @@ -87,8 +88,9 @@ public class GT_MetaTileEntity_Filter extends GT_MetaTileEntity_Buffer implement } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) { + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + if (!super.allowPutStack(aBaseMetaTileEntity, aIndex, side, aStack)) { return false; } if (this.bInvertFilter) { @@ -110,8 +112,14 @@ public class GT_MetaTileEntity_Filter extends GT_MetaTileEntity_Buffer implement if (mInventory[i] == null) ++emptySlots; } if (!bInvert) emptySlots = 9 - emptySlots; - for (byte b = 0; b < 6; b++) aBaseMetaTileEntity.setInternalOutputRedstoneSignal(b, (byte) emptySlots); - } else for (byte b = 0; b < 6; b++) aBaseMetaTileEntity.setInternalOutputRedstoneSignal(b, (byte) 0); + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + aBaseMetaTileEntity.setInternalOutputRedstoneSignal(side, (byte) emptySlots); + } + } else { + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + aBaseMetaTileEntity.setInternalOutputRedstoneSignal(side, (byte) 0); + } + } } @Override diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java index 7b2978d701..1f4117acc9 100644 --- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java +++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java @@ -7,6 +7,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; import com.gtnewhorizons.modularui.api.screen.ModularWindow; import com.gtnewhorizons.modularui.api.screen.UIBuildContext; @@ -25,7 +26,8 @@ import gregtech.api.util.GT_Utility; public class GT_MetaTileEntity_ItemDistributor extends GT_MetaTileEntity_Buffer implements IAddUIWidgets { private byte[] itemsPerSide = new byte[6]; - private byte currentSide = 0, currentSideItemCount = 0; + private ForgeDirection currentSide = ForgeDirection.DOWN; + private byte currentSideItemCount = 0; public GT_MetaTileEntity_ItemDistributor(int aID, String aName, String aNameRegional, int aTier) { super( @@ -74,17 +76,18 @@ public class GT_MetaTileEntity_ItemDistributor extends GT_MetaTileEntity_Buffer } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide == aBaseMetaTileEntity.getFrontFacing(); + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + return side == aBaseMetaTileEntity.getFrontFacing(); } @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, - boolean aActive, boolean aRedstone) { - if (aSide == aFacing) { - return mTextures[0][aColorIndex + 1]; + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection aFacing, + int colorIndex, boolean aActive, boolean redstoneLevel) { + if (side == aFacing) { + return mTextures[0][colorIndex + 1]; } else { - return mTextures[1][aColorIndex + 1]; + return mTextures[1][colorIndex + 1]; } } @@ -100,13 +103,13 @@ public class GT_MetaTileEntity_ItemDistributor extends GT_MetaTileEntity_Buffer } @Override - public boolean isInputFacing(byte aSide) { - return getBaseMetaTileEntity().getFrontFacing() == aSide || itemsPerSide[aSide] == 0; + public boolean isInputFacing(ForgeDirection side) { + return getBaseMetaTileEntity().getFrontFacing() == side || itemsPerSide[side.ordinal()] == 0; } @Override - public boolean isOutputFacing(byte aSide) { - return getBaseMetaTileEntity().getFrontFacing() != aSide && itemsPerSide[aSide] > 0; + public boolean isOutputFacing(ForgeDirection side) { + return getBaseMetaTileEntity().getFrontFacing() != side && itemsPerSide[side.ordinal()] > 0; } @Override @@ -121,18 +124,20 @@ public class GT_MetaTileEntity_ItemDistributor extends GT_MetaTileEntity_Buffer if (itemsPerSide.length != 6) { itemsPerSide = new byte[6]; } - currentSide = aNBT.getByte("mCurrentSide"); + currentSide = ForgeDirection.getOrientation(aNBT.getByte("mCurrentSide")); currentSideItemCount = aNBT.getByte("mCurrentSideItemCount"); } @Override protected void moveItems(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { + int currentSideOrdinal = currentSide.ordinal(); fillStacksIntoFirstSlots(); int movedItems; TileEntity adjacentTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(currentSide); int inspectedSides = 0; - while (itemsPerSide[currentSide] == 0) { - currentSide = (byte) ((currentSide + 1) % 6); + while (itemsPerSide[currentSideOrdinal] == 0) { + currentSideOrdinal = ((currentSideOrdinal + 1) % 6); + currentSide = ForgeDirection.getOrientation(currentSideOrdinal); currentSideItemCount = 0; adjacentTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(currentSide); inspectedSides += 1; @@ -144,16 +149,17 @@ public class GT_MetaTileEntity_ItemDistributor extends GT_MetaTileEntity_Buffer aBaseMetaTileEntity, adjacentTileEntity, currentSide, - GT_Utility.getOppositeSide(currentSide), + currentSide.getOpposite(), null, false, (byte) 64, (byte) 1, - (byte) (itemsPerSide[currentSide] - currentSideItemCount), + (byte) (itemsPerSide[currentSideOrdinal] - currentSideItemCount), (byte) 1); currentSideItemCount += movedItems; - if (currentSideItemCount >= itemsPerSide[currentSide]) { - currentSide = (byte) ((currentSide + 1) % 6); + if (currentSideItemCount >= itemsPerSide[currentSideOrdinal]) { + currentSideOrdinal = ((currentSideOrdinal + 1) % 6); + currentSide = ForgeDirection.getOrientation(currentSideOrdinal); currentSideItemCount = 0; } if (movedItems > 0 || aBaseMetaTileEntity.hasInventoryBeenModified()) { @@ -163,18 +169,19 @@ public class GT_MetaTileEntity_ItemDistributor extends GT_MetaTileEntity_Buffer } @Override - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + public void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { + final int ordinalSide = side.ordinal(); // Adjust items per side by 1 or -1, constrained to the cyclic interval [0, 127] - itemsPerSide[aSide] += aPlayer.isSneaking() ? -1 : 1; - itemsPerSide[aSide] = (byte) ((itemsPerSide[aSide] + 128) % 128); - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("211", "Items per side: ") + itemsPerSide[aSide]); + itemsPerSide[ordinalSide] += aPlayer.isSneaking() ? -1 : 1; + itemsPerSide[ordinalSide] = (byte) ((itemsPerSide[ordinalSide] + 128) % 128); + GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("211", "Items per side: ") + itemsPerSide[ordinalSide]); } @Override public void saveNBTData(NBTTagCompound aNBT) { super.saveNBTData(aNBT); aNBT.setByteArray("mItemsPerSide", itemsPerSide); - aNBT.setByte("mCurrentSide", currentSide); + aNBT.setByte("mCurrentSide", (byte) currentSide.ordinal()); aNBT.setByte("mCurrentSideItemCount", currentSideItemCount); } diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java index 9b0824aed1..3fa296f9a2 100644 --- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java +++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java @@ -8,6 +8,7 @@ import java.util.Collections; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; import com.gtnewhorizons.modularui.api.screen.ModularWindow; import com.gtnewhorizons.modularui.api.screen.UIBuildContext; @@ -106,7 +107,7 @@ public class GT_MetaTileEntity_Regulator extends GT_MetaTileEntity_Buffer implem } @Override - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + public void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { // Regulation per Screwdriver is overridden by GUI regulation. } @@ -134,8 +135,9 @@ public class GT_MetaTileEntity_Regulator extends GT_MetaTileEntity_Buffer implem } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack) && aIndex >= 0 + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + return super.allowPutStack(aBaseMetaTileEntity, aIndex, side, aStack) && aIndex >= 0 && aIndex <= 8 && GT_Utility.areStacksEqual(aStack, this.mInventory[(aIndex + 9)]); } |