diff options
Diffstat (limited to 'src/main/java/gtPlusPlus/core/tileentities')
10 files changed, 390 insertions, 321 deletions
diff --git a/src/main/java/gtPlusPlus/core/tileentities/base/TileBasicTank.java b/src/main/java/gtPlusPlus/core/tileentities/base/TileBasicTank.java index 650d11f172..540005d8d1 100644 --- a/src/main/java/gtPlusPlus/core/tileentities/base/TileBasicTank.java +++ b/src/main/java/gtPlusPlus/core/tileentities/base/TileBasicTank.java @@ -61,107 +61,87 @@ public class TileBasicTank extends TileEntityBase implements IFluidHandler, IFlu return mTank.drain(maxDrain, doDrain); } - public boolean isLiquidInput(byte aSide) { + public boolean isLiquidInput(ForgeDirection side) { return true; } - public boolean isLiquidOutput(byte aSide) { + public boolean isLiquidOutput(ForgeDirection side) { return true; } @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 || (this.isLiquidInput((byte) aSide.ordinal()) - && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidIn( - (byte) aSide.ordinal(), - getCoverIDAtSide((byte) aSide.ordinal()), - getCoverDataAtSide((byte) aSide.ordinal()), + && (side == ForgeDirection.UNKNOWN + || (this.isLiquidInput(side) && getCoverBehaviorAtSide(side).letsFluidIn( + side, + getCoverIDAtSide(side), + getCoverDataAtSide(side), aFluid == null ? null : aFluid.getFluid(), this)))) - return this.fillEx(aSide, aFluid, doFill); + return this.fillEx(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 || (this.isLiquidOutput((byte) aSide.ordinal()) - && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidOut( - (byte) aSide.ordinal(), - getCoverIDAtSide((byte) aSide.ordinal()), - getCoverDataAtSide((byte) aSide.ordinal()), + && (side == ForgeDirection.UNKNOWN + || (this.isLiquidOutput(side) && getCoverBehaviorAtSide(side).letsFluidOut( + side, + getCoverIDAtSide(side), + getCoverDataAtSide(side), this.getFluid() == null ? null : this.getFluid().getFluid(), this)))) - return this.drainEx(aSide, maxDrain, doDrain); + return this.drainEx(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 || (this.isLiquidOutput((byte) aSide.ordinal()) - && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidOut( - (byte) aSide.ordinal(), - getCoverIDAtSide((byte) aSide.ordinal()), - getCoverDataAtSide((byte) aSide.ordinal()), + && (side == ForgeDirection.UNKNOWN + || (this.isLiquidOutput(side) && getCoverBehaviorAtSide(side).letsFluidOut( + side, + getCoverIDAtSide(side), + getCoverDataAtSide(side), aFluid == null ? null : aFluid.getFluid(), this)))) - return this.drainEx(aSide, aFluid, doDrain); + return this.drainEx(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 || (this.isLiquidInput((byte) aSide.ordinal()) - && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidIn( - (byte) aSide.ordinal(), - getCoverIDAtSide((byte) aSide.ordinal()), - getCoverDataAtSide((byte) aSide.ordinal()), - aFluid, - this)))) - return this.canFillEx(aSide, aFluid); + && (side == ForgeDirection.UNKNOWN || (this.isLiquidInput(side) && getCoverBehaviorAtSide(side) + .letsFluidIn(side, getCoverIDAtSide(side), getCoverDataAtSide(side), aFluid, this)))) + return this.canFillEx(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 || (this.isLiquidOutput((byte) aSide.ordinal()) - && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidOut( - (byte) aSide.ordinal(), - getCoverIDAtSide((byte) aSide.ordinal()), - getCoverDataAtSide((byte) aSide.ordinal()), - aFluid, - this)))) - return this.canDrainEx(aSide, aFluid); + && (side == ForgeDirection.UNKNOWN || (this.isLiquidOutput(side) && getCoverBehaviorAtSide(side) + .letsFluidOut(side, getCoverIDAtSide(side), getCoverDataAtSide(side), aFluid, this)))) + return this.canDrainEx(side, aFluid); return false; } @Override - public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { - if (canAccessData() && (aSide == ForgeDirection.UNKNOWN - || (this.isLiquidInput((byte) aSide.ordinal()) - && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidIn( - (byte) aSide.ordinal(), - getCoverIDAtSide((byte) aSide.ordinal()), - getCoverDataAtSide((byte) aSide.ordinal()), - null, - this)) - || (this.isLiquidOutput((byte) aSide.ordinal()) - && getCoverBehaviorAtSide((byte) aSide.ordinal()).letsFluidOut( - (byte) aSide.ordinal(), - getCoverIDAtSide((byte) aSide.ordinal()), - getCoverDataAtSide((byte) aSide.ordinal()), - null, - this)))) - return this.getTankInfoEx(aSide); + public FluidTankInfo[] getTankInfo(ForgeDirection side) { + if (canAccessData() && (side == ForgeDirection.UNKNOWN + || (this.isLiquidInput(side) && getCoverBehaviorAtSide(side) + .letsFluidIn(side, getCoverIDAtSide(side), getCoverDataAtSide(side), null, this)) + || (this.isLiquidOutput(side) && getCoverBehaviorAtSide(side) + .letsFluidOut(side, getCoverIDAtSide(side), getCoverDataAtSide(side), null, this)))) + return this.getTankInfoEx(side); return new FluidTankInfo[] {}; } diff --git a/src/main/java/gtPlusPlus/core/tileentities/base/TileEntityBase.java b/src/main/java/gtPlusPlus/core/tileentities/base/TileEntityBase.java index 164c42cc3f..032fa62956 100644 --- a/src/main/java/gtPlusPlus/core/tileentities/base/TileEntityBase.java +++ b/src/main/java/gtPlusPlus/core/tileentities/base/TileEntityBase.java @@ -167,6 +167,7 @@ public class TileEntityBase extends TileEntity implements ILazyCoverable, IGregT } } + @Override public boolean isServerSide() { if (this.hasWorldObj()) { if (!this.getWorldObj().isRemote) { @@ -176,6 +177,7 @@ public class TileEntityBase extends TileEntity implements ILazyCoverable, IGregT return false; } + @Override public final boolean isClientSide() { return this.worldObj.isRemote; } @@ -260,16 +262,13 @@ public class TileEntityBase extends TileEntity implements ILazyCoverable, IGregT * following two Functions. */ @Override - public int[] getAccessibleSlotsFromSide(int aSide) { - if (canAccessData() && (getCoverBehaviorAtSide((byte) aSide) - .letsItemsOut((byte) aSide, getCoverIDAtSide((byte) aSide), getCoverDataAtSide((byte) aSide), -1, this) - || getCoverBehaviorAtSide((byte) aSide).letsItemsIn( - (byte) aSide, - getCoverIDAtSide((byte) aSide), - getCoverDataAtSide((byte) aSide), - -1, - this))) - return mInventory.getAccessibleSlotsFromSide(aSide); + public int[] getAccessibleSlotsFromSide(int ordinalSide) { + final ForgeDirection side = ForgeDirection.getOrientation(ordinalSide); + if (canAccessData() && (getCoverBehaviorAtSide(side) + .letsItemsOut(side, getCoverIDAtSide(side), getCoverDataAtSide(side), -1, this) + || getCoverBehaviorAtSide(side) + .letsItemsIn(side, getCoverIDAtSide(side), getCoverDataAtSide(side), -1, this))) + return mInventory.getAccessibleSlotsFromSide(ordinalSide); return new int[0]; } @@ -277,30 +276,24 @@ public class TileEntityBase extends TileEntity implements ILazyCoverable, IGregT * Can put aStack into Slot at Side */ @Override - public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { + public boolean canInsertItem(int aIndex, ItemStack aStack, int ordinalSide) { + final ForgeDirection side = ForgeDirection.getOrientation(ordinalSide); return canAccessData() && (mRunningThroughTick || !mInputDisabled) - && getCoverBehaviorAtSide((byte) aSide).letsItemsIn( - (byte) aSide, - getCoverIDAtSide((byte) aSide), - getCoverDataAtSide((byte) aSide), - aIndex, - this) - && mInventory.canInsertItem(aIndex, aStack, aSide); + && getCoverBehaviorAtSide(side) + .letsItemsIn(side, getCoverIDAtSide(side), getCoverDataAtSide(side), aIndex, this) + && mInventory.canInsertItem(aIndex, aStack, ordinalSide); } /** * Can pull aStack out of Slot from Side */ @Override - public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) { + public boolean canExtractItem(int aIndex, ItemStack aStack, int ordinalSide) { + final ForgeDirection side = ForgeDirection.getOrientation(ordinalSide); return canAccessData() && (mRunningThroughTick || !mOutputDisabled) - && getCoverBehaviorAtSide((byte) aSide).letsItemsOut( - (byte) aSide, - getCoverIDAtSide((byte) aSide), - getCoverDataAtSide((byte) aSide), - aIndex, - this) - && mInventory.canExtractItem(aIndex, aStack, aSide); + && getCoverBehaviorAtSide(side) + .letsItemsOut(side, getCoverIDAtSide(side), getCoverDataAtSide(side), aIndex, this) + && mInventory.canExtractItem(aIndex, aStack, ordinalSide); } @Override @@ -364,13 +357,13 @@ public class TileEntityBase extends TileEntity implements ILazyCoverable, IGregT } @Override - public void issueCoverUpdate(byte aSide) { + public void issueCoverUpdate(ForgeDirection side) { this.issueClientUpdate(); } @Override - public void receiveCoverData(byte coverSide, int coverID, int coverData) { - if ((coverSide >= 0 && coverSide < 6) && (mCoverSides[coverSide] == coverID)) + public void receiveCoverData(ForgeDirection coverSide, int coverID, int coverData) { + if (coverSide != ForgeDirection.UNKNOWN && (mCoverSides[coverSide.ordinal()] == coverID)) setCoverDataAtSide(coverSide, coverData); } @@ -379,20 +372,24 @@ public class TileEntityBase extends TileEntity implements ILazyCoverable, IGregT return this.mTickTimer; } + @Override public long getOutputAmperage() { return this.canAccessData() && this.mMetaTileEntity.isElectric() ? this.mMetaTileEntity.maxAmperesOut() : 0L; } + @Override public long getOutputVoltage() { return this.canAccessData() && this.mMetaTileEntity.isElectric() && this.mMetaTileEntity.isEnetOutput() ? this.mMetaTileEntity.maxEUOutput() : 0L; } + @Override public long getInputAmperage() { return this.canAccessData() && this.mMetaTileEntity.isElectric() ? this.mMetaTileEntity.maxAmperesIn() : 0L; } + @Override public long getInputVoltage() { return this.canAccessData() && this.mMetaTileEntity.isElectric() ? this.mMetaTileEntity.maxEUInput() : 2147483647L; @@ -417,23 +414,25 @@ public class TileEntityBase extends TileEntity implements ILazyCoverable, IGregT } @Override - public boolean inputEnergyFrom(byte aSide) { - return aSide == 6 ? true - : (!this.isServerSide() ? this.isEnergyInputSide(aSide) - : aSide >= 0 && aSide < 6 && this.mActiveEUInputs[aSide] && !this.mReleaseEnergy); + public boolean inputEnergyFrom(ForgeDirection side) { + return side == ForgeDirection.UNKNOWN ? true + : (!this.isServerSide() ? this.isEnergyInputSide(side) + : side != ForgeDirection.UNKNOWN && this.mActiveEUInputs[side.ordinal()] + && !this.mReleaseEnergy); } @Override - public boolean outputsEnergyTo(byte aSide) { - return aSide == 6 ? true - : (!this.isServerSide() ? this.isEnergyOutputSide(aSide) - : aSide >= 0 && aSide < 6 && this.mActiveEUOutputs[aSide] || this.mReleaseEnergy); + public boolean outputsEnergyTo(ForgeDirection side) { + return side == ForgeDirection.UNKNOWN ? true + : (!this.isServerSide() ? this.isEnergyOutputSide(side) + : side != ForgeDirection.UNKNOWN && this.mActiveEUOutputs[side.ordinal()] + || this.mReleaseEnergy); } - private boolean isEnergyInputSide(byte aSide) { - if (aSide >= 0 && aSide < 6) { - if (!this.getCoverBehaviorAtSide(aSide) - .letsEnergyIn(aSide, this.getCoverIDAtSide(aSide), this.getCoverDataAtSide(aSide), this)) { + private boolean isEnergyInputSide(ForgeDirection side) { + if (side != ForgeDirection.UNKNOWN) { + if (!this.getCoverBehaviorAtSide(side) + .letsEnergyIn(side, this.getCoverIDAtSide(side), this.getCoverDataAtSide(side), this)) { return false; } @@ -442,17 +441,17 @@ public class TileEntityBase extends TileEntity implements ILazyCoverable, IGregT } if (this.canAccessData() && this.mMetaTileEntity.isElectric() && this.mMetaTileEntity.isEnetInput()) { - return this.mMetaTileEntity.isInputFacing(aSide); + return this.mMetaTileEntity.isInputFacing(side); } } return false; } - private boolean isEnergyOutputSide(byte aSide) { - if (aSide >= 0 && aSide < 6) { - if (!this.getCoverBehaviorAtSide(aSide) - .letsEnergyOut(aSide, this.getCoverIDAtSide(aSide), this.getCoverDataAtSide(aSide), this)) { + private boolean isEnergyOutputSide(ForgeDirection side) { + if (side != ForgeDirection.UNKNOWN) { + if (!this.getCoverBehaviorAtSide(side) + .letsEnergyOut(side, this.getCoverIDAtSide(side), this.getCoverDataAtSide(side), this)) { return false; } @@ -461,18 +460,18 @@ public class TileEntityBase extends TileEntity implements ILazyCoverable, IGregT } if (this.canAccessData() && this.mMetaTileEntity.isElectric() && this.mMetaTileEntity.isEnetOutput()) { - return this.mMetaTileEntity.isOutputFacing(aSide); + return this.mMetaTileEntity.isOutputFacing(side); } } return false; } - public boolean isOutputFacing(byte aSide) { + public boolean isOutputFacing(ForgeDirection side) { return false; } - public boolean isInputFacing(byte aSide) { + public boolean isInputFacing(ForgeDirection side) { return false; } @@ -494,296 +493,354 @@ public class TileEntityBase extends TileEntity implements ILazyCoverable, IGregT } } + @Override public final World getWorld() { return this.worldObj; } + @Override public final int getXCoord() { return this.xCoord; } + @Override public final short getYCoord() { return (short) this.yCoord; } + @Override public final int getZCoord() { return this.zCoord; } - public final int getOffsetX(byte aSide, int aMultiplier) { - return this.xCoord + ForgeDirection.getOrientation(aSide).offsetX * aMultiplier; + @Override + public final int getOffsetX(ForgeDirection side, int aMultiplier) { + return this.xCoord + side.offsetX * aMultiplier; } - public final short getOffsetY(byte aSide, int aMultiplier) { - return (short) (this.yCoord + ForgeDirection.getOrientation(aSide).offsetY * aMultiplier); + @Override + public final short getOffsetY(ForgeDirection side, int aMultiplier) { + return (short) (this.yCoord + side.offsetY * aMultiplier); } - public final int getOffsetZ(byte aSide, int aMultiplier) { - return this.zCoord + ForgeDirection.getOrientation(aSide).offsetZ * aMultiplier; + @Override + public final int getOffsetZ(ForgeDirection side, int aMultiplier) { + return this.zCoord + side.offsetZ * aMultiplier; } + @Override public final int getRandomNumber(int aRange) { return this.worldObj.rand.nextInt(aRange); } + @Override public final BiomeGenBase getBiome(int aX, int aZ) { return this.worldObj.getBiomeGenForCoords(aX, aZ); } + @Override public final BiomeGenBase getBiome() { return this.getBiome(this.xCoord, this.zCoord); } + @Override public final Block getBlockOffset(int aX, int aY, int aZ) { return this.getBlock(this.xCoord + aX, this.yCoord + aY, this.zCoord + aZ); } - public final Block getBlockAtSide(byte aSide) { - return this.getBlockAtSideAndDistance(aSide, 1); + @Override + public final Block getBlockAtSide(ForgeDirection side) { + return this.getBlockAtSideAndDistance(side, 1); } - public final Block getBlockAtSideAndDistance(byte aSide, int aDistance) { + @Override + public final Block getBlockAtSideAndDistance(ForgeDirection side, int aDistance) { return this.getBlock( - this.getOffsetX(aSide, aDistance), - this.getOffsetY(aSide, aDistance), - this.getOffsetZ(aSide, aDistance)); + this.getOffsetX(side, aDistance), + this.getOffsetY(side, aDistance), + this.getOffsetZ(side, aDistance)); } + @Override public final byte getMetaIDOffset(int aX, int aY, int aZ) { return this.getMetaID(this.xCoord + aX, this.yCoord + aY, this.zCoord + aZ); } - public final byte getMetaIDAtSide(byte aSide) { - return this.getMetaIDAtSideAndDistance(aSide, 1); + @Override + public final byte getMetaIDAtSide(ForgeDirection side) { + return this.getMetaIDAtSideAndDistance(side, 1); } - public final byte getMetaIDAtSideAndDistance(byte aSide, int aDistance) { + @Override + public final byte getMetaIDAtSideAndDistance(ForgeDirection side, int aDistance) { return this.getMetaID( - this.getOffsetX(aSide, aDistance), - this.getOffsetY(aSide, aDistance), - this.getOffsetZ(aSide, aDistance)); + this.getOffsetX(side, aDistance), + this.getOffsetY(side, aDistance), + this.getOffsetZ(side, aDistance)); } + @Override public final byte getLightLevelOffset(int aX, int aY, int aZ) { return this.getLightLevel(this.xCoord + aX, this.yCoord + aY, this.zCoord + aZ); } - public final byte getLightLevelAtSide(byte aSide) { - return this.getLightLevelAtSideAndDistance(aSide, 1); + @Override + public final byte getLightLevelAtSide(ForgeDirection side) { + return this.getLightLevelAtSideAndDistance(side, 1); } - public final byte getLightLevelAtSideAndDistance(byte aSide, int aDistance) { + @Override + public final byte getLightLevelAtSideAndDistance(ForgeDirection side, int aDistance) { return this.getLightLevel( - this.getOffsetX(aSide, aDistance), - this.getOffsetY(aSide, aDistance), - this.getOffsetZ(aSide, aDistance)); + this.getOffsetX(side, aDistance), + this.getOffsetY(side, aDistance), + this.getOffsetZ(side, aDistance)); } + @Override public final boolean getOpacityOffset(int aX, int aY, int aZ) { return this.getOpacity(this.xCoord + aX, this.yCoord + aY, this.zCoord + aZ); } - public final boolean getOpacityAtSide(byte aSide) { - return this.getOpacityAtSideAndDistance(aSide, 1); + @Override + public final boolean getOpacityAtSide(ForgeDirection side) { + return this.getOpacityAtSideAndDistance(side, 1); } - public final boolean getOpacityAtSideAndDistance(byte aSide, int aDistance) { + @Override + public final boolean getOpacityAtSideAndDistance(ForgeDirection side, int aDistance) { return this.getOpacity( - this.getOffsetX(aSide, aDistance), - this.getOffsetY(aSide, aDistance), - this.getOffsetZ(aSide, aDistance)); + this.getOffsetX(side, aDistance), + this.getOffsetY(side, aDistance), + this.getOffsetZ(side, aDistance)); } + @Override public final boolean getSkyOffset(int aX, int aY, int aZ) { return this.getSky(this.xCoord + aX, this.yCoord + aY, this.zCoord + aZ); } - public final boolean getSkyAtSide(byte aSide) { - return this.getSkyAtSideAndDistance(aSide, 1); + @Override + public final boolean getSkyAtSide(ForgeDirection side) { + return this.getSkyAtSideAndDistance(side, 1); } - public final boolean getSkyAtSideAndDistance(byte aSide, int aDistance) { + @Override + public final boolean getSkyAtSideAndDistance(ForgeDirection side, int aDistance) { return this.getSky( - this.getOffsetX(aSide, aDistance), - this.getOffsetY(aSide, aDistance), - this.getOffsetZ(aSide, aDistance)); + this.getOffsetX(side, aDistance), + this.getOffsetY(side, aDistance), + this.getOffsetZ(side, aDistance)); } + @Override public final boolean getAirOffset(int aX, int aY, int aZ) { return this.getAir(this.xCoord + aX, this.yCoord + aY, this.zCoord + aZ); } - public final boolean getAirAtSide(byte aSide) { - return this.getAirAtSideAndDistance(aSide, 1); + @Override + public final boolean getAirAtSide(ForgeDirection side) { + return this.getAirAtSideAndDistance(side, 1); } - public final boolean getAirAtSideAndDistance(byte aSide, int aDistance) { + @Override + public final boolean getAirAtSideAndDistance(ForgeDirection side, int aDistance) { return this.getAir( - this.getOffsetX(aSide, aDistance), - this.getOffsetY(aSide, aDistance), - this.getOffsetZ(aSide, aDistance)); + this.getOffsetX(side, aDistance), + this.getOffsetY(side, aDistance), + this.getOffsetZ(side, aDistance)); } + @Override public final TileEntity getTileEntityOffset(int aX, int aY, int aZ) { return this.getTileEntity(this.xCoord + aX, this.yCoord + aY, this.zCoord + aZ); } - public final TileEntity getTileEntityAtSideAndDistance(byte aSide, int aDistance) { - return aDistance == 1 ? this.getTileEntityAtSide(aSide) + @Override + public final TileEntity getTileEntityAtSideAndDistance(ForgeDirection side, int aDistance) { + return aDistance == 1 ? this.getTileEntityAtSide(side) : this.getTileEntity( - this.getOffsetX(aSide, aDistance), - this.getOffsetY(aSide, aDistance), - this.getOffsetZ(aSide, aDistance)); + this.getOffsetX(side, aDistance), + this.getOffsetY(side, aDistance), + this.getOffsetZ(side, aDistance)); } + @Override public final IInventory getIInventory(int aX, int aY, int aZ) { TileEntity tTileEntity = this.getTileEntity(aX, aY, aZ); return tTileEntity instanceof IInventory ? (IInventory) tTileEntity : null; } + @Override public final IInventory getIInventoryOffset(int aX, int aY, int aZ) { TileEntity tTileEntity = this.getTileEntityOffset(aX, aY, aZ); return tTileEntity instanceof IInventory ? (IInventory) tTileEntity : null; } - public final IInventory getIInventoryAtSide(byte aSide) { - TileEntity tTileEntity = this.getTileEntityAtSide(aSide); + @Override + public final IInventory getIInventoryAtSide(ForgeDirection side) { + TileEntity tTileEntity = this.getTileEntityAtSide(side); return tTileEntity instanceof IInventory ? (IInventory) tTileEntity : null; } - public final IInventory getIInventoryAtSideAndDistance(byte aSide, int aDistance) { - TileEntity tTileEntity = this.getTileEntityAtSideAndDistance(aSide, aDistance); + @Override + public final IInventory getIInventoryAtSideAndDistance(ForgeDirection side, int aDistance) { + TileEntity tTileEntity = this.getTileEntityAtSideAndDistance(side, aDistance); return tTileEntity instanceof IInventory ? (IInventory) tTileEntity : null; } + @Override public final IFluidHandler getITankContainer(int aX, int aY, int aZ) { TileEntity tTileEntity = this.getTileEntity(aX, aY, aZ); return tTileEntity instanceof IFluidHandler ? (IFluidHandler) tTileEntity : null; } + @Override public final IFluidHandler getITankContainerOffset(int aX, int aY, int aZ) { TileEntity tTileEntity = this.getTileEntityOffset(aX, aY, aZ); return tTileEntity instanceof IFluidHandler ? (IFluidHandler) tTileEntity : null; } - public final IFluidHandler getITankContainerAtSide(byte aSide) { - TileEntity tTileEntity = this.getTileEntityAtSide(aSide); + @Override + public final IFluidHandler getITankContainerAtSide(ForgeDirection side) { + TileEntity tTileEntity = this.getTileEntityAtSide(side); return tTileEntity instanceof IFluidHandler ? (IFluidHandler) tTileEntity : null; } - public final IFluidHandler getITankContainerAtSideAndDistance(byte aSide, int aDistance) { - TileEntity tTileEntity = this.getTileEntityAtSideAndDistance(aSide, aDistance); + @Override + public final IFluidHandler getITankContainerAtSideAndDistance(ForgeDirection side, int aDistance) { + TileEntity tTileEntity = this.getTileEntityAtSideAndDistance(side, aDistance); return tTileEntity instanceof IFluidHandler ? (IFluidHandler) tTileEntity : null; } + @Override public final IGregTechTileEntity getIGregTechTileEntity(int aX, int aY, int aZ) { TileEntity tTileEntity = this.getTileEntity(aX, aY, aZ); return tTileEntity instanceof IGregTechTileEntity ? (IGregTechTileEntity) tTileEntity : null; } + @Override public final IGregTechTileEntity getIGregTechTileEntityOffset(int aX, int aY, int aZ) { TileEntity tTileEntity = this.getTileEntityOffset(aX, aY, aZ); return tTileEntity instanceof IGregTechTileEntity ? (IGregTechTileEntity) tTileEntity : null; } - public final IGregTechTileEntity getIGregTechTileEntityAtSide(byte aSide) { - TileEntity tTileEntity = this.getTileEntityAtSide(aSide); + @Override + public final IGregTechTileEntity getIGregTechTileEntityAtSide(ForgeDirection side) { + TileEntity tTileEntity = this.getTileEntityAtSide(side); return tTileEntity instanceof IGregTechTileEntity ? (IGregTechTileEntity) tTileEntity : null; } - public final IGregTechTileEntity getIGregTechTileEntityAtSideAndDistance(byte aSide, int aDistance) { - TileEntity tTileEntity = this.getTileEntityAtSideAndDistance(aSide, aDistance); + @Override + public final IGregTechTileEntity getIGregTechTileEntityAtSideAndDistance(ForgeDirection side, int aDistance) { + TileEntity tTileEntity = this.getTileEntityAtSideAndDistance(side, aDistance); return tTileEntity instanceof IGregTechTileEntity ? (IGregTechTileEntity) tTileEntity : null; } + @Override public final Block getBlock(int aX, int aY, int aZ) { return this.ignoreUnloadedChunks && this.crossedChunkBorder(aX, aZ) && !this.worldObj.blockExists(aX, aY, aZ) ? Blocks.air : this.worldObj.getBlock(aX, aY, aZ); } + @Override public final byte getMetaID(int aX, int aY, int aZ) { return this.ignoreUnloadedChunks && this.crossedChunkBorder(aX, aZ) && !this.worldObj.blockExists(aX, aY, aZ) ? 0 : (byte) this.worldObj.getBlockMetadata(aX, aY, aZ); } + @Override public final byte getLightLevel(int aX, int aY, int aZ) { return this.ignoreUnloadedChunks && this.crossedChunkBorder(aX, aZ) && !this.worldObj.blockExists(aX, aY, aZ) ? 0 : (byte) ((int) (this.worldObj.getLightBrightness(aX, aY, aZ) * 15.0F)); } + @Override public final boolean getSky(int aX, int aY, int aZ) { return this.ignoreUnloadedChunks && this.crossedChunkBorder(aX, aZ) && !this.worldObj.blockExists(aX, aY, aZ) ? true : this.worldObj.canBlockSeeTheSky(aX, aY, aZ); } + @Override public final boolean getOpacity(int aX, int aY, int aZ) { return this.ignoreUnloadedChunks && this.crossedChunkBorder(aX, aZ) && !this.worldObj.blockExists(aX, aY, aZ) ? false : GT_Utility.isOpaqueBlock(this.worldObj, aX, aY, aZ); } + @Override public final boolean getAir(int aX, int aY, int aZ) { return this.ignoreUnloadedChunks && this.crossedChunkBorder(aX, aZ) && !this.worldObj.blockExists(aX, aY, aZ) ? true : GT_Utility.isBlockAir(this.worldObj, aX, aY, aZ); } + @Override public final TileEntity getTileEntity(int aX, int aY, int aZ) { return this.ignoreUnloadedChunks && this.crossedChunkBorder(aX, aZ) && !this.worldObj.blockExists(aX, aY, aZ) ? null : this.worldObj.getTileEntity(aX, aY, aZ); } - public final TileEntity getTileEntityAtSide(byte aSide) { - if (aSide >= 0 && aSide < 6 && this.mBufferedTileEntities[aSide] != this) { - int tX = this.getOffsetX(aSide, 1); - short tY = this.getOffsetY(aSide, 1); - int tZ = this.getOffsetZ(aSide, 1); + @Override + public final TileEntity getTileEntityAtSide(ForgeDirection side) { + final int ordinalSide = side.ordinal(); + if (side != ForgeDirection.UNKNOWN && this.mBufferedTileEntities[ordinalSide] != this) { + int tX = this.getOffsetX(side, 1); + short tY = this.getOffsetY(side, 1); + int tZ = this.getOffsetZ(side, 1); if (this.crossedChunkBorder(tX, tZ)) { - this.mBufferedTileEntities[aSide] = null; + this.mBufferedTileEntities[ordinalSide] = null; if (this.ignoreUnloadedChunks && !this.worldObj.blockExists(tX, tY, tZ)) { return null; } } - if (this.mBufferedTileEntities[aSide] == null) { - this.mBufferedTileEntities[aSide] = this.worldObj.getTileEntity(tX, tY, tZ); - if (this.mBufferedTileEntities[aSide] == null) { - this.mBufferedTileEntities[aSide] = this; + if (this.mBufferedTileEntities[ordinalSide] == null) { + this.mBufferedTileEntities[ordinalSide] = this.worldObj.getTileEntity(tX, tY, tZ); + if (this.mBufferedTileEntities[ordinalSide] == null) { + this.mBufferedTileEntities[ordinalSide] = this; return null; } else { - return this.mBufferedTileEntities[aSide]; + return this.mBufferedTileEntities[ordinalSide]; } - } else if (this.mBufferedTileEntities[aSide].isInvalid()) { - this.mBufferedTileEntities[aSide] = null; - return this.getTileEntityAtSide(aSide); + } else if (this.mBufferedTileEntities[ordinalSide].isInvalid()) { + this.mBufferedTileEntities[ordinalSide] = null; + return this.getTileEntityAtSide(side); } else { - return this.mBufferedTileEntities[aSide].xCoord == tX && this.mBufferedTileEntities[aSide].yCoord == tY - && this.mBufferedTileEntities[aSide].zCoord == tZ ? this.mBufferedTileEntities[aSide] : null; + return this.mBufferedTileEntities[ordinalSide].xCoord == tX + && this.mBufferedTileEntities[ordinalSide].yCoord == tY + && this.mBufferedTileEntities[ordinalSide].zCoord == tZ + ? this.mBufferedTileEntities[ordinalSide] + : null; } } else { return null; } } + @Override public boolean isDead() { return this.isDead || this.isInvalidTileEntity(); } + @Override public void validate() { this.clearNullMarkersFromTileEntityBuffer(); super.validate(); } + @Override public void invalidate() { this.clearNullMarkersFromTileEntityBuffer(); super.invalidate(); } |
