aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/multitileentity
diff options
context:
space:
mode:
authorJason Mitchell <mitchej@gmail.com>2023-04-22 22:33:35 -0700
committerGitHub <noreply@github.com>2023-04-23 07:33:35 +0200
commit56f2269f4af6d2130bdb2b6e6ac6e13bce89e47b (patch)
tree745e6d92025ec4ef449fc59fa5fdd741200b0489 /src/main/java/gregtech/api/multitileentity
parentac0b7a7da46646d325def36eed811941dbfc5950 (diff)
downloadGT5-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/multitileentity')
-rw-r--r--src/main/java/gregtech/api/multitileentity/MultiTileEntityBlock.java128
-rw-r--r--src/main/java/gregtech/api/multitileentity/MultiTileEntityBlockInternal.java5
-rw-r--r--src/main/java/gregtech/api/multitileentity/MultiTileEntityItemInternal.java97
-rw-r--r--src/main/java/gregtech/api/multitileentity/base/MultiTileEntity.java232
-rw-r--r--src/main/java/gregtech/api/multitileentity/base/NonTickableMultiTileEntity.java11
-rw-r--r--src/main/java/gregtech/api/multitileentity/base/TickableMultiTileEntity.java3
-rw-r--r--src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockController.java12
-rw-r--r--src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockEnergy.java10
-rw-r--r--src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockInventory.java7
-rw-r--r--src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockPart.java3
-rw-r--r--src/main/java/gregtech/api/multitileentity/interfaces/IMultiTileEntity.java39
-rw-r--r--src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java38
-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
15 files changed, 416 insertions, 429 deletions
diff --git a/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlock.java b/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlock.java
index b81961af95..7d1c74b1bc 100644
--- a/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlock.java
+++ b/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlock.java
@@ -1,6 +1,5 @@
package gregtech.api.multitileentity;
-import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES;
import static gregtech.api.enums.GT_Values.OFFX;
import static gregtech.api.enums.GT_Values.OFFY;
import static gregtech.api.enums.GT_Values.OFFZ;
@@ -46,7 +45,6 @@ import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.GregTech_API;
-import gregtech.api.enums.GT_Values;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.IDebugableBlock;
@@ -66,7 +64,6 @@ import gregtech.api.multitileentity.interfaces.IMultiTileEntity.IMTE_ShouldCheck
import gregtech.api.objects.XSTR;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_Util;
-import gregtech.api.util.GT_Utility;
import gregtech.common.covers.CoverInfo;
import gregtech.common.render.GT_MultiTile_Renderer;
@@ -229,13 +226,13 @@ public class MultiTileEntityBlock extends Block implements IDebugableBlock, ITil
@SideOnly(Side.CLIENT)
@Override
- public IIcon getIcon(IBlockAccess aIBlockAccess, int aX, int aY, int aZ, int aSide) {
+ public IIcon getIcon(IBlockAccess aIBlockAccess, int aX, int aY, int aZ, int ordinalSide) {
return Textures.BlockIcons.MACHINE_LV_SIDE.getIcon();
}
@SideOnly(Side.CLIENT)
@Override
- public IIcon getIcon(int aSide, int aMeta) {
+ public IIcon getIcon(int ordinalSide, int aMeta) {
return Textures.BlockIcons.MACHINE_LV_SIDE.getIcon();
}
@@ -252,24 +249,22 @@ public class MultiTileEntityBlock extends Block implements IDebugableBlock, ITil
@Override
public final AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
final TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
- return aTileEntity instanceof IMultiTileEntity
- ? ((IMultiTileEntity) aTileEntity).getCollisionBoundingBoxFromPool()
+ return aTileEntity instanceof IMultiTileEntity mte ? mte.getCollisionBoundingBoxFromPool()
: aTileEntity == null ? null : super.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ);
}
@Override
public final AxisAlignedBB getSelectedBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
final TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
- return aTileEntity instanceof IMultiTileEntity
- ? ((IMultiTileEntity) aTileEntity).getSelectedBoundingBoxFromPool()
+ return aTileEntity instanceof IMultiTileEntity mte ? mte.getSelectedBoundingBoxFromPool()
: super.getSelectedBoundingBoxFromPool(aWorld, aX, aY, aZ);
}
@Override
public void setBlockBoundsBasedOnState(IBlockAccess blockAccess, int aX, int aY, int aZ) {
final TileEntity aTileEntity = blockAccess.getTileEntity(aX, aY, aZ);
- if (aTileEntity instanceof IMultiTileEntity) {
- ((IMultiTileEntity) aTileEntity).setBlockBoundsBasedOnState(this);
+ if (aTileEntity instanceof IMultiTileEntity mte) {
+ mte.setBlockBoundsBasedOnState(this);
return;
}
super.setBlockBoundsBasedOnState(blockAccess, aX, aY, aZ);
@@ -300,21 +295,20 @@ public class MultiTileEntityBlock extends Block implements IDebugableBlock, ITil
if (aTileEntity instanceof BaseTileEntity) ((BaseTileEntity) aTileEntity).onAdjacentBlockChange(aX, aY, aZ);
LOCK = false;
}
- if (aTileEntity instanceof IMTE_OnNeighborBlockChange)
- ((IMTE_OnNeighborBlockChange) aTileEntity).onNeighborBlockChange(aWorld, aBlock);
+ if (aTileEntity instanceof IMTE_OnNeighborBlockChange change) change.onNeighborBlockChange(aWorld, aBlock);
if (aTileEntity == null) aWorld.setBlockToAir(aX, aY, aZ);
}
@Override
public final void onBlockAdded(World aWorld, int aX, int aY, int aZ) {
final TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
- if (aTileEntity instanceof IMultiTileEntity) ((IMultiTileEntity) aTileEntity).onBlockAdded();
+ if (aTileEntity instanceof IMultiTileEntity mte) mte.onBlockAdded();
}
@Override
public float getPlayerRelativeBlockHardness(EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ) {
final TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
- return aTileEntity instanceof IMultiTileEntity && ((IMultiTileEntity) aTileEntity).privateAccess()
+ return aTileEntity instanceof IMultiTileEntity mte && mte.privateAccess()
&& !((IMultiTileEntity) aTileEntity).playerOwnsThis(aPlayer, true) ? -1.0F
: super.getPlayerRelativeBlockHardness(aPlayer, aWorld, aX, aY, aZ);
}
@@ -322,47 +316,47 @@ public class MultiTileEntityBlock extends Block implements IDebugableBlock, ITil
@Override
public final void onBlockClicked(World aWorld, int aX, int aY, int aZ, EntityPlayer aPlayer) {
final TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
- if (aTileEntity instanceof IMultiTileEntity) ((IMultiTileEntity) aTileEntity).onLeftClick(aPlayer);
+ if (aTileEntity instanceof IMultiTileEntity mte) mte.onLeftClick(aPlayer);
else super.onBlockClicked(aWorld, aX, aY, aZ, aPlayer);
}
@Override
- public boolean onBlockActivated(World aWorld, int aX, int aY, int aZ, EntityPlayer aPlayer, int aSide, float aHitX,
- float aHitY, float aHitZ) {
+ public boolean onBlockActivated(World aWorld, int aX, int aY, int aZ, EntityPlayer aPlayer, int ordinalSide,
+ float aHitX, float aHitY, float aHitZ) {
final TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
if (aPlayer != null && ItemList.TC_Thaumometer.isStackEqual(aPlayer.getHeldItem(), true, true)) return false;
- return aTileEntity instanceof IMultiTileEntity
- && ((IMultiTileEntity) aTileEntity).onBlockActivated(aPlayer, (byte) aSide, aHitX, aHitY, aHitZ);
+ return aTileEntity instanceof IMultiTileEntity mte
+ && mte.onBlockActivated(aPlayer, ForgeDirection.getOrientation(ordinalSide), aHitX, aHitY, aHitZ);
}
@Override
- public final int isProvidingWeakPower(IBlockAccess aWorld, int aX, int aY, int aZ, int aSide) {
+ public final int isProvidingWeakPower(IBlockAccess aWorld, int aX, int aY, int aZ, int ordinalSide) {
final TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
- return aTileEntity instanceof IMTE_IsProvidingWeakPower
- ? ((IMTE_IsProvidingWeakPower) aTileEntity).isProvidingWeakPower((byte) aSide)
- : super.isProvidingWeakPower(aWorld, aX, aY, aZ, aSide);
+ return aTileEntity instanceof IMTE_IsProvidingWeakPower power
+ ? power.isProvidingWeakPower(ForgeDirection.getOrientation(ordinalSide))
+ : super.isProvidingWeakPower(aWorld, aX, aY, aZ, ordinalSide);
}
@Override
- public final int isProvidingStrongPower(IBlockAccess aWorld, int aX, int aY, int aZ, int aSide) {
+ public final int isProvidingStrongPower(IBlockAccess aWorld, int aX, int aY, int aZ, int ordinalSide) {
final TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
- return aTileEntity instanceof IMTE_IsProvidingStrongPower
- ? ((IMTE_IsProvidingStrongPower) aTileEntity).isProvidingStrongPower((byte) aSide)
- : super.isProvidingStrongPower(aWorld, aX, aY, aZ, aSide);
+ return aTileEntity instanceof IMTE_IsProvidingStrongPower power
+ ? power.isProvidingStrongPower(ForgeDirection.getOrientation(ordinalSide))
+ : super.isProvidingStrongPower(aWorld, aX, aY, aZ, ordinalSide);
}
@Override
- public final boolean shouldCheckWeakPower(IBlockAccess aWorld, int aX, int aY, int aZ, int aSide) {
+ public final boolean shouldCheckWeakPower(IBlockAccess aWorld, int aX, int aY, int aZ, int ordinalSide) {
final TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
- return aTileEntity instanceof IMTE_ShouldCheckWeakPower
- ? ((IMTE_ShouldCheckWeakPower) aTileEntity).shouldCheckWeakPower((byte) aSide)
+ return aTileEntity instanceof IMTE_ShouldCheckWeakPower power
+ ? power.shouldCheckWeakPower(ForgeDirection.getOrientation(ordinalSide))
: isNormalCube(aWorld, aX, aY, aZ);
}
@Override
public final boolean getWeakChanges(IBlockAccess aWorld, int aX, int aY, int aZ) {
final TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
- return aTileEntity instanceof IMTE_GetWeakChanges ? ((IMTE_GetWeakChanges) aTileEntity).getWeakChanges()
+ return aTileEntity instanceof IMTE_GetWeakChanges changes ? changes.getWeakChanges()
: super.getWeakChanges(aWorld, aX, aY, aZ);
}
@@ -379,32 +373,33 @@ public class MultiTileEntityBlock extends Block implements IDebugableBlock, ITil
final ArrayList<ItemStack> tList = ((IMultiTileEntity) aTileEntity).getDrops(aFortune, aSilkTouch);
aChance = ForgeEventFactory
.fireBlockHarvesting(tList, aWorld, this, aX, aY, aZ, aMeta, aFortune, aChance, aSilkTouch, aPlayer);
- for (ItemStack tStack : tList)
+ for (final ItemStack tStack : tList)
if (XSTR.XSTR_INSTANCE.nextFloat() <= aChance) dropBlockAsItem(aWorld, aX, aY, aZ, tStack);
}
}
@Override
- public final boolean shouldSideBeRendered(IBlockAccess aWorld, int aX, int aY, int aZ, int aSide) {
- final TileEntity aTileEntity = aWorld.getTileEntity(aX - OFFX[aSide], aY - OFFY[aSide], aZ - OFFZ[aSide]);
+ public final boolean shouldSideBeRendered(IBlockAccess aWorld, int aX, int aY, int aZ, int ordinalSide) {
+ final TileEntity aTileEntity = aWorld
+ .getTileEntity(aX - OFFX[ordinalSide], aY - OFFY[ordinalSide], aZ - OFFZ[ordinalSide]);
return aTileEntity instanceof IMultiTileEntity
- ? ((IMultiTileEntity) aTileEntity).shouldSideBeRendered((byte) aSide)
- : super.shouldSideBeRendered(aWorld, aX, aY, aZ, aSide);
+ ? ((IMultiTileEntity) aTileEntity).shouldSideBeRendered(ForgeDirection.getOrientation(ordinalSide))
+ : super.shouldSideBeRendered(aWorld, aX, aY, aZ, ordinalSide);
}
@Override
- public Block getFacade(IBlockAccess aWorld, int aX, int aY, int aZ, int side) {
+ public Block getFacade(IBlockAccess aWorld, int aX, int aY, int aZ, int ordinalSide) {
final TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
if (tTileEntity instanceof CoverableTileEntity tile) {
- final byte aSide = (byte) side;
- if (side != -1) {
- final Block facadeBlock = tile.getCoverInfoAtSide(aSide)
+ final ForgeDirection side = ForgeDirection.getOrientation(ordinalSide);
+ if (ordinalSide != -1) {
+ final Block facadeBlock = tile.getCoverInfoAtSide(side)
.getFacadeBlock();
if (facadeBlock != null) return facadeBlock;
} else {
// we do not allow more than one type of facade per block, so no need to check every side
// see comment in gregtech.common.covers.GT_Cover_FacadeBase.isCoverPlaceable
- for (byte tSide : ALL_VALID_SIDES) {
+ for (final ForgeDirection tSide : ForgeDirection.VALID_DIRECTIONS) {
final Block facadeBlock = tile.getCoverInfoAtSide(tSide)
.getFacadeBlock();
if (facadeBlock != null) {
@@ -417,18 +412,18 @@ public class MultiTileEntityBlock extends Block implements IDebugableBlock, ITil
}
@Override
- public int getFacadeMetadata(IBlockAccess aWorld, int aX, int aY, int aZ, int side) {
+ public int getFacadeMetadata(IBlockAccess aWorld, int aX, int aY, int aZ, int ordinalSide) {
final TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
if (tTileEntity instanceof CoverableTileEntity tile) {
- final byte aSide = (byte) side;
- if (side != -1) {
- final CoverInfo coverInfo = tile.getCoverInfoAtSide(aSide);
+ final ForgeDirection side = ForgeDirection.getOrientation(ordinalSide);
+ if (ordinalSide != -1) {
+ final CoverInfo coverInfo = tile.getCoverInfoAtSide(side);
final Block facadeBlock = coverInfo.getFacadeBlock();
if (facadeBlock != null) return coverInfo.getFacadeMeta();
} else {
// we do not allow more than one type of facade per block, so no need to check every side
// see comment in gregtech.common.covers.GT_Cover_FacadeBase.isCoverPlaceable
- for (byte tSide : ALL_VALID_SIDES) {
+ for (final ForgeDirection tSide : ForgeDirection.VALID_DIRECTIONS) {
final CoverInfo coverInfo = tile.getCoverInfoAtSide(tSide);
final Block facadeBlock = coverInfo.getFacadeBlock();
if (facadeBlock != null) {
@@ -477,13 +472,14 @@ public class MultiTileEntityBlock extends Block implements IDebugableBlock, ITil
}
@Override
- public final int getComparatorInputOverride(World aWorld, int aX, int aY, int aZ, int aSide) {
+ public final int getComparatorInputOverride(World aWorld, int aX, int aY, int aZ, int ordinalSide) {
final TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
- return aTileEntity instanceof IMTE_GetComparatorInputOverride
- ? ((IMTE_GetComparatorInputOverride) aTileEntity).getComparatorInputOverride((byte) aSide)
- : aTileEntity instanceof IMTE_IsProvidingWeakPower
- ? ((IMTE_IsProvidingWeakPower) aTileEntity).isProvidingWeakPower(GT_Utility.getOppositeSide(aSide))
- : super.getComparatorInputOverride(aWorld, aX, aY, aZ, aSide);
+ return aTileEntity instanceof IMTE_GetComparatorInputOverride override
+ ? override.getComparatorInputOverride(ForgeDirection.getOrientation(ordinalSide))
+ : aTileEntity instanceof IMTE_IsProvidingWeakPower power ? power.isProvidingWeakPower(
+ ForgeDirection.getOrientation(ordinalSide)
+ .getOpposite())
+ : super.getComparatorInputOverride(aWorld, aX, aY, aZ, ordinalSide);
}
@Override
@@ -497,12 +493,9 @@ public class MultiTileEntityBlock extends Block implements IDebugableBlock, ITil
}
@Override
- public final boolean isSideSolid(IBlockAccess aWorld, int aX, int aY, int aZ, ForgeDirection aSide) {
+ public final boolean isSideSolid(IBlockAccess aWorld, int aX, int aY, int aZ, ForgeDirection side) {
final TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
- return aTileEntity instanceof IMultiTileEntity
- ? ((IMultiTileEntity) aTileEntity)
- .isSideSolid((byte) (aSide != null ? aSide.ordinal() : GT_Values.SIDE_UNKNOWN))
- : mOpaque;
+ return aTileEntity instanceof IMultiTileEntity mte ? mte.isSideSolid(side) : mOpaque;
}
@Override
@@ -566,15 +559,14 @@ public class MultiTileEntityBlock extends Block implements IDebugableBlock, ITil
}
@Override
- public final boolean canConnectRedstone(IBlockAccess aWorld, int aX, int aY, int aZ, int aSide) {
+ public final boolean canConnectRedstone(IBlockAccess aWorld, int aX, int aY, int aZ, int ordinalSide) {
return true;
}
@Override
- public final boolean recolourBlock(World aWorld, int aX, int aY, int aZ, ForgeDirection aSide, int aColor) {
+ public final boolean recolourBlock(World aWorld, int aX, int aY, int aZ, ForgeDirection side, int aColor) {
final TileEntity aTileEntity = aWorld.getTileEntity(aX, aY, aZ);
- return aTileEntity instanceof IMultiTileEntity
- && ((IMultiTileEntity) aTileEntity).recolourBlock((byte) aSide.ordinal(), (byte) aColor);
+ return aTileEntity instanceof IMultiTileEntity mte && mte.recolourBlock(side, (byte) aColor);
}
@Override
@@ -627,12 +619,12 @@ public class MultiTileEntityBlock extends Block implements IDebugableBlock, ITil
public void receiveCoverData(IMultiTileEntity mte, int aCover0, int aCover1, int aCover2, int aCover3, int aCover4,
int aCover5) {
boolean updated;
- updated = mte.setCoverIDAtSideNoUpdate((byte) 0, aCover0);
- updated |= mte.setCoverIDAtSideNoUpdate((byte) 1, aCover1);
- updated |= mte.setCoverIDAtSideNoUpdate((byte) 2, aCover2);
- updated |= mte.setCoverIDAtSideNoUpdate((byte) 3, aCover3);
- updated |= mte.setCoverIDAtSideNoUpdate((byte) 4, aCover4);
- updated |= mte.setCoverIDAtSideNoUpdate((byte) 5, aCover5);
+ updated = mte.setCoverIDAtSideNoUpdate(ForgeDirection.DOWN, aCover0);
+ updated |= mte.setCoverIDAtSideNoUpdate(ForgeDirection.UP, aCover1);
+ updated |= mte.setCoverIDAtSideNoUpdate(ForgeDirection.NORTH, aCover2);
+ updated |= mte.setCoverIDAtSideNoUpdate(ForgeDirection.SOUTH, aCover3);
+ updated |= mte.setCoverIDAtSideNoUpdate(ForgeDirection.WEST, aCover4);
+ updated |= mte.setCoverIDAtSideNoUpdate(ForgeDirection.EAST, aCover5);
if (updated) {
mte.issueBlockUpdate();
diff --git a/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlockInternal.java b/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlockInternal.java
index a3637e4626..17e217ae7e 100644
--- a/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlockInternal.java
+++ b/src/main/java/gregtech/api/multitileentity/MultiTileEntityBlockInternal.java
@@ -10,6 +10,7 @@ import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
import gregtech.api.GregTech_API;
import gregtech.api.multitileentity.interfaces.IMultiTileEntity;
@@ -45,8 +46,8 @@ public class MultiTileEntityBlockInternal extends Block {
return StatCollector.translateToLocal(mMultiTileEntityRegistry.mNameInternal + ".name");
}
- public boolean placeBlock(World aWorld, int aX, int aY, int aZ, byte aSide, short aMetaData, NBTTagCompound aNBT,
- boolean aCauseBlockUpdates, boolean aForcePlacement) {
+ public boolean placeBlock(World aWorld, int aX, int aY, int aZ, ForgeDirection side, short aMetaData,
+ NBTTagCompound aNBT, boolean aCauseBlockUpdates, boolean aForcePlacement) {
final MultiTileEntityContainer aMTEContainer = mMultiTileEntityRegistry
.getNewTileEntityContainer(aWorld, aX, aY, aZ, aMetaData, aNBT);
if (aMTEContainer == null) return false;
diff --git a/src/main/java/gregtech/api/multitileentity/MultiTileEntityItemInternal.java b/src/main/java/gregtech/api/multitileentity/MultiTileEntityItemInternal.java
index a37fa9956e..07a9124df4 100644
--- a/src/main/java/gregtech/api/multitileentity/MultiTileEntityItemInternal.java
+++ b/src/main/java/gregtech/api/multitileentity/MultiTileEntityItemInternal.java
@@ -19,13 +19,13 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidContainerItem;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.GregTech_API;
-import gregtech.api.enums.GT_Values;
import gregtech.api.metatileentity.CoverableTileEntity;
import gregtech.api.multitileentity.interfaces.IItemUpdatable;
import gregtech.api.multitileentity.interfaces.IMultiTileEntity;
@@ -83,25 +83,27 @@ public class MultiTileEntityItemInternal extends ItemBlock implements IFluidCont
}
@Override
- public boolean onItemUse(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide,
- float aHitX, float aHitY, float aHitZ) {
+ public boolean onItemUse(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ,
+ int ordinalSide, float aHitX, float aHitY, float aHitZ) {
if (aY < 0 || aY > aWorld.getHeight()) return false;
try {
+ ForgeDirection side = ForgeDirection.getOrientation(ordinalSide);
final Block tClickedBlock = aWorld.getBlock(aX, aY, aZ);
if (tClickedBlock instanceof BlockSnow && (aWorld.getBlockMetadata(aX, aY, aZ) & 7) < 1) {
- aSide = SIDE_TOP;
+ ordinalSide = SIDE_TOP;
+ side = ForgeDirection.UP;
} else if (tClickedBlock != Blocks.vine && tClickedBlock != Blocks.tallgrass
&& tClickedBlock != Blocks.deadbush
&& !tClickedBlock.isReplaceable(aWorld, aX, aY, aZ)) {
- aX += GT_Values.OFFX[aSide];
- aY += GT_Values.OFFY[aSide];
- aZ += GT_Values.OFFZ[aSide];
+ aX += side.offsetX;
+ aY += side.offsetY;
+ aZ += side.offsetZ;
}
final Block tReplacedBlock = aWorld.getBlock(aX, aY, aZ);
if (!tReplacedBlock.isReplaceable(aWorld, aX, aY, aZ)
- || !mBlock.canReplace(aWorld, aX, aY, aZ, aSide, aStack)) return false;
- if (aStack.stackSize == 0 || (aPlayer != null && !aPlayer.canPlayerEdit(aX, aY, aZ, aSide, aStack)))
+ || !mBlock.canReplace(aWorld, aX, aY, aZ, ordinalSide, aStack)) return false;
+ if (aStack.stackSize == 0 || (aPlayer != null && !aPlayer.canPlayerEdit(aX, aY, aZ, ordinalSide, aStack)))
return false;
final MultiTileEntityContainer aMTEContainer = mBlock.mMultiTileEntityRegistry
@@ -109,30 +111,29 @@ public class MultiTileEntityItemInternal extends ItemBlock implements IFluidCont
if (aMTEContainer != null
&& (aPlayer == null || aPlayer.isSneaking()
- || !(aMTEContainer.mTileEntity instanceof IMTE_OnlyPlaceableWhenSneaking)
- || !((IMTE_OnlyPlaceableWhenSneaking) aMTEContainer.mTileEntity).onlyPlaceableWhenSneaking())
+ || !(aMTEContainer.mTileEntity instanceof IMTE_OnlyPlaceableWhenSneaking mteSNeaking)
+ || !mteSNeaking.onlyPlaceableWhenSneaking())
&& (aWorld.checkNoEntityCollision(AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX + 1, aY + 1, aZ + 1))
- || (aMTEContainer.mTileEntity instanceof IMTE_IgnoreEntityCollisionWhenPlacing
- && ((IMTE_IgnoreEntityCollisionWhenPlacing) aMTEContainer.mTileEntity)
- .ignoreEntityCollisionWhenPlacing(
- aStack,
- aPlayer,
- aWorld,
- aX,
- aY,
- aZ,
- (byte) aSide,
- aHitX,
- aHitY,
- aHitZ)))
- && (!(aMTEContainer.mTileEntity instanceof IMTE_CanPlace) || ((IMTE_CanPlace) aMTEContainer.mTileEntity)
- .canPlace(aStack, aPlayer, aWorld, aX, aY, aZ, (byte) aSide, aHitX, aHitY, aHitZ))
+ || (aMTEContainer.mTileEntity instanceof IMTE_IgnoreEntityCollisionWhenPlacing mteIgnoreCollision
+ && mteIgnoreCollision.ignoreEntityCollisionWhenPlacing(
+ aStack,
+ aPlayer,
+ aWorld,
+ aX,
+ aY,
+ aZ,
+ side,
+ aHitX,
+ aHitY,
+ aHitZ)))
+ && (!(aMTEContainer.mTileEntity instanceof IMTE_CanPlace mteCanPlace)
+ || mteCanPlace.canPlace(aStack, aPlayer, aWorld, aX, aY, aZ, side, aHitX, aHitY, aHitZ))
&& aWorld.setBlock(aX, aY, aZ, aMTEContainer.mBlock, 15 - aMTEContainer.mBlockMetaData, 2)) {
aMTEContainer.setMultiTile(aWorld, aX, aY, aZ);
try {
if (((IMultiTileEntity) aMTEContainer.mTileEntity)
- .onPlaced(aStack, aPlayer, aWorld, aX, aY, aZ, (byte) aSide, aHitX, aHitY, aHitZ)) {
+ .onPlaced(aStack, aPlayer, aWorld, aX, aY, aZ, side, aHitX, aHitY, aHitZ)) {
aWorld.playSoundEffect(
aX + 0.5,
aY + 0.5,
@@ -145,9 +146,8 @@ public class MultiTileEntityItemInternal extends ItemBlock implements IFluidCont
GT_FML_LOGGER.error("onPlaced", e);
}
try {
- if (aMTEContainer.mTileEntity instanceof IMTE_HasMultiBlockMachineRelevantData
- && (((IMTE_HasMultiBlockMachineRelevantData) aMTEContainer.mTileEntity)
- .hasMultiBlockMachineRelevantData())) {
+ if (aMTEContainer.mTileEntity instanceof IMTE_HasMultiBlockMachineRelevantData mteData
+ && (mteData.hasMultiBlockMachineRelevantData())) {
GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ);
}
} catch (Throwable e) {
@@ -187,8 +187,8 @@ public class MultiTileEntityItemInternal extends ItemBlock implements IFluidCont
if (tContainer == null) return;
final MultiTileEntityContainer tTileEntityContainer = mBlock.mMultiTileEntityRegistry
.getNewTileEntityContainer(aStack);
- if (tTileEntityContainer != null && tTileEntityContainer.mTileEntity instanceof IItemUpdatable) {
- ((IItemUpdatable) tTileEntityContainer.mTileEntity).updateItemStack(aStack);
+ if (tTileEntityContainer != null && tTileEntityContainer.mTileEntity instanceof IItemUpdatable itemUpdatable) {
+ itemUpdatable.updateItemStack(aStack);
}
}
@@ -198,8 +198,8 @@ public class MultiTileEntityItemInternal extends ItemBlock implements IFluidCont
if (tContainer == null) return;
final MultiTileEntityContainer tTileEntityContainer = mBlock.mMultiTileEntityRegistry
.getNewTileEntityContainer(aStack);
- if (tTileEntityContainer != null && tTileEntityContainer.mTileEntity instanceof IItemUpdatable) {
- ((IItemUpdatable) tTileEntityContainer.mTileEntity).updateItemStack(aStack, aWorld, aX, aY, aZ);
+ if (tTileEntityContainer != null && tTileEntityContainer.mTileEntity instanceof IItemUpdatable itemUpdatable) {
+ itemUpdatable.updateItemStack(aStack, aWorld, aX, aY, aZ);
}
}
@@ -209,9 +209,9 @@ public class MultiTileEntityItemInternal extends ItemBlock implements IFluidCont
if (tContainer == null) return 1;
final MultiTileEntityContainer tTileEntityContainer = mBlock.mMultiTileEntityRegistry
.getNewTileEntityContainer(aStack);
- if (tTileEntityContainer != null && tTileEntityContainer.mTileEntity instanceof IMTE_GetMaxStackSize) {
- return ((IMTE_GetMaxStackSize) tTileEntityContainer.mTileEntity)
- .getMaxStackSize(aStack, tContainer.mStackSize);
+ if (tTileEntityContainer != null
+ && tTileEntityContainer.mTileEntity instanceof IMTE_GetMaxStackSize maxStackSize) {
+ return maxStackSize.getMaxStackSize(aStack, tContainer.mStackSize);
}
return tContainer.mStackSize;
}
@@ -225,8 +225,9 @@ public class MultiTileEntityItemInternal extends ItemBlock implements IFluidCont
public FluidStack getFluid(ItemStack aStack) {
final MultiTileEntityContainer tTileEntityContainer = mBlock.mMultiTileEntityRegistry
.getNewTileEntityContainer(aStack);
- if (tTileEntityContainer != null && tTileEntityContainer.mTileEntity instanceof IFluidContainerItem) {
- final FluidStack rFluid = ((IFluidContainerItem) tTileEntityContainer.mTileEntity).getFluid(aStack);
+ if (tTileEntityContainer != null
+ && tTileEntityContainer.mTileEntity instanceof IFluidContainerItem fluidContainerItem) {
+ final FluidStack rFluid = fluidContainerItem.getFluid(aStack);
updateItemStack(aStack);
return rFluid;
}
@@ -237,8 +238,9 @@ public class MultiTileEntityItemInternal extends ItemBlock implements IFluidCont
public int getCapacity(ItemStack aStack) {
final MultiTileEntityContainer tTileEntityContainer = mBlock.mMultiTileEntityRegistry
.getNewTileEntityContainer(aStack);
- if (tTileEntityContainer != null && tTileEntityContainer.mTileEntity instanceof IFluidContainerItem) {
- final int rCapacity = ((IFluidContainerItem) tTileEntityContainer.mTileEntity).getCapacity(aStack);
+ if (tTileEntityContainer != null
+ && tTileEntityContainer.mTileEntity instanceof IFluidContainerItem fluidContainerItem) {
+ final int rCapacity = fluidContainerItem.getCapacity(aStack);
updateItemStack(aStack);
return rCapacity;
}
@@ -249,8 +251,9 @@ public class MultiTileEntityItemInternal extends ItemBlock implements IFluidCont
public int fill(ItemStack aStack, FluidStack aFluid, boolean aDoFill) {
final MultiTileEntityContainer tTileEntityContainer = mBlock.mMultiTileEntityRegistry
.getNewTileEntityContainer(aStack);
- if (tTileEntityContainer != null && tTileEntityContainer.mTileEntity instanceof IFluidContainerItem) {
- final int tFilled = ((IFluidContainerItem) tTileEntityContainer.mTileEntity).fill(aStack, aFluid, aDoFill);
+ if (tTileEntityContainer != null
+ && tTileEntityContainer.mTileEntity instanceof IFluidContainerItem fluidContainerItem) {
+ final int tFilled = fluidContainerItem.fill(aStack, aFluid, aDoFill);
updateItemStack(aStack);
return tFilled;
}
@@ -261,9 +264,9 @@ public class MultiTileEntityItemInternal extends ItemBlock implements IFluidCont
public FluidStack drain(ItemStack aStack, int aMaxDrain, boolean aDoDrain) {
final MultiTileEntityContainer tTileEntityContainer = mBlock.mMultiTileEntityRegistry
.getNewTileEntityContainer(aStack);
- if (tTileEntityContainer != null && tTileEntityContainer.mTileEntity instanceof IFluidContainerItem) {
- final FluidStack rFluid = ((IFluidContainerItem) tTileEntityContainer.mTileEntity)
- .drain(aStack, aMaxDrain, aDoDrain);
+ if (tTileEntityContainer != null
+ && tTileEntityContainer.mTileEntity instanceof IFluidContainerItem fluidContainerItem) {
+ final FluidStack rFluid = fluidContainerItem.drain(aStack, aMaxDrain, aDoDrain);
updateItemStack(aStack);
return rFluid;
}
@@ -271,7 +274,7 @@ public class MultiTileEntityItemInternal extends ItemBlock implements IFluidCont
}
@Override
- public boolean func_150936_a /* canPlaceAtSide */(World aWorld, int aX, int aY, int aZ, int aSide,
+ public boolean func_150936_a /* canPlaceAtSide */(World aWorld, int aX, int aY, int aZ, int ordinalSide,
EntityPlayer aPlayer, ItemStack aStack) {
return true;
}
diff --git a/src/main/java/gregtech/api/multitileentity/base/MultiTileEntity.java b/src/main/java/gregtech/api/multitileentity/base/MultiTileEntity.java
index 4312f99ce7..027d666a66 100644
--- a/src/main/java/gregtech/api/multitileentity/base/MultiTileEntity.java
+++ b/src/main/java/gregtech/api/multitileentity/base/MultiTileEntity.java
@@ -1,7 +1,7 @@
package gregtech.api.multitileentity.base;
import static gregtech.GT_Mod.GT_FML_LOGGER;
-import static gregtech.api.enums.GT_Values.OPOS;
+import static gregtech.api.enums.GT_Values.NBT;
import static gregtech.api.enums.GT_Values.VALID_SIDES;
import java.io.IOException;
@@ -201,7 +201,7 @@ public abstract class MultiTileEntity extends CoverableTileEntity
}
@Override
- public ITexture[] getTexture(Block ignoredBlock, byte ignoredSide) {
+ public ITexture[] getTexture(Block ignoredBlock, ForgeDirection ignoredSide) {
// We are not going to be using this
return null;
}
@@ -361,34 +361,34 @@ public abstract class MultiTileEntity extends CoverableTileEntity
public void doBlockUpdate() {
final Block tBlock = getBlock(getCoords());
worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, tBlock);
- if (this instanceof IMTE_IsProvidingStrongPower) for (byte tSide : GT_Values.ALL_VALID_SIDES) {
- if (getBlockAtSide(tSide).isNormalCube(
- worldObj,
- xCoord + GT_Values.OFFX[tSide],
- yCoord + GT_Values.OFFY[tSide],
- zCoord + GT_Values.OFFZ[tSide])) {
- worldObj.notifyBlocksOfNeighborChange(
- xCoord + GT_Values.OFFX[tSide],
- yCoord + GT_Values.OFFY[tSide],
- zCoord + GT_Values.OFFZ[tSide],
- tBlock,
- OPOS[tSide]);
+ if (this instanceof IMTE_IsProvidingStrongPower) {
+ for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) {
+ if (getBlockAtSide(side)
+ .isNormalCube(worldObj, xCoord + side.offsetX, yCoord + side.offsetY, zCoord + side.offsetZ)) {
+ worldObj.notifyBlocksOfNeighborChange(
+ xCoord + side.offsetX,
+ yCoord + side.offsetY,
+ zCoord + side.offsetZ,
+ tBlock,
+ side.getOpposite()
+ .ordinal());
+ }
}
}
needsBlockUpdate = false;
}
@Override
- public boolean shouldSideBeRendered(byte aSide) {
- final TileEntity tTileEntity = getTileEntityAtSideAndDistance(aSide, 1);
+ public boolean shouldSideBeRendered(ForgeDirection side) {
+ final TileEntity tTileEntity = getTileEntityAtSideAndDistance(side, 1);
// TODO: check to an interface
// if (getBlockAtSide(aSide) == Blocks.glass) return false;
- return tTileEntity instanceof IMultiTileEntity ? !((IMultiTileEntity) tTileEntity).isSurfaceOpaque(OPOS[aSide])
- : !getBlockAtSide(aSide).isOpaqueCube();
+ return tTileEntity instanceof IMultiTileEntity mte ? !mte.isSurfaceOpaque(side.getOpposite())
+ : !getBlockAtSide(side).isOpaqueCube();
}
@Override
- public boolean isSurfaceOpaque(byte aSide) {
+ public boolean isSurfaceOpaque(ForgeDirection side) {
return true;
}
@@ -430,13 +430,13 @@ public abstract class MultiTileEntity extends CoverableTileEntity
}
@Override
- public boolean isFacingValid(byte aFacing) {
+ public boolean isFacingValid(ForgeDirection facing) {
return false;
}
@Override
- public byte getFrontFacing() {
- return (byte) facing.ordinal();
+ public ForgeDirection getFrontFacing() {
+ return facing;
}
/**
@@ -445,9 +445,9 @@ public abstract class MultiTileEntity extends CoverableTileEntity
* @return Whether the facing was changed
*/
@Override
- public boolean setMainFacing(byte aSide) {
- if (!isValidFacing(aSide)) return false;
- facing = ForgeDirection.getOrientation(aSide);
+ public boolean setMainFacing(ForgeDirection side) {
+ if (!isValidFacing(side)) return false;
+ facing = side;
issueClientUpdate();
issueBlockUpdate();
@@ -471,14 +471,13 @@ public abstract class MultiTileEntity extends CoverableTileEntity
}
@Override
- public byte getBackFacing() {
- return (byte) facing.getOpposite()
- .ordinal();
+ public ForgeDirection getBackFacing() {
+ return facing.getOpposite();
}
@Override
- public boolean isValidFacing(byte aSide) {
- return aSide >= 0 && aSide <= 6 && getValidFacings()[aSide];
+ public boolean isValidFacing(ForgeDirection side) {
+ return side != ForgeDirection.UNKNOWN && getValidFacings()[side.ordinal()];
}
@Override
@@ -487,8 +486,8 @@ public abstract class MultiTileEntity extends CoverableTileEntity
}
@Override
- public void issueCoverUpdate(byte aSide) {
- super.issueCoverUpdate(aSide);
+ public void issueCoverUpdate(ForgeDirection side) {
+ super.issueCoverUpdate(side);
issueClientUpdate();
}
@@ -643,7 +642,7 @@ public abstract class MultiTileEntity extends CoverableTileEntity
}
@Override
- public boolean allowCoverOnSide(byte aSide, GT_ItemStack aCoverID) {
+ public boolean allowCoverOnSide(ForgeDirection side, GT_ItemStack aCoverID) {
return true;
}
@@ -707,10 +706,9 @@ public abstract class MultiTileEntity extends CoverableTileEntity
}
@Override
- public boolean onPlaced(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, byte aSide,
- float aHitX, float aHitY, float aHitZ) {
- facing = ForgeDirection
- .getOrientation(getSideForPlayerPlacing(aPlayer, (byte) facing.ordinal(), getValidFacings()));
+ public boolean onPlaced(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ,
+ ForgeDirection side, float aHitX, float aHitY, float aHitZ) {
+ facing = getSideForPlayerPlacing(aPlayer, facing, getValidFacings());
onFacingChange();
return true;
}
@@ -725,9 +723,9 @@ public abstract class MultiTileEntity extends CoverableTileEntity
}
@Override
- public boolean onBlockActivated(EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) {
+ public boolean onBlockActivated(EntityPlayer aPlayer, ForgeDirection side, float aX, float aY, float aZ) {
try {
- return allowRightclick(aPlayer) && onRightClick(aPlayer, aSide, aX, aY, aZ);
+ return allowRightclick(aPlayer) && onRightClick(aPlayer, side, aX, aY, aZ);
} catch (Throwable e) {
GT_FML_LOGGER.error("onBlockActivated Failed", e);
e.printStackTrace(GT_Log.err);
@@ -736,24 +734,25 @@ public abstract class MultiTileEntity extends CoverableTileEntity
}
@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()) {
if (!privateAccess() || aPlayer.getDisplayName()
.equalsIgnoreCase(getOwnerName())) {
final ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem();
- final byte wrenchSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ);
+ final ForgeDirection wrenchSide = GT_Utility.determineWrenchingSide(side, aX, aY, aZ);
if (tCurrentItem != null) {
if (getColorization() >= 0
@@ -773,7 +772,7 @@ public abstract class MultiTileEntity extends CoverableTileEntity
if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sWireCutterList))
return onWireCutterRightClick(aPlayer, tCurrentItem, wrenchSide, aX, aY, aZ);
- final byte coverSide = getCoverIDAtSide(aSide) == 0 ? wrenchSide : aSide;
+ final ForgeDirection coverSide = getCoverIDAtSide(side) == 0 ? wrenchSide : side;
if (getCoverIDAtSide(coverSide) == 0) {
if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sCovers.keySet())) {
@@ -806,47 +805,46 @@ public abstract class MultiTileEntity extends CoverableTileEntity
xCoord,
yCoord,
zCoord);
- dropCover(coverSide, aSide, false);
+ dropCover(coverSide, side, false);
}
sendCoverDataIfNeeded();
return true;
}
}
} 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;
- return openModularUi(aPlayer, aSide);
+ return openModularUi(aPlayer, side);
}
}
return false;
}
- public boolean hasGui(byte aSide) {
+ public boolean hasGui(ForgeDirection side) {
return false;
}
- boolean openModularUi(EntityPlayer aPlayer, byte aSide) {
- if (!hasGui(aSide) || !isServerSide()) {
+ boolean openModularUi(EntityPlayer aPlayer, ForgeDirection side) {
+ if (!hasGui(side) || !isServerSide()) {
System.out.println("No GUI or Not Serverside");
return false;
}
@@ -856,8 +854,8 @@ public abstract class MultiTileEntity extends CoverableTileEntity
return true;
}
- 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 (setMainFacing(wrenchSide)) {
GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer);
GT_Utility.sendSoundToPlayers(worldObj, SoundResource.IC2_TOOLS_WRENCH, 1.0F, -1, xCoord, yCoord, zCoord);
@@ -865,8 +863,8 @@ public abstract class MultiTileEntity extends CoverableTileEntity
return true;
}
- public boolean onScrewdriverRightClick(EntityPlayer aPlayer, ItemStack tCurrentItem, byte wrenchSide, float aX,
- float aY, float aZ) {
+ public boolean onScrewdriverRightClick(EntityPlayer aPlayer, ItemStack tCurrentItem, ForgeDirection wrenchSide,
+ float aX, float aY, float aZ) {
if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 200, aPlayer)) {
setCoverDataAtSide(
wrenchSide,
@@ -885,26 +883,26 @@ public abstract class MultiTileEntity extends CoverableTileEntity
return true;
}
- public boolean onHammerRightClick(EntityPlayer aPlayer, ItemStack tCurrentItem, byte wrenchSide, float aX, float aY,
- float aZ) {
+ public boolean onHammerRightClick(EntityPlayer aPlayer, ItemStack tCurrentItem, ForgeDirection wrenchSide, float aX,
+ float aY, float aZ) {
return true;
}
- 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) {
return true;
}
- public boolean onSolderingRightClick(EntityPlayer aPlayer, ItemStack tCurrentItem, byte wrenchSide, float aX,
- float aY, float aZ) {
+ public boolean onSolderingRightClick(EntityPlayer aPlayer, ItemStack tCurrentItem, ForgeDirection wrenchSide,
+ float aX, float aY, float aZ) {
return true;
}
- public boolean onWireCutterRightClick(EntityPlayer aPlayer, ItemStack tCurrentItem, byte wrenchSide, float aX,
- float aY, float aZ) {
+ public boolean onWireCutterRightClick(EntityPlayer aPlayer, ItemStack tCurrentItem, ForgeDirection wrenchSide,
+ float aX, float aY, float aZ) {
return true;
}
@@ -923,7 +921,7 @@ public abstract class MultiTileEntity extends CoverableTileEntity
public void onExploded(Explosion aExplosion) {}
@Override
- public boolean isSideSolid(byte aSide) {
+ public boolean isSideSolid(ForgeDirection side) {
return true;
}
@@ -949,7 +947,7 @@ public abstract class MultiTileEntity extends CoverableTileEntity
}
@Override
- public boolean recolourBlock(byte aSide, byte aColor) {
+ public boolean recolourBlock(ForgeDirection side, byte aColor) {
// if (aColor > 15 || aColor < -1) aColor = -1;
// if(paint((byte) (aColor + 1))) {
//// updateClientData();
@@ -994,12 +992,12 @@ public abstract class MultiTileEntity extends CoverableTileEntity
color);
packet.setCoverData(
- 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());
packet.setRedstoneData(
(byte) (((mSidedRedstone[0] > 0) ? 1 : 0) | ((mSidedRedstone[1] > 0) ? 2 : 0)
@@ -1077,14 +1075,10 @@ public abstract class MultiTileEntity extends CoverableTileEntity
}
@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(
- "Facing: %s",
- ForgeDirection.getOrientation(getFrontFacing())
- .name()));
+ super.getWailaBody(itemStack, currentTip, accessor, config);
+ currentTip.add(String.format("Facing: %s", getFrontFacing().name()));
}
@Override
@@ -1125,37 +1119,37 @@ public abstract class MultiTileEntity extends CoverableTileEntity
* Fluid - A Default implementation of the Fluid Tank behaviour, so that every TileEntity can use this to simplify
* its Code.
*/
- protected IFluidTank getFluidTankFillable(byte aSide, FluidStack aFluidToFill) {
+ protected IFluidTank getFluidTankFillable(ForgeDirection side, FluidStack aFluidToFill) {
return null;
}
- protected IFluidTank getFluidTankDrainable(byte aSide, FluidStack aFluidToDrain) {
+ protected IFluidTank getFluidTankDrainable(ForgeDirection side, FluidStack aFluidToDrain) {
return null;
}
- protected IFluidTank[] getFluidTanks(byte aSide) {
+ protected IFluidTank[] getFluidTanks(ForgeDirection side) {
return GT_Values.emptyFluidTank;
}
- 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 aDirection, FluidStack aFluid, boolean aDoFill) {
if (aFluid == null || aFluid.amount <= 0) return 0;
- final IFluidTank tTank = getFluidTankFillable((byte) aDirection.ordinal(), aFluid);
+ final IFluidTank tTank = getFluidTankFillable(aDirection, aFluid);
return (tTank == null) ? 0 : tTank.fill(aFluid, aDoFill);
}
@Override
public FluidStack drain(ForgeDirection aDirection, FluidStack aFluid, boolean aDoDrain) {
if (aFluid == null || aFluid.amount <= 0) return null;
- final IFluidTank tTank = getFluidTankDrainable((byte) aDirection.ordinal(), aFluid);
+ final IFluidTank tTank = getFluidTankDrainable(aDirection, aFluid);
if (tTank == null || tTank.getFluid() == null
|| tTank.getFluidAmount() == 0
|| !tTank.getFluid()
@@ -1167,7 +1161,7 @@ public abstract class MultiTileEntity extends CoverableTileEntity
@Override
public FluidStack drain(ForgeDirection aDirection, int aAmountToDrain, boolean aDoDrain) {
if (aAmountToDrain <= 0) return null;
- final IFluidTank tTank = getFluidTankDrainable((byte) aDirection.ordinal(), null);
+ final IFluidTank tTank = getFluidTankDrainable(aDirection, null);
if (tTank == null || tTank.getFluid() == null || tTank.getFluidAmount() == 0) return null;
return tTank.drain(aAmountToDrain, aDoDrain);
}
@@ -1175,7 +1169,7 @@ public abstract class MultiTileEntity extends CoverableTileEntity
@Override
public boolean canFill(ForgeDirection aDirection, Fluid aFluid) {
if (aFluid == null) return false;
- final IFluidTank tTank = getFluidTankFillable((byte) aDirection.ordinal(), new FluidStack(aFluid, 0));
+ final IFluidTank tTank = getFluidTankFillable(aDirection, new FluidStack(aFluid, 0));
return tTank != null && (tTank.getFluid() == null || tTank.getFluid()
.getFluid() == aFluid);
}
@@ -1183,14 +1177,14 @@ public abstract class MultiTileEntity extends CoverableTileEntity
@Override
public boolean canDrain(ForgeDirection aDirection, Fluid aFluid) {
if (aFluid == null) return false;
- final IFluidTank tTank = getFluidTankDrainable((byte) aDirection.ordinal(), new FluidStack(aFluid, 0));
+ final IFluidTank tTank = getFluidTankDrainable(aDirection, new FluidStack(aFluid, 0));
return tTank != null && (tTank.getFluid() != null && tTank.getFluid()
.getFluid() == aFluid);
}
@Override
public FluidTankInfo[] getTankInfo(ForgeDirection aDirection) {
- final IFluidTank[] tTanks = getFluidTanks((byte) aDirection.ordinal());
+ final IFluidTank[] tTanks = getFluidTanks(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]);
@@ -1246,7 +1240,7 @@ public abstract class MultiTileEntity extends CoverableTileEntity
}
@Override
- public boolean drainEnergyUnits(byte aSide, long aVoltage, long aAmperage) {
+ public boolean drainEnergyUnits(ForgeDirection side, long aVoltage, long aAmperage) {
return false;
}
@@ -1271,17 +1265,17 @@ public abstract class MultiTileEntity extends CoverableTileEntity
}
@Override
- public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) {
+ public long injectEnergyUnits(ForgeDirection side, long aVoltage, long aAmperage) {
return 0;
}
@Override
- public boolean inputEnergyFrom(byte aSide) {
+ public boolean inputEnergyFrom(ForgeDirection side) {
return false;
}
@Override
- public boolean outputsEnergyTo(byte aSide) {
+ public boolean outputsEnergyTo(ForgeDirection side) {
return false;
}
@@ -1321,17 +1315,17 @@ public abstract class MultiTileEntity extends CoverableTileEntity
}
@Override
- public int[] getAccessibleSlotsFromSide(int aSide) {
+ public int[] getAccessibleSlotsFromSide(int ordinalSide) {
return GT_Values.emptyIntArray;
}
@Override
- public boolean canInsertItem(int aSlot, ItemStack aStack, int aSide) {
+ public boolean canInsertItem(int aSlot, ItemStack aStack, int ordinalSide) {
return false;
}
@Override
- public boolean canExtractItem(int aSlot, ItemStack aStack, int aSide) {
+ public boolean canExtractItem(int aSlot, ItemStack aStack, int ordinalSide) {
return false;
}
@@ -1379,28 +1373,28 @@ public abstract class MultiTileEntity extends CoverableTileEntity
* Cover Helpers
*/
- public boolean coverLetsFluidIn(byte aSide, Fluid aFluid) {
- return getCoverInfoAtSide(aSide).letsFluidIn(aFluid);
+ public boolean coverLetsFluidIn(ForgeDirection side, Fluid aFluid) {
+ return getCoverInfoAtSide(side).letsFluidIn(aFluid);
}
- public boolean coverLetsFluidOut(byte aSide, Fluid aFluid) {
- return getCoverInfoAtSide(aSide).letsFluidOut(aFluid);
+ public boolean coverLetsFluidOut(ForgeDirection side, Fluid aFluid) {
+ return getCoverInfoAtSide(side).letsFluidOut(aFluid);
}
- public boolean coverLetsEnergyIn(byte aSide) {
- return getCoverInfoAtSide(aSide).letsEnergyIn();
+ public boolean coverLetsEnergyIn(ForgeDirection side) {
+ return getCoverInfoAtSide(side).letsEnergyIn();
}
- public boolean coverLetsEnergyOut(byte aSide) {
- return getCoverInfoAtSide(aSide).letsEnergyOut();
+ public boolean coverLetsEnergyOut(ForgeDirection side) {
+ return getCoverInfoAtSide(side).letsEnergyOut();
}
- public boolean coverLetsItemsIn(byte aSide, int aSlot) {
- return getCoverInfoAtSide(aSide).letsItemsIn(aSlot);
+ public boolean coverLetsItemsIn(ForgeDirection side, int aSlot) {
+ return getCoverInfoAtSide(side).letsItemsIn(aSlot);
}
- public boolean coverLetsItemsOut(byte aSide, int aSlot) {
- return getCoverInfoAtSide(aSide).letsItemsOut(aSlot);
+ public boolean coverLetsItemsOut(ForgeDirection side, int aSlot) {
+ return getCoverInfoAtSide(side).letsItemsOut(aSlot);
}
@Override
diff --git a/src/main/java/gregtech/api/multitileentity/base/NonTickableMultiTileEntity.java b/src/main/java/gregtech/api/multitileentity/base/NonTickableMultiTileEntity.java
index 90c931239a..0ad4d9004e 100644
--- a/src/main/java/gregtech/api/multitileentity/base/NonTickableMultiTileEntity.java
+++ b/src/main/java/gregtech/api/multitileentity/base/NonTickableMultiTileEntity.java
@@ -4,6 +4,7 @@ import static gregtech.api.enums.GT_Values.NW;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.network.Packet;
+import net.minecraftforge.common.util.ForgeDirection;
import gregtech.api.net.GT_Packet_SendCoverData;
import gregtech.api.util.ISerializableObject;
@@ -34,13 +35,13 @@ public abstract class NonTickableMultiTileEntity extends MultiTileEntity {
}
@Override
- public void issueCoverUpdate(byte aSide) {
+ public void issueCoverUpdate(ForgeDirection side) {
if (!mConstructed) {
// Queue these up and send them with the description packet
- super.issueCoverUpdate(aSide);
+ super.issueCoverUpdate(side);
} else {
// Otherwise, send the data right away
- final CoverInfo coverInfo = getCoverInfoAtSide(aSide);
+ final CoverInfo coverInfo = getCoverInfoAtSide(side);
NW.sendPacketToAllPlayersInRange(worldObj, new GT_Packet_SendCoverData(coverInfo, this), xCoord, zCoord);
// Just in case
@@ -49,9 +50,9 @@ public abstract class NonTickableMultiTileEntity extends MultiTileEntity {
}
@Override
- public void receiveCoverData(byte aCoverSide, int aCoverID, ISerializableObject aCoverData,
+ public void receiveCoverData(ForgeDirection coverSide, int aCoverID, ISerializableObject aCoverData,
EntityPlayerMP aPlayer) {
- super.receiveCoverData(aCoverSide, aCoverID, aCoverData, aPlayer);
+ super.receiveCoverData(coverSide, aCoverID, aCoverData, aPlayer);
// We don't get ticked so issue the texture update right away
issueTextureUpdate();
}
diff --git a/src/main/java/gregtech/api/multitileentity/base/TickableMultiTileEntity.java b/src/main/java/gregtech/api/multitileentity/base/TickableMultiTileEntity.java
index 4fa06ff6b4..d61f32813f 100644
--- a/src/main/java/gregtech/api/multitileentity/base/TickableMultiTileEntity.java
+++ b/src/main/java/gregtech/api/multitileentity/base/TickableMultiTileEntity.java
@@ -5,6 +5,7 @@ import static gregtech.GT_Mod.GT_FML_LOGGER;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
import gregtech.api.multitileentity.interfaces.IMultiTileEntity.IMTE_OnNeighborBlockChange;
import gregtech.api.util.GT_Log;
@@ -106,7 +107,7 @@ public abstract class TickableMultiTileEntity extends MultiTileEntity implements
}
@Override
- public byte getComparatorValue(byte aSide) {
+ public byte getComparatorValue(ForgeDirection side) {
return 0;
}
}
diff --git a/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockController.java b/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockController.java
index 1168f8e7ce..6f508ab6f5 100644
--- a/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockController.java
+++ b/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockController.java
@@ -19,17 +19,17 @@ public interface IMultiBlockController extends IMultiTileEntity, IMultiBlockFlui
@Override
ChunkCoordinates getCoords();
- FluidStack getDrainableFluid(byte aSide);
+ FluidStack getDrainableFluid(ForgeDirection side);
- FluidStack getDrainableFluid(byte aSide, Fluid fluid);
+ FluidStack getDrainableFluid(ForgeDirection side, Fluid fluid);
- boolean isLiquidInput(byte aSide);
+ boolean isLiquidInput(ForgeDirection side);
- boolean isLiquidOutput(byte aSide);
+ boolean isLiquidOutput(ForgeDirection side);
- void registerCoveredPartOnSide(final int aSide, IMultiBlockPart part);
+ void registerCoveredPartOnSide(final ForgeDirection side, IMultiBlockPart part);
- void unregisterCoveredPartOnSide(final int aSide, IMultiBlockPart part);
+ void unregisterCoveredPartOnSide(final ForgeDirection side, IMultiBlockPart part);
void registerInventory(String aName, String aID, int aInventorySize, int aType);
diff --git a/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockEnergy.java b/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockEnergy.java
index 598c057882..d6d8bf5310 100644
--- a/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockEnergy.java
+++ b/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockEnergy.java
@@ -1,5 +1,7 @@
package gregtech.api.multitileentity.interfaces;
+import net.minecraftforge.common.util.ForgeDirection;
+
import gregtech.api.multitileentity.multiblock.base.MultiBlockPart;
interface IMultiBlockEnergy {
@@ -22,9 +24,9 @@ interface IMultiBlockEnergy {
boolean increaseStoredEnergyUnits(MultiBlockPart aPart, long aEnergy, boolean aIgnoreTooMuchEnergy);
- boolean drainEnergyUnits(MultiBlockPart aPart, byte aSide, long aVoltage, long aAmperage);
+ boolean drainEnergyUnits(MultiBlockPart aPart, ForgeDirection side, long aVoltage, long aAmperage);
- long injectEnergyUnits(MultiBlockPart aPart, byte aSide, long aVoltage, long aAmperage);
+ long injectEnergyUnits(MultiBlockPart aPart, ForgeDirection side, long aVoltage, long aAmperage);
long getAverageElectricInput(MultiBlockPart aPart);
@@ -34,7 +36,7 @@ interface IMultiBlockEnergy {
long getEUCapacity(MultiBlockPart aPart);
- boolean inputEnergyFrom(MultiBlockPart aPart, byte aSide);
+ boolean inputEnergyFrom(MultiBlockPart aPart, ForgeDirection side);
- boolean outputsEnergyTo(MultiBlockPart aPart, byte aSide);
+ boolean outputsEnergyTo(MultiBlockPart aPart, ForgeDirection side);
}
diff --git a/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockInventory.java b/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockInventory.java
index e095b739b7..b3473a3260 100644
--- a/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockInventory.java
+++ b/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockInventory.java
@@ -4,6 +4,7 @@ import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
+import net.minecraftforge.common.util.ForgeDirection;
import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable;
import gregtech.api.multitileentity.multiblock.base.MultiBlockPart;
@@ -18,11 +19,11 @@ public interface IMultiBlockInventory {
boolean addStackToSlot(MultiBlockPart aPart, int aIndex, ItemStack aStack, int aAmount);
- int[] getAccessibleSlotsFromSide(MultiBlockPart aPart, byte aSide);
+ int[] getAccessibleSlotsFromSide(MultiBlockPart aPart, ForgeDirection side);
- boolean canInsertItem(MultiBlockPart aPart, int aSlot, ItemStack aStack, byte aSide);
+ boolean canInsertItem(MultiBlockPart aPart, int aSlot, ItemStack aStack, ForgeDirection side);
- boolean canExtractItem(MultiBlockPart aPart, int aSlot, ItemStack aStack, byte aSide);
+ boolean canExtractItem(MultiBlockPart aPart, int aSlot, ItemStack aStack, ForgeDirection side);
int getSizeInventory(MultiBlockPart aPart);
diff --git a/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockPart.java b/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockPart.java
index dcee4ad9d9..017954f554 100644
--- a/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockPart.java
+++ b/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockPart.java
@@ -1,6 +1,7 @@
package gregtech.api.multitileentity.interfaces;
import net.minecraft.util.ChunkCoordinates;
+import net.minecraftforge.common.util.ForgeDirection;
public interface IMultiBlockPart extends IMultiTileEntity {
@@ -12,5 +13,5 @@ public interface IMultiBlockPart extends IMultiTileEntity {
int getLockedInventoryIndex();
- boolean tickCoverAtSide(byte aSide, long aTickTimer);
+ boolean tickCoverAtSide(ForgeDirection side, long aTickTimer);
}
diff --git a/src/main/java/gregtech/api/multitileentity/interfaces/IMultiTileEntity.java b/src/main/java/gregtech/api/multitileentity/interfaces/IMultiTileEntity.java
index cafde57de5..a490e4275c 100644
--- a/src/main/java/gregtech/api/multitileentity/interfaces/IMultiTileEntity.java
+++ b/src/main/java/gregtech/api/multitileentity/interfaces/IMultiTileEntity.java
@@ -16,6 +16,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.Explosion;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.IFluidHandler;
import cpw.mods.fml.common.Optional;
@@ -130,19 +131,19 @@ public interface IMultiTileEntity
int getPaint();
/**
- * Sets the main facing to {aSide} and update as appropriately
+ * Sets the main facing to {side} and update as appropriately
*
* @return Whether the facing was changed
*/
- boolean setMainFacing(byte aSide);
+ boolean setMainFacing(ForgeDirection side);
- boolean isFacingValid(byte aFacing);
+ boolean isFacingValid(ForgeDirection facing);
void onFacingChange();
@Override
- default void setFrontFacing(byte aSide) {
- setMainFacing(aSide);
+ default void setFrontFacing(ForgeDirection side) {
+ setMainFacing(side);
}
boolean shouldTriggerBlockUpdate();
@@ -155,13 +156,13 @@ public interface IMultiTileEntity
/* do nothing */
}
- boolean onBlockActivated(EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ);
+ boolean onBlockActivated(EntityPlayer aPlayer, ForgeDirection side, float aX, float aY, float aZ);
- boolean onRightClick(EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ);
+ boolean onRightClick(EntityPlayer aPlayer, ForgeDirection side, float aX, float aY, float aZ);
ArrayList<ItemStack> getDrops(int aFortune, boolean aSilkTouch);
- boolean isSideSolid(byte aSide);
+ boolean isSideSolid(ForgeDirection side);
float getExplosionResistance(Entity aExploder, double aExplosionX, double aExplosionY, double aExplosionZ);
@@ -169,7 +170,7 @@ public interface IMultiTileEntity
void onExploded(Explosion aExplosion);
- boolean recolourBlock(byte aSide, byte aColor);
+ boolean recolourBlock(ForgeDirection side, byte aColor);
/** Adds to the Creative Tab. return false to prevent it from being added. */
boolean getSubItems(MultiTileEntityBlockInternal aBlock, Item aItem, CreativeTabs aTab, List<ItemStack> aList,
@@ -177,11 +178,11 @@ public interface IMultiTileEntity
ItemStack getPickBlock(MovingObjectPosition aTarget);
- boolean shouldSideBeRendered(byte aSide);
+ boolean shouldSideBeRendered(ForgeDirection side);
- boolean isSurfaceOpaque(byte aSide);
+ boolean isSurfaceOpaque(ForgeDirection side);
- boolean onPlaced(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, byte aSide,
+ boolean onPlaced(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, ForgeDirection side,
float aHitX, float aHitY, float aHitZ);
// ItemStack getPickBlock(MovingObjectPosition aTarget);
@@ -198,18 +199,18 @@ public interface IMultiTileEntity
interface IMTE_IsProvidingWeakPower extends IMultiTileEntity {
/** Remember that it passes the opposite Side due to the way vanilla works! */
- int isProvidingWeakPower(byte aOppositeSide);
+ int isProvidingWeakPower(ForgeDirection oppositeSide);
}
interface IMTE_IsProvidingStrongPower extends IMultiTileEntity {
/** Remember that it passes the opposite Side due to the way vanilla works! */
- int isProvidingStrongPower(byte aOppositeSide);
+ int isProvidingStrongPower(ForgeDirection oppositeSide);
}
interface IMTE_ShouldCheckWeakPower extends IMultiTileEntity {
- boolean shouldCheckWeakPower(byte aSide);
+ boolean shouldCheckWeakPower(ForgeDirection side);
}
interface IMTE_GetWeakChanges extends IMultiTileEntity {
@@ -219,7 +220,7 @@ public interface IMultiTileEntity
interface IMTE_GetComparatorInputOverride extends IMultiTileEntity {
- int getComparatorInputOverride(byte aSide);
+ int getComparatorInputOverride(ForgeDirection side);
}
interface IMTE_BreakBlock extends IMultiTileEntity {
@@ -258,14 +259,14 @@ public interface IMultiTileEntity
* pipes/wires.
*/
boolean ignoreEntityCollisionWhenPlacing(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY,
- int aZ, byte aSide, float aHitX, float aHitY, float aHitZ);
+ int aZ, ForgeDirection side, float aHitX, float aHitY, float aHitZ);
}
interface IMTE_CanPlace extends IMultiTileEntity {
/** Return false if this TileEntity cannot be placed at that Location. */
- boolean canPlace(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, byte aSide,
- float aHitX, float aHitY, float aHitZ);
+ boolean canPlace(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ,
+ ForgeDirection side, float aHitX, float aHitY, float aHitZ);
}
interface IMTE_GetMaxStackSize extends IMultiTileEntity {
diff --git a/src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java b/src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java
index f3cc00692c..e36e7e60fb 100644
--- a/src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java
+++ b/src/main/java/gregtech/api/multitileentity/machine/MultiTileBasicMachine.java
@@ -309,7 +309,7 @@ public abstract class MultiTileBasicMachine extends TickableMultiTileEntity impl
@Override
public ITexture getTexture(ForgeDirection side) {
- ITexture texture = super.getTexture(side);
+ final ITexture texture = super.getTexture(side);
if (side == facing) {
if (isActive()) {
return TextureFactory.of(texture, activeOverlayTexture, activeOverlayGlowTexture);
@@ -318,7 +318,7 @@ public abstract class MultiTileBasicMachine extends TickableMultiTileEntity impl
return TextureFactory.of(texture, inactiveOverlayTexture, inactiveOverlayGlowTexture);
}
- return TextureFactory.of(texture, getCoverTexture((byte) side.ordinal()));
+ return TextureFactory.of(texture, getCoverTexture(side));
}
@Override
@@ -368,19 +368,19 @@ public abstract class MultiTileBasicMachine extends TickableMultiTileEntity impl
}
@Override
- public boolean isLiquidInput(byte aSide) {
- return facing.compareTo(ForgeDirection.getOrientation(aSide)) != 0;
+ public boolean isLiquidInput(ForgeDirection side) {
+ return side != facing;
}
@Override
- public boolean isLiquidOutput(byte aSide) {
- return facing.compareTo(ForgeDirection.getOrientation(aSide)) != 0;
+ public boolean isLiquidOutput(ForgeDirection side) {
+ return side != facing;
}
@Override
- protected IFluidTank[] getFluidTanks(byte aSide) {
- final boolean fluidInput = isLiquidInput(aSide);
- final boolean fluidOutput = isLiquidOutput(aSide);
+ protected IFluidTank[] getFluidTanks(ForgeDirection side) {
+ final boolean fluidInput = isLiquidInput(side);
+ final boolean fluidOutput = isLiquidOutput(side);
if (fluidInput && fluidOutput) {
final IFluidTank[] rTanks = new IFluidTank[inputTanks.length + outputTanks.length];
@@ -396,13 +396,13 @@ public abstract class MultiTileBasicMachine extends TickableMultiTileEntity impl
}
@Override
- public IFluidTank getFluidTankFillable(byte aSide, FluidStack aFluidToFill) {
- return getFluidTankFillable((byte) facing.ordinal(), aSide, aFluidToFill);
+ public IFluidTank getFluidTankFillable(ForgeDirection side, FluidStack aFluidToFill) {
+ return getFluidTankFillable(facing, side, aFluidToFill);
}
- public IFluidTank getFluidTankFillable(byte sideSource, byte sideDestination, FluidStack fluidToFill) {
- if (ForgeDirection.getOrientation(sideSource)
- .compareTo(ForgeDirection.getOrientation(sideDestination)) != 0) return null;
+ public IFluidTank getFluidTankFillable(ForgeDirection sideSource, ForgeDirection sideDestination,
+ FluidStack fluidToFill) {
+ if (sideSource.compareTo(sideDestination) != 0) return null;
for (FluidTankGT tankGT : inputTanks) if (tankGT.contains(fluidToFill)) return tankGT;
// if (!mRecipes.containsInput(aFluidToFill, this, slot(mRecipes.mInputItemsCount +
// mRecipes.mOutputItemsCount))) return null;
@@ -411,13 +411,13 @@ public abstract class MultiTileBasicMachine extends TickableMultiTileEntity impl
}
@Override
- protected IFluidTank getFluidTankDrainable(byte aSide, FluidStack aFluidToDrain) {
- return getFluidTankDrainable((byte) facing.ordinal(), aSide, aFluidToDrain);
+ protected IFluidTank getFluidTankDrainable(ForgeDirection side, FluidStack aFluidToDrain) {
+ return getFluidTankDrainable(facing, side, aFluidToDrain);
}
- protected IFluidTank getFluidTankDrainable(byte sideSource, byte sideDestination, FluidStack fluidToDrain) {
- if (ForgeDirection.getOrientation(sideSource)
- .compareTo(ForgeDirection.getOrientation(sideDestination)) != 0) return null;
+ protected IFluidTank getFluidTankDrainable(ForgeDirection sideSource, ForgeDirection sideDestination,
+ FluidStack fluidToDrain) {
+ if (sideSource.compareTo(sideDestination) != 0) return null;
for (FluidTankGT fluidTankGT : outputTanks)
if (fluidToDrain == null ? fluidTankGT.has() : fluidTankGT.contains(fluidToDrain)) return fluidTankGT;
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();
}
}
}