diff options
Diffstat (limited to 'src/main/java/gregtech/api/multitileentity/multiblock')
3 files changed, 125 insertions, 135 deletions
diff --git a/src/main/java/gregtech/api/multitileentity/multiblock/base/Controller.java b/src/main/java/gregtech/api/multitileentity/multiblock/base/Controller.java index 9fdac059da..a4fbb9f61e 100644 --- a/src/main/java/gregtech/api/multitileentity/multiblock/base/Controller.java +++ b/src/main/java/gregtech/api/multitileentity/multiblock/base/Controller.java @@ -2,7 +2,6 @@ package gregtech.api.multitileentity.multiblock.base; import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain; import static gregtech.GT_Mod.GT_FML_LOGGER; -import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; import static gregtech.api.multitileentity.enums.GT_MultiTileComponentCasing.*; import static gregtech.loaders.preload.GT_Loader_MultiTileEntities.COMPONENT_CASING_REGISTRY; import static mcp.mobius.waila.api.SpecialChars.*; @@ -289,10 +288,8 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic if (outputTanks != null) registerFluidInventory("controller", "controller", outputTanks, Inventory.OUTPUT); structureOkay = nbt.getBoolean(NBT.STRUCTURE_OK); - extendedFacing = ExtendedFacing.of( - ForgeDirection.getOrientation(getFrontFacing()), - Rotation.byIndex(nbt.getByte(NBT.ROTATION)), - Flip.byIndex(nbt.getByte(NBT.FLIP))); + extendedFacing = ExtendedFacing + .of(getFrontFacing(), Rotation.byIndex(nbt.getByte(NBT.ROTATION)), Flip.byIndex(nbt.getByte(NBT.FLIP))); loadUpgradeInventoriesFromNBT(nbt); loadUpgradeTanksFromNBT(nbt); @@ -308,10 +305,10 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic .getTagList(NBT.UPGRADE_INVENTORIES_INPUT, Constants.NBT.TAG_COMPOUND); for (int i = 0; i < listInputInventories.tagCount(); i++) { final NBTTagCompound nbtInv = listInputInventories.getCompoundTagAt(i); - String invUUID = nbtInv.getString(NBT.UPGRADE_INVENTORY_UUID); - String invName = nbtInv.getString(NBT.UPGRADE_INVENTORY_NAME); - int invSize = nbtInv.getInteger(NBT.UPGRADE_INVENTORY_SIZE); - IItemHandlerModifiable inv = new ItemStackHandler(invSize); + final String invUUID = nbtInv.getString(NBT.UPGRADE_INVENTORY_UUID); + final String invName = nbtInv.getString(NBT.UPGRADE_INVENTORY_NAME); + final int invSize = nbtInv.getInteger(NBT.UPGRADE_INVENTORY_SIZE); + final IItemHandlerModifiable inv = new ItemStackHandler(invSize); loadInventory(nbtInv, inv, NBT.INV_INPUT_LIST); registerInventory(invName, invUUID, invSize, Inventory.INPUT); } @@ -320,9 +317,9 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic .getTagList(NBT.UPGRADE_INVENTORIES_OUTPUT, Constants.NBT.TAG_COMPOUND); for (int i = 0; i < listOutputInventories.tagCount(); i++) { final NBTTagCompound nbtInv = listOutputInventories.getCompoundTagAt(i); - String invUUID = nbtInv.getString(NBT.UPGRADE_INVENTORY_UUID); - String invName = nbtInv.getString(NBT.UPGRADE_INVENTORY_NAME); - int invSize = nbtInv.getInteger(NBT.UPGRADE_INVENTORY_SIZE); + final String invUUID = nbtInv.getString(NBT.UPGRADE_INVENTORY_UUID); + final String invName = nbtInv.getString(NBT.UPGRADE_INVENTORY_NAME); + final int invSize = nbtInv.getInteger(NBT.UPGRADE_INVENTORY_SIZE); IItemHandlerModifiable inv = new ItemStackHandler(invSize); loadInventory(nbtInv, inv, NBT.INV_OUTPUT_LIST); registerInventory(invName, invUUID, invSize, Inventory.OUTPUT); @@ -532,8 +529,8 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic } @Override - public boolean onWrenchRightClick(EntityPlayer aPlayer, ItemStack tCurrentItem, byte wrenchSide, float aX, float aY, - float aZ) { + public boolean onWrenchRightClick(EntityPlayer aPlayer, ItemStack tCurrentItem, ForgeDirection wrenchSide, float aX, + float aY, float aZ) { if (wrenchSide != getFrontFacing()) return super.onWrenchRightClick(aPlayer, tCurrentItem, wrenchSide, aX, aY, aZ); if (aPlayer.isSneaking()) { @@ -548,19 +545,19 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic } @Override - public void registerCoveredPartOnSide(final int aSide, IMultiBlockPart part) { - if (aSide < 0 || aSide >= 6) return; + public void registerCoveredPartOnSide(final ForgeDirection side, IMultiBlockPart part) { + if (side == ForgeDirection.UNKNOWN) return; - final LinkedList<WeakReference<IMultiBlockPart>> registeredCovers = registeredCoveredParts.get(aSide); + final LinkedList<WeakReference<IMultiBlockPart>> registeredCovers = registeredCoveredParts.get(side.ordinal()); // TODO: Make sure that we're not already registered on this side registeredCovers.add(new WeakReference<>(part)); } @Override - public void unregisterCoveredPartOnSide(final int aSide, IMultiBlockPart aPart) { - if (aSide < 0 || aSide >= 6) return; + public void unregisterCoveredPartOnSide(final ForgeDirection side, IMultiBlockPart aPart) { + if (side == ForgeDirection.UNKNOWN) return; - final LinkedList<WeakReference<IMultiBlockPart>> coveredParts = registeredCoveredParts.get(aSide); + final LinkedList<WeakReference<IMultiBlockPart>> coveredParts = registeredCoveredParts.get(side.ordinal()); final Iterator<WeakReference<IMultiBlockPart>> it = coveredParts.iterator(); while (it.hasNext()) { final IMultiBlockPart part = (it.next()).get(); @@ -579,9 +576,10 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic } private boolean tickCovers() { - for (byte side : ALL_VALID_SIDES) { + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { // TODO: Tick controller covers, if any - final LinkedList<WeakReference<IMultiBlockPart>> coveredParts = this.registeredCoveredParts.get(side); + final LinkedList<WeakReference<IMultiBlockPart>> coveredParts = this.registeredCoveredParts + .get(side.ordinal()); final Iterator<WeakReference<IMultiBlockPart>> it = coveredParts.iterator(); while (it.hasNext()) { final IMultiBlockPart part = (it.next()).get(); @@ -626,19 +624,19 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic } @Override - public final boolean isFacingValid(byte aFacing) { - return canSetToDirectionAny(ForgeDirection.getOrientation(aFacing)); + public final boolean isFacingValid(ForgeDirection facing) { + return canSetToDirectionAny(facing); } @Override public void onFacingChange() { - toolSetDirection(ForgeDirection.getOrientation(getFrontFacing())); + toolSetDirection(getFrontFacing()); onStructureChange(); } @Override - public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) { - return facing.compareTo(ForgeDirection.getOrientation(aSide)) != 0; + public boolean allowCoverOnSide(ForgeDirection side, GT_ItemStack aCoverID) { + return side != facing; } @Override @@ -672,14 +670,14 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic } @Override - public FluidStack getDrainableFluid(byte aSide) { - return getDrainableFluid(aSide, null); + public FluidStack getDrainableFluid(ForgeDirection side) { + return getDrainableFluid(side, null); } @Override - public FluidStack getDrainableFluid(byte aSide, Fluid fluidToDrain) { + public FluidStack getDrainableFluid(ForgeDirection side, Fluid fluidToDrain) { final IFluidTank tank = getFluidTankDrainable( - aSide, + side, fluidToDrain == null ? null : new FluidStack(fluidToDrain, 0)); return tank == null ? null : tank.getFluid(); } @@ -1054,22 +1052,22 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic return tanks.toArray(new FluidTankGT[0]); } - protected IFluidTank getFluidTankFillable(MultiBlockPart aPart, byte aSide, FluidStack aFluidToFill) { - return getFluidTankFillable(aPart.getFrontFacing(), aSide, aFluidToFill); + protected IFluidTank getFluidTankFillable(MultiBlockPart aPart, ForgeDirection side, FluidStack aFluidToFill) { + return getFluidTankFillable(side, aFluidToFill); } - protected IFluidTank getFluidTankDrainable(MultiBlockPart aPart, byte aSide, FluidStack aFluidToDrain) { - return getFluidTankDrainable(aPart.getFrontFacing(), aSide, aFluidToDrain); + protected IFluidTank getFluidTankDrainable(MultiBlockPart aPart, ForgeDirection side, FluidStack aFluidToDrain) { + return getFluidTankDrainable(side, aFluidToDrain); } - protected IFluidTank[] getFluidTanks(MultiBlockPart aPart, byte aSide) { - return getFluidTanks(aSide); + protected IFluidTank[] getFluidTanks(MultiBlockPart aPart, ForgeDirection side) { + return getFluidTanks(side); } @Override public int fill(MultiBlockPart aPart, ForgeDirection aDirection, FluidStack aFluid, boolean aDoFill) { if (aFluid == null || aFluid.amount <= 0) return 0; - final IFluidTank tTank = getFluidTankFillable(aPart, (byte) aDirection.ordinal(), aFluid); + final IFluidTank tTank = getFluidTankFillable(aPart, aDirection, aFluid); if (tTank == null) return 0; final int rFilledAmount = tTank.fill(aFluid, aDoFill); if (rFilledAmount > 0 && aDoFill) hasInventoryChanged = true; @@ -1079,7 +1077,7 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic @Override public FluidStack drain(MultiBlockPart aPart, ForgeDirection aDirection, FluidStack aFluid, boolean aDoDrain) { if (aFluid == null || aFluid.amount <= 0) return null; - final IFluidTank tTank = getFluidTankDrainable(aPart, (byte) aDirection.ordinal(), aFluid); + final IFluidTank tTank = getFluidTankDrainable(aPart, aDirection, aFluid); if (tTank == null || tTank.getFluid() == null || tTank.getFluidAmount() == 0 || !tTank.getFluid() @@ -1093,7 +1091,7 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic @Override public FluidStack drain(MultiBlockPart aPart, ForgeDirection aDirection, int aAmountToDrain, boolean aDoDrain) { if (aAmountToDrain <= 0) return null; - final IFluidTank tTank = getFluidTankDrainable(aPart, (byte) aDirection.ordinal(), null); + final IFluidTank tTank = getFluidTankDrainable(aPart, aDirection, null); if (tTank == null || tTank.getFluid() == null || tTank.getFluidAmount() == 0) return null; final FluidStack rDrained = tTank.drain(aAmountToDrain, aDoDrain); if (rDrained != null && aDoDrain) markInventoryBeenModified(); @@ -1103,7 +1101,7 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic @Override public boolean canFill(MultiBlockPart aPart, ForgeDirection aDirection, Fluid aFluid) { if (aFluid == null) return false; - final IFluidTank tTank = getFluidTankFillable(aPart, (byte) aDirection.ordinal(), new FluidStack(aFluid, 0)); + final IFluidTank tTank = getFluidTankFillable(aPart, aDirection, new FluidStack(aFluid, 0)); return tTank != null && (tTank.getFluid() == null || tTank.getFluid() .getFluid() == aFluid); } @@ -1111,14 +1109,14 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic @Override public boolean canDrain(MultiBlockPart aPart, ForgeDirection aDirection, Fluid aFluid) { if (aFluid == null) return false; - final IFluidTank tTank = getFluidTankDrainable(aPart, (byte) aDirection.ordinal(), new FluidStack(aFluid, 0)); + final IFluidTank tTank = getFluidTankDrainable(aPart, aDirection, new FluidStack(aFluid, 0)); return tTank != null && (tTank.getFluid() != null && tTank.getFluid() .getFluid() == aFluid); } @Override public FluidTankInfo[] getTankInfo(MultiBlockPart aPart, ForgeDirection aDirection) { - final IFluidTank[] tTanks = getFluidTanks(aPart, (byte) aDirection.ordinal()); + final IFluidTank[] tTanks = getFluidTanks(aPart, aDirection); if (tTanks == null || tTanks.length <= 0) return GT_Values.emptyFluidTankInfo; final FluidTankInfo[] rInfo = new FluidTankInfo[tTanks.length]; for (int i = 0; i < tTanks.length; i++) rInfo[i] = new FluidTankInfo(tTanks[i]); @@ -1143,15 +1141,15 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic // #region Energy @Override public PowerLogic getPowerLogic(IMultiBlockPart part, ForgeDirection side) { - if (!(this instanceof PowerLogicHost)) { + if (!(this instanceof PowerLogicHost powerLogicHost)) { return null; } - if (ForgeDirection.getOrientation(part.getFrontFacing()) != side) { + if (part.getFrontFacing() != side) { return null; } - return ((PowerLogicHost) this).getPowerLogic(side); + return powerLogicHost.getPowerLogic(side); } // #endregion Energy @@ -1294,7 +1292,7 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic } @Override - public int[] getAccessibleSlotsFromSide(MultiBlockPart aPart, byte aSide) { + public int[] getAccessibleSlotsFromSide(MultiBlockPart aPart, ForgeDirection side) { final TIntList tList = new TIntArrayList(); final Map<String, IItemHandlerModifiable> multiBlockInventory = getMultiBlockInventory(aPart); if (multiBlockInventory == null) return tList.toArray(); @@ -1318,7 +1316,7 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic } @Override - public boolean canInsertItem(MultiBlockPart aPart, int aSlot, ItemStack aStack, byte aSide) { + public boolean canInsertItem(MultiBlockPart aPart, int aSlot, ItemStack aStack, ForgeDirection side) { final Pair<IItemHandlerModifiable, Integer> tInv = getInventory(aPart, aSlot); if (tInv == null) return false; @@ -1334,7 +1332,7 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic } @Override - public boolean canExtractItem(MultiBlockPart aPart, int aSlot, ItemStack aStack, byte aSide) { + public boolean canExtractItem(MultiBlockPart aPart, int aSlot, ItemStack aStack, ForgeDirection side) { final Pair<IItemHandlerModifiable, Integer> tInv = getInventory(aPart, aSlot); if (tInv == null) return false; @@ -1738,7 +1736,7 @@ public abstract class Controller<T extends Controller<T>> extends MultiTileBasic } @Override - public boolean hasGui(byte aSide) { + public boolean hasGui(ForgeDirection side) { return true; } diff --git a/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPart.java b/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPart.java index d9d0ef4666..3b05c79f26 100644 --- a/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPart.java +++ b/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPart.java @@ -1,10 +1,8 @@ package gregtech.api.multitileentity.multiblock.base; import static com.google.common.math.LongMath.log2; -import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; import static gregtech.api.enums.GT_Values.B; import static gregtech.api.enums.GT_Values.NBT; -import static gregtech.api.enums.GT_Values.SIDE_UNKNOWN; import static gregtech.api.enums.Textures.BlockIcons.FLUID_IN_SIGN; import static gregtech.api.enums.Textures.BlockIcons.FLUID_OUT_SIGN; import static gregtech.api.enums.Textures.BlockIcons.ITEM_IN_SIGN; @@ -126,19 +124,19 @@ public abstract class MultiBlockPart extends NonTickableMultiTileEntity } @Override - public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, + public void getWailaBody(ItemStack itemStack, List<String> currentTip, IWailaDataAccessor accessor, IWailaConfigHandler config) { - super.getWailaBody(itemStack, currenttip, accessor, config); - currenttip.add(String.format("Mode: %s", getModeName(mMode))); + super.getWailaBody(itemStack, currentTip, accessor, config); + currentTip.add(String.format("Mode: %s", getModeName(mMode))); if (modeSelected(FLUID_OUT)) { if (configurationTank != null && configurationTank.get() != null) { - currenttip.add( + currentTip.add( String.format( "Locked to: %s", configurationTank.get() .getLocalizedName())); } else { - currenttip.add("Locked to: Nothing"); + currentTip.add("Locked to: Nothing"); } } } @@ -164,41 +162,41 @@ public abstract class MultiBlockPart extends NonTickableMultiTileEntity } public void registerCovers(IMultiBlockController controller) { - 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.getTickRate() > 0) { - controller.registerCoveredPartOnSide(i, this); + controller.registerCoveredPartOnSide(side, this); } } } @Override - public void setCoverItemAtSide(byte aSide, ItemStack aCover) { - super.setCoverItemAtSide(aSide, aCover); + public void setCoverItemAtSide(ForgeDirection side, ItemStack aCover) { + super.setCoverItemAtSide(side, aCover); // TODO: Filter on tickable covers final IMultiBlockController tTarget = getTarget(true); if (tTarget != null) { - final CoverInfo coverInfo = getCoverInfoAtSide(aSide); + final CoverInfo coverInfo = getCoverInfoAtSide(side); if (coverInfo.isValid() && coverInfo.getTickRate() > 0) { - tTarget.registerCoveredPartOnSide(aSide, this); + tTarget.registerCoveredPartOnSide(side, this); } } } public void unregisterCovers(IMultiBlockController controller) { - for (byte i : ALL_VALID_SIDES) { - if (getCoverInfoAtSide(i).isValid()) { - controller.unregisterCoveredPartOnSide(i, this); + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + if (getCoverInfoAtSide(side).isValid()) { + controller.unregisterCoveredPartOnSide(side, this); } } } @Override - public boolean dropCover(byte aSide, byte aDroppedSide, boolean aForced) { - final boolean res = super.dropCover(aSide, aDroppedSide, aForced); + public boolean dropCover(ForgeDirection side, ForgeDirection droppedSide, boolean aForced) { + final boolean res = super.dropCover(side, droppedSide, aForced); final IMultiBlockController tTarget = getTarget(true); if (tTarget != null) { - tTarget.unregisterCoveredPartOnSide(aSide, this); + tTarget.unregisterCoveredPartOnSide(side, this); } return res; } @@ -327,13 +325,13 @@ public abstract class MultiBlockPart extends NonTickableMultiTileEntity @Override public void onBlockAdded() { - for (byte tSide : ALL_VALID_SIDES) { - final TileEntity te = getTileEntityAtSide(tSide); - if (te instanceof MultiBlockPart) { - final IMultiBlockController tController = ((MultiBlockPart) te).getTarget(false); + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + final TileEntity te = getTileEntityAtSide(side); + if (te instanceof MultiBlockPart part) { + final IMultiBlockController tController = part.getTarget(false); if (tController != null) tController.onStructureChange(); - } else if (te instanceof IMultiBlockController) { - ((IMultiBlockController) te).onStructureChange(); + } else if (te instanceof IMultiBlockController controller) { + controller.onStructureChange(); } } } @@ -347,40 +345,38 @@ public abstract class MultiBlockPart extends NonTickableMultiTileEntity texture, TextureFactory.of(OVERLAY_PIPE_IN), TextureFactory.of(ITEM_IN_SIGN), - getCoverTexture((byte) side.ordinal())); + getCoverTexture(side)); } if (mMode == getModeOrdinal(ITEM_OUT)) { return TextureFactory.of( texture, TextureFactory.of(OVERLAY_PIPE_OUT), TextureFactory.of(ITEM_OUT_SIGN), - getCoverTexture((byte) side.ordinal())); + getCoverTexture(side)); } if (mMode == getModeOrdinal(FLUID_IN)) { return TextureFactory.of( texture, TextureFactory.of(OVERLAY_PIPE_IN), TextureFactory.of(FLUID_IN_SIGN), - getCoverTexture((byte) side.ordinal())); + getCoverTexture(side)); } if (mMode == getModeOrdinal(FLUID_OUT)) { return TextureFactory.of( texture, TextureFactory.of(OVERLAY_PIPE_OUT), TextureFactory.of(FLUID_OUT_SIGN), - getCoverTexture((byte) side.ordinal())); + getCoverTexture(side)); } if (mMode == getModeOrdinal(ENERGY_IN)) { - return TextureFactory - .of(texture, TextureFactory.of(OVERLAY_ENERGY_IN_MULTI), getCoverTexture((byte) side.ordinal())); + return TextureFactory.of(texture, TextureFactory.of(OVERLAY_ENERGY_IN_MULTI), getCoverTexture(side)); } if (mMode == getModeOrdinal(ENERGY_OUT)) { - return TextureFactory - .of(texture, TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI), getCoverTexture((byte) side.ordinal())); + return TextureFactory.of(texture, TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI), getCoverTexture(side)); } } - return TextureFactory.of(texture, getCoverTexture((byte) side.ordinal())); + return TextureFactory.of(texture, getCoverTexture(side)); } @Override @@ -418,15 +414,15 @@ public abstract class MultiBlockPart extends NonTickableMultiTileEntity } @Override - public boolean onMalletRightClick(EntityPlayer aPlayer, ItemStack tCurrentItem, byte wrenchSide, float aX, float aY, - float aZ) { + public boolean onMalletRightClick(EntityPlayer aPlayer, ItemStack tCurrentItem, ForgeDirection wrenchSide, float aX, + float aY, float aZ) { if (mAllowedModes == NOTHING) return true; if (mMode == NOTHING) { - facing = ForgeDirection.getOrientation(wrenchSide); + facing = wrenchSide; } mMode = getNextAllowedMode(BASIC_MODES); if (aPlayer.isSneaking()) { - facing = ForgeDirection.getOrientation(wrenchSide); + facing = wrenchSide; } GT_Utility.sendChatToPlayer(aPlayer, "Mode set to `" + getModeName(mMode) + "' (" + mMode + ")"); sendClientData((EntityPlayerMP) aPlayer); @@ -437,7 +433,7 @@ public abstract class MultiBlockPart extends NonTickableMultiTileEntity public void setLightValue(byte aLightValue) {} @Override - public byte getComparatorValue(byte aSide) { + public byte getComparatorValue(ForgeDirection side) { return 0; } @@ -457,10 +453,10 @@ public abstract class MultiBlockPart extends NonTickableMultiTileEntity @Override public int fill(ForgeDirection aDirection, FluidStack aFluidStack, boolean aDoFill) { if (!modeSelected(FLUID_IN)) return 0; - final byte aSide = (byte) aDirection.ordinal(); + if (aFluidStack == null || isWrongFluid(aFluidStack.getFluid())) return 0; - if (aDirection != ForgeDirection.UNKNOWN && (facing.compareTo(ForgeDirection.getOrientation(aSide)) != 0 - || !coverLetsFluidIn(aSide, aFluidStack.getFluid()))) return 0; + if (aDirection != ForgeDirection.UNKNOWN + && (facing.compareTo(aDirection) != 0 || !coverLetsFluidIn(aDirection, aFluidStack.getFluid()))) return 0; final IMultiBlockController controller = getTarget(true); return controller == null ? 0 : controller.fill(this, aDirection, aFluidStack, aDoFill); } @@ -468,10 +464,10 @@ public abstract class MultiBlockPart extends NonTickableMultiTileEntity @Override public FluidStack drain(ForgeDirection aDirection, FluidStack aFluidStack, boolean aDoDrain) { if (!modeSelected(FLUID_OUT)) return null; - final byte aSide = (byte) aDirection.ordinal(); if (aFluidStack == null || isWrongFluid(aFluidStack.getFluid())) return null; - if (aDirection != ForgeDirection.UNKNOWN && (facing.compareTo(ForgeDirection.getOrientation(aSide)) != 0 - || !coverLetsFluidOut(aSide, aFluidStack.getFluid()))) return null; + if (aDirection != ForgeDirection.UNKNOWN + && (facing.compareTo(aDirection) != 0 || !coverLetsFluidOut(aDirection, aFluidStack.getFluid()))) + return null; final IMultiBlockController controller = getTarget(true); return controller == null ? null : controller.drain(this, aDirection, aFluidStack, aDoDrain); } @@ -479,28 +475,27 @@ public abstract class MultiBlockPart extends NonTickableMultiTileEntity @Override public FluidStack drain(ForgeDirection aDirection, int aAmountToDrain, boolean aDoDrain) { if (!modeSelected(FLUID_OUT)) return null; - final byte aSide = (byte) aDirection.ordinal(); final IMultiBlockController controller = getTarget(true); if (controller == null) return null; FluidStack aFluidStack = null; if (getLockedFluid() != null) { - aFluidStack = controller.getDrainableFluid(aSide, getLockedFluid()); + aFluidStack = controller.getDrainableFluid(aDirection, getLockedFluid()); } else { - aFluidStack = controller.getDrainableFluid(aSide); + aFluidStack = controller.getDrainableFluid(aDirection); } if (aFluidStack == null || isWrongFluid(aFluidStack.getFluid())) return null; - if (aDirection != ForgeDirection.UNKNOWN && (facing.compareTo(ForgeDirection.getOrientation(aSide)) != 0 - || !coverLetsFluidOut(aSide, aFluidStack.getFluid()))) return null; + if (aDirection != ForgeDirection.UNKNOWN + && (facing.compareTo(aDirection) != 0 || !coverLetsFluidOut(aDirection, aFluidStack.getFluid()))) + return null; return controller.drain(this, aDirection, aFluidStack, aDoDrain); } @Override public boolean canFill(ForgeDirection aDirection, Fluid aFluid) { if (!modeSelected(FLUID_IN)) return false; - final byte aSide = (byte) aDirection.ordinal(); + if (aDirection != ForgeDirection.UNKNOWN - && (facing.compareTo(ForgeDirection.getOrientation(aSide)) != 0 || !coverLetsFluidIn(aSide, aFluid))) - return false; + && (facing.compareTo(aDirection) != 0 || !coverLetsFluidIn(aDirection, aFluid))) return false; if (isWrongFluid(aFluid)) return false; final IMultiBlockController controller = getTarget(true); return controller != null && controller.canFill(this, aDirection, aFluid); @@ -509,10 +504,8 @@ public abstract class MultiBlockPart extends NonTickableMultiTileEntity @Override public boolean canDrain(ForgeDirection aDirection, Fluid aFluid) { if (!modeSelected(FLUID_OUT)) return false; - final byte aSide = (byte) aDirection.ordinal(); if (aDirection != ForgeDirection.UNKNOWN - && (facing.compareTo(ForgeDirection.getOrientation(aSide)) != 0 || !coverLetsFluidOut(aSide, aFluid))) - return false; + && (facing.compareTo(aDirection) != 0 || !coverLetsFluidOut(aDirection, aFluid))) return false; if (isWrongFluid(aFluid)) return false; final IMultiBlockController controller = getTarget(true); return controller != null && controller.canDrain(this, aDirection, aFluid); @@ -520,17 +513,16 @@ public abstract class MultiBlockPart extends NonTickableMultiTileEntity @Override public FluidTankInfo[] getTankInfo(ForgeDirection aDirection) { - final byte aSide = (byte) aDirection.ordinal(); if (!modeSelected(FLUID_IN, FLUID_OUT) - || (aSide != SIDE_UNKNOWN && facing.compareTo(ForgeDirection.getOrientation(aSide)) != 0)) + || (aDirection != ForgeDirection.UNKNOWN && facing.compareTo(aDirection) != 0)) return GT_Values.emptyFluidTankInfo; final IMultiBlockController controller = getTarget(true); if (controller == null) return GT_Values.emptyFluidTankInfo; - final CoverInfo coverInfo = getCoverInfoAtSide(aSide); + final CoverInfo coverInfo = getCoverInfoAtSide(aDirection); - if ((controller.isLiquidInput(aSide) && coverInfo.letsFluidIn(null, controller)) - || (controller.isLiquidOutput(aSide) && coverInfo.letsFluidOut(null, controller))) + if ((controller.isLiquidInput(aDirection) && coverInfo.letsFluidIn(null, controller)) + || (controller.isLiquidOutput(aDirection) && coverInfo.letsFluidOut(null, controller))) return controller.getTankInfo(this, aDirection); return GT_Values.emptyFluidTankInfo; @@ -597,31 +589,32 @@ public abstract class MultiBlockPart extends NonTickableMultiTileEntity } @Override - public int[] getAccessibleSlotsFromSide(int aSide) { - if (!modeSelected(ITEM_IN, ITEM_OUT) - || (facing != ForgeDirection.UNKNOWN && facing.compareTo(ForgeDirection.getOrientation(aSide)) != 0)) + public int[] getAccessibleSlotsFromSide(int ordinalSide) { + final ForgeDirection side = ForgeDirection.getOrientation(ordinalSide); + if (!modeSelected(ITEM_IN, ITEM_OUT) || (facing != ForgeDirection.UNKNOWN && facing.compareTo(side) != 0)) return GT_Values.emptyIntArray; final IMultiBlockController controller = getTarget(true); - return controller != null ? controller.getAccessibleSlotsFromSide(this, (byte) aSide) : GT_Values.emptyIntArray; + return controller != null ? controller.getAccessibleSlotsFromSide(this, side) : GT_Values.emptyIntArray; } @Override - public boolean canInsertItem(int aSlot, ItemStack aStack, int aSide) { - if (!modeSelected(ITEM_IN, ITEM_OUT) || (facing != ForgeDirection.UNKNOWN - && (facing.compareTo(ForgeDirection.getOrientation(aSide)) != 0 || !coverLetsItemsIn((byte) aSide, aSlot)))) + public boolean canInsertItem(int aSlot, ItemStack aStack, int ordinalSide) { + final ForgeDirection side = ForgeDirection.getOrientation(ordinalSide); + if (!modeSelected(ITEM_IN, ITEM_OUT) + || (facing != ForgeDirection.UNKNOWN && (facing.compareTo(side) != 0 || !coverLetsItemsIn(side, aSlot)))) return false; final IMultiBlockController controller = getTarget(true); - return (controller != null && controller.canInsertItem(this, aSlot, aStack, (byte) aSide)); + return (controller != null && controller.canInsertItem(this, aSlot, aStack, side)); } @Override - public boolean canExtractItem(int aSlot, ItemStack aStack, int aSide) { + public boolean canExtractItem(int aSlot, ItemStack aStack, int ordinalSide) { + final ForgeDirection side = ForgeDirection.getOrientation(ordinalSide); if (!modeSelected(ITEM_IN, ITEM_OUT) - || (facing != ForgeDirection.UNKNOWN && (facing.compareTo(ForgeDirection.getOrientation(aSide)) != 0 - || !coverLetsItemsOut((byte) aSide, aSlot)))) + || (facing != ForgeDirection.UNKNOWN && (facing.compareTo(side) != 0 || !coverLetsItemsOut(side, aSlot)))) return false; final IMultiBlockController controller = getTarget(true); - return (controller != null && controller.canExtractItem(this, aSlot, aStack, (byte) aSide)); + return (controller != null && controller.canExtractItem(this, aSlot, aStack, side)); } @Override @@ -695,8 +688,8 @@ public abstract class MultiBlockPart extends NonTickableMultiTileEntity } @Override - public boolean hasGui(byte aSide) { - if (modeSelected(ENERGY_IN, ENERGY_OUT) && facing == ForgeDirection.getOrientation(aSide)) { + public boolean hasGui(ForgeDirection side) { + if (modeSelected(ENERGY_IN, ENERGY_OUT) && facing == side) { return false; } return getTarget(true) != null; diff --git a/src/main/java/gregtech/api/multitileentity/multiblock/base/WallShareablePart.java b/src/main/java/gregtech/api/multitileentity/multiblock/base/WallShareablePart.java index a391f503dc..62beb64022 100644 --- a/src/main/java/gregtech/api/multitileentity/multiblock/base/WallShareablePart.java +++ b/src/main/java/gregtech/api/multitileentity/multiblock/base/WallShareablePart.java @@ -1,12 +1,11 @@ package gregtech.api.multitileentity.multiblock.base; -import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; - import java.util.ArrayList; import java.util.List; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChunkCoordinates; +import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.multitileentity.interfaces.IMultiBlockController; @@ -67,7 +66,7 @@ public class WallShareablePart extends MultiBlockPart { @Override public boolean breakBlock() { - for (ChunkCoordinates coordinates : targetPositions) { + for (final ChunkCoordinates coordinates : targetPositions) { IMultiBlockController target = getTarget(coordinates, false); if (target == null) { continue; @@ -79,13 +78,13 @@ public class WallShareablePart extends MultiBlockPart { @Override public void onBlockAdded() { - for (byte tSide : ALL_VALID_SIDES) { - final TileEntity te = getTileEntityAtSide(tSide); - if (te instanceof MultiBlockPart) { - final IMultiBlockController tController = ((MultiBlockPart) te).getTarget(false); + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + final TileEntity te = getTileEntityAtSide(side); + if (te instanceof MultiBlockPart part) { + final IMultiBlockController tController = part.getTarget(false); if (tController != null) tController.onStructureChange(); - } else if (te instanceof IMultiBlockController) { - ((IMultiBlockController) te).onStructureChange(); + } else if (te instanceof IMultiBlockController controller) { + controller.onStructureChange(); } } } |