diff options
author | Jason Mitchell <mitchej@gmail.com> | 2023-04-22 22:33:35 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-23 07:33:35 +0200 |
commit | 56f2269f4af6d2130bdb2b6e6ac6e13bce89e47b (patch) | |
tree | 745e6d92025ec4ef449fc59fa5fdd741200b0489 /src/main/java/gregtech/api/metatileentity | |
parent | ac0b7a7da46646d325def36eed811941dbfc5950 (diff) | |
download | GT5-Unofficial-56f2269f4af6d2130bdb2b6e6ac6e13bce89e47b.tar.gz GT5-Unofficial-56f2269f4af6d2130bdb2b6e6ac6e13bce89e47b.tar.bz2 GT5-Unofficial-56f2269f4af6d2130bdb2b6e6ac6e13bce89e47b.zip |
Forge direction (#1895)
* ForgeDirection
Also refactor the clusterfuck that was `getCoordinateScan`
Co-authored by: Jason Mitchell <mitchej@gmail.com>
* Fix rendering of Frame Boxes
Frame boxes needed their own implementation of getTexture with int connexion mask,
which is returning an error texture for the MetaTileEntity, because pipes (FrameBox
**is** a pipe) do use this method to return different textures based on connexion
status.
---------
Co-authored-by: Léa Gris <lea.gris@noiraude.net>
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity')
38 files changed, 1471 insertions, 1388 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java index 36d4aadcd5..6ea66d4956 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java @@ -76,9 +76,9 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity this.nodePath = nodePath; } - public void addToLock(TileEntity tileEntity, int side) { + public void addToLock(TileEntity tileEntity, ForgeDirection side) { if (node != null) { - final Lock lock = node.locks[side]; + final Lock lock = node.locks[side.ordinal()]; if (lock != null) { lock.addTileEntity(tileEntity); } @@ -87,9 +87,9 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity } } - public void removeFromLock(TileEntity tileEntity, int side) { + public void removeFromLock(TileEntity tileEntity, ForgeDirection side) { if (node != null) { - final Lock lock = node.locks[side]; + final Lock lock = node.locks[side.ordinal()]; if (lock != null) { lock.removeTileEntity(tileEntity); } @@ -288,12 +288,12 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity (short) yCoord, zCoord, mID, - getCoverInfoAtSide((byte) 0).getCoverID(), - getCoverInfoAtSide((byte) 1).getCoverID(), - getCoverInfoAtSide((byte) 2).getCoverID(), - getCoverInfoAtSide((byte) 3).getCoverID(), - getCoverInfoAtSide((byte) 4).getCoverID(), - getCoverInfoAtSide((byte) 5).getCoverID(), + getCoverInfoAtSide(ForgeDirection.DOWN).getCoverID(), + getCoverInfoAtSide(ForgeDirection.UP).getCoverID(), + getCoverInfoAtSide(ForgeDirection.NORTH).getCoverID(), + getCoverInfoAtSide(ForgeDirection.SOUTH).getCoverID(), + getCoverInfoAtSide(ForgeDirection.WEST).getCoverID(), + getCoverInfoAtSide(ForgeDirection.EAST).getCoverID(), oTextureData = mConnections, oUpdateData = hasValidMetaTileEntity() ? mMetaTileEntity.getUpdateData() : 0, oRedstoneData = (byte) (((mSidedRedstone[0] > 0) ? 1 : 0) | ((mSidedRedstone[1] > 0) ? 2 : 0) @@ -317,12 +317,12 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity createNewMetatileEntity(mID); } - setCoverIDAtSide((byte) 0, aCover0); - setCoverIDAtSide((byte) 1, aCover1); - setCoverIDAtSide((byte) 2, aCover2); - setCoverIDAtSide((byte) 3, aCover3); - setCoverIDAtSide((byte) 4, aCover4); - setCoverIDAtSide((byte) 5, aCover5); + setCoverIDAtSide(ForgeDirection.DOWN, aCover0); + setCoverIDAtSide(ForgeDirection.UP, aCover1); + setCoverIDAtSide(ForgeDirection.NORTH, aCover2); + setCoverIDAtSide(ForgeDirection.SOUTH, aCover3); + setCoverIDAtSide(ForgeDirection.WEST, aCover4); + setCoverIDAtSide(ForgeDirection.EAST, aCover5); receiveClientEvent(GregTechTileClientEvents.CHANGE_COMMON_DATA, aTextureData); receiveClientEvent(GregTechTileClientEvents.CHANGE_CUSTOM_DATA, aUpdateData); @@ -436,17 +436,17 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity } @Override - public byte getBackFacing() { - return GT_Utility.getOppositeSide(getFrontFacing()); + public ForgeDirection getBackFacing() { + return getFrontFacing().getOpposite(); } @Override - public byte getFrontFacing() { - return 6; + public ForgeDirection getFrontFacing() { + return ForgeDirection.UNKNOWN; } @Override - public void setFrontFacing(byte aFacing) { + public void setFrontFacing(ForgeDirection aFacing) { doEnetUpdate(); } @@ -640,22 +640,22 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity } @Override - public boolean inputEnergyFrom(byte aSide) { + public boolean inputEnergyFrom(ForgeDirection side) { return false; } @Override - public boolean inputEnergyFrom(byte aSide, boolean waitForActive) { + public boolean inputEnergyFrom(ForgeDirection side, boolean waitForActive) { return false; } @Override - public boolean outputsEnergyTo(byte aSide) { + public boolean outputsEnergyTo(ForgeDirection side) { return false; } @Override - public boolean outputsEnergyTo(byte aSide, boolean waitForActive) { + public boolean outputsEnergyTo(ForgeDirection side, boolean waitForActive) { return false; } @@ -700,16 +700,16 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity } @Override - public ITexture[] getTexture(Block aBlock, byte aSide) { - final ITexture rIcon = getCoverTexture(aSide); + public ITexture[] getTexture(Block aBlock, ForgeDirection side) { + final ITexture rIcon = getCoverTexture(side); if (rIcon != null) return new ITexture[] { rIcon }; - return getTextureUncovered(aSide); + return getTextureUncovered(side); } @Override - public ITexture[] getTextureCovered(byte aSide) { - final ITexture coverTexture = getCoverTexture(aSide); - final ITexture[] textureUncovered = getTextureUncovered(aSide); + public ITexture[] getTextureCovered(ForgeDirection side) { + final ITexture coverTexture = getCoverTexture(side); + final ITexture[] textureUncovered = getTextureUncovered(side); final ITexture[] textureCovered; if (coverTexture != null) { textureCovered = Arrays.copyOf(textureUncovered, textureUncovered.length + 1); @@ -721,24 +721,24 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity } @Override - public ITexture[] getTextureUncovered(byte aSide) { + public ITexture[] getTextureUncovered(ForgeDirection sideDirection) { if ((mConnections & IConnectable.HAS_FRESHFOAM) != 0) return Textures.BlockIcons.FRESHFOAM; if ((mConnections & IConnectable.HAS_HARDENEDFOAM) != 0) return Textures.BlockIcons.HARDENEDFOAMS[mColor]; if ((mConnections & IConnectable.HAS_FOAM) != 0) return Textures.BlockIcons.ERROR_RENDERING; - byte tConnections = mConnections; + int tConnections = mConnections; if (tConnections == IConnectable.CONNECTED_WEST || tConnections == IConnectable.CONNECTED_EAST) - tConnections = (byte) (IConnectable.CONNECTED_WEST | IConnectable.CONNECTED_EAST); + tConnections = IConnectable.CONNECTED_WEST | IConnectable.CONNECTED_EAST; else if (tConnections == IConnectable.CONNECTED_DOWN || tConnections == IConnectable.CONNECTED_UP) - tConnections = (byte) (IConnectable.CONNECTED_DOWN | IConnectable.CONNECTED_UP); + tConnections = IConnectable.CONNECTED_DOWN | IConnectable.CONNECTED_UP; else if (tConnections == IConnectable.CONNECTED_NORTH || tConnections == IConnectable.CONNECTED_SOUTH) - tConnections = (byte) (IConnectable.CONNECTED_NORTH | IConnectable.CONNECTED_SOUTH); + tConnections = IConnectable.CONNECTED_NORTH | IConnectable.CONNECTED_SOUTH; if (hasValidMetaTileEntity()) return mMetaTileEntity.getTexture( this, - aSide, + sideDirection, tConnections, - (byte) (mColor - 1), - tConnections == 0 || (tConnections & (1 << aSide)) != 0, - getOutputRedstoneSignal(aSide) > 0); + (int) (mColor - 1), + tConnections == 0 || (tConnections & (1 << sideDirection.ordinal())) != 0, + getOutputRedstoneSignal(sideDirection) > 0); return Textures.BlockIcons.ERROR_RENDERING; } @@ -775,14 +775,15 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity } @Override - public boolean onRightclick(EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) { + public boolean onRightclick(EntityPlayer aPlayer, ForgeDirection side, float aX, float aY, float aZ) { if (isClientSide()) { // Configure Cover, sneak can also be: screwdriver, wrench, side cutter, soldering iron if (aPlayer.isSneaking()) { - final byte tSide = (getCoverIDAtSide(aSide) == 0) ? GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ) - : aSide; + final ForgeDirection tSide = (getCoverIDAtSide(side) == 0) + ? GT_Utility.determineWrenchingSide(side, aX, aY, aZ) + : side; return (getCoverInfoAtSide(tSide).hasCoverGUI()); - } else if (getCoverBehaviorAtSideNew(aSide).onCoverRightclickClient(aSide, this, aPlayer, aX, aY, aZ)) { + } else if (getCoverBehaviorAtSideNew(side).onCoverRightclickClient(side, this, aPlayer, aX, aY, aZ)) { return true; } } @@ -796,9 +797,9 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity setColorization((byte) -1); return true; } - final byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ); + final ForgeDirection tSide = GT_Utility.determineWrenchingSide(side, aX, aY, aZ); if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sWrenchList)) { - if (mMetaTileEntity.onWrenchRightClick(aSide, tSide, aPlayer, aX, aY, aZ)) { + if (mMetaTileEntity.onWrenchRightClick(side, tSide, aPlayer, aX, aY, aZ)) { mMetaTileEntity.markDirty(); GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer); GT_Utility.sendSoundToPlayers( @@ -813,7 +814,7 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity return true; } if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sScrewdriverList)) { - if (getCoverIDAtSide(aSide) == 0 && getCoverIDAtSide(tSide) != 0) { + if (getCoverIDAtSide(side) == 0 && getCoverIDAtSide(tSide) != 0) { if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 200, aPlayer)) { setCoverDataAtSide( tSide, @@ -832,9 +833,9 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity } else { if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { setCoverDataAtSide( - aSide, - getCoverInfoAtSide(aSide).onCoverScrewdriverClick(aPlayer, aX, aY, aZ)); - mMetaTileEntity.onScrewdriverRightClick(aSide, aPlayer, aX, aY, aZ); + side, + getCoverInfoAtSide(side).onCoverScrewdriverClick(aPlayer, aX, aY, aZ)); + mMetaTileEntity.onScrewdriverRightClick(side, aPlayer, aX, aY, aZ); mMetaTileEntity.markDirty(); GT_Utility.sendSoundToPlayers( worldObj, @@ -880,7 +881,7 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity } if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sWireCutterList)) { - if (mMetaTileEntity.onWireCutterRightClick(aSide, tSide, aPlayer, aX, aY, aZ)) { + if (mMetaTileEntity.onWireCutterRightClick(side, tSide, aPlayer, aX, aY, aZ)) { mMetaTileEntity.markDirty(); // logic handled internally GT_Utility.sendSoundToPlayers( @@ -897,7 +898,7 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity } if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sSolderingToolList)) { - if (mMetaTileEntity.onSolderingToolRightClick(aSide, tSide, aPlayer, aX, aY, aZ)) { + if (mMetaTileEntity.onSolderingToolRightClick(side, tSide, aPlayer, aX, aY, aZ)) { mMetaTileEntity.markDirty(); // logic handled internally GT_Utility.sendSoundToPlayers( @@ -910,12 +911,12 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity zCoord); } else if (GT_ModHandler.useSolderingIron(tCurrentItem, aPlayer)) { mMetaTileEntity.markDirty(); - mStrongRedstone ^= (1 << tSide); + mStrongRedstone ^= (1 << tSide.ordinal()); GT_Utility.sendChatToPlayer( aPlayer, GT_Utility.trans("091", "Redstone Output at Side ") + tSide + GT_Utility.trans("092", " set to: ") - + ((mStrongRedstone & (1 << tSide)) != 0 ? GT_Utility.trans("093", "Strong") + + ((mStrongRedstone & (1 << tSide.ordinal())) != 0 ? GT_Utility.trans("093", "Strong") : GT_Utility.trans("094", "Weak"))); GT_Utility.sendSoundToPlayers( worldObj, @@ -931,8 +932,8 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity return true; } - byte coverSide = aSide; - if (getCoverIDAtSide(aSide) == 0) coverSide = tSide; + ForgeDirection coverSide = side; + if (getCoverIDAtSide(side) == 0) coverSide = tSide; final CoverInfo coverInfo = getCoverInfoAtSide(coverSide); @@ -966,26 +967,26 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity xCoord, yCoord, zCoord); - dropCover(coverSide, aSide, false); + dropCover(coverSide, side, false); mMetaTileEntity.markDirty(); } return true; } } } else if (aPlayer.isSneaking()) { // Sneak click, no tool -> open cover config or turn back. - aSide = (getCoverIDAtSide(aSide) == 0) ? GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ) : aSide; - final CoverInfo coverInfo = getCoverInfoAtSide(aSide); + side = (getCoverIDAtSide(side) == 0) ? GT_Utility.determineWrenchingSide(side, aX, aY, aZ) : side; + final CoverInfo coverInfo = getCoverInfoAtSide(side); return coverInfo.isValid() && coverInfo.onCoverShiftRightClick(aPlayer); } - if (getCoverInfoAtSide(aSide).onCoverRightClick(aPlayer, aX, aY, aZ)) return true; + if (getCoverInfoAtSide(side).onCoverRightClick(aPlayer, aX, aY, aZ)) return true; } - if (!getCoverInfoAtSide(aSide).isGUIClickable()) return false; + if (!getCoverInfoAtSide(side).isGUIClickable()) return false; try { if (!aPlayer.isSneaking() && hasValidMetaTileEntity()) { - final boolean handled = mMetaTileEntity.onRightclick(this, aPlayer, aSide, aX, aY, aZ); + final boolean handled = mMetaTileEntity.onRightclick(this, aPlayer, side, aX, aY, aZ); if (handled) { mMetaTileEntity.markDirty(); } @@ -1040,10 +1041,10 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity * following two Functions. */ @Override - public int[] getAccessibleSlotsFromSide(int aSide) { - final CoverInfo coverInfo = getCoverInfoAtSide((byte) aSide); + public int[] getAccessibleSlotsFromSide(int ordinalSide) { + final CoverInfo coverInfo = getCoverInfoAtSide(ForgeDirection.getOrientation(ordinalSide)); if (canAccessData() && (coverInfo.letsItemsOut(-1) || coverInfo.letsItemsIn(-1))) - return mMetaTileEntity.getAccessibleSlotsFromSide(aSide); + return mMetaTileEntity.getAccessibleSlotsFromSide(ordinalSide); return GT_Values.emptyIntArray; } @@ -1051,22 +1052,21 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity * Can put aStack into Slot at Side */ @Override - public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { - return canAccessData() && getCoverInfoAtSide((byte) aSide).letsItemsIn(aIndex) - && mMetaTileEntity.canInsertItem(aIndex, aStack, aSide); + public boolean canInsertItem(int aIndex, ItemStack aStack, int ordinalSide) { + return canAccessData() && getCoverInfoAtSide(ForgeDirection.getOrientation(ordinalSide)).letsItemsIn(aIndex) + && mMetaTileEntity.canInsertItem(aIndex, aStack, ordinalSide); } /** * Can pull aStack out of Slot from Side */ @Override - public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { - return canAccessData() && getCoverBehaviorAtSideNew((byte) aSide).letsItemsOut( - (byte) aSide, - getCoverIDAtSide((byte) aSide), - getComplexCoverDataAtSide((byte) aSide), - aIndex, - this) && mMetaTileEntity.canExtractItem(aIndex, aStack, aSide); + public boolean canExtractItem(int aIndex, ItemStack aStack, int ordinalSide) { + final ForgeDirection side = ForgeDirection.getOrientation(ordinalSide); + return canAccessData() + && getCoverBehaviorAtSideNew(side) + .letsItemsOut(side, getCoverIDAtSide(side), getComplexCoverDataAtSide(side), aIndex, this) + && mMetaTileEntity.canExtractItem(aIndex, aStack, ordinalSide); } @Override @@ -1152,8 +1152,8 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity public void setOwnerUuid(UUID uuid) {} @Override - public byte getComparatorValue(byte aSide) { - return canAccessData() ? mMetaTileEntity.getComparatorValue(aSide) : 0; + public byte getComparatorValue(ForgeDirection side) { + return canAccessData() ? mMetaTileEntity.getComparatorValue(side) : 0; } @Override @@ -1166,96 +1166,92 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity } @Override - public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) { - if (canAccessData()) return mMetaTileEntity.injectEnergyUnits(aSide, aVoltage, aAmperage); + public long injectEnergyUnits(ForgeDirection side, long aVoltage, long aAmperage) { + if (canAccessData()) return mMetaTileEntity.injectEnergyUnits(side, aVoltage, aAmperage); return 0; } @Override - public boolean drainEnergyUnits(byte aSide, long aVoltage, long aAmperage) { + public boolean drainEnergyUnits(ForgeDirection side, long aVoltage, long aAmperage) { return false; } @Override - public boolean acceptsRotationalEnergy(byte aSide) { - if (!canAccessData() || getCoverIDAtSide(aSide) != 0) return false; - return mMetaTileEntity.acceptsRotationalEnergy(aSide); + public boolean acceptsRotationalEnergy(ForgeDirection side) { + if (!canAccessData() || getCoverIDAtSide(side) != 0) return false; + return mMetaTileEntity.acceptsRotationalEnergy(side); } @Override - public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy) { - if (!canAccessData() || getCoverIDAtSide(aSide) != 0) return false; - return mMetaTileEntity.injectRotationalEnergy(aSide, aSpeed, aEnergy); + public boolean injectRotationalEnergy(ForgeDirection side, long aSpeed, long aEnergy) { + if (!canAccessData() || getCoverIDAtSide(side) != 0) return false; + return mMetaTileEntity.injectRotationalEnergy(side, aSpeed, aEnergy); } - private boolean canMoveFluidOnSide(ForgeDirection aSide, Fluid aFluid, boolean isFill) { - if (aSide == ForgeDirection.UNKNOWN) return true; + private boolean canMoveFluidOnSide(ForgeDirection side, Fluid fluid, boolean isFill) { + if (side == ForgeDirection.UNKNOWN) return true; - final IFluidHandler tTileEntity = getITankContainerAtSide((byte) aSide.ordinal()); + final IFluidHandler tTileEntity = getITankContainerAtSide(side); // Only require a connection if there's something to connect to - Allows fluid cells & buckets to interact with // the pipe - if (tTileEntity != null && !mMetaTileEntity.isConnectedAtSide((byte) aSide.ordinal())) return false; + if (tTileEntity != null && !mMetaTileEntity.isConnectedAtSide(side)) return false; - if (isFill && mMetaTileEntity.isLiquidInput((byte) aSide.ordinal()) - && getCoverInfoAtSide((byte) aSide.ordinal()).letsFluidIn(aFluid)) return true; + if (isFill && mMetaTileEntity.isLiquidInput(side) && getCoverInfoAtSide(side).letsFluidIn(fluid)) return true; - if (!isFill && mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) - && getCoverInfoAtSide((byte) aSide.ordinal()).letsFluidOut(aFluid)) return true; - - return false; + return !isFill && mMetaTileEntity.isLiquidOutput(side) && getCoverInfoAtSide(side).letsFluidOut(fluid); } @Override - public int fill(ForgeDirection aSide, FluidStack aFluidStack, boolean doFill) { + public int fill(ForgeDirection side, FluidStack aFluidStack, boolean doFill) { if (mTickTimer > 5 && canAccessData() - && canMoveFluidOnSide(aSide, aFluidStack == null ? null : aFluidStack.getFluid(), true)) - return mMetaTileEntity.fill(aSide, aFluidStack, doFill); + && canMoveFluidOnSide(side, aFluidStack == null ? null : aFluidStack.getFluid(), true)) + return mMetaTileEntity.fill(side, aFluidStack, doFill); return 0; } @Override - public FluidStack drain(ForgeDirection aSide, int maxDrain, boolean doDrain) { + public FluidStack drain(ForgeDirection side, int maxDrain, boolean doDrain) { if (mTickTimer > 5 && canAccessData() && canMoveFluidOnSide( - aSide, + side, mMetaTileEntity.getFluid() == null ? null : mMetaTileEntity.getFluid() .getFluid(), false)) - return mMetaTileEntity.drain(aSide, maxDrain, doDrain); + return mMetaTileEntity.drain(side, maxDrain, doDrain); return null; } @Override - public FluidStack drain(ForgeDirection aSide, FluidStack aFluidStack, boolean doDrain) { + public FluidStack drain(ForgeDirection side, FluidStack aFluidStack, boolean doDrain) { if (mTickTimer > 5 && canAccessData() - && canMoveFluidOnSide(aSide, aFluidStack == null ? null : aFluidStack.getFluid(), false)) - return mMetaTileEntity.drain(aSide, aFluidStack, doDrain); + && canMoveFluidOnSide(side, aFluidStack == null ? null : aFluidStack.getFluid(), false)) + return mMetaTileEntity.drain(side, aFluidStack, doDrain); return null; } @Override - public boolean canFill(ForgeDirection aSide, Fluid aFluid) { - if (mTickTimer > 5 && canAccessData() && canMoveFluidOnSide(aSide, aFluid, true)) - return mMetaTileEntity.canFill(aSide, aFluid); + public boolean canFill(ForgeDirection side, Fluid aFluid) { + if (mTickTimer > 5 && canAccessData() && canMoveFluidOnSide(side, aFluid, true)) + return mMetaTileEntity.canFill(side, aFluid); return false; } @Override - public boolean canDrain(ForgeDirection aSide, Fluid aFluid) { - if (mTickTimer > 5 && canAccessData() && canMoveFluidOnSide(aSide, aFluid, false)) - return mMetaTileEntity.canDrain(aSide, aFluid); + public boolean canDrain(ForgeDirection side, Fluid aFluid) { + if (mTickTimer > 5 && canAccessData() && canMoveFluidOnSide(side, aFluid, false)) + return mMetaTileEntity.canDrain(side, aFluid); return false; } @Override - public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { - final CoverInfo coverInfo = getCoverInfoAtSide((byte) aSide.ordinal()); - if (canAccessData() && (aSide == ForgeDirection.UNKNOWN - || (mMetaTileEntity.isLiquidInput((byte) aSide.ordinal()) && coverInfo.letsFluidIn(null)) - || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) && coverInfo.letsFluidOut(null)) - // Doesn't need to be connected to get Tank Info -- otherwise things can't connect - )) return mMetaTileEntity.getTankInfo(aSide); + public FluidTankInfo[] getTankInfo(ForgeDirection side) { + final CoverInfo coverInfo = getCoverInfoAtSide(side); + if (canAccessData() + && (side == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput(side) && coverInfo.letsFluidIn(null)) + || (mMetaTileEntity.isLiquidOutput(side) && coverInfo.letsFluidOut(null)) + // Doesn't need to be connected to get Tank Info -- otherwise things can't connect + )) return mMetaTileEntity.getTankInfo(side); return new FluidTankInfo[] {}; } @@ -1302,13 +1298,13 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity return 1.0F; } - public boolean renderInside(byte aSide) { - if (canAccessData()) return mMetaTileEntity.renderInside(aSide); + public boolean renderInside(ForgeDirection side) { + if (canAccessData()) return mMetaTileEntity.renderInside(side); return false; } @Override - public float getBlastResistance(byte aSide) { + public float getBlastResistance(ForgeDirection side) { return (mConnections & IConnectable.HAS_FOAM) != 0 ? 50.0F : 5.0F; } @@ -1339,10 +1335,8 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity @Override public String[] getInfoData() { - { - if (canAccessData()) return getMetaTileEntity().getInfoData(); - return new String[] {}; - } + if (canAccessData()) return getMetaTileEntity().getInfoData(); + return new String[] {}; } @Override diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java index 55be6c6d92..b994826d87 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java @@ -1,7 +1,6 @@ package gregtech.api.metatileentity; import static gregtech.GT_Mod.GT_FML_LOGGER; -import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; import static gregtech.api.enums.GT_Values.NW; import static gregtech.api.enums.GT_Values.V; import static gregtech.api.objects.XSTR.XSTR_INSTANCE; @@ -100,8 +99,8 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec private boolean oRedstone = false; private byte mColor = 0, oColor = 0, oStrongRedstone = 0, oRedstoneData = 63, oTextureData = 0, oUpdateData = 0, oTexturePage = 0; - private byte oLightValueClient = 0, oLightValue = -1, mLightValue = 0, mOtherUpgrades = 0, mFacing = 0, oFacing = 0, - mWorkData = 0; + private byte oLightValueClient = 0, oLightValue = -1, mLightValue = 0, mOtherUpgrades = 0, mWorkData = 0; + private ForgeDirection mFacing, oFacing; private int mDisplayErrorCode = 0, oX = 0, oY = 0, oZ = 0, mTimeStatisticsIndex = 0, mLagWarningCount = 0; private long oOutput = 0, mAcceptedAmperes = Long.MAX_VALUE; private long mLastCheckTick = 0; @@ -128,7 +127,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec aNBT.setByte("mLightValue", mLightValue); aNBT.setByte("mOtherUpgrades", mOtherUpgrades); aNBT.setByte("mWorkData", mWorkData); - aNBT.setShort("mFacing", mFacing); + aNBT.setShort("mFacing", (short) mFacing.ordinal()); aNBT.setString("mOwnerName", mOwnerName); aNBT.setString("mOwnerUuid", mOwnerUuid == null ? "" : mOwnerUuid.toString()); aNBT.setBoolean("mLockUpgrade", mLockUpgrade); @@ -168,7 +167,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec mColor = aNBT.getByte("mColor"); mLightValue = aNBT.getByte("mLightValue"); mWorkData = aNBT.getByte("mWorkData"); - mFacing = oFacing = (byte) aNBT.getShort("mFacing"); + mFacing = oFacing = ForgeDirection.getOrientation(aNBT.getShort("mFacing")); mOwnerName = aNBT.getString("mOwnerName"); try { mOwnerUuid = UUID.fromString(aNBT.getString("mOwnerUuid")); @@ -252,14 +251,15 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec final int precipitationHeightAtSide3 = worldObj.getPrecipitationHeight(xCoord, zCoord + 1); final int precipitationHeightAtSide4 = worldObj.getPrecipitationHeight(xCoord - 1, zCoord); final int precipitationHeightAtSide5 = worldObj.getPrecipitationHeight(xCoord + 1, zCoord); - return (getCoverIDAtSide((byte) 1) == 0 && worldObj.getPrecipitationHeight(xCoord, zCoord) - 2 < yCoord) - || (getCoverIDAtSide((byte) 2) == 0 && precipitationHeightAtSide2 - 1 < yCoord + return (getCoverIDAtSide(ForgeDirection.UP) == 0 + && worldObj.getPrecipitationHeight(xCoord, zCoord) - 2 < yCoord) + || (getCoverIDAtSide(ForgeDirection.NORTH) == 0 && precipitationHeightAtSide2 - 1 < yCoord && precipitationHeightAtSide2 > -1) - || (getCoverIDAtSide((byte) 3) == 0 && precipitationHeightAtSide3 - 1 < yCoord + || (getCoverIDAtSide(ForgeDirection.SOUTH) == 0 && precipitationHeightAtSide3 - 1 < yCoord && precipitationHeightAtSide3 > -1) - || (getCoverIDAtSide((byte) 4) == 0 && precipitationHeightAtSide4 - 1 < yCoord + || (getCoverIDAtSide(ForgeDirection.WEST) == 0 && precipitationHeightAtSide4 - 1 < yCoord && precipitationHeightAtSide4 > -1) - || (getCoverIDAtSide((byte) 5) == 0 && precipitationHeightAtSide5 - 1 < yCoord + || (getCoverIDAtSide(ForgeDirection.EAST) == 0 && precipitationHeightAtSide5 - 1 < yCoord && precipitationHeightAtSide5 > -1); } @@ -370,14 +370,15 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } if (mMetaTileEntity.isEnetOutput() || mMetaTileEntity.isEnetInput()) { - for (byte i : ALL_VALID_SIDES) { - boolean temp = isEnergyInputSide(i); - if (temp != mActiveEUInputs[i]) { - mActiveEUInputs[i] = temp; + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + final int ordinalSide = side.ordinal(); + boolean temp = isEnergyInputSide(side); + if (temp != mActiveEUInputs[ordinalSide]) { + mActiveEUInputs[ordinalSide] = temp; } - temp = isEnergyOutputSide(i); - if (temp != mActiveEUOutputs[i]) { - mActiveEUOutputs[i] = temp; + temp = isEnergyOutputSide(side); + if (temp != mActiveEUOutputs[ordinalSide]) { + mActiveEUOutputs[ordinalSide] = temp; } } } @@ -397,7 +398,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } if (getEUCapacity() > 0) { if (GregTech_API.sMachineFireExplosions && getRandomNumber(1000) == 0) { - final Block tBlock = getBlockAtSide((byte) getRandomNumber(6)); + final Block tBlock = getBlockAtSide(ForgeDirection.getOrientation(getRandomNumber(6))); if (tBlock instanceof BlockFire) doEnergyExplosion(); } @@ -536,7 +537,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } if (mTickTimer > 10) { - byte tData = (byte) ((mFacing & 7) | (mActive ? 8 : 0) + byte tData = (byte) ((mFacing.ordinal() & 7) | (mActive ? 8 : 0) | (mRedstone ? 16 : 0) | (mLockUpgrade ? 32 : 0) | (mWorks ? 64 : 0) @@ -613,12 +614,12 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } @Override - public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, + public void getWailaBody(ItemStack itemStack, List<String> currentTip, IWailaDataAccessor accessor, IWailaConfigHandler config) { if (hasValidMetaTileEntity()) { - getMetaTileEntity().getWailaBody(itemStack, currenttip, accessor, config); + getMetaTileEntity().getWailaBody(itemStack, currentTip, accessor, config); } - super.getWailaBody(itemStack, currenttip, accessor, config); + super.getWailaBody(itemStack, currentTip, accessor, config); } @Override @@ -639,13 +640,13 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec (short) yCoord, zCoord, mID, - getCoverInfoAtSide((byte) 0).getCoverID(), - getCoverInfoAtSide((byte) 1).getCoverID(), - getCoverInfoAtSide((byte) 2).getCoverID(), - getCoverInfoAtSide((byte) 3).getCoverID(), - getCoverInfoAtSide((byte) 4).getCoverID(), - getCoverInfoAtSide((byte) 5).getCoverID(), - oTextureData = (byte) ((mFacing & 7) | (mActive ? 8 : 0) + getCoverInfoAtSide(ForgeDirection.DOWN).getCoverID(), + getCoverInfoAtSide(ForgeDirection.UP).getCoverID(), + getCoverInfoAtSide(ForgeDirection.NORTH).getCoverID(), + getCoverInfoAtSide(ForgeDirection.SOUTH).getCoverID(), + getCoverInfoAtSide(ForgeDirection.WEST).getCoverID(), + getCoverInfoAtSide(ForgeDirection.EAST).getCoverID(), + oTextureData = (byte) ((mFacing.ordinal() & 7) | (mActive ? 8 : 0) | (mRedstone ? 16 : 0) | (mLockUpgrade ? 32 : 0) | (mWorks ? 64 : 0)), @@ -675,12 +676,12 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec createNewMetatileEntity(mID); } - setCoverIDAtSide((byte) 0, aCover0); - setCoverIDAtSide((byte) 1, aCover1); - setCoverIDAtSide((byte) 2, aCover2); - setCoverIDAtSide((byte) 3, aCover3); - setCoverIDAtSide((byte) 4, aCover4); - setCoverIDAtSide((byte) 5, aCover5); + setCoverIDAtSide(ForgeDirection.DOWN, aCover0); + setCoverIDAtSide(ForgeDirection.UP, aCover1); + setCoverIDAtSide(ForgeDirection.NORTH, aCover2); + setCoverIDAtSide(ForgeDirection.SOUTH, aCover3); + setCoverIDAtSide(ForgeDirection.WEST, aCover4); + setCoverIDAtSide(ForgeDirection.EAST, aCover5); receiveClientEvent(GregTechTileClientEvents.CHANGE_COMMON_DATA, aTextureData); receiveClientEvent(GregTechTileClientEvents.CHANGE_CUSTOM_DATA, aUpdateData & 0x7F); @@ -725,7 +726,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec issueTextureUpdate(); switch (aEventID) { case GregTechTileClientEvents.CHANGE_COMMON_DATA -> { - mFacing = (byte) (aValue & 7); + mFacing = ForgeDirection.getOrientation((byte) (aValue & 7)); mActive = ((aValue & 8) != 0); mRedstone = ((aValue & 16) != 0); // mLockUpgrade = ((aValue&32) != 0); @@ -844,17 +845,17 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } @Override - public byte getBackFacing() { - return GT_Utility.getOppositeSide(mFacing); + public ForgeDirection getBackFacing() { + return mFacing.getOpposite(); } @Override - public byte getFrontFacing() { + public ForgeDirection getFrontFacing() { return mFacing; } @Override - public void setFrontFacing(byte aFacing) { + public void setFrontFacing(ForgeDirection aFacing) { if (isValidFacing(aFacing)) { mFacing = aFacing; mMetaTileEntity.onFacingChange(); @@ -1075,29 +1076,27 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } @Override - public boolean inputEnergyFrom(byte aSide) { - return inputEnergyFrom(aSide, true); + public boolean inputEnergyFrom(ForgeDirection side) { + return inputEnergyFrom(side, true); } @Override - public boolean inputEnergyFrom(byte aSide, boolean waitForActive) { - if (aSide == 6) return true; - if (isServerSide() && waitForActive) - return ((aSide >= 0 && aSide < 6) && mActiveEUInputs[aSide]) && !mReleaseEnergy; - return isEnergyInputSide(aSide); + public boolean inputEnergyFrom(ForgeDirection side, boolean waitForActive) { + if (side == ForgeDirection.UNKNOWN) return true; + if (isServerSide() && waitForActive) return mActiveEUInputs[side.ordinal()] && !mReleaseEnergy; + return isEnergyInputSide(side); } @Override - public boolean outputsEnergyTo(byte aSide) { - return outputsEnergyTo(aSide, true); + public boolean outputsEnergyTo(ForgeDirection side) { + return outputsEnergyTo(side, true); } @Override - public boolean outputsEnergyTo(byte aSide, boolean waitForActive) { - if (aSide == 6) return true; - if (isServerSide() && waitForActive) - return ((aSide >= 0 && aSide < 6) && mActiveEUOutputs[aSide]) || mReleaseEnergy; - return isEnergyOutputSide(aSide); + public boolean outputsEnergyTo(ForgeDirection side, boolean waitForActive) { + if (side == ForgeDirection.UNKNOWN) return true; + if (isServerSide() && waitForActive) return (mActiveEUOutputs[side.ordinal()]) || mReleaseEnergy; + return isEnergyOutputSide(side); } @Override @@ -1114,9 +1113,9 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec if (isServerSide() && (isEnetInput() || isEnetOutput())) { final int time = MinecraftServer.getServer() .getTickCounter(); - for (byte i : ALL_VALID_SIDES) { - if (outputsEnergyTo(i, false) || inputEnergyFrom(i, false)) { - final IGregTechTileEntity TE = getIGregTechTileEntityAtSide(i); + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + if (outputsEnergyTo(side, false) || inputEnergyFrom(side, false)) { + final IGregTechTileEntity TE = getIGregTechTileEntityAtSide(side); if (TE instanceof BaseMetaPipeEntity) { final Node node = ((BaseMetaPipeEntity) TE).getNode(); if (node == null) { @@ -1201,11 +1200,11 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } @Override - public ITexture[] getTexture(Block aBlock, byte aSide) { - final ITexture coverTexture = getCoverTexture(aSide); + public ITexture[] getTexture(Block aBlock, ForgeDirection side) { + final ITexture coverTexture = getCoverTexture(side); final ITexture[] textureUncovered = hasValidMetaTileEntity() ? mMetaTileEntity - .getTexture(this, aSide, mFacing, (byte) (mColor - 1), mActive, getOutputRedstoneSignal(aSide) > 0) + .getTexture(this, side, mFacing, (byte) (mColor - 1), mActive, getOutputRedstoneSignal(side) > 0) : Textures.BlockIcons.ERROR_RENDERING; final ITexture[] textureCovered; if (coverTexture != null) { @@ -1217,22 +1216,22 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } } - private boolean isEnergyInputSide(byte aSide) { - if (aSide >= 0 && aSide < 6) { - if (!getCoverInfoAtSide(aSide).letsEnergyIn()) return false; + private boolean isEnergyInputSide(ForgeDirection side) { + if (side != ForgeDirection.UNKNOWN) { + if (!getCoverInfoAtSide(side).letsEnergyIn()) return false; if (isInvalid() || mReleaseEnergy) return false; if (canAccessData() && mMetaTileEntity.isElectric() && mMetaTileEntity.isEnetInput()) - return mMetaTileEntity.isInputFacing(aSide); + return mMetaTileEntity.isInputFacing(side); } return false; } - private boolean isEnergyOutputSide(byte aSide) { - if (aSide >= 0 && aSide < 6) { - if (!getCoverInfoAtSide(aSide).letsEnergyOut()) return false; + private boolean isEnergyOutputSide(ForgeDirection side) { + if (side != ForgeDirection.UNKNOWN) { + if (!getCoverInfoAtSide(side).letsEnergyOut()) return false; if (isInvalid() || mReleaseEnergy) return mReleaseEnergy; if (canAccessData() && mMetaTileEntity.isElectric() && mMetaTileEntity.isEnetOutput()) - return mMetaTileEntity.isOutputFacing(aSide); + return mMetaTileEntity.isOutputFacing(side); } return false; } @@ -1414,18 +1413,19 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } @Override - public boolean onRightclick(EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) { + public boolean onRightclick(EntityPlayer aPlayer, ForgeDirection side, float aX, float aY, float aZ) { if (isClientSide()) { // Configure Cover, sneak can also be: screwdriver, wrench, side cutter, soldering iron if (aPlayer.isSneaking()) { - final byte tSide = (getCoverIDAtSide(aSide) == 0) ? GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ) - : aSide; + final ForgeDirection tSide = (getCoverIDAtSide(side) == 0) + ? GT_Utility.determineWrenchingSide(side, aX, aY, aZ) + : side; return (getCoverBehaviorAtSideNew(tSide).hasCoverGUI()); - } else if (getCoverBehaviorAtSideNew(aSide).onCoverRightclickClient(aSide, this, aPlayer, aX, aY, aZ)) { + } else if (getCoverBehaviorAtSideNew(side).onCoverRightclickClient(side, this, aPlayer, aX, aY, aZ)) { return true; } - if (!getCoverInfoAtSide(aSide).isGUIClickable()) return false; + if (!getCoverInfoAtSide(side).isGUIClickable()) return false; } if (isServerSide()) { @@ -1442,7 +1442,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sWrenchList)) { if (aPlayer.isSneaking() && mMetaTileEntity instanceof GT_MetaTileEntity_BasicMachine && ((GT_MetaTileEntity_BasicMachine) mMetaTileEntity) - .setMainFacing(GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ))) { + .setMainFacing(GT_Utility.determineWrenchingSide(side, aX, aY, aZ))) { GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer); GT_Utility.sendSoundToPlayers( worldObj, @@ -1454,8 +1454,8 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec zCoord); cableUpdateDelay = 10; } else if (mMetaTileEntity.onWrenchRightClick( - aSide, - GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ), + side, + GT_Utility.determineWrenchingSide(side, aX, aY, aZ), aPlayer, aX, aY, @@ -1477,17 +1477,17 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sScrewdriverList)) { if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 200, aPlayer)) { setCoverDataAtSide( - aSide, - getCoverBehaviorAtSideNew(aSide).onCoverScrewdriverClick( - aSide, - getCoverIDAtSide(aSide), - getComplexCoverDataAtSide(aSide), + side, + getCoverBehaviorAtSideNew(side).onCoverScrewdriverClick( + side, + getCoverIDAtSide(side), + getComplexCoverDataAtSide(side), this, aPlayer, aX, aY, aZ)); - mMetaTileEntity.onScrewdriverRightClick(aSide, aPlayer, aX, aY, aZ); + mMetaTileEntity.onScrewdriverRightClick(side, aPlayer, aX, aY, aZ); GT_Utility.sendSoundToPlayers( worldObj, SoundResource.IC2_TOOLS_WRENCH, @@ -1548,8 +1548,8 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sSolderingToolList)) { - final byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ); - if (mMetaTileEntity.onSolderingToolRightClick(aSide, tSide, aPlayer, aX, aY, aZ)) { + final ForgeDirection tSide = GT_Utility.determineWrenchingSide(side, aX, aY, aZ); + if (mMetaTileEntity.onSolderingToolRightClick(side, tSide, aPlayer, aX, aY, aZ)) { // logic handled internally GT_Utility.sendSoundToPlayers( worldObj, @@ -1560,12 +1560,13 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec yCoord, zCoord); } else if (GT_ModHandler.useSolderingIron(tCurrentItem, aPlayer)) { - mStrongRedstone ^= (1 << tSide); + mStrongRedstone ^= (1 << tSide.ordinal()); GT_Utility.sendChatToPlayer( aPlayer, GT_Utility.trans("091", "Redstone Output at Side ") + tSide + GT_Utility.trans("092", " set to: ") - + ((mStrongRedstone & (1 << tSide)) != 0 ? GT_Utility.trans("093", "Strong") + + ((mStrongRedstone & (1 << tSide.ordinal())) != 0 + ? GT_Utility.trans("093", "Strong") : GT_Utility.trans("094", "Weak"))); GT_Utility.sendSoundToPlayers( worldObj, @@ -1583,8 +1584,8 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sWireCutterList)) { - final byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ); - if (mMetaTileEntity.onWireCutterRightClick(aSide, tSide, aPlayer, aX, aY, aZ)) { + final ForgeDirection tSide = GT_Utility.determineWrenchingSide(side, aX, aY, aZ); + if (mMetaTileEntity.onWireCutterRightClick(side, tSide, aPlayer, aX, aY, aZ)) { // logic handled internally GT_Utility.sendSoundToPlayers( worldObj, @@ -1600,8 +1601,8 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec return true; } - byte coverSide = aSide; - if (getCoverIDAtSide(aSide) == 0) coverSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ); + ForgeDirection coverSide = side; + if (getCoverIDAtSide(side) == 0) coverSide = GT_Utility.determineWrenchingSide(side, aX, aY, aZ); if (getCoverIDAtSide(coverSide) == 0) { if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sCovers.keySet())) { @@ -1633,34 +1634,33 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec xCoord, yCoord, zCoord); - dropCover(coverSide, aSide, false); + dropCover(coverSide, side, false); } return true; } } // End item != null } else if (aPlayer.isSneaking()) { // Sneak click, no tool -> open cover config if possible. - aSide = (getCoverIDAtSide(aSide) == 0) ? GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ) - : aSide; - return getCoverIDAtSide(aSide) > 0 && getCoverBehaviorAtSideNew(aSide).onCoverShiftRightClick( - aSide, - getCoverIDAtSide(aSide), - getComplexCoverDataAtSide(aSide), + side = (getCoverIDAtSide(side) == 0) ? GT_Utility.determineWrenchingSide(side, aX, aY, aZ) : side; + return getCoverIDAtSide(side) > 0 && getCoverBehaviorAtSideNew(side).onCoverShiftRightClick( + side, + getCoverIDAtSide(side), + getComplexCoverDataAtSide(side), this, aPlayer); } - if (getCoverBehaviorAtSideNew(aSide).onCoverRightClick( - aSide, - getCoverIDAtSide(aSide), - getComplexCoverDataAtSide(aSide), + if (getCoverBehaviorAtSideNew(side).onCoverRightClick( + side, + getCoverIDAtSide(side), + getComplexCoverDataAtSide(side), this, aPlayer, aX, aY, aZ)) return true; - if (!getCoverInfoAtSide(aSide).isGUIClickable()) return false; + if (!getCoverInfoAtSide(side).isGUIClickable()) return false; if (isUpgradable() && tCurrentItem != null) { if (ItemList.Upgrade_Muffler.isStackEqual(aPlayer.inventory.getCurrentItem())) { @@ -1700,7 +1700,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec try { if (!aPlayer.isSneaking() && hasValidMetaTileEntity()) - return mMetaTileEntity.onRightclick(this, aPlayer, aSide, aX, aY, aZ); + return mMetaTileEntity.onRightclick(this, aPlayer, side, aX, aY, aZ); } catch (Throwable e) { GT_Log.err.println( "Encountered Exception while rightclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immediately to GregTech Intergalactical!!!"); @@ -1758,10 +1758,10 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec * following two Functions. */ @Override - public int[] getAccessibleSlotsFromSide(int aSide) { - final CoverInfo coverInfo = getCoverInfoAtSide((byte) aSide); + public int[] getAccessibleSlotsFromSide(int ordinalSide) { + final CoverInfo coverInfo = getCoverInfoAtSide(ForgeDirection.getOrientation(ordinalSide)); if (canAccessData() && (coverInfo.letsItemsOut(-1) || coverInfo.letsItemsIn(-1))) - return mMetaTileEntity.getAccessibleSlotsFromSide(aSide); + return mMetaTileEntity.getAccessibleSlotsFromSide(ordinalSide); return GT_Values.emptyIntArray; } @@ -1769,25 +1769,22 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec * Can put aStack into Slot at Side */ @Override - public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { + public boolean canInsertItem(int slotIndex, ItemStack stack, int ordinalSide) { return canAccessData() && (mRunningThroughTick || !mInputDisabled) - && getCoverInfoAtSide((byte) aSide).letsItemsIn(aIndex) - && mMetaTileEntity.canInsertItem(aIndex, aStack, aSide); + && getCoverInfoAtSide(ForgeDirection.getOrientation(ordinalSide)).letsItemsIn(slotIndex) + && mMetaTileEntity.canInsertItem(slotIndex, stack, ordinalSide); } /** - * Can pull aStack out of Slot from Side + * Can pull stack out of Slot from Side */ @Override - public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { + public boolean canExtractItem(int slotIndex, ItemStack stack, int ordinalSide) { + final ForgeDirection side = ForgeDirection.getOrientation(ordinalSide); return canAccessData() && (mRunningThroughTick || !mOutputDisabled) - && getCoverBehaviorAtSideNew((byte) aSide).letsItemsOut( - (byte) aSide, - getCoverIDAtSide((byte) aSide), - getComplexCoverDataAtSide((byte) aSide), - aIndex, - this) - && mMetaTileEntity.canExtractItem(aIndex, aStack, aSide); + && getCoverBehaviorAtSideNew(side) + .letsItemsOut(side, getCoverIDAtSide(side), getComplexCoverDataAtSide(side), slotIndex, this) + && mMetaTileEntity.canExtractItem(slotIndex, stack, ordinalSide); } @Override @@ -1796,9 +1793,9 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } @Override - public byte getGeneralRS(byte aSide) { + public byte getGeneralRS(ForgeDirection side) { if (mMetaTileEntity == null) return 0; - return mMetaTileEntity.allowGeneralRedstoneOutput() ? mSidedRedstone[aSide] : 0; + return mMetaTileEntity.allowGeneralRedstoneOutput() ? mSidedRedstone[side.ordinal()] : 0; } @Override @@ -1894,11 +1891,11 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } @Override - protected void updateOutputRedstoneSignal(byte aSide) { + protected void updateOutputRedstoneSignal(ForgeDirection side) { if (mMetaTileEntity.hasSidedRedstoneOutputBehavior()) { - setOutputRedstoneSignal(aSide, (byte) 0); + setOutputRedstoneSignal(side, (byte) 0); } else { - setOutputRedstoneSignal(aSide, (byte) 15); + setOutputRedstoneSignal(side, (byte) 15); } } @@ -1925,8 +1922,8 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } @Override - public byte getComparatorValue(byte aSide) { - return canAccessData() ? mMetaTileEntity.getComparatorValue(aSide) : 0; + public byte getComparatorValue(ForgeDirection side) { + return canAccessData() ? mMetaTileEntity.getComparatorValue(side) : 0; } @Override @@ -1939,9 +1936,9 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } @Override - public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) { + public long injectEnergyUnits(ForgeDirection side, long aVoltage, long aAmperage) { if (!canAccessData() || !mMetaTileEntity.isElectric() - || !inputEnergyFrom(aSide) + || !inputEnergyFrom(side) || aAmperage <= 0 || aVoltage <= 0 || getStoredEU() >= getEUCapacity() @@ -1967,9 +1964,9 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } @Override - public boolean drainEnergyUnits(byte aSide, long aVoltage, long aAmperage) { + public boolean drainEnergyUnits(ForgeDirection side, long aVoltage, long aAmperage) { if (!canAccessData() || !mMetaTileEntity.isElectric() - || !outputsEnergyTo(aSide) + || !outputsEnergyTo(side) || getStoredEU() - (aVoltage * aAmperage) < mMetaTileEntity.getMinimumStoredEU()) return false; if (decreaseStoredEU(aVoltage * aAmperage, false)) { mAverageEUOutput[mAverageEUOutputIndex] += aVoltage * aAmperage; @@ -1979,78 +1976,76 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } @Override - public boolean acceptsRotationalEnergy(byte aSide) { - if (!canAccessData() || getCoverIDAtSide(aSide) != 0) return false; - return mMetaTileEntity.acceptsRotationalEnergy(aSide); + public boolean acceptsRotationalEnergy(ForgeDirection side) { + if (!canAccessData() || getCoverIDAtSide(side) != 0) return false; + return mMetaTileEntity.acceptsRotationalEnergy(side); } @Override - public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy) { - if (!canAccessData() || getCoverIDAtSide(aSide) != 0) return false; - return mMetaTileEntity.injectRotationalEnergy(aSide, aSpeed, aEnergy); + public boolean injectRotationalEnergy(ForgeDirection side, long aSpeed, long aEnergy) { + if (!canAccessData() || getCoverIDAtSide(side) != 0) return false; + return mMetaTileEntity.injectRotationalEnergy(side, aSpeed, aEnergy); } @Override - public int fill(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { + public int fill(ForgeDirection side, FluidStack aFluid, boolean doFill) { if (mTickTimer > 5 && canAccessData() && (mRunningThroughTick || !mInputDisabled) - && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput((byte) aSide.ordinal()) - && getCoverInfoAtSide((byte) aSide.ordinal()).letsFluidIn(aFluid == null ? null : aFluid.getFluid())))) - return mMetaTileEntity.fill(aSide, aFluid, doFill); + && (side == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput(side) + && getCoverInfoAtSide(side).letsFluidIn(aFluid == null ? null : aFluid.getFluid())))) + return mMetaTileEntity.fill(side, aFluid, doFill); return 0; } @Override - public FluidStack drain(ForgeDirection aSide, int maxDrain, boolean doDrain) { + public FluidStack drain(ForgeDirection side, int maxDrain, boolean doDrain) { if (mTickTimer > 5 && canAccessData() && (mRunningThroughTick || !mOutputDisabled) - && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) - && getCoverInfoAtSide((byte) aSide.ordinal()).letsFluidOut( + && (side == ForgeDirection.UNKNOWN + || (mMetaTileEntity.isLiquidOutput(side) && getCoverInfoAtSide(side).letsFluidOut( mMetaTileEntity.getFluid() == null ? null : mMetaTileEntity.getFluid() .getFluid())))) - return mMetaTileEntity.drain(aSide, maxDrain, doDrain); + return mMetaTileEntity.drain(side, maxDrain, doDrain); return null; } @Override - public FluidStack drain(ForgeDirection aSide, FluidStack aFluid, boolean doDrain) { + public FluidStack drain(ForgeDirection side, FluidStack aFluid, boolean doDrain) { if (mTickTimer > 5 && canAccessData() && (mRunningThroughTick || !mOutputDisabled) - && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) - && getCoverInfoAtSide((byte) aSide.ordinal()).letsFluidOut(aFluid == null ? null : aFluid.getFluid())))) - return mMetaTileEntity.drain(aSide, aFluid, doDrain); + && (side == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput(side) + && getCoverInfoAtSide(side).letsFluidOut(aFluid == null ? null : aFluid.getFluid())))) + return mMetaTileEntity.drain(side, aFluid, doDrain); return null; } @Override - public boolean canFill(ForgeDirection aSide, Fluid aFluid) { + public boolean canFill(ForgeDirection side, Fluid aFluid) { if (mTickTimer > 5 && canAccessData() && (mRunningThroughTick || !mInputDisabled) - && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput((byte) aSide.ordinal()) - && getCoverInfoAtSide((byte) aSide.ordinal()).letsFluidIn(aFluid)))) - return mMetaTileEntity.canFill(aSide, aFluid); + && (side == ForgeDirection.UNKNOWN + || (mMetaTileEntity.isLiquidInput(side) && getCoverInfoAtSide(side).letsFluidIn(aFluid)))) + return mMetaTileEntity.canFill(side, aFluid); return false; } @Override - public boolean canDrain(ForgeDirection aSide, Fluid aFluid) { + public boolean canDrain(ForgeDirection side, Fluid aFluid) { if (mTickTimer > 5 && canAccessData() && (mRunningThroughTick || !mOutputDisabled) - && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) - && getCoverInfoAtSide((byte) aSide.ordinal()).letsFluidOut(aFluid)))) - return mMetaTileEntity.canDrain(aSide, aFluid); + && (side == ForgeDirection.UNKNOWN + || (mMetaTileEntity.isLiquidOutput(side) && getCoverInfoAtSide(side).letsFluidOut(aFluid)))) + return mMetaTileEntity.canDrain(side, aFluid); return false; } @Override - public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { - final byte tSide = (byte) aSide.ordinal(); - - if (canAccessData() && (aSide == ForgeDirection.UNKNOWN - || (mMetaTileEntity.isLiquidInput(tSide) && getCoverInfoAtSide(tSide).letsFluidIn(null)) - || (mMetaTileEntity.isLiquidOutput(tSide) && getCoverInfoAtSide(tSide).letsFluidOut(null)))) - return mMetaTileEntity.getTankInfo(aSide); + public FluidTankInfo[] getTankInfo(ForgeDirection side) { + if (canAccessData() && (side == ForgeDirection.UNKNOWN + || (mMetaTileEntity.isLiquidInput(side) && getCoverInfoAtSide(side).letsFluidIn(null)) + || (mMetaTileEntity.isLiquidOutput(side) && getCoverInfoAtSide(side).letsFluidOut(null)))) + return mMetaTileEntity.getTankInfo(side); return new FluidTankInfo[] {}; } @@ -2058,7 +2053,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec return oOutput; } - public boolean isTeleporterCompatible(ForgeDirection aSide) { + public boolean isTeleporterCompatible(ForgeDirection side) { return canAccessData() && mMetaTileEntity.isTeleporterCompatible(); } @@ -2068,15 +2063,15 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } public double injectEnergyUnits(ForgeDirection aDirection, double aAmount) { - return injectEnergyUnits((byte) aDirection.ordinal(), (int) aAmount, 1) > 0 ? 0 : aAmount; + return injectEnergyUnits(aDirection, (int) aAmount, 1) > 0 ? 0 : aAmount; } public boolean acceptsEnergyFrom(TileEntity aEmitter, ForgeDirection aDirection) { - return inputEnergyFrom((byte) aDirection.ordinal()); + return inputEnergyFrom(aDirection); } public boolean emitsEnergyTo(TileEntity aReceiver, ForgeDirection aDirection) { - return outputsEnergyTo((byte) aDirection.ordinal()); + return outputsEnergyTo(aDirection); } public double getOfferedEnergy() { @@ -2091,7 +2086,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } public int injectEnergy(ForgeDirection aForgeDirection, int aAmount) { - return injectEnergyUnits((byte) aForgeDirection.ordinal(), aAmount, 1) > 0 ? 0 : aAmount; + return injectEnergyUnits(aForgeDirection, aAmount, 1) > 0 ? 0 : aAmount; } public int addEnergy(int aEnergy) { @@ -2136,34 +2131,34 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } public int injectEnergy(Direction aDirection, int aAmount) { - return injectEnergyUnits((byte) aDirection.toSideValue(), aAmount, 1) > 0 ? 0 : aAmount; + return injectEnergyUnits(aDirection.toForgeDirection(), aAmount, 1) > 0 ? 0 : aAmount; } - public boolean isTeleporterCompatible(Direction aSide) { + public boolean isTeleporterCompatible(Direction ignoredDirection) { return canAccessData() && mMetaTileEntity.isTeleporterCompatible(); } - public boolean acceptsEnergyFrom(TileEntity aReceiver, Direction aDirection) { - return inputEnergyFrom((byte) aDirection.toSideValue()); + public boolean acceptsEnergyFrom(TileEntity ignoredTileEntity, Direction aDirection) { + return inputEnergyFrom(aDirection.toForgeDirection()); } - public boolean emitsEnergyTo(TileEntity aReceiver, Direction aDirection) { - return outputsEnergyTo((byte) aDirection.toSideValue()); + public boolean emitsEnergyTo(TileEntity ignoredTileEntity, Direction aDirection) { + return outputsEnergyTo(aDirection.toForgeDirection()); } @Override - public boolean addStackToSlot(int aIndex, ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack)) return true; - if (aIndex < 0 || aIndex >= getSizeInventory()) return false; - final ItemStack tStack = getStackInSlot(aIndex); - if (GT_Utility.isStackInvalid(tStack)) { - setInventorySlotContents(aIndex, aStack); + public boolean addStackToSlot(int slotIndex, ItemStack stack) { + if (GT_Utility.isStackInvalid(stack)) return true; + if (slotIndex < 0 || slotIndex >= getSizeInventory()) return false; + final ItemStack toStack = getStackInSlot(slotIndex); + if (GT_Utility.isStackInvalid(toStack)) { + setInventorySlotContents(slotIndex, stack); return true; } - aStack = GT_OreDictUnificator.get(aStack); - if (GT_Utility.areStacksEqual(tStack, aStack) - && tStack.stackSize + aStack.stackSize <= Math.min(aStack.getMaxStackSize(), getInventoryStackLimit())) { - tStack.stackSize += aStack.stackSize; + final ItemStack fromStack = GT_OreDictUnificator.get(stack); + if (GT_Utility.areStacksEqual(toStack, fromStack) && toStack.stackSize + fromStack.stackSize + <= Math.min(fromStack.getMaxStackSize(), getInventoryStackLimit())) { + toStack.stackSize += fromStack.stackSize; markDirty(); return true; } @@ -2189,8 +2184,8 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec } @Override - public float getBlastResistance(byte aSide) { - return canAccessData() ? Math.max(0, getMetaTileEntity().getExplosionResistance(aSide)) : 10.0F; + public float getBlastResistance(ForgeDirection side) { + return canAccessData() ? Math.max(0, getMetaTileEntity().getExplosionResistance(side)) : 10.0F; } @Override @@ -2332,7 +2327,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec @Override public IGridNode getGridNode(ForgeDirection forgeDirection) { - if (mFacing != forgeDirection.ordinal()) return null; + if (mFacing != forgeDirection) return null; final AENetworkProxy gp = getProxy(); return gp != null ? gp.getNode() : null; } diff --git a/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java index 2b9894a616..618dc9b662 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseTileEntity.java @@ -1,6 +1,5 @@ package gregtech.api.metatileentity; -import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; import static gregtech.api.enums.GT_Values.COMPASS_DIRECTIONS; import static gregtech.api.enums.GT_Values.GT; import static gregtech.api.enums.GT_Values.NW; @@ -103,16 +102,17 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje private final ChunkCoordinates mReturnedCoordinates = new ChunkCoordinates(); - public static byte getSideForPlayerPlacing(Entity aPlayer, byte aDefaultFacing, boolean[] aAllowedFacings) { + public static ForgeDirection getSideForPlayerPlacing(Entity aPlayer, ForgeDirection defaultFacing, + boolean[] aAllowedFacings) { if (aPlayer != null) { - if (aPlayer.rotationPitch >= 65 && aAllowedFacings[SIDE_UP]) return SIDE_UP; - if (aPlayer.rotationPitch <= -65 && aAllowedFacings[SIDE_DOWN]) return SIDE_DOWN; + if (aPlayer.rotationPitch >= 65 && aAllowedFacings[SIDE_UP]) return ForgeDirection.UP; + if (aPlayer.rotationPitch <= -65 && aAllowedFacings[SIDE_DOWN]) return ForgeDirection.DOWN; final byte rFacing = COMPASS_DIRECTIONS[MathHelper.floor_double(0.5D + 4.0F * aPlayer.rotationYaw / 360.0F) & 0x3]; - if (aAllowedFacings[rFacing]) return rFacing; + if (aAllowedFacings[rFacing]) return ForgeDirection.getOrientation(rFacing); } - for (final byte tSide : ALL_VALID_SIDES) if (aAllowedFacings[tSide]) return tSide; - return aDefaultFacing; + for (final ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) if (aAllowedFacings[dir.ordinal()]) return dir; + return defaultFacing; } private void clearNullMarkersFromTileEntityBuffer() { @@ -156,18 +156,18 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje } @Override - public final int getOffsetX(byte aSide, int aMultiplier) { - return xCoord + ForgeDirection.getOrientation(aSide).offsetX * aMultiplier; + public final int getOffsetX(ForgeDirection side, int aMultiplier) { + return xCoord + side.offsetX * aMultiplier; } @Override - public final short getOffsetY(byte aSide, int aMultiplier) { - return (short) (yCoord + ForgeDirection.getOrientation(aSide).offsetY * aMultiplier); + public final short getOffsetY(ForgeDirection side, int aMultiplier) { + return (short) (yCoord + side.offsetY * aMultiplier); } @Override - public final int getOffsetZ(byte aSide, int aMultiplier) { - return zCoord + ForgeDirection.getOrientation(aSide).offsetZ * aMultiplier; + public final int getOffsetZ(ForgeDirection side, int aMultiplier) { + return zCoord + side.offsetZ * aMultiplier; } @Override @@ -224,13 +224,13 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje } @Override - public final Block getBlockAtSide(byte aSide) { - return getBlockAtSideAndDistance(aSide, 1); + public final Block getBlockAtSide(ForgeDirection side) { + return getBlockAtSideAndDistance(side, 1); } @Override - public final Block getBlockAtSideAndDistance(byte aSide, int aDistance) { - return getBlock(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance)); + public final Block getBlockAtSideAndDistance(ForgeDirection side, int aDistance) { + return getBlock(getOffsetX(side, aDistance), getOffsetY(side, aDistance), getOffsetZ(side, aDistance)); } @Override @@ -239,13 +239,13 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje } @Override - public final byte getMetaIDAtSide(byte aSide) { - return getMetaIDAtSideAndDistance(aSide, 1); + public final byte getMetaIDAtSide(ForgeDirection side) { + return getMetaIDAtSideAndDistance(side, 1); } @Override - public final byte getMetaIDAtSideAndDistance(byte aSide, int aDistance) { - return getMetaID(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance)); + public final byte getMetaIDAtSideAndDistance(ForgeDirection side, int aDistance) { + return getMetaID(getOffsetX(side, aDistance), getOffsetY(side, aDistance), getOffsetZ(side, aDistance)); } @Override @@ -254,13 +254,13 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje } @Override - public final byte getLightLevelAtSide(byte aSide) { - return getLightLevelAtSideAndDistance(aSide, 1); + public final byte getLightLevelAtSide(ForgeDirection side) { + return getLightLevelAtSideAndDistance(side, 1); } @Override - public final byte getLightLevelAtSideAndDistance(byte aSide, int aDistance) { - return getLightLevel(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance)); + public final byte getLightLevelAtSideAndDistance(ForgeDirection side, int aDistance) { + return getLightLevel(getOffsetX(side, aDistance), getOffsetY(side, aDistance), getOffsetZ(side, aDistance)); } @Override @@ -269,13 +269,13 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje } @Override - public final boolean getOpacityAtSide(byte aSide) { - return getOpacityAtSideAndDistance(aSide, 1); + public final boolean getOpacityAtSide(ForgeDirection side) { + return getOpacityAtSideAndDistance(side, 1); } @Override - public final boolean getOpacityAtSideAndDistance(byte aSide, int aDistance) { - return getOpacity(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance)); + public final boolean getOpacityAtSideAndDistance(ForgeDirection side, int aDistance) { + return getOpacity(getOffsetX(side, aDistance), getOffsetY(side, aDistance), getOffsetZ(side, aDistance)); } @Override @@ -284,13 +284,13 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje } @Override - public final boolean getSkyAtSide(byte aSide) { - return getSkyAtSideAndDistance(aSide, 1); + public final boolean getSkyAtSide(ForgeDirection side) { + return getSkyAtSideAndDistance(side, 1); } @Override - public final boolean getSkyAtSideAndDistance(byte aSide, int aDistance) { - return getSky(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance)); + public final boolean getSkyAtSideAndDistance(ForgeDirection side, int aDistance) { + return getSky(getOffsetX(side, aDistance), getOffsetY(side, aDistance), getOffsetZ(side, aDistance)); } @Override @@ -299,13 +299,13 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje } @Override - public final boolean getAirAtSide(byte aSide) { - return getAirAtSideAndDistance(aSide, 1); + public final boolean getAirAtSide(ForgeDirection side) { + return getAirAtSideAndDistance(side, 1); } @Override - public final boolean getAirAtSideAndDistance(byte aSide, int aDistance) { - return getAir(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance)); + public final boolean getAirAtSideAndDistance(ForgeDirection side, int aDistance) { + return getAir(getOffsetX(side, aDistance), getOffsetY(side, aDistance), getOffsetZ(side, aDistance)); } @Override @@ -314,9 +314,9 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje } @Override - public final TileEntity getTileEntityAtSideAndDistance(byte aSide, int aDistance) { - if (aDistance == 1) return getTileEntityAtSide(aSide); - return getTileEntity(getOffsetX(aSide, aDistance), getOffsetY(aSide, aDistance), getOffsetZ(aSide, aDistance)); + public final TileEntity getTileEntityAtSideAndDistance(ForgeDirection side, int aDistance) { + if (aDistance == 1) return getTileEntityAtSide(side); + return getTileEntity(getOffsetX(side, aDistance), getOffsetY(side, aDistance), getOffsetZ(side, aDistance)); } @Override @@ -334,15 +334,15 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje } @Override - public final IInventory getIInventoryAtSide(byte aSide) { - final TileEntity tTileEntity = getTileEntityAtSide(aSide); + public final IInventory getIInventoryAtSide(ForgeDirection side) { + final TileEntity tTileEntity = getTileEntityAtSide(side); if (tTileEntity instanceof IInventory) return (IInventory) tTileEntity; return null; } @Override - public final IInventory getIInventoryAtSideAndDistance(byte aSide, int aDistance) { - final TileEntity tTileEntity = getTileEntityAtSideAndDistance(aSide, aDistance); + public final IInventory getIInventoryAtSideAndDistance(ForgeDirection side, int aDistance) { + final TileEntity tTileEntity = getTileEntityAtSideAndDistance(side, aDistance); if (tTileEntity instanceof IInventory) return (IInventory) tTileEntity; return null; } @@ -362,15 +362,15 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje } @Override - public final IFluidHandler getITankContainerAtSide(byte aSide) { - final TileEntity tTileEntity = getTileEntityAtSide(aSide); + public final IFluidHandler getITankContainerAtSide(ForgeDirection side) { + final TileEntity tTileEntity = getTileEntityAtSide(side); if (tTileEntity instanceof IFluidHandler) return (IFluidHandler) tTileEntity; return null; } @Override - public final IFluidHandler getITankContainerAtSideAndDistance(byte aSide, int aDistance) { - final TileEntity tTileEntity = getTileEntityAtSideAndDistance(aSide, aDistance); + public final IFluidHandler getITankContainerAtSideAndDistance(ForgeDirection side, int aDistance) { + final TileEntity tTileEntity = getTileEntityAtSideAndDistance(side, aDistance); if (tTileEntity instanceof IFluidHandler) return (IFluidHandler) tTileEntity; return null; } @@ -390,15 +390,15 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje } @Override - public final IGregTechTileEntity getIGregTechTileEntityAtSide(byte aSide) { - final TileEntity tTileEntity = getTileEntityAtSide(aSide); + public final IGregTechTileEntity getIGregTechTileEntityAtSide(ForgeDirection side) { + final TileEntity tTileEntity = getTileEntityAtSide(side); if (tTileEntity instanceof IGregTechTileEntity) return (IGregTechTileEntity) tTileEntity; return null; } @Override - public final IGregTechTileEntity getIGregTechTileEntityAtSideAndDistance(byte aSide, int aDistance) { - final TileEntity tTileEntity = getTileEntityAtSideAndDistance(aSide, aDistance); + public final IGregTechTileEntity getIGregTechTileEntityAtSideAndDistance(ForgeDirection side, int aDistance) { + final TileEntity tTileEntity = getTileEntityAtSideAndDistance(side, aDistance); if (tTileEntity instanceof IGregTechTileEntity) return (IGregTechTileEntity) tTileEntity; return null; } @@ -453,30 +453,31 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje } @Override - public final TileEntity getTileEntityAtSide(byte aSide) { - if (aSide < 0 || aSide >= 6 || mBufferedTileEntities[aSide] == this) return null; - final int tX = getOffsetX(aSide, 1); - final int tY = getOffsetY(aSide, 1); - final int tZ = getOffsetZ(aSide, 1); + public final TileEntity getTileEntityAtSide(ForgeDirection side) { + final int ordinalSide = side.ordinal(); + if (side == ForgeDirection.UNKNOWN || mBufferedTileEntities[ordinalSide] == this) return null; + final int tX = getOffsetX(side, 1); + final int tY = getOffsetY(side, 1); + final int tZ = getOffsetZ(side, 1); if (crossedChunkBorder(tX, tZ)) { - mBufferedTileEntities[aSide] = null; + mBufferedTileEntities[ordinalSide] = null; if (ignoreUnloadedChunks && !worldObj.blockExists(tX, tY, tZ)) return null; } - if (mBufferedTileEntities[aSide] == null) { - mBufferedTileEntities[aSide] = worldObj.getTileEntity(tX, tY, tZ); - if (mBufferedTileEntities[aSide] == null) { - mBufferedTileEntities[aSide] = this; + if (mBufferedTileEntities[ordinalSide] == null) { + mBufferedTileEntities[ordinalSide] = worldObj.getTileEntity(tX, tY, tZ); + if (mBufferedTileEntities[ordinalSide] == null) { + mBufferedTileEntities[ordinalSide] = this; return null; } - return mBufferedTileEntities[aSide]; + return mBufferedTileEntities[ordinalSide]; } - if (mBufferedTileEntities[aSide].isInvalid()) { - mBufferedTileEntities[aSide] = null; - return getTileEntityAtSide(aSide); + if (mBufferedTileEntities[ordinalSide].isInvalid()) { + mBufferedTileEntities[ordinalSide] = null; + return getTileEntityAtSide(side); } - if (mBufferedTileEntities[aSide].xCoord == tX && mBufferedTileEntities[aSide].yCoord == tY - && mBufferedTileEntities[aSide].zCoord == tZ) { - return mBufferedTileEntities[aSide]; + if (mBufferedTileEntities[ordinalSide].xCoord == tX && mBufferedTileEntities[ordinalSide].yCoord == tY + && mBufferedTileEntities[ordinalSide].zCoord == tZ) { + return mBufferedTileEntities[ordinalSide]; } return null; } @@ -518,7 +519,7 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje isDead = false; } - public final void onAdjacentBlockChange(int aX, int aY, int aZ) { + public final void onAdjacentBlockChange(int ignoredAX, int ignoredAY, int ignoredAZ) { clearNullMarkersFromTileEntityBuffer(); } @@ -709,7 +710,6 @@ public abstract class BaseTileEntity extends TileEntity implements IHasWorldObje int titleWidth = 0, titleHeight = 0; if (NetworkUtils.isClient()) { final FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; - // noinspection unchecked final List<String> titleLines = fontRenderer .listFormattedStringToWidth(title, getGUIWidth() - (TAB_PADDING + TITLE_PADDING) * 2); titleWidth = titleLines.size() > 1 ? getGUIWidth() - (TAB_PADDING + TITLE_PADDING) * 2 diff --git a/src/main/java/gregtech/api/metatileentity/CommonMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/CommonMetaTileEntity.java index 5fa9cbfaee..157bef793c 100644 --- a/src/main/java/gregtech/api/metatileentity/CommonMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/CommonMetaTileEntity.java @@ -6,6 +6,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.network.Packet; +import net.minecraftforge.common.util.ForgeDirection; import com.gtnewhorizons.modularui.api.forge.ItemStackHandler; import com.gtnewhorizons.modularui.api.screen.ModularWindow; @@ -140,8 +141,8 @@ public abstract class CommonMetaTileEntity extends CoverableTileEntity implement } @Override - public boolean isValidFacing(byte aSide) { - if (canAccessData()) return getMetaTileEntity().isFacingValid(aSide); + public boolean isValidFacing(ForgeDirection side) { + if (canAccessData()) return getMetaTileEntity().isFacingValid(side); return false; } @@ -163,13 +164,13 @@ public abstract class CommonMetaTileEntity extends CoverableTileEntity implement } @Override - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) { - return hasValidMetaTileEntity() && getMetaTileEntity().allowCoverOnSide(aSide, aCoverID); + public boolean allowCoverOnSide(ForgeDirection side, GT_ItemStack aCoverID) { + return hasValidMetaTileEntity() && getMetaTileEntity().allowCoverOnSide(side, aCoverID); } @Override - public void issueCoverUpdate(byte aSide) { - super.issueCoverUpdate(aSide); + public void issueCoverUpdate(ForgeDirection side) { + super.issueCoverUpdate(side); issueClientUpdate(); } diff --git a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java index f2cd7e3019..0370965f61 100644 --- a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java @@ -1,6 +1,5 @@ package gregtech.api.metatileentity; -import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; import static gregtech.api.enums.GT_Values.E; import static gregtech.api.enums.GT_Values.NW; import static gregtech.api.util.GT_LanguageManager.FACES; @@ -9,9 +8,9 @@ import static gregtech.api.util.GT_LanguageManager.getTranslation; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Comparator; import java.util.List; import java.util.Objects; -import java.util.stream.IntStream; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; @@ -98,14 +97,14 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov final NBTTagList tList = new NBTTagList(); final int[] coverSides = new int[] { 0, 0, 0, 0, 0, 0 }; - for (byte i = 0; i < coverInfos.length; i++) { - final CoverInfo coverInfo = getCoverInfoAtSide(i); + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + final CoverInfo coverInfo = getCoverInfoAtSide(side); if (!coverInfo.isValid()) continue; // Backwards compat, in case of a revert... for now tList.appendTag(coverInfo.writeToNBT(new NBTTagCompound())); aNBT.setTag( - COVER_DATA_NBT_KEYS[i], + COVER_DATA_NBT_KEYS[side.ordinal()], coverInfo.getCoverData() .saveDataToNBT()); } @@ -142,7 +141,7 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov final NBTTagCompound tNBT = tList.getCompoundTagAt(i); final CoverInfo coverInfo = new CoverInfo(this, tNBT); this.setCoverInfoAtSide(coverInfo.getSide(), coverInfo); - if (coverInfo.isDataNeededOnClient()) issueCoverUpdate(i); + if (coverInfo.isDataNeededOnClient()) issueCoverUpdate(ForgeDirection.getOrientation(i)); } } @@ -152,58 +151,60 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov final boolean hasOldCoverData = (aNBT.hasKey("mCoverData", 11) && aNBT.getIntArray("mCoverData").length == 6); final int[] tOldData = hasOldCoverData ? aNBT.getIntArray("mCoverData") : new int[] {}; - for (byte i : ALL_VALID_SIDES) { - if (coverIDs[i] == 0) continue; + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + final int ordinalSide = side.ordinal(); + if (coverIDs[ordinalSide] == 0) continue; - final CoverInfo coverInfo = new CoverInfo(i, coverIDs[i], this, null); + final CoverInfo coverInfo = new CoverInfo(side, coverIDs[ordinalSide], this, null); final GT_CoverBehaviorBase<?> coverBehavior = coverInfo.getCoverBehavior(); if (coverBehavior == GregTech_API.sNoBehavior) continue; ISerializableObject coverData = null; if (hasOldCoverData) { if (coverBehavior instanceof GT_Cover_Fluidfilter) { - final String filterKey = String.format("fluidFilter%d", i); + final String filterKey = String.format("fluidFilter%d", ordinalSide); if (aNBT.hasKey(filterKey)) { coverData = coverInfo.getCoverBehavior() .createDataObject( - (tOldData[i] & 7) | (FluidRegistry.getFluidID(aNBT.getString(filterKey)) << 3)); + (tOldData[ordinalSide] & 7) + | (FluidRegistry.getFluidID(aNBT.getString(filterKey)) << 3)); } } else { - coverData = coverBehavior.createDataObject(tOldData[i]); + coverData = coverBehavior.createDataObject(tOldData[ordinalSide]); } } else { - if (aNBT.hasKey(COVER_DATA_NBT_KEYS[i])) - coverData = coverBehavior.createDataObject(aNBT.getTag(COVER_DATA_NBT_KEYS[i])); + if (aNBT.hasKey(COVER_DATA_NBT_KEYS[ordinalSide])) + coverData = coverBehavior.createDataObject(aNBT.getTag(COVER_DATA_NBT_KEYS[ordinalSide])); } if (coverData != null) coverInfo.setCoverData(coverData); - setCoverInfoAtSide(i, coverInfo); - if (coverInfo.isDataNeededOnClient()) issueCoverUpdate(i); + setCoverInfoAtSide(side, coverInfo); + if (coverInfo.isDataNeededOnClient()) issueCoverUpdate(side); } } public abstract boolean isStillValid(); protected boolean doCoverThings() { - for (byte i : ALL_VALID_SIDES) { - if (!tickCoverAtSide(i)) return false; + for (ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + if (!tickCoverAtSide(side)) return false; } return true; } - public boolean tickCoverAtSide(byte aSide) { - return tickCoverAtSide(aSide, mTickTimer); + public boolean tickCoverAtSide(ForgeDirection side) { + return tickCoverAtSide(side, mTickTimer); } /** * Returns false if the tile is no longer valid after ticking the cover */ - public boolean tickCoverAtSide(byte aSide, long aTickTimer) { - final CoverInfo coverInfo = getCoverInfoAtSide(aSide); + public boolean tickCoverAtSide(ForgeDirection side, long aTickTimer) { + final CoverInfo coverInfo = getCoverInfoAtSide(side); if (!coverInfo.isValid()) return true; final int tCoverTickRate = coverInfo.getTickRate(); if (tCoverTickRate > 0 && aTickTimer % tCoverTickRate == 0) { - final byte tRedstone = coverInfo.isRedstoneSensitive(aTickTimer) ? getInputRedstoneSignal(aSide) : 0; + final byte tRedstone = coverInfo.isRedstoneSensitive(aTickTimer) ? getInputRedstoneSignal(side) : 0; coverInfo.setCoverData(coverInfo.doCoverThings(aTickTimer, tRedstone)); return isStillValid(); } @@ -211,33 +212,33 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov return true; } - public abstract boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID); + public abstract boolean allowCoverOnSide(ForgeDirection side, GT_ItemStack aCoverID); protected void checkDropCover() { - for (byte i : ALL_VALID_SIDES) { - final int coverId = getCoverIDAtSide(i); - if (coverId != 0) if (!allowCoverOnSide(i, new GT_ItemStack(coverId))) dropCover(i, i, true); + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + final int coverId = getCoverIDAtSide(side); + if (coverId != 0 && !allowCoverOnSide(side, new GT_ItemStack(coverId))) dropCover(side, side, true); } } protected void updateCoverBehavior() { - for (byte i : ALL_VALID_SIDES) { - final CoverInfo coverInfo = getCoverInfoAtSide(i); + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + final CoverInfo coverInfo = getCoverInfoAtSide(side); if (coverInfo.isValid()) coverInfo.updateCoverBehavior(); } } @Override - public void issueCoverUpdate(byte aSide) { + public void issueCoverUpdate(ForgeDirection side) { // If we've got a null worldObj we're getting called as a part of readingNBT from a non tickable MultiTileEntity // on chunk load before the world is set // so we'll want to send a cover update. - final CoverInfo coverInfo = getCoverInfoAtSide(aSide); + final CoverInfo coverInfo = getCoverInfoAtSide(side); if (worldObj == null || (isServerSide() && coverInfo.isDataNeededOnClient())) coverInfo.setNeedsUpdate(true); } - public final ITexture getCoverTexture(byte aSide) { - final CoverInfo coverInfo = getCoverInfoAtSide(aSide); + public final ITexture getCoverTexture(ForgeDirection side) { + final CoverInfo coverInfo = getCoverInfoAtSide(side); if (!coverInfo.isValid()) return null; if (GT_Mod.instance.isClientSide() && (GT_Client.hideValue & 0x1) != 0) { return Textures.BlockIcons.HIDDEN_TEXTURE[0]; // See through @@ -245,41 +246,40 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov final ITexture coverTexture = (!(this instanceof BaseMetaPipeEntity)) ? coverInfo.getSpecialCoverFGTexture() : coverInfo.getSpecialCoverTexture(); - return coverTexture != null ? coverTexture - : GregTech_API.sCovers.get(new GT_ItemStack(getCoverIDAtSide(aSide))); + return coverTexture != null ? coverTexture : GregTech_API.sCovers.get(new GT_ItemStack(getCoverIDAtSide(side))); } protected void requestCoverDataIfNeeded() { if (worldObj == null || !worldObj.isRemote) return; - for (byte i : ALL_VALID_SIDES) { - final CoverInfo coverInfo = getCoverInfoAtSide(i); + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + final CoverInfo coverInfo = getCoverInfoAtSide(side); if (coverInfo.isDataNeededOnClient()) NW.sendToServer(new GT_Packet_RequestCoverData(coverInfo, this)); } } @Override - public void setCoverIdAndDataAtSide(byte aSide, int aId, ISerializableObject aData) { - if (setCoverIDAtSideNoUpdate(aSide, aId, aData)) { - issueCoverUpdate(aSide); + public void setCoverIdAndDataAtSide(ForgeDirection side, int aId, ISerializableObject aData) { + if (setCoverIDAtSideNoUpdate(side, aId, aData)) { + issueCoverUpdate(side); issueBlockUpdate(); } } @Override - public void setCoverIDAtSide(byte aSide, int aID) { - setCoverIdAndDataAtSide(aSide, aID, null); + public void setCoverIDAtSide(ForgeDirection side, int aID) { + setCoverIdAndDataAtSide(side, aID, null); } @Override - public boolean setCoverIDAtSideNoUpdate(byte aSide, int aID) { - return setCoverIDAtSideNoUpdate(aSide, aID, null); + public boolean setCoverIDAtSideNoUpdate(ForgeDirection side, int aID) { + return setCoverIDAtSideNoUpdate(side, aID, null); } - public boolean setCoverIDAtSideNoUpdate(byte aSide, int aID, ISerializableObject aData) { - final CoverInfo oldCoverInfo = getCoverInfoAtSide(aSide); - if (aSide >= 0 && aSide < 6 && oldCoverInfo.getCoverID() != aID) { + public boolean setCoverIDAtSideNoUpdate(ForgeDirection side, int aID, ISerializableObject aData) { + final CoverInfo oldCoverInfo = getCoverInfoAtSide(side); + if (side != ForgeDirection.UNKNOWN && oldCoverInfo.getCoverID() != aID) { if (aID == 0 && isClientSide()) oldCoverInfo.onDropped(); - setCoverInfoAtSide(aSide, new CoverInfo(aSide, aID, this, aData)); + setCoverInfoAtSide(side, new CoverInfo(side, aID, this, aData)); return true; } return false; @@ -287,57 +287,57 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov @Override @Deprecated - public void setCoverDataAtSide(byte aSide, int aData) { - final CoverInfo coverInfo = getCoverInfoAtSide(aSide); + public void setCoverDataAtSide(ForgeDirection side, int aData) { + final CoverInfo coverInfo = getCoverInfoAtSide(side); if (coverInfo.isValid() && coverInfo.getCoverData() instanceof ISerializableObject.LegacyCoverData) coverInfo.setCoverData(new ISerializableObject.LegacyCoverData(aData)); } @Override - public void setCoverDataAtSide(byte aSide, ISerializableObject aData) { - final CoverInfo coverInfo = getCoverInfoAtSide(aSide); + public void setCoverDataAtSide(ForgeDirection side, ISerializableObject aData) { + final CoverInfo coverInfo = getCoverInfoAtSide(side); if (coverInfo.isValid() && coverInfo.getCoverBehavior() .cast(aData) != null) coverInfo.setCoverData(aData); } @Override @Deprecated - public GT_CoverBehavior getCoverBehaviorAtSide(byte aSide) { - final GT_CoverBehaviorBase<?> behavior = getCoverInfoAtSide(aSide).getCoverBehavior(); + public GT_CoverBehavior getCoverBehaviorAtSide(ForgeDirection side) { + final GT_CoverBehaviorBase<?> behavior = getCoverInfoAtSide(side).getCoverBehavior(); if (behavior instanceof GT_CoverBehavior) return (GT_CoverBehavior) behavior; return GregTech_API.sNoBehavior; } @Override - public void setCoverItemAtSide(byte aSide, ItemStack aCover) { + public void setCoverItemAtSide(ForgeDirection side, ItemStack aCover) { GregTech_API.getCoverBehaviorNew(aCover) - .placeCover(aSide, aCover, this); + .placeCover(side, aCover, this); } @Override - public int getCoverIDAtSide(byte aSide) { - return getCoverInfoAtSide(aSide).getCoverID(); + public int getCoverIDAtSide(ForgeDirection side) { + return getCoverInfoAtSide(side).getCoverID(); } @Override - public ItemStack getCoverItemAtSide(byte aSide) { - return getCoverInfoAtSide(aSide).getDisplayStack(); + public ItemStack getCoverItemAtSide(ForgeDirection side) { + return getCoverInfoAtSide(side).getDisplayStack(); } @Override - public boolean canPlaceCoverIDAtSide(byte aSide, int aID) { - return getCoverIDAtSide(aSide) == 0; + public boolean canPlaceCoverIDAtSide(ForgeDirection side, int aID) { + return getCoverIDAtSide(side) == 0; } @Override - public boolean canPlaceCoverItemAtSide(byte aSide, ItemStack aCover) { - return getCoverIDAtSide(aSide) == 0; + public boolean canPlaceCoverItemAtSide(ForgeDirection side, ItemStack aCover) { + return getCoverIDAtSide(side) == 0; } @Override @Deprecated - public int getCoverDataAtSide(byte aSide) { - final ISerializableObject coverData = getCoverInfoAtSide(aSide).getCoverData(); + public int getCoverDataAtSide(ForgeDirection side) { + final ISerializableObject coverData = getCoverInfoAtSide(side).getCoverData(); if (coverData instanceof ISerializableObject.LegacyCoverData) { return ((ISerializableObject.LegacyCoverData) coverData).get(); } @@ -345,37 +345,38 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov } @Override - public ISerializableObject getComplexCoverDataAtSide(byte aSide) { - return getCoverInfoAtSide(aSide).getCoverData(); + public ISerializableObject getComplexCoverDataAtSide(ForgeDirection side) { + return getCoverInfoAtSide(side).getCoverData(); } @Override - public GT_CoverBehaviorBase<?> getCoverBehaviorAtSideNew(byte aSide) { - return getCoverInfoAtSide(aSide).getCoverBehavior(); + public GT_CoverBehaviorBase<?> getCoverBehaviorAtSideNew(ForgeDirection side) { + return getCoverInfoAtSide(side).getCoverBehavior(); } - public void setCoverInfoAtSide(byte aSide, CoverInfo coverInfo) { - if (aSide >= 0 && aSide < 6) coverInfos[aSide] = coverInfo; + public void setCoverInfoAtSide(ForgeDirection side, CoverInfo coverInfo) { + if (side != ForgeDirection.UNKNOWN) coverInfos[side.ordinal()] = coverInfo; } @Override - public CoverInfo getCoverInfoAtSide(byte aSide) { - if (aSide >= 0 && aSide < 6) { - if (coverInfos[aSide] == null) coverInfos[aSide] = new CoverInfo(aSide, this); - return coverInfos[aSide]; + public CoverInfo getCoverInfoAtSide(ForgeDirection side) { + final int ordinalSide = side.ordinal(); + if (side != ForgeDirection.UNKNOWN) { + if (coverInfos[ordinalSide] == null) coverInfos[ordinalSide] = new CoverInfo(side, this); + return coverInfos[side.ordinal()]; } return CoverInfo.EMPTY_INFO; } - public void clearCoverInfoAtSide(byte aSide) { - if (aSide >= 0 && aSide < 6) { - setCoverIDAtSide(aSide, 0); + public void clearCoverInfoAtSide(ForgeDirection side) { + if (side != ForgeDirection.UNKNOWN) { + setCoverIDAtSide(side, 0); } } @Override - public boolean dropCover(byte aSide, byte aDroppedSide, boolean aForced) { - final CoverInfo coverInfo = getCoverInfoAtSide(aSide); + public boolean dropCover(ForgeDirection side, ForgeDirection droppedSide, boolean aForced) { + final CoverInfo coverInfo = getCoverInfoAtSide(side); if (!coverInfo.isValid()) return false; if (!coverInfo.onCoverRemoval(aForced) && !aForced) return false; final ItemStack tStack = coverInfo.getDrop(); @@ -383,84 +384,88 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov coverInfo.onDropped(); final EntityItem tEntity = new EntityItem( worldObj, - getOffsetX(aDroppedSide, 1) + 0.5, - getOffsetY(aDroppedSide, 1) + 0.5, - getOffsetZ(aDroppedSide, 1) + 0.5, + getOffsetX(droppedSide, 1) + 0.5, + getOffsetY(droppedSide, 1) + 0.5, + getOffsetZ(droppedSide, 1) + 0.5, tStack); tEntity.motionX = 0; tEntity.motionY = 0; tEntity.motionZ = 0; worldObj.spawnEntityInWorld(tEntity); } - clearCoverInfoAtSide(aSide); - updateOutputRedstoneSignal(aSide); + clearCoverInfoAtSide(side); + updateOutputRedstoneSignal(side); return true; } protected void onBaseTEDestroyed() { - for (byte side : ALL_VALID_SIDES) { + for (ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { final CoverInfo coverInfo = getCoverInfoAtSide(side); if (coverInfo.isValid()) coverInfo.onBaseTEDestroyed(); } } @Override - public void setOutputRedstoneSignal(byte aSide, byte aStrength) { - aStrength = (byte) Math.min(Math.max(0, aStrength), 15); - if (aSide < 0 || aSide >= 6) return; + public void setOutputRedstoneSignal(ForgeDirection side, byte strength) { + final byte cappedStrength = (byte) Math.min(Math.max(0, strength), 15); + if (side == ForgeDirection.UNKNOWN) return; - if (mSidedRedstone[aSide] != aStrength || (mStrongRedstone & (1 << aSide)) > 0) { - if ((mStrongRedstone & (1 << aSide)) > 0) { - mStrongRedstone ^= (1 << aSide); + final int ordinalSide = side.ordinal(); + if (mSidedRedstone[ordinalSide] != cappedStrength || (mStrongRedstone & (1 << ordinalSide)) > 0) { + if ((mStrongRedstone & (1 << ordinalSide)) > 0) { + mStrongRedstone ^= (1 << ordinalSide); issueBlockUpdate(); } - mSidedRedstone[aSide] = aStrength; + mSidedRedstone[ordinalSide] = cappedStrength; issueBlockUpdate(); } } @Override - public void setStrongOutputRedstoneSignal(byte aSide, byte aStrength) { - aStrength = (byte) Math.min(Math.max(0, aStrength), 15); - if (aSide < 0 || aSide >= 6) return; + public void setStrongOutputRedstoneSignal(ForgeDirection side, byte strength) { + final byte cappedStrength = (byte) Math.min(Math.max(0, strength), 15); + if (side == ForgeDirection.UNKNOWN) return; - if (mSidedRedstone[aSide] != aStrength || (mStrongRedstone & (1 << aSide)) == 0) { - mStrongRedstone |= (1 << aSide); - mSidedRedstone[aSide] = aStrength; + final int ordinalSide = side.ordinal(); + if (mSidedRedstone[ordinalSide] != cappedStrength || (mStrongRedstone & (1 << ordinalSide)) == 0) { + mStrongRedstone |= (1 << ordinalSide); + mSidedRedstone[ordinalSide] = cappedStrength; issueBlockUpdate(); } } @Override - public void setInternalOutputRedstoneSignal(byte aSide, byte aStrength) { - if (!getCoverBehaviorAtSideNew(aSide) - .manipulatesSidedRedstoneOutput(aSide, getCoverIDAtSide(aSide), getComplexCoverDataAtSide(aSide), this)) - setOutputRedstoneSignal(aSide, aStrength); + public void setInternalOutputRedstoneSignal(ForgeDirection side, byte aStrength) { + if (!getCoverBehaviorAtSideNew(side) + .manipulatesSidedRedstoneOutput(side, getCoverIDAtSide(side), getComplexCoverDataAtSide(side), this)) + setOutputRedstoneSignal(side, aStrength); } @Override public boolean getRedstone() { - return IntStream.range(1, 6) - .anyMatch(i -> getRedstone((byte) i)); + return Arrays.stream(ForgeDirection.VALID_DIRECTIONS) + .anyMatch(this::getRedstone); } @Override - public boolean getRedstone(byte aSide) { - return getInternalInputRedstoneSignal(aSide) > 0; + public boolean getRedstone(ForgeDirection side) { + return getInternalInputRedstoneSignal(side) > 0; } @Override public byte getStrongestRedstone() { - return (byte) IntStream.range(1, 6) - .map(i -> getInternalInputRedstoneSignal((byte) i)) - .max() - .orElse(0); + return Arrays.stream(ForgeDirection.VALID_DIRECTIONS) + .map(this::getInternalInputRedstoneSignal) + .max(Comparator.comparing(Byte::valueOf)) + .orElse((byte) 0); } @Override - public byte getStrongOutputRedstoneSignal(byte aSide) { - return aSide >= 0 && aSide < 6 && (mStrongRedstone & (1 << aSide)) != 0 ? (byte) (mSidedRedstone[aSide] & 15) + public byte getStrongOutputRedstoneSignal(ForgeDirection side) { + final int ordinalSide = side.ordinal(); + return side != ForgeDirection.UNKNOWN && (mStrongRedstone & (1 << ordinalSide)) != 0 + ? (byte) (mSidedRedstone[ordinalSide] & 15) : 0; } @@ -470,64 +475,65 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov } @Override - public byte getInternalInputRedstoneSignal(byte aSide) { - return (byte) (getCoverBehaviorAtSideNew(aSide).getRedstoneInput( - aSide, - getInputRedstoneSignal(aSide), - getCoverIDAtSide(aSide), - getComplexCoverDataAtSide(aSide), + public byte getInternalInputRedstoneSignal(ForgeDirection side) { + return (byte) (getCoverBehaviorAtSideNew(side).getRedstoneInput( + side, + getInputRedstoneSignal(side), + getCoverIDAtSide(side), + getComplexCoverDataAtSide(side), this) & 15); } @Override - public byte getInputRedstoneSignal(byte aSide) { + public byte getInputRedstoneSignal(ForgeDirection side) { return (byte) (worldObj - .getIndirectPowerLevelTo(getOffsetX(aSide, 1), getOffsetY(aSide, 1), getOffsetZ(aSide, 1), aSide) & 15); + .getIndirectPowerLevelTo(getOffsetX(side, 1), getOffsetY(side, 1), getOffsetZ(side, 1), side.ordinal()) + & 15); } @Override - public byte getOutputRedstoneSignal(byte aSide) { - return getCoverBehaviorAtSideNew(aSide) - .manipulatesSidedRedstoneOutput(aSide, getCoverIDAtSide(aSide), getComplexCoverDataAtSide(aSide), this) - ? mSidedRedstone[aSide] - : getGeneralRS(aSide); + public byte getOutputRedstoneSignal(ForgeDirection side) { + return getCoverBehaviorAtSideNew(side) + .manipulatesSidedRedstoneOutput(side, getCoverIDAtSide(side), getComplexCoverDataAtSide(side), this) + ? mSidedRedstone[side.ordinal()] + : getGeneralRS(side); } - protected void updateOutputRedstoneSignal(byte aSide) { - setOutputRedstoneSignal(aSide, (byte) 0); + protected void updateOutputRedstoneSignal(ForgeDirection side) { + setOutputRedstoneSignal(side, (byte) 0); } @Override - public void receiveCoverData(byte aCoverSide, int aCoverID, int aCoverData) { - if (aCoverSide < 0 || aCoverSide >= 6) return; - final CoverInfo oldCoverInfo = getCoverInfoAtSide(aCoverSide); + public void receiveCoverData(ForgeDirection coverSide, int aCoverID, int aCoverData) { + if (coverSide != ForgeDirection.UNKNOWN) return; + final CoverInfo oldCoverInfo = getCoverInfoAtSide(coverSide); if (!oldCoverInfo.isValid()) return; - setCoverIDAtSideNoUpdate(aCoverSide, aCoverID); - setCoverDataAtSide(aCoverSide, aCoverData); + setCoverIDAtSideNoUpdate(coverSide, aCoverID); + setCoverDataAtSide(coverSide, aCoverData); } @Override - public void receiveCoverData(byte aCoverSide, int aCoverID, ISerializableObject aCoverData, + public void receiveCoverData(ForgeDirection coverSide, int aCoverID, ISerializableObject aCoverData, EntityPlayerMP aPlayer) { - if (aCoverSide < 0 || aCoverSide >= 6) return; + if (coverSide != ForgeDirection.UNKNOWN) return; - final CoverInfo oldCoverInfo = getCoverInfoAtSide(aCoverSide); + final CoverInfo oldCoverInfo = getCoverInfoAtSide(coverSide); if (!oldCoverInfo.isValid()) return; oldCoverInfo.preDataChanged(aCoverID, aCoverData); - setCoverIDAtSideNoUpdate(aCoverSide, aCoverID, aCoverData); - setCoverDataAtSide(aCoverSide, aCoverData); + setCoverIDAtSideNoUpdate(coverSide, aCoverID, aCoverData); + setCoverDataAtSide(coverSide, aCoverData); if (isClientSide()) { - getCoverInfoAtSide(aCoverSide).onDataChanged(); + getCoverInfoAtSide(coverSide).onDataChanged(); } } protected void sendCoverDataIfNeeded() { if (worldObj == null || worldObj.isRemote) return; - for (byte i : ALL_VALID_SIDES) { - final CoverInfo coverInfo = getCoverInfoAtSide(i); + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + final CoverInfo coverInfo = getCoverInfoAtSide(side); if (coverInfo.needsUpdate()) { NW.sendPacketToAllPlayersInRange( worldObj, @@ -540,11 +546,10 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov } @Override - public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, + public void getWailaBody(ItemStack itemStack, List<String> currentTip, IWailaDataAccessor accessor, IWailaConfigHandler config) { final NBTTagCompound tag = accessor.getNBTData(); - final byte currentFacing = (byte) accessor.getSide() - .ordinal(); + final ForgeDirection currentFacing = accessor.getSide(); final NBTTagList tList = tag.getTagList(GT_Values.NBT.COVERS, 10); for (byte i = 0; i < tList.tagCount(); i++) { @@ -554,18 +559,18 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov final ItemStack coverStack = coverInfo.getDisplayStack(); if (coverStack != null) { - currenttip.add( + currentTip.add( StatCollector.translateToLocalFormatted( "GT5U.waila.cover", currentFacing == coverInfo.getSide() ? StatCollector.translateToLocal("GT5U.waila.cover.current_facing") : StatCollector.translateToLocal( - "GT5U.interface.coverTabs." + ForgeDirection.getOrientation(coverInfo.getSide()) + "GT5U.interface.coverTabs." + coverInfo.getSide() .toString() .toLowerCase()), coverStack.getDisplayName())); final String behaviorDesc = coverInfo.getBehaviorDescription(); - if (!Objects.equals(behaviorDesc, E)) currenttip.add(behaviorDesc); + if (!Objects.equals(behaviorDesc, E)) currentTip.add(behaviorDesc); } } @@ -602,7 +607,9 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov aList.add( String.format( "Cover on %s side: %s", - getTranslation(FACES[coverInfo.getSide()]), + getTranslation( + FACES[coverInfo.getSide() + .ordinal()]), coverStack.getDisplayName())); } } @@ -610,28 +617,27 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov if (aNBT.hasKey("mCoverSides")) { final int[] mCoverSides = aNBT.getIntArray("mCoverSides"); if (mCoverSides != null && mCoverSides.length == 6) { - for (byte tSide : ALL_VALID_SIDES) { - final int coverId = mCoverSides[tSide]; + for (final ForgeDirection tSide : ForgeDirection.VALID_DIRECTIONS) { + final int i = tSide.ordinal(); + final int coverId = mCoverSides[i]; if (coverId == 0) continue; final GT_CoverBehaviorBase<?> behavior = GregTech_API.getCoverBehaviorNew(coverId); if (behavior == null || behavior == GregTech_API.sNoBehavior) continue; - if (!aNBT.hasKey(CoverableTileEntity.COVER_DATA_NBT_KEYS[tSide])) continue; + if (!aNBT.hasKey(CoverableTileEntity.COVER_DATA_NBT_KEYS[i])) continue; final ISerializableObject dataObject = behavior - .createDataObject(aNBT.getTag(CoverableTileEntity.COVER_DATA_NBT_KEYS[tSide])); + .createDataObject(aNBT.getTag(CoverableTileEntity.COVER_DATA_NBT_KEYS[i])); final ItemStack coverStack = behavior.getDisplayStack(coverId, dataObject); if (coverStack != null) { aList.add( - String.format( - "Cover on %s side: %s", - getTranslation(FACES[tSide]), - coverStack.getDisplayName())); + String + .format("Cover on %s side: %s", getTranslation(FACES[i]), coverStack.getDisplayName())); } } } } } - protected ModularWindow createCoverWindow(EntityPlayer player, byte side) { + protected ModularWindow createCoverWindow(EntityPlayer player, ForgeDirection side) { return getCoverInfoAtSide(side).createWindow(player); } @@ -659,8 +665,9 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov .setSpace(COVER_TAB_SPACING); for (ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) { - final byte side = (byte) direction.ordinal(); - buildContext.addSyncedWindow(side + COVER_WINDOW_ID_START, player -> createCoverWindow(player, side)); + buildContext.addSyncedWindow( + direction.ordinal() + COVER_WINDOW_ID_START, + player -> createCoverWindow(player, direction)); columnWidget.addChild(new MultiChildWidget().addChild(new ButtonWidget() { @Override @@ -668,7 +675,7 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov final List<IDrawable> backgrounds = new ArrayList<>(); final GUITextureSet tabIconSet = getGUITextureSet(); - if (getCoverBehaviorAtSideNew(side).hasCoverGUI()) { + if (getCoverBehaviorAtSideNew(direction).hasCoverGUI()) { if (isHovering()) { backgrounds.add( flipHorizontally ? tabIconSet.getCoverTabHighlightFlipped() @@ -685,20 +692,20 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov } return backgrounds.toArray(new IDrawable[] {}); } - }.setOnClick((clickData, widget) -> onTabClicked(clickData, widget, side)) - .dynamicTooltip(() -> getCoverTabTooltip(side)) + }.setOnClick((clickData, widget) -> onTabClicked(clickData, widget, direction)) + .dynamicTooltip(() -> getCoverTabTooltip(direction)) .setSize(COVER_TAB_WIDTH, COVER_TAB_HEIGHT)) .addChild( - new ItemDrawable(() -> getCoverItemAtSide(side)).asWidget() + new ItemDrawable(() -> getCoverItemAtSide(direction)).asWidget() .setPos( (COVER_TAB_WIDTH - ICON_SIZE) / 2 + (flipHorizontally ? -1 : 1), (COVER_TAB_HEIGHT - ICON_SIZE) / 2)) - .setEnabled(widget -> getCoverItemAtSide(side) != null)); + .setEnabled(widget -> getCoverItemAtSide(direction) != null)); } } @SideOnly(Side.CLIENT) - protected List<String> getCoverTabTooltip(byte side) { + protected List<String> getCoverTabTooltip(ForgeDirection side) { final String[] SIDE_TOOLTIPS = new String[] { "GT5U.interface.coverTabs.down", "GT5U.interface.coverTabs.up", "GT5U.interface.coverTabs.north", "GT5U.interface.coverTabs.south", "GT5U.interface.coverTabs.west", "GT5U.interface.coverTabs.east" }; @@ -707,14 +714,13 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov if (coverItem == null) return Collections.emptyList(); final boolean coverHasGUI = coverInfo.hasCoverGUI(); - // noinspection unchecked final List<String> tooltip = coverItem.getTooltip(Minecraft.getMinecraft().thePlayer, true); for (int i = 0; i < tooltip.size(); i++) { if (i == 0) { tooltip.set( 0, (coverHasGUI ? EnumChatFormatting.UNDERLINE : EnumChatFormatting.DARK_GRAY) - + StatCollector.translateToLocal(SIDE_TOOLTIPS[side]) + + StatCollector.translateToLocal(SIDE_TOOLTIPS[side.ordinal()]) + (coverHasGUI ? EnumChatFormatting.RESET + ": " : ": " + EnumChatFormatting.RESET) + tooltip.get(0)); } else { @@ -724,12 +730,12 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov return tooltip; } - protected void onTabClicked(Widget.ClickData clickData, Widget widget, byte side) { + protected void onTabClicked(Widget.ClickData ignoredClickData, Widget widget, ForgeDirection side) { if (isClientSide()) return; final CoverInfo coverInfo = getCoverInfoAtSide(side); if (coverInfo.useModularUI()) { widget.getContext() - .openSyncedWindow(side + COVER_WINDOW_ID_START); + .openSyncedWindow(side.ordinal() + COVER_WINDOW_ID_START); } else { final GT_Packet_TileEntityCoverGUI packet = new GT_Packet_TileEntityCoverGUI( coverInfo, diff --git a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java index c8657fbcff..2ecdd7f2ca 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java @@ -6,6 +6,7 @@ import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Locale; +import java.util.Objects; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; @@ -33,13 +34,22 @@ import gnu.trove.list.array.TIntArrayList; import gregtech.api.GregTech_API; import gregtech.api.enums.Dyes; import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IConnectable; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IColoredTileEntity; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.objects.GT_ItemStack; -import gregtech.api.util.*; +import gregtech.api.util.GT_Config; +import gregtech.api.util.GT_CoverBehavior; +import gregtech.api.util.GT_CoverBehaviorBase; +import gregtech.api.util.GT_LanguageManager; +import gregtech.api.util.GT_Util; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.ISerializableObject; +import gregtech.api.util.WorldSpawnedEventBuilder; import gregtech.common.GT_Client; import gregtech.common.covers.CoverInfo; @@ -114,7 +124,7 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { if (!GT.isClientSide()) return; ItemStack tStack = new ItemStack(GregTech_API.sBlockMachines, 1, aID); - tStack.getItem() + Objects.requireNonNull(tStack.getItem()) .addInformation(tStack, null, new ArrayList<>(), true); } @@ -134,13 +144,24 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { /** * For Pipe Rendering */ - public abstract boolean renderInside(byte aSide); + public abstract boolean renderInside(ForgeDirection side); public boolean isDisplaySecondaryDescription() { return false; } @Override + public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection side, ForgeDirection facing, + int colorIndex, boolean active, boolean redstoneLevel) { + return Textures.BlockIcons.ERROR_RENDERING; + } + + public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection sideDirection, int connections, + int colorIndex, boolean active, boolean redstoneLevel) { + return Textures.BlockIcons.ERROR_RENDERING; + } + + @Override public IGregTechTileEntity getBaseMetaTileEntity() { return mBaseMetaTileEntity; } @@ -164,33 +185,33 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { } public boolean isCoverOnSide(BaseMetaPipeEntity aPipe, EntityLivingBase aEntity) { - byte aSide = 6; + ForgeDirection side = ForgeDirection.UNKNOWN; double difference = aEntity.posY - (double) aPipe.yCoord; if (difference > 0.6 && difference < 0.99) { - aSide = 1; + side = ForgeDirection.UP; } if (difference < -1.5 && difference > -1.99) { - aSide = 0; + side = ForgeDirection.DOWN; } difference = aEntity.posZ - (double) aPipe.zCoord; if (difference < -0.05 && difference > -0.4) { - aSide = 2; + side = ForgeDirection.NORTH; } if (difference > 1.05 && difference < 1.4) { - aSide = 3; + side = ForgeDirection.SOUTH; } difference = aEntity.posX - (double) aPipe.xCoord; if (difference < -0.05 && difference > -0.4) { - aSide = 4; + side = ForgeDirection.WEST; } if (difference > 1.05 && difference < 1.4) { - aSide = 5; + side = ForgeDirection.EAST; } boolean tCovered = false; - if (aSide < 6 && mBaseMetaTileEntity.getCoverIDAtSide(aSide) > 0) { + if (side != ForgeDirection.UNKNOWN && mBaseMetaTileEntity.getCoverIDAtSide(side) > 0) { tCovered = true; } - if (isConnectedAtSide(aSide)) { + if (isConnectedAtSide(side)) { tCovered = true; } // GT_FML_LOGGER.info("Cover: "+mBaseMetaTileEntity.getCoverIDAtSide(aSide)); @@ -230,30 +251,30 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { } @Override - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) { + public boolean allowCoverOnSide(ForgeDirection side, GT_ItemStack aCoverID) { return true; } @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) { /* Do nothing */ } @Override - public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, - float aZ) { + public boolean onWrenchRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer entityPlayer, + float aX, float aY, float aZ) { return false; } @Override - public boolean onWireCutterRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, - float aZ) { + public boolean onWireCutterRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer aPlayer, + float aX, float aY, float aZ) { return false; } @Override - public boolean onSolderingToolRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, - float aZ) { + public boolean onSolderingToolRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer aPlayer, + float aX, float aY, float aZ) { return false; } @@ -317,8 +338,8 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { * a Player rightclicks the Machine Sneaky rightclicks are not getting passed to this! */ @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, - float aY, float aZ) { + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, ForgeDirection side, + float aX, float aY, float aZ) { return false; } @@ -371,7 +392,7 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return false; } @@ -402,12 +423,12 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { } @Override - public boolean isLiquidInput(byte aSide) { + public boolean isLiquidInput(ForgeDirection side) { return false; } @Override - public boolean isLiquidOutput(byte aSide) { + public boolean isLiquidOutput(ForgeDirection side) { return false; } @@ -487,17 +508,17 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { } @Override - public byte getComparatorValue(byte aSide) { + public byte getComparatorValue(ForgeDirection side) { return 0; } @Override - public boolean acceptsRotationalEnergy(byte aSide) { + public boolean acceptsRotationalEnergy(ForgeDirection side) { return false; } @Override - public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy) { + public boolean injectRotationalEnergy(ForgeDirection side, long aSpeed, long aEnergy) { return false; } @@ -538,8 +559,8 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { } @Override - public ItemStack getStackInSlot(int aIndex) { - if (aIndex >= 0 && aIndex < mInventory.length) return mInventory[aIndex]; + public ItemStack getStackInSlot(int slotIndex) { + if (slotIndex >= 0 && slotIndex < mInventory.length) return mInventory[slotIndex]; return null; } @@ -582,10 +603,10 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { } @Override - public int[] getAccessibleSlotsFromSide(int aSide) { + public int[] getAccessibleSlotsFromSide(int ordinalSide) { final TIntList tList = new TIntArrayList(); final IGregTechTileEntity tTileEntity = getBaseMetaTileEntity(); - final CoverInfo tileCoverInfo = tTileEntity.getCoverInfoAtSide((byte) aSide); + final CoverInfo tileCoverInfo = tTileEntity.getCoverInfoAtSide(ForgeDirection.getOrientation(ordinalSide)); final boolean tSkip = tileCoverInfo.letsItemsIn(-2) || tileCoverInfo.letsItemsOut(-2); for (int i = 0; i < getSizeInventory(); i++) { if (isValidSlot(i) && (tSkip || tileCoverInfo.letsItemsOut(i) || tileCoverInfo.letsItemsIn(i))) { @@ -596,54 +617,58 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { } @Override - public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { - return isValidSlot(aIndex) && aStack != null - && aIndex < mInventory.length - && (mInventory[aIndex] == null || GT_Utility.areStacksEqual(aStack, mInventory[aIndex])) - && allowPutStack(getBaseMetaTileEntity(), aIndex, (byte) aSide, aStack); + public boolean canInsertItem(int slotIndex, ItemStack itemStack, int ordinalSide) { + return isValidSlot(slotIndex) && itemStack != null + && slotIndex < mInventory.length + && (mInventory[slotIndex] == null || GT_Utility.areStacksEqual(itemStack, mInventory[slotIndex])) + && allowPutStack(getBaseMetaTileEntity(), slotIndex, ForgeDirection.getOrientation(ordinalSide), itemStack); } @Override - public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { - return isValidSlot(aIndex) && aStack != null - && aIndex < mInventory.length - && allowPullStack(getBaseMetaTileEntity(), aIndex, (byte) aSide, aStack); + public boolean canExtractItem(int slotIndex, ItemStack itemStack, int ordinalSide) { + return isValidSlot(slotIndex) && itemStack != null + && slotIndex < mInventory.length + && allowPullStack( + getBaseMetaTileEntity(), + slotIndex, + ForgeDirection.getOrientation(ordinalSide), + itemStack); } @Override - public boolean canFill(ForgeDirection aSide, Fluid aFluid) { - return fill(aSide, new FluidStack(aFluid, 1), false) == 1; + public boolean canFill(ForgeDirection side, Fluid aFluid) { + return fill(side, new FluidStack(aFluid, 1), false) == 1; } @Override - public boolean canDrain(ForgeDirection aSide, Fluid aFluid) { - return drain(aSide, new FluidStack(aFluid, 1), false) != null; + public boolean canDrain(ForgeDirection side, Fluid aFluid) { + return drain(side, new FluidStack(aFluid, 1), false) != null; } @Override - public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { + public FluidTankInfo[] getTankInfo(ForgeDirection side) { if (getCapacity() <= 0 && !getBaseMetaTileEntity().hasSteamEngineUpgrade()) return new FluidTankInfo[] {}; return new FluidTankInfo[] { getInfo() }; } - public int fill_default(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { + public int fill_default(ForgeDirection side, FluidStack aFluid, boolean doFill) { return fill(aFluid, doFill); } @Override - public int fill(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { - return fill_default(aSide, aFluid, doFill); + public int fill(ForgeDirection side, FluidStack aFluid, boolean doFill) { + return fill_default(side, aFluid, doFill); } @Override - public FluidStack drain(ForgeDirection aSide, FluidStack aFluid, boolean doDrain) { + public FluidStack drain(ForgeDirection side, FluidStack aFluid, boolean doDrain) { if (getFluid() != null && aFluid != null && getFluid().isFluidEqual(aFluid)) return drain(aFluid.amount, doDrain); return null; } @Override - public FluidStack drain(ForgeDirection aSide, int maxDrain, boolean doDrain) { + public FluidStack drain(ForgeDirection side, int maxDrain, boolean doDrain) { return drain(maxDrain, doDrain); } @@ -678,7 +703,7 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { } @Override - public boolean connectsToItemPipe(byte aSide) { + public boolean connectsToItemPipe(ForgeDirection side) { return false; } @@ -703,7 +728,7 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { } @Override - public float getExplosionResistance(byte aSide) { + public float getExplosionResistance(ForgeDirection side) { return 10.0F; } @@ -736,7 +761,7 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { mCheckConnections = true; } - public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) { + public long injectEnergyUnits(ForgeDirection side, long aVoltage, long aAmperage) { return 0; } @@ -822,7 +847,7 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { if (tTileEntity instanceof IColoredTileEntity) { if (getBaseMetaTileEntity().getColorization() >= 0) { final byte tColor = ((IColoredTileEntity) tTileEntity).getColorization(); - if (tColor >= 0 && tColor != getBaseMetaTileEntity().getColorization()) return false; + return tColor < 0 || tColor == getBaseMetaTileEntity().getColorization(); } } @@ -830,21 +855,21 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { } @Override - public int connect(byte aSide) { - if (aSide >= 6) return 0; + public int connect(ForgeDirection side) { + if (side == ForgeDirection.UNKNOWN) return 0; - final byte tSide = GT_Utility.getOppositeSide(aSide); + final ForgeDirection oppositeSide = side.getOpposite(); final IGregTechTileEntity baseMetaTile = getBaseMetaTileEntity(); if (baseMetaTile == null || !baseMetaTile.isServerSide()) return 0; - final CoverInfo coverInfo = baseMetaTile.getCoverInfoAtSide(aSide); + final CoverInfo coverInfo = baseMetaTile.getCoverInfoAtSide(side); final boolean alwaysLookConnected = coverInfo.alwaysLookConnected(); final boolean letsIn = letsIn(coverInfo); final boolean letsOut = letsOut(coverInfo); // Careful - tTileEntity might be null, and that's ok -- so handle it - final TileEntity tTileEntity = baseMetaTile.getTileEntityAtSide(aSide); + final TileEntity tTileEntity = baseMetaTile.getTileEntityAtSide(side); if (!connectableColor(tTileEntity)) return 0; if ((alwaysLookConnected || letsIn || letsOut)) { @@ -854,23 +879,21 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { : null; if (getClass().isInstance(tPipe) || (tPipe != null && tPipe.getClass() .isInstance(this))) { - connectAtSide(aSide); - if (!((MetaPipeEntity) tPipe).isConnectedAtSide(tSide)) { + connectAtSide(side); + if (!((IConnectable) tPipe).isConnectedAtSide(oppositeSide)) { // Make sure pipes all get together -- connect back to us if we're connecting to a pipe - ((MetaPipeEntity) tPipe).connect(tSide); + ((IConnectable) tPipe).connect(oppositeSide); } return 1; - } else - if ((getGT6StyleConnection() && baseMetaTile.getAirAtSide(aSide)) || canConnect(aSide, tTileEntity)) { - // Allow open connections to Air, if the GT6 style pipe/cables are enabled, so that it'll connect to - // the - // next block placed down next to it - connectAtSide(aSide); - return 1; - } + } else if ((getGT6StyleConnection() && baseMetaTile.getAirAtSide(side)) || canConnect(side, tTileEntity)) { + // Allow open connections to Air, if the GT6 style pipe/cables are enabled, so that it'll connect to + // the next block placed down next to it + connectAtSide(side); + return 1; + } if (!baseMetaTile.getWorld() .getChunkProvider() - .chunkExists(baseMetaTile.getOffsetX(aSide, 1) >> 4, baseMetaTile.getOffsetZ(aSide, 1) >> 4)) { + .chunkExists(baseMetaTile.getOffsetX(side, 1) >> 4, baseMetaTile.getOffsetZ(side, 1) >> 4)) { // Target chunk unloaded return -1; } @@ -881,38 +904,40 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { protected void checkConnections() { // Verify connections around us. If GT6 style cables are not enabled then revert to old behavior and try // connecting to everything around us - for (byte aSide = 0; aSide < 6; aSide++) { - if ((!getGT6StyleConnection() || isConnectedAtSide(aSide)) && connect(aSide) == 0) { - disconnect(aSide); + for (ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + if ((!getGT6StyleConnection() || isConnectedAtSide(side)) && connect(side) == 0) { + disconnect(side); } } mCheckConnections = false; } - private void connectAtSide(byte aSide) { - mConnections |= (1 << aSide); + private void connectAtSide(ForgeDirection side) { + mConnections |= (1 << side.ordinal()); } @Override - public void disconnect(byte aSide) { - if (aSide >= 6) return; - mConnections &= ~(1 << aSide); - byte tSide = GT_Utility.getOppositeSide(aSide); - IGregTechTileEntity tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntityAtSide(aSide); + public void disconnect(ForgeDirection side) { + if (side == ForgeDirection.UNKNOWN) return; + mConnections &= ~(1 << side.ordinal()); + final ForgeDirection oppositeSide = side.getOpposite(); + IGregTechTileEntity tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntityAtSide(side); IMetaTileEntity tPipe = tTileEntity == null ? null : tTileEntity.getMetaTileEntity(); if ((this.getClass() .isInstance(tPipe) || (tPipe != null && tPipe.getClass() .isInstance(this))) - && ((MetaPipeEntity) tPipe).isConnectedAtSide(tSide)) ((MetaPipeEntity) tPipe).disconnect(tSide); + && ((IConnectable) tPipe).isConnectedAtSide(oppositeSide)) { + ((IConnectable) tPipe).disconnect(oppositeSide); + } } @Override - public boolean isConnectedAtSide(int aSide) { - return (mConnections & (1 << aSide)) != 0; + public boolean isConnectedAtSide(ForgeDirection sideDirection) { + return (mConnections & (1 << sideDirection.ordinal())) != 0; } - public boolean letsIn(GT_CoverBehavior coverBehavior, byte aSide, int aCoverID, int aCoverVariable, + public boolean letsIn(GT_CoverBehavior coverBehavior, ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return false; } @@ -921,7 +946,7 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { return false; } - public boolean letsOut(GT_CoverBehavior coverBehavior, byte aSide, int aCoverID, int aCoverVariable, + public boolean letsOut(GT_CoverBehavior coverBehavior, ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { return false; } @@ -930,17 +955,17 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { return false; } - public boolean letsIn(GT_CoverBehaviorBase<?> coverBehavior, byte aSide, int aCoverID, + public boolean letsIn(GT_CoverBehaviorBase<?> coverBehavior, ForgeDirection side, int aCoverID, ISerializableObject aCoverVariable, ICoverable aTileEntity) { return false; } - public boolean letsOut(GT_CoverBehaviorBase<?> coverBehavior, byte aSide, int aCoverID, + public boolean letsOut(GT_CoverBehaviorBase<?> coverBehavior, ForgeDirection side, int aCoverID, ISerializableObject aCoverVariable, ICoverable aTileEntity) { return false; } - public boolean canConnect(byte aSide, TileEntity tTileEntity) { + public boolean canConnect(ForgeDirection side, TileEntity tTileEntity) { return false; } diff --git a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java index 3acbb2ce2d..f6cba8a849 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java @@ -217,51 +217,51 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac } @Override - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack) { + public boolean allowCoverOnSide(ForgeDirection side, GT_ItemStack aStack) { return true; } @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) { /* Do nothing */ } @Override - public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, - float aZ) { - if (getBaseMetaTileEntity().isValidFacing(aWrenchingSide)) { - getBaseMetaTileEntity().setFrontFacing(aWrenchingSide); + public boolean onWrenchRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer entityPlayer, + float aX, float aY, float aZ) { + if (getBaseMetaTileEntity().isValidFacing(wrenchingSide)) { + getBaseMetaTileEntity().setFrontFacing(wrenchingSide); return true; } return false; } @Override - public boolean onWireCutterRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, - float aZ) { + public boolean onWireCutterRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer aPlayer, + float aX, float aY, float aZ) { if (!aPlayer.isSneaking()) return false; - byte tSide = GT_Utility.getOppositeSide(aWrenchingSide); - TileEntity tTileEntity = getBaseMetaTileEntity().getTileEntityAtSide(aWrenchingSide); - if ((tTileEntity instanceof IGregTechTileEntity) - && (((IGregTechTileEntity) tTileEntity).getMetaTileEntity() instanceof GT_MetaPipeEntity_Cable)) { + final ForgeDirection oppositeSide = wrenchingSide.getOpposite(); + final TileEntity tTileEntity = getBaseMetaTileEntity().getTileEntityAtSide(wrenchingSide); + if ((tTileEntity instanceof IGregTechTileEntity gtTE) + && (gtTE.getMetaTileEntity() instanceof GT_MetaPipeEntity_Cable)) { // The tile entity we're facing is a cable, let's try to connect to it - return ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() - .onWireCutterRightClick(aWrenchingSide, tSide, aPlayer, aX, aY, aZ); + return gtTE.getMetaTileEntity() + .onWireCutterRightClick(wrenchingSide, oppositeSide, aPlayer, aX, aY, aZ); } return false; } @Override - public boolean onSolderingToolRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, - float aZ) { + public boolean onSolderingToolRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer aPlayer, + float aX, float aY, float aZ) { if (!aPlayer.isSneaking()) return false; - byte tSide = GT_Utility.getOppositeSide(aWrenchingSide); - TileEntity tTileEntity = getBaseMetaTileEntity().getTileEntityAtSide(aWrenchingSide); - if ((tTileEntity instanceof IGregTechTileEntity) - && (((IGregTechTileEntity) tTileEntity).getMetaTileEntity() instanceof GT_MetaPipeEntity_Cable)) { + final ForgeDirection oppositeSide = wrenchingSide.getOpposite(); + TileEntity tTileEntity = getBaseMetaTileEntity().getTileEntityAtSide(wrenchingSide); + if ((tTileEntity instanceof IGregTechTileEntity gtTE) + && (gtTE.getMetaTileEntity() instanceof GT_MetaPipeEntity_Cable)) { // The tile entity we're facing is a cable, let's try to connect to it - return ((IGregTechTileEntity) tTileEntity).getMetaTileEntity() - .onSolderingToolRightClick(aWrenchingSide, tSide, aPlayer, aX, aY, aZ); + return gtTE.getMetaTileEntity() + .onSolderingToolRightClick(wrenchingSide, oppositeSide, aPlayer, aX, aY, aZ); } return false; } @@ -342,8 +342,8 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac } @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, - float aY, float aZ) { + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, ForgeDirection side, + float aX, float aY, float aZ) { return onRightclick(aBaseMetaTileEntity, aPlayer); } @@ -492,14 +492,14 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac /** * @return true if that Side is an Output. */ - public boolean isOutputFacing(byte aSide) { + public boolean isOutputFacing(ForgeDirection side) { return false; } /** * @return true if that Side is an Input. */ - public boolean isInputFacing(byte aSide) { + public boolean isInputFacing(ForgeDirection side) { return false; } @@ -511,7 +511,7 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return false; } @@ -640,12 +640,12 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac } @Override - public boolean isLiquidInput(byte aSide) { + public boolean isLiquidInput(ForgeDirection side) { return true; } @Override - public boolean isLiquidOutput(byte aSide) { + public boolean isLiquidOutput(ForgeDirection side) { return true; } @@ -774,17 +774,17 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac * Gets the Output for the comparator on the given Side */ @Override - public byte getComparatorValue(byte aSide) { + public byte getComparatorValue(ForgeDirection side) { return 0; } @Override - public boolean acceptsRotationalEnergy(byte aSide) { + public boolean acceptsRotationalEnergy(ForgeDirection side) { return false; } @Override - public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy) { + public boolean injectRotationalEnergy(ForgeDirection side, long aSpeed, long aEnergy) { return false; } @@ -879,10 +879,10 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac } @Override - public int[] getAccessibleSlotsFromSide(int aSide) { + public int[] getAccessibleSlotsFromSide(int ordinalSide) { final TIntList tList = new TIntArrayList(); final IGregTechTileEntity tTileEntity = getBaseMetaTileEntity(); - final CoverInfo tileCoverInfo = tTileEntity.getCoverInfoAtSide((byte) aSide); + final CoverInfo tileCoverInfo = tTileEntity.getCoverInfoAtSide(ForgeDirection.getOrientation(ordinalSide)); final boolean tSkip = tileCoverInfo.letsItemsIn(-2) || tileCoverInfo.letsItemsOut(-2); for (int i = 0; i < getSizeInventory(); i++) { if (isValidSlot(i) && (tSkip || tileCoverInfo.letsItemsOut(i) || tileCoverInfo.letsItemsIn(i))) { @@ -893,43 +893,43 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac } @Override - public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { + public boolean canInsertItem(int aIndex, ItemStack aStack, int ordinalSide) { return isValidSlot(aIndex) && aStack != null && aIndex < mInventory.length && (mInventory[aIndex] == null || GT_Utility.areStacksEqual(aStack, mInventory[aIndex])) - && allowPutStack(getBaseMetaTileEntity(), aIndex, (byte) aSide, aStack); + && allowPutStack(getBaseMetaTileEntity(), aIndex, ForgeDirection.getOrientation(ordinalSide), aStack); } @Override - public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { + public boolean canExtractItem(int aIndex, ItemStack aStack, int ordinalSide) { return isValidSlot(aIndex) && aStack != null && aIndex < mInventory.length - && allowPullStack(getBaseMetaTileEntity(), aIndex, (byte) aSide, aStack); + && allowPullStack(getBaseMetaTileEntity(), aIndex, ForgeDirection.getOrientation(ordinalSide), aStack); } @Override - public boolean canFill(ForgeDirection aSide, Fluid aFluid) { - return fill(aSide, new FluidStack(aFluid, 1), false) == 1; + public boolean canFill(ForgeDirection side, Fluid aFluid) { + return fill(side, new FluidStack(aFluid, 1), false) == 1; } @Override - public boolean canDrain(ForgeDirection aSide, Fluid aFluid) { - return drain(aSide, new FluidStack(aFluid, 1), false) != null; + public boolean canDrain(ForgeDirection side, Fluid aFluid) { + return drain(side, new FluidStack(aFluid, 1), false) != null; } @Override - public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { + public FluidTankInfo[] getTankInfo(ForgeDirection side) { if (getCapacity() <= 0 && !getBaseMetaTileEntity().hasSteamEngineUpgrade()) return new FluidTankInfo[] {}; return new FluidTankInfo[] { getInfo() }; } - public int fill_default(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { + public int fill_default(ForgeDirection side, FluidStack aFluid, boolean doFill) { markDirty(); return fill(aFluid, doFill); } @Override - public int fill(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { + public int fill(ForgeDirection side, FluidStack aFluid, boolean doFill) { if (getBaseMetaTileEntity().hasSteamEngineUpgrade() && GT_ModHandler.isSteam(aFluid) && aFluid.amount > 1) { int tSteam = (int) Math.min( Integer.MAX_VALUE, @@ -942,20 +942,20 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac return tSteam * 2; } } else { - return fill_default(aSide, aFluid, doFill); + return fill_default(side, aFluid, doFill); } return 0; } @Override - public FluidStack drain(ForgeDirection aSide, FluidStack aFluid, boolean doDrain) { + public FluidStack drain(ForgeDirection side, FluidStack aFluid, boolean doDrain) { if (getFluid() != null && aFluid != null && getFluid().isFluidEqual(aFluid)) return drain(aFluid.amount, doDrain); return null; } @Override - public FluidStack drain(ForgeDirection aSide, int maxDrain, boolean doDrain) { + public FluidStack drain(ForgeDirection side, int maxDrain, boolean doDrain) { return drain(maxDrain, doDrain); } @@ -1030,12 +1030,12 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac } @Override - public boolean connectsToItemPipe(byte aSide) { + public boolean connectsToItemPipe(ForgeDirection side) { return false; } @Override - public float getExplosionResistance(byte aSide) { + public float getExplosionResistance(ForgeDirection side) { return 10.0F; } @@ -1048,11 +1048,11 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac public void onColorChangeServer(byte aColor) { final IGregTechTileEntity meta = getBaseMetaTileEntity(); final int aX = meta.getXCoord(), aY = meta.getYCoord(), aZ = meta.getZCoord(); - for (byte aSide = 0; aSide < 6; aSide++) { + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { // Flag surrounding pipes/cables to revaluate their connection with us if we got painted - final TileEntity tTileEntity = meta.getTileEntityAtSide(aSide); - if ((tTileEntity instanceof BaseMetaPipeEntity)) { - ((BaseMetaPipeEntity) tTileEntity).onNeighborBlockChange(aX, aY, aZ); + final TileEntity tTileEntity = meta.getTileEntityAtSide(side); + if (tTileEntity instanceof BaseMetaPipeEntity pipe) { + pipe.onNeighborBlockChange(aX, aY, aZ); } } } @@ -1163,12 +1163,12 @@ public abstract class MetaTileEntity implements IMetaTileEntity, IMachineCallbac currenttip.add( String.format( "Facing: %s", - ForgeDirection.getOrientation(mBaseMetaTileEntity.getFrontFacing()) + mBaseMetaTileEntity.getFrontFacing() .name())); if (this instanceof IPowerChannelState state) { // adapted from PowerStateWailaDataProvider - NBTTagCompound tag = accessor.getNBTData(); + final NBTTagCompound tag = accessor.getNBTData(); final boolean isActive = tag.getBoolean("isActive"); final boolean isPowered = tag.getBoolean("isPowered"); final boolean isBooting = tag.getBoolean("isBooting"); diff --git a/src/main/java/gregtech/api/metatileentity/TileIC2EnergySink.java b/src/main/java/gregtech/api/metatileentity/TileIC2EnergySink.java index da86635fea..91b6d5a117 100644 --- a/src/main/java/gregtech/api/metatileentity/TileIC2EnergySink.java +++ b/src/main/java/gregtech/api/metatileentity/TileIC2EnergySink.java @@ -59,7 +59,7 @@ public class TileIC2EnergySink extends TileEntity implements IEnergySink { /** * Determine the tier of this energy sink. 1 = LV, 2 = MV, 3 = HV, 4 = EV etc. - * + * * @note Return Integer.MAX_VALUE to allow any voltage. * * @return tier of this energy sink @@ -92,13 +92,12 @@ public class TileIC2EnergySink extends TileEntity implements IEnergySink { final long usedAmps; if (cableMeta != null) { usedAmps = ((IMetaTileEntityCable) metaTile).transferElectricity( - (byte) directionFrom.ordinal(), + directionFrom, Math.min(euPerAmp, cableMeta.mVoltage), amps, Sets.newHashSet((TileEntity) myMeta)); - } else usedAmps = myMeta - .injectEnergyUnits((byte) directionFrom.ordinal(), Math.min(euPerAmp, myMeta.getInputVoltage()), amps); + } else usedAmps = myMeta.injectEnergyUnits(directionFrom, Math.min(euPerAmp, myMeta.getInputVoltage()), amps); return amount - (usedAmps * euPerAmp); // transferElectricity for cables @@ -116,8 +115,9 @@ public class TileIC2EnergySink extends TileEntity implements IEnergySink { @Override public boolean acceptsEnergyFrom(TileEntity emitter, ForgeDirection direction) { final IMetaTileEntity metaTile = myMeta.getMetaTileEntity(); - if (metaTile instanceof IMetaTileEntityCable && (direction == ForgeDirection.UNKNOWN - || ((IConnectable) metaTile).isConnectedAtSide(direction.ordinal()))) return true; - else return myMeta.inputEnergyFrom((byte) direction.ordinal(), false); + if (metaTile instanceof IMetaTileEntityCable + && (direction == ForgeDirection.UNKNOWN || ((IConnectable) metaTile).isConnectedAtSide(direction))) + return true; + else return myMeta.inputEnergyFrom(direction, false); } } diff --git a/src/main/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java b/src/main/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java index 83cebbb08d..83c6174438 100644 --- a/src/main/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java +++ b/src/main/java/gregtech/api/metatileentity/examples/GT_MetaTileEntity_E_Furnace.java @@ -3,6 +3,7 @@ package gregtech.api.metatileentity.examples; import static gregtech.api.enums.Textures.BlockIcons.*; import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.enums.SoundResource; import gregtech.api.interfaces.ITexture; @@ -107,9 +108,9 @@ public class GT_MetaTileEntity_E_Furnace extends GT_MetaTileEntity_BasicMachine } @Override - protected boolean allowPutStackValidated(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, + protected boolean allowPutStackValidated(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, ItemStack aStack) { - return super.allowPutStackValidated(aBaseMetaTileEntity, aIndex, aSide, aStack) + return super.allowPutStackValidated(aBaseMetaTileEntity, aIndex, side, aStack) && GT_ModHandler.getSmeltingOutput(GT_Utility.copyAmount(64, aStack), false, null) != null; } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java index 122a5f5128..699b0d5797 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java @@ -1,7 +1,7 @@ package gregtech.api.metatileentity.implementations; -import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; import static gregtech.api.enums.Mods.GalacticraftCore; +import static net.minecraftforge.common.util.ForgeDirection.DOWN; import java.util.ArrayList; import java.util.HashSet; @@ -111,54 +111,52 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile } @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aConnections, - byte aColorIndex, boolean aConnected, boolean aRedstone) { - if (!mInsulated) return new ITexture[] { TextureFactory.of( - mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], - Dyes.getModulation(aColorIndex, mMaterial.mRGBa)) }; - if (aConnected) { + public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection sideDirection, + int facingDirection, int colorIndex, boolean active, boolean redstoneLevel) { + if (!mInsulated) return new ITexture[] { TextureFactory + .of(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], Dyes.getModulation(colorIndex, mMaterial.mRGBa)) }; + if (active) { float tThickNess = getThickNess(); - if (tThickNess < 0.124F) return new ITexture[] { TextureFactory.of( - Textures.BlockIcons.INSULATION_FULL, - Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; + if (tThickNess < 0.124F) return new ITexture[] { TextureFactory + .of(Textures.BlockIcons.INSULATION_FULL, Dyes.getModulation(colorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; if (tThickNess < 0.374F) // 0.375 x1 return new ITexture[] { TextureFactory.of(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), TextureFactory.of( Textures.BlockIcons.INSULATION_TINY, - Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; + Dyes.getModulation(colorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; if (tThickNess < 0.499F) // 0.500 x2 return new ITexture[] { TextureFactory.of(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), TextureFactory.of( Textures.BlockIcons.INSULATION_SMALL, - Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; + Dyes.getModulation(colorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; if (tThickNess < 0.624F) // 0.625 x4 return new ITexture[] { TextureFactory.of(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), TextureFactory.of( Textures.BlockIcons.INSULATION_MEDIUM, - Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; + Dyes.getModulation(colorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; if (tThickNess < 0.749F) // 0.750 x8 return new ITexture[] { TextureFactory.of(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), TextureFactory.of( Textures.BlockIcons.INSULATION_MEDIUM_PLUS, - Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; + Dyes.getModulation(colorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; if (tThickNess < 0.874F) // 0.825 x12 return new ITexture[] { TextureFactory.of(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), TextureFactory.of( Textures.BlockIcons.INSULATION_LARGE, - Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; + Dyes.getModulation(colorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; return new ITexture[] { TextureFactory.of(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), TextureFactory.of( Textures.BlockIcons.INSULATION_HUGE, - Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; + Dyes.getModulation(colorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; } return new ITexture[] { TextureFactory - .of(Textures.BlockIcons.INSULATION_FULL, Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; + .of(Textures.BlockIcons.INSULATION_FULL, Dyes.getModulation(colorIndex, Dyes.CABLE_INSULATION.mRGBa)) }; } @Override @@ -178,7 +176,7 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return false; } @@ -188,7 +186,7 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile } @Override - public final boolean renderInside(byte aSide) { + public final boolean renderInside(ForgeDirection side) { return false; } @@ -203,42 +201,40 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile } @Override - public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) { - if (!isConnectedAtSide(aSide) && aSide != 6) return 0; - if (!getBaseMetaTileEntity().getCoverInfoAtSide(aSide) + public long injectEnergyUnits(ForgeDirection side, long voltage, long amperage) { + if (!isConnectedAtSide(side) && side != ForgeDirection.UNKNOWN) return 0; + if (!getBaseMetaTileEntity().getCoverInfoAtSide(side) .letsEnergyIn()) return 0; - final HashSet<TileEntity> nul = null; - return transferElectricity(aSide, aVoltage, aAmperage, nul); + return transferElectricity(side, voltage, amperage, (HashSet<TileEntity>) null); } @Override @Deprecated - public long transferElectricity(byte aSide, long aVoltage, long aAmperage, + public long transferElectricity(ForgeDirection side, long aVoltage, long aAmperage, ArrayList<TileEntity> aAlreadyPassedTileEntityList) { - return transferElectricity(aSide, aVoltage, aAmperage, new HashSet<>(aAlreadyPassedTileEntityList)); + return transferElectricity(side, aVoltage, aAmperage, new HashSet<>(aAlreadyPassedTileEntityList)); } @Override - public long transferElectricity(byte aSide, long aVoltage, long aAmperage, HashSet<TileEntity> aAlreadyPassedSet) { - if (!getBaseMetaTileEntity().isServerSide() || !isConnectedAtSide(aSide) && aSide != 6) return 0; + public long transferElectricity(ForgeDirection side, long voltage, long amperage, + HashSet<TileEntity> alreadyPassedSet) { + if (!getBaseMetaTileEntity().isServerSide() || !isConnectedAtSide(side) && side != ForgeDirection.UNKNOWN) + return 0; final BaseMetaPipeEntity tBase = (BaseMetaPipeEntity) getBaseMetaTileEntity(); if (!(tBase.getNode() instanceof PowerNode tNode)) return 0; - if (tNode != null) { - int tPlace = 0; - final Node[] tToPower = new Node[tNode.mConsumers.size()]; - if (tNode.mHadVoltage) { - for (ConsumerNode consumer : tNode.mConsumers) { - if (consumer.needsEnergy()) tToPower[tPlace++] = consumer; - } - } else { - tNode.mHadVoltage = true; - for (ConsumerNode consumer : tNode.mConsumers) { - tToPower[tPlace++] = consumer; - } + int tPlace = 0; + final Node[] tToPower = new Node[tNode.mConsumers.size()]; + if (tNode.mHadVoltage) { + for (ConsumerNode consumer : tNode.mConsumers) { + if (consumer.needsEnergy()) tToPower[tPlace++] = consumer; + } + } else { + tNode.mHadVoltage = true; + for (ConsumerNode consumer : tNode.mConsumers) { + tToPower[tPlace++] = consumer; } - return PowerNodes.powerNode(tNode, null, new NodeList(tToPower), (int) aVoltage, (int) aAmperage); } - return 0; + return PowerNodes.powerNode(tNode, null, new NodeList(tToPower), (int) voltage, (int) amperage); } @Override @@ -262,15 +258,15 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile } @Override - public boolean onWireCutterRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, - float aZ) { + public boolean onWireCutterRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer aPlayer, + float aX, float aY, float aZ) { if (GT_Mod.gregtechproxy.gt6Cable && GT_ModHandler.damageOrDechargeItem(aPlayer.inventory.getCurrentItem(), 1, 500, aPlayer)) { - if (isConnectedAtSide(aWrenchingSide)) { - disconnect(aWrenchingSide); + if (isConnectedAtSide(wrenchingSide)) { + disconnect(wrenchingSide); GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("215", "Disconnected")); } else if (!GT_Mod.gregtechproxy.costlyCableConnection) { - if (connect(aWrenchingSide) > 0) + if (connect(wrenchingSide) > 0) GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("214", "Connected")); } return true; @@ -279,15 +275,15 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile } @Override - public boolean onSolderingToolRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, - float aZ) { + public boolean onSolderingToolRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer aPlayer, + float aX, float aY, float aZ) { if (GT_Mod.gregtechproxy.gt6Cable && GT_ModHandler.damageOrDechargeItem(aPlayer.inventory.getCurrentItem(), 1, 500, aPlayer)) { - if (isConnectedAtSide(aWrenchingSide)) { - disconnect(aWrenchingSide); + if (isConnectedAtSide(wrenchingSide)) { + disconnect(wrenchingSide); GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("215", "Disconnected")); } else if (!GT_Mod.gregtechproxy.costlyCableConnection || GT_ModHandler.consumeSolderingMaterial(aPlayer)) { - if (connect(aWrenchingSide) > 0) + if (connect(wrenchingSide) > 0) GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("214", "Connected")); } return true; @@ -296,27 +292,27 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile } @Override - public boolean letsIn(GT_CoverBehavior coverBehavior, byte aSide, int aCoverID, int aCoverVariable, + public boolean letsIn(GT_CoverBehavior coverBehavior, ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return coverBehavior.letsEnergyIn(aSide, aCoverID, aCoverVariable, aTileEntity); + return coverBehavior.letsEnergyIn(side, aCoverID, aCoverVariable, aTileEntity); } @Override - public boolean letsOut(GT_CoverBehavior coverBehavior, byte aSide, int aCoverID, int aCoverVariable, + public boolean letsOut(GT_CoverBehavior coverBehavior, ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return coverBehavior.letsEnergyOut(aSide, aCoverID, aCoverVariable, aTileEntity); + return coverBehavior.letsEnergyOut(side, aCoverID, aCoverVariable, aTileEntity); } @Override - public boolean letsIn(GT_CoverBehaviorBase<?> coverBehavior, byte aSide, int aCoverID, + public boolean letsIn(GT_CoverBehaviorBase<?> coverBehavior, ForgeDirection side, int aCoverID, ISerializableObject aCoverVariable, ICoverable aTileEntity) { - return coverBehavior.letsEnergyIn(aSide, aCoverID, aCoverVariable, aTileEntity); + return coverBehavior.letsEnergyIn(side, aCoverID, aCoverVariable, aTileEntity); } @Override - public boolean letsOut(GT_CoverBehaviorBase<?> coverBehavior, byte aSide, int aCoverID, + public boolean letsOut(GT_CoverBehaviorBase<?> coverBehavior, ForgeDirection side, int aCoverID, ISerializableObject aCoverVariable, ICoverable aTileEntity) { - return coverBehavior.letsEnergyOut(aSide, aCoverID, aCoverVariable, aTileEntity); + return coverBehavior.letsEnergyOut(side, aCoverID, aCoverVariable, aTileEntity); } @Override @@ -330,18 +326,16 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile } @Override - public boolean canConnect(byte aSide, TileEntity tTileEntity) { + public boolean canConnect(ForgeDirection side, TileEntity tileEntity) { final IGregTechTileEntity baseMetaTile = getBaseMetaTileEntity(); - final GT_CoverBehaviorBase<?> coverBehavior = baseMetaTile.getCoverBehaviorAtSideNew(aSide); - final byte tSide = GT_Utility.getOppositeSide(aSide); - final ForgeDirection tDir = ForgeDirection.getOrientation(tSide); + final GT_CoverBehaviorBase<?> coverBehavior = baseMetaTile.getCoverBehaviorAtSideNew(side); + final ForgeDirection oppositeSide = side.getOpposite(); // GT Machine handling - if ((tTileEntity instanceof PowerLogicHost - && ((PowerLogicHost) tTileEntity).getPowerLogic(ForgeDirection.getOrientation(aSide)) != null) - || ((tTileEntity instanceof IEnergyConnected) - && (((IEnergyConnected) tTileEntity).inputEnergyFrom(tSide, false) - || ((IEnergyConnected) tTileEntity).outputsEnergyTo(tSide, false)))) + if ((tileEntity instanceof PowerLogicHost powerLogic && powerLogic.getPowerLogic(side) != null) + || ((tileEntity instanceof IEnergyConnected energyConnected) + && (energyConnected.inputEnergyFrom(oppositeSide, false) + || energyConnected.outputsEnergyTo(oppositeSide, false)))) return true; // Solar Panel Compat @@ -349,47 +343,43 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile // ((tIsGregTechTileEntity && tIsTileEntityCable) && (tAlwaysLookConnected || tLetEnergyIn || tLetEnergyOut) ) // --> Not needed - if (GalacticraftCore.isModLoaded() && GT_GC_Compat.canConnect(tTileEntity, tDir)) return true; + if (GalacticraftCore.isModLoaded() && GT_GC_Compat.canConnect(tileEntity, oppositeSide)) return true; // AE2-p2p Compat if (GT_Mod.gregtechproxy.mAE2Integration) { - if (tTileEntity instanceof appeng.tile.powersink.IC2 - && ((appeng.tile.powersink.IC2) tTileEntity).acceptsEnergyFrom((TileEntity) baseMetaTile, tDir)) - return true; + if (tileEntity instanceof appeng.tile.powersink.IC2 ic2sink + && ic2sink.acceptsEnergyFrom((TileEntity) baseMetaTile, oppositeSide)) return true; } // IC2 Compat { final TileEntity ic2Energy; - if (tTileEntity instanceof IReactorChamber) - ic2Energy = (TileEntity) ((IReactorChamber) tTileEntity).getReactor(); - else ic2Energy = (tTileEntity == null || tTileEntity instanceof IEnergyTile || EnergyNet.instance == null) - ? tTileEntity - : EnergyNet.instance.getTileEntity( - tTileEntity.getWorldObj(), - tTileEntity.xCoord, - tTileEntity.yCoord, - tTileEntity.zCoord); + if (tileEntity instanceof IReactorChamber) + ic2Energy = (TileEntity) ((IReactorChamber) tileEntity).getReactor(); + else ic2Energy = (tileEntity == null || tileEntity instanceof IEnergyTile || EnergyNet.instance == null) + ? tileEntity + : EnergyNet.instance + .getTileEntity(tileEntity.getWorldObj(), tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); // IC2 Sink Compat if ((ic2Energy instanceof IEnergySink) - && ((IEnergySink) ic2Energy).acceptsEnergyFrom((TileEntity) baseMetaTile, tDir)) return true; + && ((IEnergySink) ic2Energy).acceptsEnergyFrom((TileEntity) baseMetaTile, oppositeSide)) return true; // IC2 Source Compat if (GT_Mod.gregtechproxy.ic2EnergySourceCompat && (ic2Energy instanceof IEnergySource)) { - if (((IEnergySource) ic2Energy).emitsEnergyTo((TileEntity) baseMetaTile, tDir)) { + if (((IEnergySource) ic2Energy).emitsEnergyTo((TileEntity) baseMetaTile, oppositeSide)) { return true; } } } // RF Output Compat - if (GregTech_API.mOutputRF && tTileEntity instanceof IEnergyReceiver - && ((IEnergyReceiver) tTileEntity).canConnectEnergy(tDir)) return true; + if (GregTech_API.mOutputRF && tileEntity instanceof IEnergyReceiver + && ((IEnergyReceiver) tileEntity).canConnectEnergy(oppositeSide)) return true; // RF Input Compat - return GregTech_API.mInputRF && (tTileEntity instanceof IEnergyEmitter - && ((IEnergyEmitter) tTileEntity).emitsEnergyTo((TileEntity) baseMetaTile, tDir)); + return GregTech_API.mInputRF && (tileEntity instanceof IEnergyEmitter + && ((IEnergyEmitter) tileEntity).emitsEnergyTo((TileEntity) baseMetaTile, oppositeSide)); } @Override @@ -399,12 +389,14 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } @@ -508,48 +500,53 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile private AxisAlignedBB getActualCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { float tSpace = (1f - mThickNess) / 2; - float tSide0 = tSpace; - float tSide1 = 1f - tSpace; - float tSide2 = tSpace; - float tSide3 = 1f - tSpace; - float tSide4 = tSpace; - float tSide5 = 1f - tSpace; - - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 0) != 0) { - tSide0 = tSide2 = tSide4 = 0; - tSide3 = tSide5 = 1; + float spaceDown = tSpace; + float spaceUp = 1f - tSpace; + float spaceNorth = tSpace; + float spaceSouth = 1f - tSpace; + float spaceWest = tSpace; + float spaceEast = 1f - tSpace; + + if (getBaseMetaTileEntity().getCoverIDAtSide(DOWN) != 0) { + spaceDown = spaceNorth = spaceWest = 0; + spaceSouth = spaceEast = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 1) != 0) { - tSide2 = tSide4 = 0; - tSide1 = tSide3 = tSide5 = 1; + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.UP) != 0) { + spaceNorth = spaceWest = 0; + spaceUp = spaceSouth = spaceEast = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 2) != 0) { - tSide0 = tSide2 = tSide4 = 0; - tSide1 = tSide5 = 1; + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.NORTH) != 0) { + spaceDown = spaceNorth = spaceWest = 0; + spaceUp = spaceEast = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 3) != 0) { - tSide0 = tSide4 = 0; - tSide1 = tSide3 = tSide5 = 1; + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.SOUTH) != 0) { + spaceDown = spaceWest = 0; + spaceUp = spaceSouth = spaceEast = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 4) != 0) { - tSide0 = tSide2 = tSide4 = 0; - tSide1 = tSide3 = 1; + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.WEST) != 0) { + spaceDown = spaceNorth = spaceWest = 0; + spaceUp = spaceSouth = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 5) != 0) { - tSide0 = tSide2 = 0; - tSide1 = tSide3 = tSide5 = 1; + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.EAST) != 0) { + spaceDown = spaceNorth = 0; + spaceUp = spaceSouth = spaceEast = 1; } byte tConn = ((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections; - if ((tConn & (1 << ForgeDirection.DOWN.ordinal())) != 0) tSide0 = 0f; - if ((tConn & (1 << ForgeDirection.UP.ordinal())) != 0) tSide1 = 1f; - if ((tConn & (1 << ForgeDirection.NORTH.ordinal())) != 0) tSide2 = 0f; - if ((tConn & (1 << ForgeDirection.SOUTH.ordinal())) != 0) tSide3 = 1f; - if ((tConn & (1 << ForgeDirection.WEST.ordinal())) != 0) tSide4 = 0f; - if ((tConn & (1 << ForgeDirection.EAST.ordinal())) != 0) tSide5 = 1f; + if ((tConn & (1 << DOWN.ordinal())) != 0) spaceDown = 0f; + if ((tConn & (1 << ForgeDirection.UP.ordinal())) != 0) spaceUp = 1f; + if ((tConn & (1 << ForgeDirection.NORTH.ordinal())) != 0) spaceNorth = 0f; + if ((tConn & (1 << ForgeDirection.SOUTH.ordinal())) != 0) spaceSouth = 1f; + if ((tConn & (1 << ForgeDirection.WEST.ordinal())) != 0) spaceWest = 0f; + if ((tConn & (1 << ForgeDirection.EAST.ordinal())) != 0) spaceEast = 1f; - return AxisAlignedBB - .getBoundingBox(aX + tSide4, aY + tSide0, aZ + tSide2, aX + tSide5, aY + tSide1, aZ + tSide3); + return AxisAlignedBB.getBoundingBox( + aX + spaceWest, + aY + spaceDown, + aZ + spaceNorth, + aX + spaceEast, + aY + spaceUp, + aZ + spaceSouth); } @Override @@ -568,18 +565,20 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile if (mConnections != 0) { final IGregTechTileEntity baseMeta = getBaseMetaTileEntity(); - for (byte aSide = 0; aSide < 6; aSide++) if (isConnectedAtSide(aSide)) { - final TileEntity tTileEntity = baseMeta.getTileEntityAtSide(aSide); - final TileEntity tEmitter = (tTileEntity == null || tTileEntity instanceof IEnergyTile - || EnergyNet.instance == null) - ? tTileEntity - : EnergyNet.instance.getTileEntity( - tTileEntity.getWorldObj(), - tTileEntity.xCoord, - tTileEntity.yCoord, - tTileEntity.zCoord); - - if (tEmitter instanceof IEnergyEmitter) return true; + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + if (isConnectedAtSide(side)) { + final TileEntity tTileEntity = baseMeta.getTileEntityAtSide(side); + final TileEntity tEmitter = (tTileEntity == null || tTileEntity instanceof IEnergyTile + || EnergyNet.instance == null) + ? tTileEntity + : EnergyNet.instance.getTileEntity( + tTileEntity.getWorldObj(), + tTileEntity.xCoord, + tTileEntity.yCoord, + tTileEntity.zCoord); + + if (tEmitter instanceof IEnergyEmitter) return true; + } } } return false; @@ -589,22 +588,22 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile public void reloadLocks() { final BaseMetaPipeEntity pipe = (BaseMetaPipeEntity) getBaseMetaTileEntity(); if (pipe.getNode() != null) { - for (byte tSide : ALL_VALID_SIDES) { - if (isConnectedAtSide(tSide)) { - final CoverInfo coverInfo = pipe.getCoverInfoAtSide(tSide); + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + if (isConnectedAtSide(side)) { + final CoverInfo coverInfo = pipe.getCoverInfoAtSide(side); if (coverInfo.getCoverBehavior() instanceof GT_Cover_None) continue; if (!letsIn(coverInfo) || !letsOut(coverInfo)) { - pipe.addToLock(pipe, tSide); + pipe.addToLock(pipe, side); } else { - pipe.removeFromLock(pipe, tSide); + pipe.removeFromLock(pipe, side); } } } } else { boolean dontAllow = false; - for (byte tSide : ALL_VALID_SIDES) { - if (isConnectedAtSide(tSide)) { - final CoverInfo coverInfo = pipe.getCoverInfoAtSide(tSide); + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + if (isConnectedAtSide(side)) { + final CoverInfo coverInfo = pipe.getCoverInfoAtSide(side); if (coverInfo.getCoverBehavior() instanceof GT_Cover_None) continue; if (!letsIn(coverInfo) || !letsOut(coverInfo)) { @@ -613,9 +612,9 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile } } if (dontAllow) { - pipe.addToLock(pipe, 0); + pipe.addToLock(pipe, DOWN); } else { - pipe.removeFromLock(pipe, 0); + pipe.removeFromLock(pipe, DOWN); } } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java index 76c7f418e9..e19d6574c3 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java @@ -1,5 +1,6 @@ package gregtech.api.metatileentity.implementations; +import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; import static gregtech.api.enums.GT_Values.D1; import static gregtech.api.objects.XSTR.XSTR_INSTANCE; @@ -108,54 +109,57 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { } @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aConnections, - byte aColorIndex, boolean aConnected, boolean aRedstone) { + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, int aConnections, + int colorIndex, boolean aConnected, boolean redstoneLevel) { + final int ordinalSide = side.ordinal(); final float tThickNess = getThickNess(); if (mDisableInput == 0) - return new ITexture[] { aConnected ? getBaseTexture(tThickNess, mPipeAmount, mMaterial, aColorIndex) + return new ITexture[] { aConnected ? getBaseTexture(tThickNess, mPipeAmount, mMaterial, colorIndex) : TextureFactory.of( mMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], - Dyes.getModulation(aColorIndex, mMaterial.mRGBa)) }; + Dyes.getModulation(colorIndex, mMaterial.mRGBa)) }; byte tMask = 0; final byte[][] sRestrictionArray = { { 2, 3, 5, 4 }, { 2, 3, 4, 5 }, { 1, 0, 4, 5 }, { 1, 0, 4, 5 }, { 1, 0, 2, 3 }, { 1, 0, 2, 3 } }; - if (aSide >= 0 && aSide < 6) { - for (byte i = 0; i < 4; i++) if (isInputDisabledAtSide(sRestrictionArray[aSide][i])) tMask |= 1 << i; + if (side != ForgeDirection.UNKNOWN) { + for (byte i = 0; i < 4; i++) + if (isInputDisabledAtSide(ForgeDirection.getOrientation(sRestrictionArray[ordinalSide][i]))) + tMask |= 1 << i; // Full block size renderer flips side 5 and 2 textures, flip restrictor textures to compensate - if (aSide == 5 || aSide == 2) if (tMask > 3 && tMask < 12) tMask = (byte) (tMask ^ 12); + if (ordinalSide == 5 || ordinalSide == 2) if (tMask > 3 && tMask < 12) tMask = (byte) (tMask ^ 12); } - return new ITexture[] { aConnected ? getBaseTexture(tThickNess, mPipeAmount, mMaterial, aColorIndex) + return new ITexture[] { aConnected ? getBaseTexture(tThickNess, mPipeAmount, mMaterial, colorIndex) : TextureFactory.of( mMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], - Dyes.getModulation(aColorIndex, mMaterial.mRGBa)), + Dyes.getModulation(colorIndex, mMaterial.mRGBa)), getRestrictorTexture(tMask) }; } - protected static ITexture getBaseTexture(float aThickNess, int aPipeAmount, Materials aMaterial, byte aColorIndex) { + protected static ITexture getBaseTexture(float aThickNess, int aPipeAmount, Materials aMaterial, int colorIndex) { if (aPipeAmount >= 9) return TextureFactory.of( aMaterial.mIconSet.mTextures[OrePrefixes.pipeNonuple.mTextureIndex], - Dyes.getModulation(aColorIndex, aMaterial.mRGBa)); + Dyes.getModulation(colorIndex, aMaterial.mRGBa)); if (aPipeAmount >= 4) return TextureFactory.of( aMaterial.mIconSet.mTextures[OrePrefixes.pipeQuadruple.mTextureIndex], - Dyes.getModulation(aColorIndex, aMaterial.mRGBa)); + Dyes.getModulation(colorIndex, aMaterial.mRGBa)); if (aThickNess < 0.124F) return TextureFactory.of( aMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], - Dyes.getModulation(aColorIndex, aMaterial.mRGBa)); + Dyes.getModulation(colorIndex, aMaterial.mRGBa)); if (aThickNess < 0.374F) return TextureFactory.of( aMaterial.mIconSet.mTextures[OrePrefixes.pipeTiny.mTextureIndex], - Dyes.getModulation(aColorIndex, aMaterial.mRGBa)); + Dyes.getModulation(colorIndex, aMaterial.mRGBa)); if (aThickNess < 0.499F) return TextureFactory.of( aMaterial.mIconSet.mTextures[OrePrefixes.pipeSmall.mTextureIndex], - Dyes.getModulation(aColorIndex, aMaterial.mRGBa)); + Dyes.getModulation(colorIndex, aMaterial.mRGBa)); if (aThickNess < 0.749F) return TextureFactory.of( aMaterial.mIconSet.mTextures[OrePrefixes.pipeMedium.mTextureIndex], - Dyes.getModulation(aColorIndex, aMaterial.mRGBa)); + Dyes.getModulation(colorIndex, aMaterial.mRGBa)); if (aThickNess < 0.874F) return TextureFactory.of( aMaterial.mIconSet.mTextures[OrePrefixes.pipeLarge.mTextureIndex], - Dyes.getModulation(aColorIndex, aMaterial.mRGBa)); + Dyes.getModulation(colorIndex, aMaterial.mRGBa)); return TextureFactory.of( aMaterial.mIconSet.mTextures[OrePrefixes.pipeHuge.mTextureIndex], - Dyes.getModulation(aColorIndex, aMaterial.mRGBa)); + Dyes.getModulation(colorIndex, aMaterial.mRGBa)); } protected static ITexture getRestrictorTexture(byte aMask) { @@ -195,7 +199,7 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return false; } @@ -205,7 +209,7 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { } @Override - public final boolean renderInside(byte aSide) { + public final boolean renderInside(ForgeDirection side) { return false; } @@ -376,22 +380,22 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { // Tank, From, Amount to receive final List<MutableTriple<IFluidHandler, ForgeDirection, Integer>> tTanks = new ArrayList<>(); final int amount = tFluid.amount; - - for (byte aSide, i = 0, j = (byte) aBaseMetaTileEntity.getRandomNumber(6); i < 6; i++) { + final byte tOffset = (byte) getBaseMetaTileEntity().getRandomNumber(6); + for (final byte i : ALL_VALID_SIDES) { // Get a list of tanks accepting fluids, and what side they're on - aSide = (byte) ((i + j) % 6); - final byte tSide = GT_Utility.getOppositeSide(aSide); - final IFluidHandler tTank = aBaseMetaTileEntity.getITankContainerAtSide(aSide); + final ForgeDirection side = ForgeDirection.getOrientation((i + tOffset) % 6); + final ForgeDirection oppositeSide = side.getOpposite(); + final IFluidHandler tTank = aBaseMetaTileEntity.getITankContainerAtSide(side); final IGregTechTileEntity gTank = tTank instanceof IGregTechTileEntity ? (IGregTechTileEntity) tTank : null; - if (isConnectedAtSide(aSide) && tTank != null - && (mLastReceivedFrom & (1 << aSide)) == 0 - && getBaseMetaTileEntity().getCoverInfoAtSide(aSide) + if (isConnectedAtSide(side) && tTank != null + && (mLastReceivedFrom & (1 << side.ordinal())) == 0 + && getBaseMetaTileEntity().getCoverInfoAtSide(side) .letsFluidOut(tFluid.getFluid()) - && (gTank == null || gTank.getCoverInfoAtSide(tSide) + && (gTank == null || gTank.getCoverInfoAtSide(oppositeSide) .letsFluidIn(tFluid.getFluid()))) { - if (tTank.fill(ForgeDirection.getOrientation(tSide), tFluid, false) > 0) { - tTanks.add(new MutableTriple<>(tTank, ForgeDirection.getOrientation(tSide), 0)); + if (tTank.fill(oppositeSide, tFluid, false) > 0) { + tTanks.add(new MutableTriple<>(tTank, oppositeSide, 0)); } tFluid.amount = amount; // Because some mods do actually modify input fluid stack } @@ -399,19 +403,19 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { // How much of this fluid is available for distribution? final double tAmount = Math.max(1, Math.min(mCapacity * 10, tFluid.amount)); - final double tNumTanks = tTanks.size(); + final FluidStack maxFluid = tFluid.copy(); maxFluid.amount = Integer.MAX_VALUE; double availableCapacity = 0; // Calculate available capacity for distribution from all tanks - for (MutableTriple<IFluidHandler, ForgeDirection, Integer> tEntry : tTanks) { + for (final MutableTriple<IFluidHandler, ForgeDirection, Integer> tEntry : tTanks) { tEntry.right = tEntry.left.fill(tEntry.middle, maxFluid, false); availableCapacity += tEntry.right; } // Now distribute - for (MutableTriple<IFluidHandler, ForgeDirection, Integer> tEntry : tTanks) { + for (final MutableTriple<IFluidHandler, ForgeDirection, Integer> tEntry : tTanks) { // Distribue fluids based on percentage available space at destination if (availableCapacity > tAmount) tEntry.right = (int) Math.floor(tEntry.right * tAmount / availableCapacity); @@ -431,26 +435,27 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { } @Override - public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, - float aZ) { + public boolean onWrenchRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer entityPlayer, + float aX, float aY, float aZ) { if (GT_Mod.gregtechproxy.gt6Pipe) { - final byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ); - final byte tMask = (byte) (1 << tSide); - if (aPlayer.isSneaking()) { + final ForgeDirection tSide = GT_Utility.determineWrenchingSide(side, aX, aY, aZ); + final byte tMask = (byte) (1 << tSide.ordinal()); + if (entityPlayer.isSneaking()) { if (isInputDisabledAtSide(tSide)) { mDisableInput &= ~tMask; - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("212", "Input enabled")); + GT_Utility.sendChatToPlayer(entityPlayer, GT_Utility.trans("212", "Input enabled")); if (!isConnectedAtSide(tSide)) connect(tSide); } else { mDisableInput |= tMask; - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("213", "Input disabled")); + GT_Utility.sendChatToPlayer(entityPlayer, GT_Utility.trans("213", "Input disabled")); } } else { if (!isConnectedAtSide(tSide)) { - if (connect(tSide) > 0) GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("214", "Connected")); + if (connect(tSide) > 0) + GT_Utility.sendChatToPlayer(entityPlayer, GT_Utility.trans("214", "Connected")); } else { disconnect(tSide); - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("215", "Disconnected")); + GT_Utility.sendChatToPlayer(entityPlayer, GT_Utility.trans("215", "Disconnected")); } } return true; @@ -459,27 +464,27 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { } @Override - public boolean letsIn(GT_CoverBehavior coverBehavior, byte aSide, int aCoverID, int aCoverVariable, + public boolean letsIn(GT_CoverBehavior coverBehavior, ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return coverBehavior.letsFluidIn(aSide, aCoverID, aCoverVariable, null, aTileEntity); + return coverBehavior.letsFluidIn(side, aCoverID, aCoverVariable, null, aTileEntity); } @Override - public boolean letsOut(GT_CoverBehavior coverBehavior, byte aSide, int aCoverID, int aCoverVariable, + public boolean letsOut(GT_CoverBehavior coverBehavior, ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return coverBehavior.letsFluidOut(aSide, aCoverID, aCoverVariable, null, aTileEntity); + return coverBehavior.letsFluidOut(side, aCoverID, aCoverVariable, null, aTileEntity); } @Override - public boolean letsIn(GT_CoverBehaviorBase<?> coverBehavior, byte aSide, int aCoverID, + public boolean letsIn(GT_CoverBehaviorBase<?> coverBehavior, ForgeDirection side, int aCoverID, ISerializableObject aCoverVariable, ICoverable aTileEntity) { - return coverBehavior.letsFluidIn(aSide, aCoverID, aCoverVariable, null, aTileEntity); + return coverBehavior.letsFluidIn(side, aCoverID, aCoverVariable, null, aTileEntity); } @Override - public boolean letsOut(GT_CoverBehaviorBase<?> coverBehavior, byte aSide, int aCoverID, + public boolean letsOut(GT_CoverBehaviorBase<?> coverBehavior, ForgeDirection side, int aCoverID, ISerializableObject aCoverVariable, ICoverable aTileEntity) { - return coverBehavior.letsFluidOut(aSide, aCoverID, aCoverVariable, null, aTileEntity); + return coverBehavior.letsFluidOut(side, aCoverID, aCoverVariable, null, aTileEntity); } @Override @@ -493,29 +498,27 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { } @Override - public boolean canConnect(byte aSide, TileEntity tTileEntity) { - if (tTileEntity == null) return false; + public boolean canConnect(ForgeDirection side, TileEntity tileEntity) { + if (tileEntity == null) return false; - final byte tSide = (byte) ForgeDirection.getOrientation(aSide) - .getOpposite() - .ordinal(); + final ForgeDirection tSide = side.getOpposite(); final IGregTechTileEntity baseMetaTile = getBaseMetaTileEntity(); if (baseMetaTile == null) return false; - final GT_CoverBehaviorBase<?> coverBehavior = baseMetaTile.getCoverBehaviorAtSideNew(aSide); - final IGregTechTileEntity gTileEntity = (tTileEntity instanceof IGregTechTileEntity) - ? (IGregTechTileEntity) tTileEntity + final GT_CoverBehaviorBase<?> coverBehavior = baseMetaTile.getCoverBehaviorAtSideNew(side); + final IGregTechTileEntity gTileEntity = (tileEntity instanceof IGregTechTileEntity) + ? (IGregTechTileEntity) tileEntity : null; - if (coverBehavior instanceof GT_Cover_Drain || (GregTech_API.mTConstruct && isTConstructFaucet(tTileEntity))) + if (coverBehavior instanceof GT_Cover_Drain || (GregTech_API.mTConstruct && isTConstructFaucet(tileEntity))) return true; - final IFluidHandler fTileEntity = (tTileEntity instanceof IFluidHandler) ? (IFluidHandler) tTileEntity : null; + final IFluidHandler fTileEntity = (tileEntity instanceof IFluidHandler) ? (IFluidHandler) tileEntity : null; if (fTileEntity != null) { - final FluidTankInfo[] tInfo = fTileEntity.getTankInfo(ForgeDirection.getOrientation(tSide)); + final FluidTankInfo[] tInfo = fTileEntity.getTankInfo(tSide); if (tInfo != null) { - return tInfo.length > 0 || (GregTech_API.mTranslocator && isTranslocator(tTileEntity)) + return tInfo.length > 0 || (GregTech_API.mTranslocator && isTranslocator(tileEntity)) || gTileEntity != null && gTileEntity.getCoverBehaviorAtSideNew(tSide) instanceof GT_Cover_FluidRegulator; } @@ -578,7 +581,7 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { } @Override - public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { + public FluidTankInfo[] getTankInfo(ForgeDirection side) { if (getCapacity() <= 0 && !getBaseMetaTileEntity().hasSteamEngineUpgrade()) return new FluidTankInfo[] {}; ArrayList<FluidTankInfo> tList = new ArrayList<>(); for (FluidStack tFluid : mFluids) tList.add(new FluidTankInfo(tFluid, mCapacity * 20)); @@ -586,12 +589,14 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } @@ -613,7 +618,7 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { } @Override - public final int fill_default(ForgeDirection aSide, FluidStack aFluid, boolean doFill) { + public final int fill_default(ForgeDirection side, FluidStack aFluid, boolean doFill) { if (aFluid == null || aFluid.getFluid() .getID() <= 0) return 0; @@ -628,26 +633,28 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { } } - return fill_default_intoIndex(aSide, aFluid, doFill, index); + return fill_default_intoIndex(side, aFluid, doFill, index); } - private int fill_default_intoIndex(ForgeDirection aSide, FluidStack aFluid, boolean doFill, int index) { + private int fill_default_intoIndex(ForgeDirection side, FluidStack aFluid, boolean doFill, int index) { if (index < 0 || index >= mPipeAmount) return 0; if (aFluid == null || aFluid.getFluid() .getID() <= 0) return 0; + final int ordinalSide = side.ordinal(); + if (mFluids[index] == null || mFluids[index].getFluid() .getID() <= 0) { if (aFluid.amount * mPipeAmount <= getCapacity()) { if (doFill) { mFluids[index] = aFluid.copy(); - mLastReceivedFrom |= (1 << aSide.ordinal()); + mLastReceivedFrom |= (1 << ordinalSide); } return aFluid.amount; } if (doFill) { mFluids[index] = aFluid.copy(); - mLastReceivedFrom |= (1 << aSide.ordinal()); + mLastReceivedFrom |= (1 << ordinalSide); mFluids[index].amount = getCapacity() / mPipeAmount; } return getCapacity() / mPipeAmount; @@ -659,13 +666,13 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { if (aFluid.amount <= space) { if (doFill) { mFluids[index].amount += aFluid.amount; - mLastReceivedFrom |= (1 << aSide.ordinal()); + mLastReceivedFrom |= (1 << ordinalSide); } return aFluid.amount; } if (doFill) { mFluids[index].amount = getCapacity() / mPipeAmount; - mLastReceivedFrom |= (1 << aSide.ordinal()); + mLastReceivedFrom |= (1 << ordinalSide); } return space; } @@ -742,17 +749,17 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { } @Override - public boolean isLiquidInput(byte aSide) { - return !isInputDisabledAtSide(aSide); + public boolean isLiquidInput(ForgeDirection side) { + return !isInputDisabledAtSide(side); } @Override - public boolean isLiquidOutput(byte aSide) { + public boolean isLiquidOutput(ForgeDirection side) { return true; } - public boolean isInputDisabledAtSide(int aSide) { - return (mDisableInput & (1 << aSide)) != 0; + public boolean isInputDisabledAtSide(ForgeDirection side) { + return (mDisableInput & (1 << side.ordinal())) != 0; } @Override @@ -771,27 +778,27 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { float tSide4 = tSpace; float tSide5 = 1f - tSpace; - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 0) != 0) { + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.DOWN) != 0) { tSide0 = tSide2 = tSide4 = 0; tSide3 = tSide5 = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 1) != 0) { + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.UP) != 0) { tSide2 = tSide4 = 0; tSide1 = tSide3 = tSide5 = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 2) != 0) { + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.NORTH) != 0) { tSide0 = tSide2 = tSide4 = 0; tSide1 = tSide5 = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 3) != 0) { + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.SOUTH) != 0) { tSide0 = tSide4 = 0; tSide1 = tSide3 = tSide5 = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 4) != 0) { + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.WEST) != 0) { tSide0 = tSide2 = tSide4 = 0; tSide1 = tSide3 = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 5) != 0) { + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.EAST) != 0) { tSide0 = tSide2 = 0; tSide1 = tSide3 = tSide5 = 1; } @@ -819,7 +826,7 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { } @Override - public FluidStack drain(ForgeDirection aSide, FluidStack aFluid, boolean doDrain) { + public FluidStack drain(ForgeDirection side, FluidStack aFluid, boolean doDrain) { if (aFluid == null) return null; for (int i = 0; i < mFluids.length; ++i) { final FluidStack f = mFluids[i]; diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java index 9ccb43e733..83e658cbfc 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Frame.java @@ -5,6 +5,7 @@ import static gregtech.api.util.GT_Utility.calculateRecipeEU; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.enums.*; import gregtech.api.interfaces.ITexture; @@ -62,11 +63,11 @@ public class GT_MetaPipeEntity_Frame extends MetaPipeEntity { } @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aConnections, - byte aColorIndex, boolean aConnected, boolean aRedstone) { + public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection sideDirection, int connections, + int colorIndex, boolean active, boolean redstoneLevel) { return new ITexture[] { TextureFactory.of( mMaterial.mIconSet.mTextures[OrePrefixes.frameGt.mTextureIndex], - Dyes.getModulation(aColorIndex, mMaterial.mRGBa)) }; + Dyes.getModulation(colorIndex, mMaterial.mRGBa)) }; } @Override @@ -80,7 +81,7 @@ public class GT_MetaPipeEntity_Frame extends MetaPipeEntity { } @Override - public final boolean isFacingValid(byte aFacing) { + public final boolean isFacingValid(ForgeDirection facing) { return false; } @@ -90,7 +91,7 @@ public class GT_MetaPipeEntity_Frame extends MetaPipeEntity { } @Override - public final boolean renderInside(byte aSide) { + public final boolean renderInside(ForgeDirection side) { return true; } @@ -110,24 +111,24 @@ public class GT_MetaPipeEntity_Frame extends MetaPipeEntity { } @Override - public final boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, + public final boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, ItemStack aStack) { return false; } @Override - public final boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, + public final boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, ItemStack aStack) { return false; } @Override - public int connect(byte aSide) { + public int connect(ForgeDirection side) { return 0; } @Override - public void disconnect(byte aSide) { + public void disconnect(ForgeDirection side) { /* Do nothing */ } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java index f69170b83e..0a1fe6ae7a 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java @@ -47,7 +47,7 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE public final int mStepSize; public final int mTickTime; public int mTransferredItems = 0; - public byte mLastReceivedFrom = 0, oLastReceivedFrom = 0; + public ForgeDirection mLastReceivedFrom = ForgeDirection.UNKNOWN, oLastReceivedFrom = ForgeDirection.UNKNOWN; public boolean mIsRestrictive = false; private int[] cacheSides; @@ -95,8 +95,8 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE } @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aConnections, - byte aColorIndex, boolean aConnected, boolean aRedstone) { + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, int aConnections, + int aColorIndex, boolean aConnected, boolean redstoneLevel) { if (mIsRestrictive) { if (aConnected) { float tThickNess = getThickNess(); @@ -163,17 +163,17 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return false; } @Override - public boolean isValidSlot(int aIndex) { + public boolean isValidSlot(int ignoredSlotIndex) { return true; } @Override - public final boolean renderInside(byte aSide) { + public final boolean renderInside(ForgeDirection side) { return false; } @@ -189,13 +189,13 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE @Override public void saveNBTData(NBTTagCompound aNBT) { - aNBT.setByte("mLastReceivedFrom", mLastReceivedFrom); + aNBT.setByte("mLastReceivedFrom", (byte) mLastReceivedFrom.ordinal()); if (GT_Mod.gregtechproxy.gt6Pipe) aNBT.setByte("mConnections", mConnections); } @Override public void loadNBTData(NBTTagCompound aNBT) { - mLastReceivedFrom = aNBT.getByte("mLastReceivedFrom"); + mLastReceivedFrom = ForgeDirection.getOrientation(aNBT.getByte("mLastReceivedFrom")); if (GT_Mod.gregtechproxy.gt6Pipe) { mConnections = aNBT.getByte("mConnections"); } @@ -230,21 +230,21 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE } } - if (isInventoryEmpty()) mLastReceivedFrom = 6; + if (isInventoryEmpty()) mLastReceivedFrom = ForgeDirection.UNKNOWN; oLastReceivedFrom = mLastReceivedFrom; } } @Override - public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, - float aZ) { + public boolean onWrenchRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer entityPlayer, + float aX, float aY, float aZ) { if (GT_Mod.gregtechproxy.gt6Pipe) { - final byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ); + final ForgeDirection tSide = GT_Utility.determineWrenchingSide(side, aX, aY, aZ); if (isConnectedAtSide(tSide)) { disconnect(tSide); - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("215", "Disconnected")); + GT_Utility.sendChatToPlayer(entityPlayer, GT_Utility.trans("215", "Disconnected")); } else { - if (connect(tSide) > 0) GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("214", "Connected")); + if (connect(tSide) > 0) GT_Utility.sendChatToPlayer(entityPlayer, GT_Utility.trans("214", "Connected")); } return true; } @@ -252,27 +252,27 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE } @Override - public boolean letsIn(GT_CoverBehavior coverBehavior, byte aSide, int aCoverID, int aCoverVariable, + public boolean letsIn(GT_CoverBehavior coverBehavior, ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return coverBehavior.letsItemsIn(aSide, aCoverID, aCoverVariable, -1, aTileEntity); + return coverBehavior.letsItemsIn(side, aCoverID, aCoverVariable, -1, aTileEntity); } @Override - public boolean letsOut(GT_CoverBehavior coverBehavior, byte aSide, int aCoverID, int aCoverVariable, + public boolean letsOut(GT_CoverBehavior coverBehavior, ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity) { - return coverBehavior.letsItemsOut(aSide, aCoverID, aCoverVariable, -1, aTileEntity); + return coverBehavior.letsItemsOut(side, aCoverID, aCoverVariable, -1, aTileEntity); } @Override - public boolean letsIn(GT_CoverBehaviorBase<?> coverBehavior, byte aSide, int aCoverID, + public boolean letsIn(GT_CoverBehaviorBase<?> coverBehavior, ForgeDirection side, int aCoverID, ISerializableObject aCoverVariable, ICoverable aTileEntity) { - return coverBehavior.letsItemsIn(aSide, aCoverID, aCoverVariable, -1, aTileEntity); + return coverBehavior.letsItemsIn(side, aCoverID, aCoverVariable, -1, aTileEntity); } @Override - public boolean letsOut(GT_CoverBehaviorBase<?> coverBehavior, byte aSide, int aCoverID, + public boolean letsOut(GT_CoverBehaviorBase<?> coverBehavior, ForgeDirection side, int aCoverID, ISerializableObject aCoverVariable, ICoverable aTileEntity) { - return coverBehavior.letsItemsOut(aSide, aCoverID, aCoverVariable, -1, aTileEntity); + return coverBehavior.letsItemsOut(side, aCoverID, aCoverVariable, -1, aTileEntity); } @Override @@ -286,28 +286,28 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE } @Override - public boolean canConnect(byte aSide, TileEntity tTileEntity) { - if (tTileEntity == null) return false; + public boolean canConnect(ForgeDirection side, TileEntity tileEntity) { + if (tileEntity == null) return false; - final byte tSide = GT_Utility.getOppositeSide(aSide); - boolean connectable = GT_Utility.isConnectableNonInventoryPipe(tTileEntity, tSide); + final ForgeDirection oppositeSide = side.getOpposite(); + boolean connectable = GT_Utility.isConnectableNonInventoryPipe(tileEntity, oppositeSide); - final IGregTechTileEntity gTileEntity = (tTileEntity instanceof IGregTechTileEntity) - ? (IGregTechTileEntity) tTileEntity + final IGregTechTileEntity gTileEntity = (tileEntity instanceof IGregTechTileEntity) + ? (IGregTechTileEntity) tileEntity : null; if (gTileEntity != null) { if (gTileEntity.getMetaTileEntity() == null) return false; if (gTileEntity.getMetaTileEntity() - .connectsToItemPipe(tSide)) return true; + .connectsToItemPipe(oppositeSide)) return true; connectable = true; } - if (tTileEntity instanceof IInventory) { - if (((IInventory) tTileEntity).getSizeInventory() <= 0) return false; + if (tileEntity instanceof IInventory) { + if (((IInventory) tileEntity).getSizeInventory() <= 0) return false; connectable = true; } - if (tTileEntity instanceof ISidedInventory) { - final int[] tSlots = ((ISidedInventory) tTileEntity).getAccessibleSlotsFromSide(tSide); + if (tileEntity instanceof ISidedInventory) { + final int[] tSlots = ((ISidedInventory) tileEntity).getAccessibleSlotsFromSide(oppositeSide.ordinal()); if (tSlots == null || tSlots.length <= 0) return false; connectable = true; } @@ -331,9 +331,8 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE public boolean sendItemStack(Object aSender) { if (pipeCapacityCheck()) { final byte tOffset = (byte) getBaseMetaTileEntity().getRandomNumber(6); - byte tSide = 0; - for (byte i : ALL_VALID_SIDES) { - tSide = (byte) ((i + tOffset) % 6); + for (final byte i : ALL_VALID_SIDES) { + final ForgeDirection tSide = ForgeDirection.getOrientation((i + tOffset) % 6); if (isConnectedAtSide(tSide) && (isInventoryEmpty() || (tSide != mLastReceivedFrom || aSender != getBaseMetaTileEntity()))) { if (insertItemStackIntoTileEntity(aSender, tSide)) return true; @@ -344,18 +343,19 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE } @Override - public boolean insertItemStackIntoTileEntity(Object aSender, byte aSide) { - if (getBaseMetaTileEntity().getCoverInfoAtSide(aSide) + public boolean insertItemStackIntoTileEntity(Object aSender, ForgeDirection side) { + if (getBaseMetaTileEntity().getCoverInfoAtSide(side) .letsItemsOut(-1)) { - final TileEntity tInventory = getBaseMetaTileEntity().getTileEntityAtSide(aSide); + final TileEntity tInventory = getBaseMetaTileEntity().getTileEntityAtSide(side); if (tInventory != null && !(tInventory instanceof BaseMetaPipeEntity)) { if ((!(tInventory instanceof TileEntityHopper) && !(tInventory instanceof TileEntityDispenser)) - || getBaseMetaTileEntity().getMetaIDAtSide(aSide) != GT_Utility.getOppositeSide(aSide)) { + || getBaseMetaTileEntity().getMetaIDAtSide(side) != side.getOpposite() + .ordinal()) { return GT_Utility.moveMultipleItemStacks( aSender, tInventory, - (byte) 6, - GT_Utility.getOppositeSide(aSide), + ForgeDirection.UNKNOWN, + side.getOpposite(), null, false, (byte) 64, @@ -395,22 +395,23 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE } @Override - public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { - return isConnectedAtSide(aSide) && super.canInsertItem(aIndex, aStack, aSide); + public boolean canInsertItem(int aIndex, ItemStack aStack, int ordinalSide) { + return isConnectedAtSide(ForgeDirection.getOrientation(ordinalSide)) + && super.canInsertItem(aIndex, aStack, ordinalSide); } @Override - public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { - return isConnectedAtSide(aSide); + public boolean canExtractItem(int aIndex, ItemStack aStack, int ordinalSide) { + return isConnectedAtSide(ForgeDirection.getOrientation(ordinalSide)); } @Override - public int[] getAccessibleSlotsFromSide(int aSide) { + public int[] getAccessibleSlotsFromSide(int ordinalSide) { final IGregTechTileEntity tTileEntity = getBaseMetaTileEntity(); - final CoverInfo coverInfo = tTileEntity.getCoverInfoAtSide((byte) aSide); + final CoverInfo coverInfo = tTileEntity.getCoverInfoAtSide(ForgeDirection.getOrientation(ordinalSide)); final boolean tAllow = coverInfo.letsItemsIn(-2) || coverInfo.letsItemsOut(-2); if (tAllow) { - if (cacheSides == null) cacheSides = super.getAccessibleSlotsFromSide(aSide); + if (cacheSides == null) cacheSides = super.getAccessibleSlotsFromSide(ordinalSide); return cacheSides; } else { return GT_Values.emptyIntArray; @@ -418,15 +419,17 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return isConnectedAtSide(aSide); + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + return isConnectedAtSide(side); } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - if (!isConnectedAtSide(aSide)) return false; - if (isInventoryEmpty()) mLastReceivedFrom = aSide; - return mLastReceivedFrom == aSide && mInventory[aIndex] == null; + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + if (!isConnectedAtSide(side)) return false; + if (isInventoryEmpty()) mLastReceivedFrom = side; + return mLastReceivedFrom == side && mInventory[aIndex] == null; } @Override @@ -459,50 +462,55 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE else return getActualCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ); } - private AxisAlignedBB getActualCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) { + private AxisAlignedBB getActualCollisionBoundingBoxFromPool(World ignoredAWorld, int aX, int aY, int aZ) { final float tSpace = (1f - mThickNess) / 2; - float tSide0 = tSpace; - float tSide1 = 1f - tSpace; - float tSide2 = tSpace; - float tSide3 = 1f - tSpace; - float tSide4 = tSpace; - float tSide5 = 1f - tSpace; - - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 0) != 0) { - tSide0 = tSide2 = tSide4 = 0; - tSide3 = tSide5 = 1; + float spaceDown = tSpace; + float spaceUp = 1f - tSpace; + float spaceNorth = tSpace; + float spaceSouth = 1f - tSpace; + float spaceWest = tSpace; + float spaceEast = 1f - tSpace; + + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.DOWN) != 0) { + spaceDown = spaceNorth = spaceWest = 0; + spaceSouth = spaceEast = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 1) != 0) { - tSide2 = tSide4 = 0; - tSide1 = tSide3 = tSide5 = 1; + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.UP) != 0) { + spaceNorth = spaceWest = 0; + spaceUp = spaceSouth = spaceEast = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 2) != 0) { - tSide0 = tSide2 = tSide4 = 0; - tSide1 = tSide5 = 1; + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.NORTH) != 0) { + spaceDown = spaceNorth = spaceWest = 0; + spaceUp = spaceEast = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 3) != 0) { - tSide0 = tSide4 = 0; - tSide1 = tSide3 = tSide5 = 1; + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.SOUTH) != 0) { + spaceDown = spaceWest = 0; + spaceUp = spaceSouth = spaceEast = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 4) != 0) { - tSide0 = tSide2 = tSide4 = 0; - tSide1 = tSide3 = 1; + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.WEST) != 0) { + spaceDown = spaceNorth = spaceWest = 0; + spaceUp = spaceSouth = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide((byte) 5) != 0) { - tSide0 = tSide2 = 0; - tSide1 = tSide3 = tSide5 = 1; + if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.EAST) != 0) { + spaceDown = spaceNorth = 0; + spaceUp = spaceSouth = spaceEast = 1; } final byte tConn = ((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections; - if ((tConn & (1 << ForgeDirection.DOWN.ordinal())) != 0) tSide0 = 0f; - if ((tConn & (1 << ForgeDirection.UP.ordinal())) != 0) tSide1 = 1f; - if ((tConn & (1 << ForgeDirection.NORTH.ordinal())) != 0) tSide2 = 0f; - if ((tConn & (1 << ForgeDirection.SOUTH.ordinal())) != 0) tSide3 = 1f; - if ((tConn & (1 << ForgeDirection.WEST.ordinal())) != 0) tSide4 = 0f; - if ((tConn & (1 << ForgeDirection.EAST.ordinal())) != 0) tSide5 = 1f; - - return AxisAlignedBB - .getBoundingBox(aX + tSide4, aY + tSide0, aZ + tSide2, aX + tSide5, aY + tSide1, aZ + tSide3); + if ((tConn & (1 << ForgeDirection.DOWN.ordinal())) != 0) spaceDown = 0f; + if ((tConn & (1 << ForgeDirection.UP.ordinal())) != 0) spaceUp = 1f; + if ((tConn & (1 << ForgeDirection.NORTH.ordinal())) != 0) spaceNorth = 0f; + if ((tConn & (1 << ForgeDirection.SOUTH.ordinal())) != 0) spaceSouth = 1f; + if ((tConn & (1 << ForgeDirection.WEST.ordinal())) != 0) spaceWest = 0f; + if ((tConn & (1 << ForgeDirection.EAST.ordinal())) != 0) spaceEast = 1f; + + return AxisAlignedBB.getBoundingBox( + aX + spaceWest, + aY + spaceDown, + aZ + spaceNorth, + aX + spaceEast, + aY + spaceUp, + aZ + spaceSouth); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java index ad6a730863..a72ec19d79 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java @@ -15,6 +15,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.StatCollector; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; import com.gtnewhorizons.modularui.api.screen.ModularWindow; import com.gtnewhorizons.modularui.api.screen.UIBuildContext; @@ -84,9 +85,9 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier } @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, - boolean aActive, boolean aRedstone) { - return mTextures[aSide == aFacing ? 1 : 0][aColorIndex + 1]; + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection aFacing, + int colorIndex, boolean aActive, boolean redstoneLevel) { + return mTextures[side == aFacing ? 1 : 0][colorIndex + 1]; } @Override @@ -110,7 +111,7 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return true; } @@ -125,13 +126,13 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier } @Override - public boolean isInputFacing(byte aSide) { - return aSide != getBaseMetaTileEntity().getFrontFacing(); + public boolean isInputFacing(ForgeDirection side) { + return side != getBaseMetaTileEntity().getFrontFacing(); } @Override - public boolean isOutputFacing(byte aSide) { - return aSide == getBaseMetaTileEntity().getFrontFacing(); + public boolean isOutputFacing(ForgeDirection side) { + return side == getBaseMetaTileEntity().getFrontFacing(); } @Override @@ -236,7 +237,8 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { if (GT_ModHandler.isElectricItem(aStack) && aStack.getUnlocalizedName() .startsWith("gt.metaitem.01.")) { String name = aStack.getUnlocalizedName(); @@ -254,7 +256,8 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { if (!GT_Utility.isStackValid(aStack)) { return false; } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java index ef7242b420..0a589d6919 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java @@ -5,6 +5,7 @@ import static gregtech.api.enums.GT_Values.V; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidContainerItem; import net.minecraftforge.fluids.IFluidHandler; @@ -61,10 +62,11 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity } @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, - boolean aActive, boolean aRedstone) { - return mTextures[(aActive ? 5 : 0) + (aSide == aFacing ? 0 - : aSide == GT_Utility.getOppositeSide(aFacing) ? 1 : aSide == 0 ? 2 : aSide == 1 ? 3 : 4)][aColorIndex + 1]; + public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection side, + ForgeDirection facingDirection, int colorIndex, boolean active, boolean redstoneLevel) { + return mTextures[(active ? 5 : 0) + (side == facingDirection ? 0 + : side == facingDirection.getOpposite() ? 1 + : side == ForgeDirection.DOWN ? 2 : side == ForgeDirection.UP ? 3 : 4)][colorIndex + 1]; } @Override @@ -122,7 +124,7 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity } @Override - public boolean isFacingValid(byte aSide) { + public boolean isFacingValid(ForgeDirection side) { return true; } @@ -142,7 +144,7 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity } @Override - public boolean isOutputFacing(byte aSide) { + public boolean isOutputFacing(ForgeDirection side) { return true; } @@ -198,7 +200,7 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity } @Override - public boolean isLiquidOutput(byte aSide) { + public boolean isLiquidOutput(ForgeDirection side) { // return super.isLiquidOutput(aSide); return false; } @@ -330,8 +332,9 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack) && (getFuelValue(aStack, true) > 0 + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + return super.allowPutStack(aBaseMetaTileEntity, aIndex, side, aStack) && (getFuelValue(aStack, true) > 0 || getFuelValue(GT_Utility.getFluidForFilledItem(aStack, true), true) > 0); } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java index ff1365a735..e5766eee39 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull.java @@ -4,6 +4,7 @@ import static gregtech.api.enums.GT_Values.V; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; @@ -58,13 +59,13 @@ public class GT_MetaTileEntity_BasicHull extends GT_MetaTileEntity_BasicTank { } @Override - public boolean isInputFacing(byte aSide) { - return !isOutputFacing(aSide); + public boolean isInputFacing(ForgeDirection side) { + return !isOutputFacing(side); } @Override - public boolean isOutputFacing(byte aSide) { - return aSide == getBaseMetaTileEntity().getFrontFacing(); + public boolean isOutputFacing(ForgeDirection side) { + return side == getBaseMetaTileEntity().getFrontFacing(); } @Override @@ -93,7 +94,7 @@ public class GT_MetaTileEntity_BasicHull extends GT_MetaTileEntity_BasicTank { } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return true; } @@ -103,19 +104,21 @@ public class GT_MetaTileEntity_BasicHull extends GT_MetaTileEntity_BasicTank { } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return true; } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return true; } @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, - boolean aConnected, boolean aRedstone) { - return mTextures[Math.min(2, aSide) + (aSide == aFacing ? 3 : 0)][aColorIndex + 1]; + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection aFacing, + int colorIndex, boolean aConnected, boolean redstoneLevel) { + return mTextures[Math.min(2, side.ordinal()) + (side == aFacing ? 3 : 0)][colorIndex + 1]; } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java index c9b66e6baf..b6584b50ab 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicHull_NonElectric.java @@ -1,5 +1,7 @@ package gregtech.api.metatileentity.implementations; +import net.minecraftforge.common.util.ForgeDirection; + import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -21,9 +23,9 @@ public abstract class GT_MetaTileEntity_BasicHull_NonElectric extends GT_MetaTil } @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aConnections, - byte aColorIndex, boolean aConnected, boolean aRedstone) { - return mTextures[Math.min(2, aSide)][aColorIndex + 1]; + public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection sideDirection, + ForgeDirection facingDirection, int colorIndex, boolean active, boolean redstoneLevel) { + return mTextures[Math.min(2, sideDirection.ordinal())][colorIndex + 1]; } @Override @@ -42,12 +44,12 @@ public abstract class GT_MetaTileEntity_BasicHull_NonElectric extends GT_MetaTil } @Override - public boolean isInputFacing(byte aSide) { + public boolean isInputFacing(ForgeDirection side) { return false; } @Override - public boolean isOutputFacing(byte aSide) { + public boolean isOutputFacing(ForgeDirection side) { return false; } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java index 4868200bf1..b798c8cfef 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java @@ -1,6 +1,5 @@ package gregtech.api.metatileentity.implementations; -import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; import static gregtech.api.enums.GT_Values.V; import static gregtech.api.enums.GT_Values.debugCleanroom; import static gregtech.api.enums.Textures.BlockIcons.MACHINE_CASINGS; @@ -102,7 +101,8 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B mHasBeenUpdated = false, mStuttering = false, mCharge = false, mDecharge = false; public boolean mDisableFilter = true; public boolean mDisableMultiStack = true; - public int mMainFacing = -1, mProgresstime = 0, mMaxProgresstime = 0, mEUt = 0, mOutputBlocked = 0; + public int mProgresstime = 0, mMaxProgresstime = 0, mEUt = 0, mOutputBlocked = 0; + public ForgeDirection mMainFacing = ForgeDirection.UNKNOWN; public FluidStack mOutputFluid; public String mGUIName, mNEIName; protected final Power mPower; @@ -190,15 +190,15 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B return new BasicMachineEUPower(mTier, mAmperage); } - protected boolean isValidMainFacing(byte aSide) { - return aSide > 1; + protected boolean isValidMainFacing(ForgeDirection side) { + return side.offsetY == 0; // Neither DOWN nor UP } - public boolean setMainFacing(byte aSide) { - if (!isValidMainFacing(aSide)) return false; - mMainFacing = aSide; + public boolean setMainFacing(ForgeDirection side) { + if (!isValidMainFacing(side)) return false; + mMainFacing = side; if (getBaseMetaTileEntity().getFrontFacing() == mMainFacing) { - getBaseMetaTileEntity().setFrontFacing(GT_Utility.getOppositeSide(aSide)); + getBaseMetaTileEntity().setFrontFacing(side.getOpposite()); } onFacingChange(); onMachineBlockUpdate(); @@ -235,39 +235,39 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B } @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, - boolean aActive, boolean aRedstone) { + public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection sideDirection, + ForgeDirection facingDirection, int colorIndex, boolean active, boolean redstoneLevel) { final int textureIndex; - if (mMainFacing < 2) { - if (aSide == aFacing) { - textureIndex = aActive ? 2 : 3; + if (mMainFacing.offsetY != 0) { // UP or DOWN + if (sideDirection == facingDirection) { + textureIndex = active ? 2 : 3; } else { - textureIndex = switch (aSide) { - case 0 -> aActive ? 6 : 7; - case 1 -> aActive ? 4 : 5; - default -> aActive ? 0 : 1; + textureIndex = switch (sideDirection) { + case DOWN -> active ? 6 : 7; + case UP -> active ? 4 : 5; + default -> active ? 0 : 1; }; } } else { - if (aSide == mMainFacing) { - textureIndex = aActive ? 2 : 3; + if (sideDirection == mMainFacing) { + textureIndex = active ? 2 : 3; } else { - if (showPipeFacing() && aSide == aFacing) { - textureIndex = switch (aSide) { - case 0 -> aActive ? 8 : 9; - case 1 -> aActive ? 10 : 11; - default -> aActive ? 12 : 13; + if (showPipeFacing() && sideDirection == facingDirection) { + textureIndex = switch (sideDirection) { + case DOWN -> active ? 8 : 9; + case UP -> active ? 10 : 11; + default -> active ? 12 : 13; }; } else { - textureIndex = switch (aSide) { - case 0 -> aActive ? 6 : 7; - case 1 -> aActive ? 4 : 5; - default -> aActive ? 0 : 1; + textureIndex = switch (sideDirection) { + case DOWN -> active ? 6 : 7; + case UP -> active ? 4 : 5; + default -> active ? 0 : 1; }; } } } - return mTextures[textureIndex][aColorIndex + 1]; + return mTextures[textureIndex][colorIndex + 1]; } @Override @@ -298,8 +298,8 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B } @Override - public boolean isFacingValid(byte aFacing) { - return mMainFacing > 1 || aFacing > 1; + public boolean isFacingValid(ForgeDirection facing) { + return facing.offsetY == 0 || facing.offsetY == 0; } @Override @@ -308,12 +308,12 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B } @Override - public boolean isInputFacing(byte aSide) { - return aSide != mMainFacing; + public boolean isInputFacing(ForgeDirection side) { + return side != mMainFacing; } @Override - public boolean isOutputFacing(byte aSide) { + public boolean isOutputFacing(ForgeDirection side) { return false; } @@ -323,13 +323,13 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B } @Override - public boolean isLiquidInput(byte aSide) { - return aSide != mMainFacing && (mAllowInputFromOutputSide || aSide != getBaseMetaTileEntity().getFrontFacing()); + public boolean isLiquidInput(ForgeDirection side) { + return side != mMainFacing && (mAllowInputFromOutputSide || side != getBaseMetaTileEntity().getFrontFacing()); } @Override - public boolean isLiquidOutput(byte aSide) { - return aSide != mMainFacing; + public boolean isLiquidOutput(ForgeDirection side) { + return side != mMainFacing; } @Override @@ -490,8 +490,8 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B } return true; } - for (byte tSide : ALL_VALID_SIDES) { - if (aBaseMetaTileEntity.getAirAtSide(tSide)) { + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + if (aBaseMetaTileEntity.getAirAtSide(side)) { if (useModularUI()) { GT_UIInfos.openGTTileEntityUI(aBaseMetaTileEntity, aPlayer); } else { @@ -524,7 +524,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B @Override public void initDefaultModes(NBTTagCompound aNBT) { - mMainFacing = -1; + mMainFacing = ForgeDirection.UNKNOWN; if (!getBaseMetaTileEntity().getWorld().isRemote) { GT_ClientPreference tPreference = GT_Mod.gregtechproxy .getClientPreference(getBaseMetaTileEntity().getOwnerUuid()); @@ -545,7 +545,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B aNBT.setBoolean("mDisableFilter", mDisableFilter); aNBT.setBoolean("mDisableMultiStack", mDisableMultiStack); aNBT.setInteger("mEUt", mEUt); - aNBT.setInteger("mMainFacing", mMainFacing); + aNBT.setInteger("mMainFacing", mMainFacing.ordinal()); aNBT.setInteger("mProgresstime", mProgresstime); aNBT.setInteger("mMaxProgresstime", mMaxProgresstime); if (mOutputFluid != null) aNBT.setTag("mOutputFluid", mOutputFluid.writeToNBT(new NBTTagCompound())); @@ -565,7 +565,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B mDisableFilter = aNBT.getBoolean("mDisableFilter"); mDisableMultiStack = aNBT.getBoolean("mDisableMultiStack"); mEUt = aNBT.getInteger("mEUt"); - mMainFacing = aNBT.getInteger("mMainFacing"); + mMainFacing = ForgeDirection.getOrientation(aNBT.getInteger("mMainFacing")); mProgresstime = aNBT.getInteger("mProgresstime"); mMaxProgresstime = aNBT.getInteger("mMaxProgresstime"); mOutputFluid = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mOutputFluid")); @@ -634,12 +634,9 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B if (tTank != null) { FluidStack tDrained = drain(1000, false); if (tDrained != null) { - int tFilledAmount = tTank - .fill(ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()), tDrained, false); - if (tFilledAmount > 0) tTank.fill( - ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()), - drain(tFilledAmount, true), - true); + final int tFilledAmount = tTank.fill(aBaseMetaTileEntity.getBackFacing(), tDrained, false); + if (tFilledAmount > 0) + tTank.fill(aBaseMetaTileEntity.getBackFacing(), drain(tFilledAmount, true), true); } } if (getDrainableStack() == null) tRemovedOutputFluid = true; @@ -726,10 +723,10 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B } protected void doDisplayThings() { - if (mMainFacing < 2 && getBaseMetaTileEntity().getFrontFacing() > 1) { + if (mMainFacing.offsetY != 0 && getBaseMetaTileEntity().getFrontFacing().offsetY == 0) { mMainFacing = getBaseMetaTileEntity().getFrontFacing(); } - if (mMainFacing >= 2 && !mHasBeenUpdated) { + if (mMainFacing.offsetY == 0 && !mHasBeenUpdated) { mHasBeenUpdated = true; getBaseMetaTileEntity().setFrontFacing(getBaseMetaTileEntity().getBackFacing()); } @@ -852,12 +849,12 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B @Override public void onValueUpdate(byte aValue) { - mMainFacing = aValue; + mMainFacing = ForgeDirection.getOrientation(aValue); } @Override public byte getUpdateData() { - return (byte) mMainFacing; + return (byte) mMainFacing.ordinal(); } @Override @@ -955,8 +952,8 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B } @Override - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { - if (aSide == getBaseMetaTileEntity().getFrontFacing() || aSide == mMainFacing) { + public void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (side == getBaseMetaTileEntity().getFrontFacing() || side == mMainFacing) { if (aPlayer.isSneaking()) { mDisableFilter = !mDisableFilter; GT_Utility.sendChatToPlayer( @@ -973,44 +970,46 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B } @Override - public boolean onSolderingToolRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, - float aZ) { - if (!aPlayer.isSneaking()) return false; - boolean click = super.onSolderingToolRightClick(aSide, aWrenchingSide, aPlayer, aX, aY, aZ); + public boolean onSolderingToolRightClick(ForgeDirection side, ForgeDirection wrenchingSide, + EntityPlayer entityPlayer, float aX, float aY, float aZ) { + if (!entityPlayer.isSneaking()) return false; + final boolean click = super.onSolderingToolRightClick(side, wrenchingSide, entityPlayer, aX, aY, aZ); if (click) return true; - if (aWrenchingSide != mMainFacing) return false; + if (wrenchingSide != mMainFacing) return false; mDisableMultiStack = !mDisableMultiStack; GT_Utility.sendChatToPlayer( - aPlayer, + entityPlayer, StatCollector.translateToLocal("GT5U.hatch.disableMultiStack." + mDisableMultiStack)); return true; } @Override - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) { - if (aSide != mMainFacing) return true; + public boolean allowCoverOnSide(ForgeDirection side, GT_ItemStack aCoverID) { + if (side != mMainFacing) return true; GT_CoverBehaviorBase<?> tBehavior = GregTech_API.getCoverBehaviorNew(aCoverID.toStack()); return tBehavior.isGUIClickable( - aSide, + side, GT_Utility.stackToInt(aCoverID.toStack()), tBehavior.createDataObject(), getBaseMetaTileEntity()); } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide != mMainFacing && aIndex >= getOutputSlot() && aIndex < getOutputSlot() + mOutputItems.length; + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + return side != mMainFacing && aIndex >= getOutputSlot() && aIndex < getOutputSlot() + mOutputItems.length; } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - if (aSide == mMainFacing || aIndex < getInputSlot() + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + if (side == mMainFacing || aIndex < getInputSlot() || aIndex >= getInputSlot() + mInputSlotCount - || (!mAllowInputFromOutputSide && aSide == aBaseMetaTileEntity.getFrontFacing())) return false; + || (!mAllowInputFromOutputSide && side == aBaseMetaTileEntity.getFrontFacing())) return false; for (int i = getInputSlot(), j = i + mInputSlotCount; i < j; i++) if (GT_Utility.areStacksEqual(GT_OreDictUnificator.get(aStack), mInventory[i]) && mDisableMultiStack) return i == aIndex; - return mDisableFilter || allowPutStackValidated(aBaseMetaTileEntity, aIndex, aSide, aStack); + return mDisableFilter || allowPutStackValidated(aBaseMetaTileEntity, aIndex, side, aStack); } /** @@ -1018,7 +1017,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B * method it is ensured there is no such kind of item inside any input slots already. Otherwise, you don't need to * check for it anyway. */ - protected boolean allowPutStackValidated(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, + protected boolean allowPutStackValidated(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, ItemStack aStack) { return !mDisableMultiStack || mInventory[aIndex] == null; } @@ -1265,13 +1264,16 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B tag.setInteger("progressSingleBlock", mProgresstime); tag.setInteger("maxProgressSingleBlock", mMaxProgresstime); - tag.setInteger("mainFacingSingleBlock", mMainFacing); + tag.setInteger("mainFacingSingleBlock", mMainFacing.ordinal()); tag.setBoolean("stutteringSingleBlock", mStuttering); - IGregTechTileEntity tileEntity = getBaseMetaTileEntity(); + final IGregTechTileEntity tileEntity = getBaseMetaTileEntity(); if (tileEntity != null) { tag.setBoolean("isActiveSingleBlock", tileEntity.isActive()); - tag.setInteger("outputFacingSingleBlock", tileEntity.getFrontFacing()); + tag.setInteger( + "outputFacingSingleBlock", + tileEntity.getFrontFacing() + .ordinal()); if (tileEntity.isActive()) tag.setInteger("eut", mEUt); } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java index 38fce53658..2ea4b25860 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_Bronze.java @@ -100,7 +100,7 @@ public abstract class GT_MetaTileEntity_BasicMachine_Bronze extends GT_MetaTileE } @Override - public boolean isInputFacing(byte aSide) { + public boolean isInputFacing(ForgeDirection side) { return false; } @@ -130,8 +130,8 @@ public abstract class GT_MetaTileEntity_BasicMachine_Bronze extends GT_MetaTileE } @Override - public boolean isFacingValid(byte aFacing) { - return super.isFacingValid(aFacing) && aFacing != mMainFacing; + public boolean isFacingValid(ForgeDirection facing) { + return super.isFacingValid(facing) && facing != mMainFacing; } @Override @@ -145,13 +145,13 @@ public abstract class GT_MetaTileEntity_BasicMachine_Bronze extends GT_MetaTileE } @Override - public boolean isLiquidInput(byte aSide) { - return aSide != mMainFacing; + public boolean isLiquidInput(ForgeDirection side) { + return side != mMainFacing; } @Override - public boolean isLiquidOutput(byte aSide) { - return aSide != mMainFacing; + public boolean isLiquidOutput(ForgeDirection side) { + return side != mMainFacing; } @Override @@ -224,9 +224,9 @@ public abstract class GT_MetaTileEntity_BasicMachine_Bronze extends GT_MetaTileE new ParticleEventBuilder().setIdentifier(ParticleFX.CLOUD) .setWorld(getBaseMetaTileEntity().getWorld()) .setMotion( - ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetX / 5.0, - ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetY / 5.0, - ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()).offsetZ / 5.0) + getBaseMetaTileEntity().getFrontFacing().offsetX / 5.0, + getBaseMetaTileEntity().getFrontFacing().offsetY / 5.0, + getBaseMetaTileEntity().getFrontFacing().offsetZ / 5.0) .<ParticleEventBuilder>times( 8, x -> x @@ -244,9 +244,9 @@ public abstract class GT_MetaTileEntity_BasicMachine_Bronze extends GT_MetaTileE } @Override - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) { + public boolean allowCoverOnSide(ForgeDirection side, GT_ItemStack aCoverID) { return GregTech_API.getCoverBehaviorNew(aCoverID.toStack()) - .isSimpleCover() && super.allowCoverOnSide(aSide, aCoverID); + .isSimpleCover() && super.allowCoverOnSide(side, aCoverID); } public float getSteamDamage() { diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java index a80e235a65..2d4b080093 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java @@ -7,6 +7,7 @@ import static gregtech.api.enums.GT_Values.ticksBetweenSounds; import static gregtech.api.enums.Mods.BartWorks; import static gregtech.api.enums.Mods.GregTech; import static gregtech.api.objects.XSTR.XSTR_INSTANCE; +import static net.minecraftforge.common.util.ForgeDirection.UP; import java.util.Locale; @@ -559,9 +560,9 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ } @Override - protected boolean allowPutStackValidated(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, + protected boolean allowPutStackValidated(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, ItemStack aStack) { - if (!super.allowPutStackValidated(aBaseMetaTileEntity, aIndex, aSide, aStack)) return false; + if (!super.allowPutStackValidated(aBaseMetaTileEntity, aIndex, side, aStack)) return false; switch (this.mInputSlotCount) { case 0 -> { return false; @@ -636,10 +637,8 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ // noinspection SwitchStatementWithTooFewBranches switch (this.mSpecialEffect) { case TOP_SMOKE -> { - final byte topFacing = (byte) ForgeDirection.UP.ordinal(); - if (aBaseMetaTileEntity.getFrontFacing() != topFacing - && aBaseMetaTileEntity.getCoverIDAtSide(topFacing) == 0 - && !aBaseMetaTileEntity.getOpacityAtSide(topFacing)) { + if (aBaseMetaTileEntity.getFrontFacing() != UP && aBaseMetaTileEntity.getCoverIDAtSide(UP) == 0 + && !aBaseMetaTileEntity.getOpacityAtSide(UP)) { new ParticleEventBuilder().setMotion(0.0D, 0.0D, 0.0D) .setIdentifier(ParticleFX.SMOKE) @@ -671,9 +670,9 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ // Random Sparkles at main face if (aBaseMetaTileEntity.isActive() && XSTR_INSTANCE.nextInt(3) == 0) { - final byte mainFacing = (byte) this.mMainFacing; + final ForgeDirection mainFacing = this.mMainFacing; - if (mainFacing > 1 && aBaseMetaTileEntity.getCoverIDAtSide(mainFacing) == 0 + if (mainFacing.ordinal() > 1 && aBaseMetaTileEntity.getCoverIDAtSide(mainFacing) == 0 && !aBaseMetaTileEntity.getOpacityAtSide(mainFacing)) { final double oX = aBaseMetaTileEntity.getXCoord(); @@ -686,17 +685,17 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ y = oY + XSTR_INSTANCE.nextFloat() * 10D / 16D + 5D / 16D; - if (mainFacing == ForgeDirection.WEST.ordinal()) { + if (mainFacing == ForgeDirection.WEST) { x = oX - offset; mX = -.05D; z = oZ + horizontal; mZ = 0D; - } else if (mainFacing == ForgeDirection.EAST.ordinal()) { + } else if (mainFacing == ForgeDirection.EAST) { x = oX + offset; mX = .05D; z = oZ + horizontal; mZ = 0D; - } else if (mainFacing == ForgeDirection.NORTH.ordinal()) { + } else if (mainFacing == ForgeDirection.NORTH) { x = oX + horizontal; mX = 0D; z = oZ - offset; diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java index 7d4723d4f6..f3a0af38f5 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicTank.java @@ -308,7 +308,7 @@ public abstract class GT_MetaTileEntity_BasicTank extends GT_MetaTileEntity_Tier } @Override - public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { + public FluidTankInfo[] getTankInfo(ForgeDirection side) { if (getCapacity() <= 0 && !getBaseMetaTileEntity().hasSteamEngineUpgrade()) return new FluidTankInfo[] {}; if (isDrainableStackSeparate()) { return new FluidTankInfo[] { new FluidTankInfo(getFillableStack(), getCapacity()), @@ -319,12 +319,14 @@ public abstract class GT_MetaTileEntity_BasicTank extends GT_MetaTileEntity_Tier } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return aIndex == getOutputSlot(); } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return aIndex == getInputSlot(); } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java index f7f69ae924..cf1ba436e1 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java @@ -4,6 +4,7 @@ import static gregtech.api.enums.GT_Values.V; import static gregtech.api.enums.Textures.BlockIcons.*; import java.util.*; +import java.util.stream.IntStream; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -97,14 +98,12 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM } @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, - boolean aActive, boolean aRedstone) { - int colorIndex = aColorIndex + 1; - ForgeDirection side = ForgeDirection.VALID_DIRECTIONS[aSide]; - ForgeDirection facing = ForgeDirection.VALID_DIRECTIONS[aFacing]; - if (side == facing) return mTextures[FRONT_INDEX][colorIndex]; - if (ForgeDirection.OPPOSITES[aSide] == aFacing) return mTextures[OUTPUT_INDEX][colorIndex]; - switch (facing) { + public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection sideDirection, + ForgeDirection facingDirection, int colorIndex, boolean active, boolean redstoneLevel) { + colorIndex = colorIndex + 1; + if (sideDirection == facingDirection) return mTextures[FRONT_INDEX][colorIndex]; + if (sideDirection.getOpposite() == facingDirection) return mTextures[OUTPUT_INDEX][colorIndex]; + switch (facingDirection) { case DOWN -> { return mTextures[ARROW_UP_INDEX][colorIndex]; // ARROW_UP } @@ -112,7 +111,7 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM return mTextures[ARROW_DOWN_INDEX][colorIndex]; // ARROW_DOWN } case NORTH -> { - switch (side) { + switch (sideDirection) { case DOWN, UP -> { return mTextures[ARROW_DOWN_INDEX][colorIndex]; // ARROW_DOWN } @@ -126,7 +125,7 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM } } case SOUTH -> { - switch (side) { + switch (sideDirection) { case DOWN, UP -> { return mTextures[ARROW_UP_INDEX][colorIndex]; // ARROW_UP } @@ -140,7 +139,7 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM } } case WEST -> { - switch (side) { + switch (sideDirection) { case UP, SOUTH -> { return mTextures[ARROW_RIGHT_INDEX][colorIndex]; // ARROW_RIGHT } @@ -151,7 +150,7 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM } } case EAST -> { - switch (side) { + switch (sideDirection) { case UP, SOUTH -> { return mTextures[ARROW_LEFT_INDEX][colorIndex]; // ARROW_LEFT } @@ -177,7 +176,7 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return true; } @@ -192,13 +191,13 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM } @Override - public boolean isInputFacing(byte aSide) { - return !isOutputFacing(aSide); + public boolean isInputFacing(ForgeDirection side) { + return !isOutputFacing(side); } @Override - public boolean isOutputFacing(byte aSide) { - return getBaseMetaTileEntity().getBackFacing() == aSide; + public boolean isOutputFacing(ForgeDirection side) { + return getBaseMetaTileEntity().getBackFacing() == side; } @Override @@ -281,8 +280,8 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM } @Override - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { - if (aSide == getBaseMetaTileEntity().getBackFacing()) { + public void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (side == getBaseMetaTileEntity().getBackFacing()) { mTargetStackSize = (byte) ((mTargetStackSize + (aPlayer.isSneaking() ? -1 : 1)) % 65); if (mTargetStackSize < 0) { @@ -299,11 +298,11 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM } @Override - public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, - float aZ) { - aWrenchingSide = GT_Utility.getOppositeSide(aWrenchingSide); - if (getBaseMetaTileEntity().isValidFacing(aWrenchingSide)) { - getBaseMetaTileEntity().setFrontFacing(aWrenchingSide); + public boolean onWrenchRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer entityPlayer, + float aX, float aY, float aZ) { + wrenchingSide = wrenchingSide.getOpposite(); + if (getBaseMetaTileEntity().isValidFacing(wrenchingSide)) { + getBaseMetaTileEntity().setFrontFacing(wrenchingSide); return true; } return false; @@ -311,18 +310,15 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM protected void handleRedstoneOutput(IGregTechTileEntity aBaseMetaTileEntity) { if (bRedstoneIfFull) { - boolean hasEmptySlots = false; - for (int i = 0; i < mInventory.length; i++) { - if (isValidSlot(i) && mInventory[i] == null) { - hasEmptySlots = true; - break; - } - } - if (bInvert) hasEmptySlots = !hasEmptySlots; - for (byte b = 0; b < 6; b++) - aBaseMetaTileEntity.setInternalOutputRedstoneSignal(b, hasEmptySlots ? (byte) 0 : (byte) 15); + final boolean hasEmptySlots = IntStream.range(0, mInventory.length) + .anyMatch(i -> isValidSlot(i) && mInventory[i] == null); + Arrays.stream(ForgeDirection.VALID_DIRECTIONS) + .forEach( + side -> aBaseMetaTileEntity + .setInternalOutputRedstoneSignal(side, (byte) (bInvert ^ hasEmptySlots ? 0 : 15))); } else { - for (byte b = 0; b < 6; b++) aBaseMetaTileEntity.setInternalOutputRedstoneSignal(b, (byte) 0); + for (ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) + aBaseMetaTileEntity.setInternalOutputRedstoneSignal(side, (byte) 0); } } @@ -341,14 +337,15 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM @Override public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) { - for (byte b = 0; b < 6; b++) aBaseMetaTileEntity.setInternalOutputRedstoneSignal(b, (byte) 0); + for (ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) + aBaseMetaTileEntity.setInternalOutputRedstoneSignal(side, (byte) 0); } protected void moveItems(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { moveItems(aBaseMetaTileEntity, aTimer, 1); } - protected void moveItems(IGregTechTileEntity aBaseMetaTileEntity, long aTimer, int stacks) { + protected void moveItems(IGregTechTileEntity aBaseMetaTileEntity, long ignoredTimer, int stacks) { int tCost; if (bStockingMode) tCost = GT_Utility.moveMultipleItemStacks( aBaseMetaTileEntity, @@ -381,13 +378,15 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return true; } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide != aBaseMetaTileEntity.getBackFacing(); + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + return side != aBaseMetaTileEntity.getBackFacing(); } @Override @@ -432,18 +431,18 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM } @Override - public boolean onSolderingToolRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, - float aZ) { - if (aPlayer.isSneaking()) { + public boolean onSolderingToolRightClick(ForgeDirection side, ForgeDirection wrenchingSide, + EntityPlayer entityPlayer, float aX, float aY, float aZ) { + if (entityPlayer.isSneaking()) { // I was so proud of all this but I literally just copied code from OutputBus bSortStacks = !bSortStacks; GT_Utility.sendChatToPlayer( - aPlayer, + entityPlayer, GT_Utility.trans("200", "Sort mode: ") + (bSortStacks ? GT_Utility.trans("088", "Enabled") : GT_Utility.trans("087", "Disabled"))); return true; } - return super.onSolderingToolRightClick(aSide, aWrenchingSide, aPlayer, aX, aY, aZ); + return super.onSolderingToolRightClick(side, wrenchingSide, entityPlayer, aX, aY, aZ); } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_EnhancedMultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_EnhancedMultiBlockBase.java index 6fdfa53a14..9fac4a880c 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_EnhancedMultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_EnhancedMultiBlockBase.java @@ -76,16 +76,16 @@ public abstract class GT_MetaTileEntity_EnhancedMultiBlockBase<T extends GT_Meta } @Override - public final boolean isFacingValid(byte aFacing) { - return canSetToDirectionAny(ForgeDirection.getOrientation(aFacing)); + public final boolean isFacingValid(ForgeDirection facing) { + return canSetToDirectionAny(facing); } @Override - public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, - float aZ) { - if (aWrenchingSide != getBaseMetaTileEntity().getFrontFacing()) - return super.onWrenchRightClick(aSide, aWrenchingSide, aPlayer, aX, aY, aZ); - if (aPlayer.isSneaking()) { + public boolean onWrenchRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer entityPlayer, + float aX, float aY, float aZ) { + if (wrenchingSide != getBaseMetaTileEntity().getFrontFacing()) + return super.onWrenchRightClick(side, wrenchingSide, entityPlayer, aX, aY, aZ); + if (entityPlayer.isSneaking()) { // we won't be allowing horizontal flips, as it can be perfectly emulated by rotating twice and flipping // horizontally // allowing an extra round of flip make it hard to draw meaningful flip markers in GT_Proxy#drawGrid @@ -98,7 +98,7 @@ public abstract class GT_MetaTileEntity_EnhancedMultiBlockBase<T extends GT_Meta @Override public void onFacingChange() { - toolSetDirection(ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing())); + toolSetDirection(getBaseMetaTileEntity().getFrontFacing()); } @Override @@ -145,7 +145,7 @@ public abstract class GT_MetaTileEntity_EnhancedMultiBlockBase<T extends GT_Meta public void loadNBTData(NBTTagCompound aNBT) { super.loadNBTData(aNBT); mExtendedFacing = ExtendedFacing.of( - ForgeDirection.getOrientation(getBaseMetaTileEntity().getFrontFacing()), + getBaseMetaTileEntity().getFrontFacing(), Rotation.byIndex(aNBT.getByte("eRotation")), Flip.byIndex(aNBT.getByte("eFlip"))); } @@ -157,14 +157,14 @@ public abstract class GT_MetaTileEntity_EnhancedMultiBlockBase<T extends GT_Meta /** * Explanation of the world coordinate these offset means: - * + * <p> * Imagine you stand in front of the controller, with controller facing towards you not rotated or flipped. - * + * <p> * The horizontalOffset would be the number of blocks on the left side of the controller, not counting controller * itself. The verticalOffset would be the number of blocks on the top side of the controller, not counting * controller itself. The depthOffset would be the number of blocks between you and controller, not counting * controller itself. - * + * <p> * All these offsets can be negative. */ protected final boolean checkPiece(String piece, int horizontalOffset, int verticalOffset, int depthOffset) { diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java index f0ce474fd1..ec6d1fe11f 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch.java @@ -1,6 +1,7 @@ package gregtech.api.metatileentity.implementations; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Textures; @@ -61,16 +62,16 @@ public abstract class GT_MetaTileEntity_Hatch extends GT_MetaTileEntity_BasicTan public abstract ITexture[] getTexturesInactive(ITexture aBaseTexture); @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, - boolean aActive, boolean aRedstone) { + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection aFacing, + int colorIndex, boolean aActive, boolean redstoneLevel) { int texturePointer = (byte) (actualTexture & 0x7F); // just to be sure, from my testing the 8th bit cannot be // set clientside int textureIndex = texturePointer | (mTexturePage << 7); // Shift seven since one page is 128 textures! try { - if (aSide != aFacing) { + if (side != aFacing) { if (textureIndex > 0) return new ITexture[] { Textures.BlockIcons.casingTexturePages[mTexturePage][texturePointer] }; - else return new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1] }; + else return new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[mTier][colorIndex + 1] }; } else { if (textureIndex > 0) { if (aActive) @@ -78,8 +79,8 @@ public abstract class GT_MetaTileEntity_Hatch extends GT_MetaTileEntity_BasicTan else return getTexturesInactive( Textures.BlockIcons.casingTexturePages[mTexturePage][texturePointer]); } else { - if (aActive) return getTexturesActive(Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1]); - else return getTexturesInactive(Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1]); + if (aActive) return getTexturesActive(Textures.BlockIcons.MACHINE_CASINGS[mTier][colorIndex + 1]); + else return getTexturesInactive(Textures.BlockIcons.MACHINE_CASINGS[mTier][colorIndex + 1]); } } } catch (NullPointerException npe) { @@ -108,7 +109,7 @@ public abstract class GT_MetaTileEntity_Hatch extends GT_MetaTileEntity_BasicTan /** * Sets texture with page and index, called on add to machine list - * + * * @param id (page<<7)+index of the texture */ public final void updateTexture(int id) { @@ -118,7 +119,7 @@ public abstract class GT_MetaTileEntity_Hatch extends GT_MetaTileEntity_BasicTan /** * Sets texture with page and index, rather unusable, but kept FFS - * + * * @param page page of texure * @param index index of texure */ diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_DataAccess.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_DataAccess.java index 7617725d92..122dcfa746 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_DataAccess.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_DataAccess.java @@ -5,6 +5,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_DATA_ACCESS; 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; @@ -58,7 +59,7 @@ public class GT_MetaTileEntity_Hatch_DataAccess extends GT_MetaTileEntity_Hatch } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return true; } @@ -84,12 +85,14 @@ public class GT_MetaTileEntity_Hatch_DataAccess extends GT_MetaTileEntity_Hatch } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return mTier >= 8 && !aBaseMetaTileEntity.isActive(); } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return mTier >= 8 && !aBaseMetaTileEntity.isActive(); } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java index cc1d0ac404..8e621434db 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Dynamo.java @@ -4,6 +4,7 @@ import static gregtech.api.enums.GT_Values.V; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; @@ -51,7 +52,7 @@ public class GT_MetaTileEntity_Hatch_Dynamo extends GT_MetaTileEntity_Hatch { } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return true; } @@ -66,8 +67,8 @@ public class GT_MetaTileEntity_Hatch_Dynamo extends GT_MetaTileEntity_Hatch { } @Override - public boolean isOutputFacing(byte aSide) { - return aSide == getBaseMetaTileEntity().getFrontFacing(); + public boolean isOutputFacing(ForgeDirection side) { + return side == getBaseMetaTileEntity().getFrontFacing(); } @Override @@ -96,12 +97,14 @@ public class GT_MetaTileEntity_Hatch_Dynamo extends GT_MetaTileEntity_Hatch { } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java index 2ad670fae1..d9be12671d 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Energy.java @@ -4,6 +4,7 @@ import static gregtech.api.enums.GT_Values.V; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; @@ -61,7 +62,7 @@ public class GT_MetaTileEntity_Hatch_Energy extends GT_MetaTileEntity_Hatch { } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return true; } @@ -76,8 +77,8 @@ public class GT_MetaTileEntity_Hatch_Energy extends GT_MetaTileEntity_Hatch { } @Override - public boolean isInputFacing(byte aSide) { - return aSide == getBaseMetaTileEntity().getFrontFacing(); + public boolean isInputFacing(ForgeDirection side) { + return side == getBaseMetaTileEntity().getFrontFacing(); } @Override @@ -111,12 +112,14 @@ public class GT_MetaTileEntity_Hatch_Energy extends GT_MetaTileEntity_Hatch { } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java index 408e1eca14..e659fd10a9 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Input.java @@ -6,6 +6,7 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_PIPE_IN; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; import gregtech.GT_Mod; @@ -77,7 +78,7 @@ public class GT_MetaTileEntity_Hatch_Input extends GT_MetaTileEntity_Hatch { } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return true; } @@ -151,13 +152,15 @@ public class GT_MetaTileEntity_Hatch_Input extends GT_MetaTileEntity_Hatch { } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == 1; + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + return side == aBaseMetaTileEntity.getFrontFacing() && aIndex == 1; } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == 0 + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + return side == aBaseMetaTileEntity.getFrontFacing() && aIndex == 0 && (mRecipeMap == null || mRecipeMap.containsInput(aStack) || mRecipeMap.containsInput(GT_Utility.getFluidForFilledItem(aStack, true))); } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java index 4bbb98c1da..0a8144d620 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java @@ -10,6 +10,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.StatCollector; +import net.minecraftforge.common.util.ForgeDirection; import com.gtnewhorizons.modularui.api.screen.ModularWindow; import com.gtnewhorizons.modularui.api.screen.UIBuildContext; @@ -94,7 +95,7 @@ public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return true; } @@ -201,8 +202,8 @@ public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch } @Override - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { - if (!getBaseMetaTileEntity().getCoverInfoAtSide(aSide) + public void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (!getBaseMetaTileEntity().getCoverInfoAtSide(side) .isGUIClickable()) return; if (aPlayer.isSneaking()) { if (disableSort) { @@ -227,14 +228,16 @@ public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { if (aIndex == getCircuitSlot()) return false; - return aSide == getBaseMetaTileEntity().getFrontFacing(); + return side == getBaseMetaTileEntity().getFrontFacing(); } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide == getBaseMetaTileEntity().getFrontFacing() && aIndex != getCircuitSlot() + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + return side == getBaseMetaTileEntity().getFrontFacing() && aIndex != getCircuitSlot() && (mRecipeMap == null || disableFilter || mRecipeMap.containsInput(aStack)) && (disableLimited || limitedAllowPutStack(aIndex, aStack)); } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java index 12a55d097c..3b56a2dbbf 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java @@ -14,6 +14,7 @@ import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.FakePlayer; +import net.minecraftforge.common.util.ForgeDirection; import com.gtnewhorizons.modularui.api.screen.ModularWindow; import com.gtnewhorizons.modularui.api.screen.UIBuildContext; @@ -125,7 +126,7 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return true; } @@ -147,10 +148,10 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch } @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, - float aY, float aZ) { + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, ForgeDirection side, + float aX, float aY, float aZ) { if (aBaseMetaTileEntity.isClientSide()) return true; - if (aSide == aBaseMetaTileEntity.getFrontFacing()) { + if (side == aBaseMetaTileEntity.getFrontFacing()) { // only allow OC robot fake player if (aPlayer instanceof FakePlayer && !aPlayer.getGameProfile() .getName() @@ -294,12 +295,14 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return mAuto && GT_Mod.gregtechproxy.mAMHInteraction; } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { if (mAuto && GT_Mod.gregtechproxy.mAMHInteraction) { for (int i = 0; i < getSizeInventory(); i++) if (GT_Utility.areStacksEqual( GT_OreDictUnificator.get(false, aStack), diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java index 1fdafd7f35..9cec94fe9b 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java @@ -86,12 +86,14 @@ public class GT_MetaTileEntity_Hatch_Muffler extends GT_MetaTileEntity_Hatch { } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } @@ -118,8 +120,8 @@ public class GT_MetaTileEntity_Hatch_Muffler extends GT_MetaTileEntity_Hatch { } @Override - public boolean isFacingValid(byte aFacing) { - return facings[aFacing]; + public boolean isFacingValid(ForgeDirection facing) { + return facings[facing.ordinal()]; } @Override @@ -144,18 +146,18 @@ public class GT_MetaTileEntity_Hatch_Muffler extends GT_MetaTileEntity_Hatch { chk2 = chk3 = false; } - IGregTechTileEntity aMuffler = this.getBaseMetaTileEntity(); - ForgeDirection aDir = ForgeDirection.getOrientation(aMuffler.getFrontFacing()); - float xPos = aDir.offsetX * 0.76F + aMuffler.getXCoord() + 0.25F; - float yPos = aDir.offsetY * 0.76F + aMuffler.getYCoord() + 0.25F; - float zPos = aDir.offsetZ * 0.76F + aMuffler.getZCoord() + 0.25F; + final IGregTechTileEntity aMuffler = this.getBaseMetaTileEntity(); + final ForgeDirection aDir = aMuffler.getFrontFacing(); + final float xPos = aDir.offsetX * 0.76F + aMuffler.getXCoord() + 0.25F; + final float yPos = aDir.offsetY * 0.76F + aMuffler.getYCoord() + 0.25F; + final float zPos = aDir.offsetZ * 0.76F + aMuffler.getZCoord() + 0.25F; - float ySpd = aDir.offsetY * 0.1F + 0.2F + 0.1F * XSTR_INSTANCE.nextFloat(); - float xSpd; - float zSpd; + final float ySpd = aDir.offsetY * 0.1F + 0.2F + 0.1F * XSTR_INSTANCE.nextFloat(); + final float xSpd; + final float zSpd; if (aDir.offsetY == -1) { - float temp = XSTR_INSTANCE.nextFloat() * 2 * (float) Math.PI; + final float temp = XSTR_INSTANCE.nextFloat() * 2 * (float) Math.PI; xSpd = (float) Math.sin(temp) * 0.1F; zSpd = (float) Math.cos(temp) * 0.1F; } else { @@ -163,7 +165,7 @@ public class GT_MetaTileEntity_Hatch_Muffler extends GT_MetaTileEntity_Hatch { zSpd = aDir.offsetZ * (0.1F + 0.2F * XSTR_INSTANCE.nextFloat()); } - WorldSpawnedEventBuilder.ParticleEventBuilder events = new WorldSpawnedEventBuilder.ParticleEventBuilder() + final WorldSpawnedEventBuilder.ParticleEventBuilder events = new WorldSpawnedEventBuilder.ParticleEventBuilder() .setIdentifier(name) .setWorld(aWorld) .setMotion(xSpd, ySpd, zSpd); diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java index c3cc1edc9b..a967df47f3 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java @@ -92,7 +92,7 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch impl } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return true; } @@ -102,7 +102,7 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch impl } @Override - public boolean isLiquidInput(byte aSide) { + public boolean isLiquidInput(ForgeDirection side) { return false; } @@ -124,20 +124,14 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch impl IFluidHandler tTileEntity = aBaseMetaTileEntity .getITankContainerAtSide(aBaseMetaTileEntity.getFrontFacing()); if (tTileEntity != null) { - FluidStack tDrained = aBaseMetaTileEntity.drain( - ForgeDirection.getOrientation(aBaseMetaTileEntity.getFrontFacing()), - Math.max(1, mFluid.amount), - false); + FluidStack tDrained = aBaseMetaTileEntity + .drain(aBaseMetaTileEntity.getFrontFacing(), Math.max(1, mFluid.amount), false); if (tDrained != null) { - int tFilledAmount = tTileEntity - .fill(ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()), tDrained, false); + int tFilledAmount = tTileEntity.fill(aBaseMetaTileEntity.getBackFacing(), tDrained, false); if (tFilledAmount > 0) { tTileEntity.fill( - ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()), - aBaseMetaTileEntity.drain( - ForgeDirection.getOrientation(aBaseMetaTileEntity.getFrontFacing()), - tFilledAmount, - true), + aBaseMetaTileEntity.getBackFacing(), + aBaseMetaTileEntity.drain(aBaseMetaTileEntity.getFrontFacing(), tFilledAmount, true), true); } } @@ -222,13 +216,15 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch impl } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == 1; + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + return side == aBaseMetaTileEntity.getFrontFacing() && aIndex == 1; } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == 0; + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + return side == aBaseMetaTileEntity.getFrontFacing() && aIndex == 0; } @Override @@ -237,8 +233,8 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch impl } @Override - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { - if (!getBaseMetaTileEntity().getCoverInfoAtSide(aSide) + public void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (!getBaseMetaTileEntity().getCoverInfoAtSide(side) .isGUIClickable()) return; if (aPlayer.isSneaking()) { mMode = (byte) ((mMode + 9) % 10); @@ -323,8 +319,8 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch impl } } - private boolean tryToLockHatch(EntityPlayer aPlayer, byte aSide) { - if (!getBaseMetaTileEntity().getCoverInfoAtSide(aSide) + private boolean tryToLockHatch(EntityPlayer aPlayer, ForgeDirection side) { + if (!getBaseMetaTileEntity().getCoverInfoAtSide(side) .isGUIClickable()) return false; if (!isFluidLocked()) return false; final ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem(); @@ -371,10 +367,10 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch impl } @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, - float aY, float aZ) { - if (tryToLockHatch(aPlayer, aSide)) return true; - return super.onRightclick(aBaseMetaTileEntity, aPlayer, aSide, aX, aY, aZ); + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, ForgeDirection side, + float aX, float aY, float aZ) { + if (tryToLockHatch(aPlayer, side)) return true; + return super.onRightclick(aBaseMetaTileEntity, aPlayer, side, aX, aY, aZ); } public boolean outputsSteam() { diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java index f04840d7d3..e3915d4854 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBus.java @@ -7,6 +7,7 @@ import static gregtech.api.util.GT_Utility.moveMultipleItemStacks; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; import com.gtnewhorizons.modularui.api.screen.ModularWindow; import com.gtnewhorizons.modularui.api.screen.UIBuildContext; @@ -85,7 +86,7 @@ public class GT_MetaTileEntity_Hatch_OutputBus extends GT_MetaTileEntity_Hatch i } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return true; } @@ -147,12 +148,14 @@ public class GT_MetaTileEntity_Hatch_OutputBus extends GT_MetaTileEntity_Hatch i } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide == aBaseMetaTileEntity.getFrontFacing(); + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + return side == aBaseMetaTileEntity.getFrontFacing(); } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index 7d37b6747f..e6ce7d14c2 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -136,8 +136,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity } @Override - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) { - return aSide != getBaseMetaTileEntity().getFrontFacing(); + public boolean allowCoverOnSide(ForgeDirection side, GT_ItemStack aCoverID) { + return side != getBaseMetaTileEntity().getFrontFacing(); } /** Override this if you are a multi-block that has added support for single recipe locking. */ @@ -146,7 +146,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity } @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) { if (supportsSingleRecipeLocking()) { mLockedToSingleRecipe = !mLockedToSingleRecipe; if (mLockedToSingleRecipe) { @@ -166,7 +166,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return true; } @@ -1314,12 +1314,14 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SpecialFilter.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SpecialFilter.java index 9672c87f40..63b8160262 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SpecialFilter.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SpecialFilter.java @@ -5,6 +5,7 @@ import java.util.List; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; import com.gtnewhorizons.modularui.api.drawable.Text; import com.gtnewhorizons.modularui.api.screen.ModularWindow; @@ -66,8 +67,9 @@ public abstract class GT_MetaTileEntity_SpecialFilter extends GT_MetaTileEntity_ } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { + return (super.allowPutStack(aBaseMetaTileEntity, aIndex, side, aStack)) && ((this.bNBTAllowed) || (!aStack.hasTagCompound())) && (this.isStackAllowed(aStack) != this.bInvertFilter); } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java index ae70607416..4b8b59d9cb 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java @@ -86,10 +86,10 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi } @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, - boolean aActive, boolean aRedstone) { - return mTextures[Math.min(2, aSide) + (aSide == aFacing ? 3 : 0) - + (aBaseMetaTileEntity.isAllowedToWork() ? 0 : 6)][aColorIndex + 1]; + public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection side, + ForgeDirection facingDirection, int colorIndex, boolean active, boolean redstoneLevel) { + return mTextures[Math.min(2, side.ordinal()) + (side == facingDirection ? 3 : 0) + + (baseMetaTileEntity.isAllowedToWork() ? 0 : 6)][colorIndex + 1]; } @Override @@ -108,7 +108,7 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return true; } @@ -123,14 +123,14 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi } @Override - public boolean isInputFacing(byte aSide) { - return getBaseMetaTileEntity().isAllowedToWork() ? aSide == getBaseMetaTileEntity().getFrontFacing() - : aSide != getBaseMetaTileEntity().getFrontFacing(); + public boolean isInputFacing(ForgeDirection side) { + return getBaseMetaTileEntity().isAllowedToWork() ? side == getBaseMetaTileEntity().getFrontFacing() + : side != getBaseMetaTileEntity().getFrontFacing(); } @Override - public boolean isOutputFacing(byte aSide) { - return !isInputFacing(aSide); + public boolean isOutputFacing(ForgeDirection side) { + return !isInputFacing(side); } @Override @@ -172,50 +172,52 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { if (aBaseMetaTileEntity.isServerSide() && GregTech_API.mInputRF) { aBaseMetaTileEntity.setActive(aBaseMetaTileEntity.isAllowedToWork()); - for (byte i = 0; i < 6 && aBaseMetaTileEntity.getStoredEU() < aBaseMetaTileEntity.getEUCapacity(); i++) - if (aBaseMetaTileEntity.inputEnergyFrom(i)) { - TileEntity tTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(i); - if (tTileEntity instanceof IEnergyProvider && ((IEnergyProvider) tTileEntity) - .extractEnergy(ForgeDirection.getOrientation(GT_Utility.getOppositeSide(i)), 1, true) == 1) { - long tEU = ((IEnergyProvider) tTileEntity).extractEnergy( - ForgeDirection.getOrientation(GT_Utility.getOppositeSide(i)), - GT_Utility.safeInt(maxEUInput() * 100L / GregTech_API.mRFtoEU), - false); + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + if (aBaseMetaTileEntity.getStoredEU() >= aBaseMetaTileEntity.getEUCapacity()) break; + if (!aBaseMetaTileEntity.inputEnergyFrom(side)) continue; + final TileEntity tTileEntity = aBaseMetaTileEntity.getTileEntityAtSide(side); + if (tTileEntity instanceof IEnergyProvider energyProvider + && energyProvider.extractEnergy(side.getOpposite(), 1, true) == 1) { + long tEU = ((IEnergyProvider) tTileEntity).extractEnergy( + side.getOpposite(), + GT_Utility.safeInt(maxEUInput() * 100L / GregTech_API.mRFtoEU), + false); + tEU = tEU * GregTech_API.mRFtoEU / 100; + aBaseMetaTileEntity.injectEnergyUnits(ForgeDirection.UNKNOWN, Math.min(tEU, maxEUInput()), 1); + } else if (tTileEntity instanceof IEnergyStorage energyStorage + && energyStorage.extractEnergy(1, true) == 1) { + long tEU = ((IEnergyStorage) tTileEntity) + .extractEnergy(GT_Utility.safeInt(maxEUInput() * 100L / GregTech_API.mRFtoEU), false); tEU = tEU * GregTech_API.mRFtoEU / 100; - aBaseMetaTileEntity.injectEnergyUnits((byte) 6, Math.min(tEU, maxEUInput()), 1); - } else if (tTileEntity instanceof IEnergyStorage - && ((IEnergyStorage) tTileEntity).extractEnergy(1, true) == 1) { - long tEU = ((IEnergyStorage) tTileEntity) - .extractEnergy(GT_Utility.safeInt(maxEUInput() * 100L / GregTech_API.mRFtoEU), false); - tEU = tEU * GregTech_API.mRFtoEU / 100; - aBaseMetaTileEntity.injectEnergyUnits((byte) 6, Math.min(tEU, maxEUInput()), 1); - } else if (GregTech_API.meIOLoaded && tTileEntity instanceof IPowerContainer - && ((IPowerContainer) tTileEntity).getEnergyStored() > 0) { - int storedRF = ((IPowerContainer) tTileEntity).getEnergyStored(); - int extractRF = GT_Utility.safeInt(maxEUInput() * 100L / GregTech_API.mRFtoEU); - long tEU = 0; - if (tTileEntity instanceof TileCapBank) { - ICapBankNetwork network = ((TileCapBank) tTileEntity).getNetwork(); - if (network != null && network.getEnergyStoredL() > 0) { - tEU = Math.min( - (Math.min( - Math.min(network.getEnergyStoredL(), storedRF - extractRF), - network.getMaxOutput())) * (long) GregTech_API.mRFtoEU / 100L, - maxEUInput()); - network.addEnergy(GT_Utility.safeInt(-(tEU * 100 / GregTech_API.mRFtoEU))); - } + aBaseMetaTileEntity.injectEnergyUnits(ForgeDirection.UNKNOWN, Math.min(tEU, maxEUInput()), 1); + } else if (GregTech_API.meIOLoaded && tTileEntity instanceof IPowerContainer powerContainer + && powerContainer.getEnergyStored() > 0) { + final int storedRF = powerContainer.getEnergyStored(); + final int extractRF = GT_Utility.safeInt(maxEUInput() * 100L / GregTech_API.mRFtoEU); + long tEU = 0; + if (tTileEntity instanceof TileCapBank capBank) { + ICapBankNetwork network = capBank.getNetwork(); + if (network != null && network.getEnergyStoredL() > 0) { + tEU = Math.min( + (Math.min( + Math.min(network.getEnergyStoredL(), storedRF - extractRF), + network.getMaxOutput())) * (long) GregTech_API.mRFtoEU / 100L, + maxEUInput()); + network.addEnergy(GT_Utility.safeInt(-(tEU * 100 / GregTech_API.mRFtoEU))); + } + } else { + if (storedRF > extractRF) { + powerContainer.setEnergyStored(storedRF - extractRF); + tEU = maxEUInput(); } else { - if (storedRF > extractRF) { - ((IPowerContainer) tTileEntity).setEnergyStored(storedRF - extractRF); - tEU = maxEUInput(); - } else { - ((IPowerContainer) tTileEntity).setEnergyStored(0); - tEU = storedRF * (long) GregTech_API.mRFtoEU / 100L; - } + powerContainer.setEnergyStored(0); + tEU = storedRF * (long) GregTech_API.mRFtoEU / 100L; } - aBaseMetaTileEntity.injectEnergyUnits((byte) 6, Math.min(tEU, maxEUInput()), 1); } - } + aBaseMetaTileEntity + .injectEnergyUnits(ForgeDirection.UNKNOWN, Math.min(tEU, maxEUInput()), 1); + } + } } } @@ -230,12 +232,14 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } @@ -265,10 +269,9 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi @Override public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) { - final int facing = getBaseMetaTileEntity().getFrontFacing(); + final ForgeDirection facing = getBaseMetaTileEntity().getFrontFacing(); final NBTTagCompound tag = accessor.getNBTData(); - final int side = (byte) accessor.getSide() - .ordinal(); + final ForgeDirection side = accessor.getSide(); final boolean allowedToWork = tag.getBoolean("isAllowedToWork"); final byte inputTier = GT_Utility.getTier(tag.getLong("maxEUInput")); diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Dynamo.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Dynamo.java index 0e313a4c00..d677b76248 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Dynamo.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Dynamo.java @@ -5,6 +5,7 @@ import static gregtech.api.enums.GT_Values.*; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.enums.Textures; import gregtech.api.interfaces.IGlobalWirelessEnergy; @@ -44,7 +45,7 @@ public class GT_MetaTileEntity_Wireless_Dynamo extends GT_MetaTileEntity_Hatch_D } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return true; } @@ -59,8 +60,8 @@ public class GT_MetaTileEntity_Wireless_Dynamo extends GT_MetaTileEntity_Hatch_D } @Override - public boolean isInputFacing(byte aSide) { - return aSide == getBaseMetaTileEntity().getFrontFacing(); + public boolean isInputFacing(ForgeDirection side) { + return side == getBaseMetaTileEntity().getFrontFacing(); } @Override @@ -106,12 +107,14 @@ public class GT_MetaTileEntity_Wireless_Dynamo extends GT_MetaTileEntity_Hatch_D } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Hatch.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Hatch.java index c363bb6eb0..4c1c7b4cb9 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Hatch.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Wireless_Hatch.java @@ -7,6 +7,7 @@ import java.math.BigInteger; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.enums.Textures; import gregtech.api.interfaces.IGlobalWirelessEnergy; @@ -56,7 +57,7 @@ public class GT_MetaTileEntity_Wireless_Hatch extends GT_MetaTileEntity_Hatch_En } @Override - public boolean isFacingValid(byte aFacing) { + public boolean isFacingValid(ForgeDirection facing) { return true; } @@ -71,8 +72,8 @@ public class GT_MetaTileEntity_Wireless_Hatch extends GT_MetaTileEntity_Hatch_En } @Override - public boolean isInputFacing(byte aSide) { - return aSide == getBaseMetaTileEntity().getFrontFacing(); + public boolean isInputFacing(ForgeDirection side) { + return side == getBaseMetaTileEntity().getFrontFacing(); } @Override @@ -111,12 +112,14 @@ public class GT_MetaTileEntity_Wireless_Hatch extends GT_MetaTileEntity_Hatch_En } @Override - public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } @Override - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, + ItemStack aStack) { return false; } |