aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/multitileentity/multiblock
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/multitileentity/multiblock')
-rw-r--r--src/main/java/gregtech/api/multitileentity/multiblock/base/Controller.java98
-rw-r--r--src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPart.java145
-rw-r--r--src/main/java/gregtech/api/multitileentity/multiblock/base/WallShareablePart.java17
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();
}
}
}