diff options
author | Jason Mitchell <mitchej@gmail.com> | 2023-05-06 08:13:45 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-06 17:13:45 +0200 |
commit | d945860185b888709300e28ae1c9db88799856c0 (patch) | |
tree | 0d7e2766c98164d6ae915c0e8a9d8f46c7ceb4e5 /src | |
parent | f6e17a41972ba0afb6004a3d383be8d51eaee60e (diff) | |
download | GT5-Unofficial-d945860185b888709300e28ae1c9db88799856c0.tar.gz GT5-Unofficial-d945860185b888709300e28ae1c9db88799856c0.tar.bz2 GT5-Unofficial-d945860185b888709300e28ae1c9db88799856c0.zip |
Exploring some various ForgeDirection fixes (#1950)
* Fix mFacing NPEs
* Default facing fixes (#1945)
* QuickFixes incomplete facing fixes
* fix Neither UP nor DOWN conditions as offsetY == 0 is not valid test
* fix neither up nor down again
* Still not fixed: use ForgeDirection.flag for clarty
killed more ordinal siding.
* get ride of offset testing
---------
Co-authored-by: Jakub <53441451+kuba6000@users.noreply.github.com>
Co-authored-by: Jason Mitchell <mitchej@gmail.com>
* bit logic fix
* Fix single block machine facings
* Predict the machine facing direction clientside before the server packet arrives
* Fix isFacingValid logic
---------
Co-authored-by: Léa Gris <lea.gris@noiraude.net>
Co-authored-by: Jakub <53441451+kuba6000@users.noreply.github.com>
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Co-authored-by: Raven Szewczyk <git@eigenraven.me>
Diffstat (limited to 'src')
28 files changed, 124 insertions, 80 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java index 7a6f98281e..38f40f023e 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java @@ -737,7 +737,7 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity sideDirection, tConnections, mColor - 1, - tConnections == 0 || (tConnections & (1 << sideDirection.ordinal())) != 0, + tConnections == 0 || (tConnections & sideDirection.flag) != 0, getOutputRedstoneSignal(sideDirection) > 0); return Textures.BlockIcons.ERROR_RENDERING; } @@ -911,12 +911,12 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity zCoord); } else if (GT_ModHandler.useSolderingIron(tCurrentItem, aPlayer)) { mMetaTileEntity.markDirty(); - mStrongRedstone ^= (1 << tSide.ordinal()); + mStrongRedstone ^= tSide.flag; GT_Utility.sendChatToPlayer( aPlayer, GT_Utility.trans("091", "Redstone Output at Side ") + tSide + GT_Utility.trans("092", " set to: ") - + ((mStrongRedstone & (1 << tSide.ordinal())) != 0 ? GT_Utility.trans("093", "Strong") + + ((mStrongRedstone & tSide.flag) != 0 ? GT_Utility.trans("093", "Strong") : GT_Utility.trans("094", "Weak"))); GT_Utility.sendSoundToPlayers( worldObj, diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java index ceee423281..eda4f829b6 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java @@ -98,7 +98,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec private byte mColor = 0, oColor = 0, oStrongRedstone = 0, oRedstoneData = 63, oTextureData = 0, oUpdateData = 0, oTexturePage = 0; private byte oLightValueClient = 0, oLightValue = -1, mLightValue = 0, mOtherUpgrades = 0, mWorkData = 0; - private ForgeDirection mFacing, oFacing; + private ForgeDirection mFacing = ForgeDirection.DOWN, oFacing = ForgeDirection.DOWN; private int mDisplayErrorCode = 0, oX = 0, oY = 0, oZ = 0, mTimeStatisticsIndex = 0, mLagWarningCount = 0; private long oOutput = 0, mAcceptedAmperes = Long.MAX_VALUE; private long mLastCheckTick = 0; @@ -1558,13 +1558,12 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity implements IGregTec yCoord, zCoord); } else if (GT_ModHandler.useSolderingIron(tCurrentItem, aPlayer)) { - mStrongRedstone ^= (1 << tSide.ordinal()); + mStrongRedstone ^= tSide.flag; GT_Utility.sendChatToPlayer( aPlayer, GT_Utility.trans("091", "Redstone Output at Side ") + tSide + GT_Utility.trans("092", " set to: ") - + ((mStrongRedstone & (1 << tSide.ordinal())) != 0 - ? GT_Utility.trans("093", "Strong") + + ((mStrongRedstone & tSide.flag) != 0 ? GT_Utility.trans("093", "Strong") : GT_Utility.trans("094", "Weak"))); GT_Utility.sendSoundToPlayers( worldObj, diff --git a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java index 93caffca60..b3048f5222 100644 --- a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java @@ -419,7 +419,7 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov @Override public void setStrongOutputRedstoneSignal(ForgeDirection side, byte strength) { - mStrongRedstone |= (1 << side.ordinal()); + mStrongRedstone |= side.flag; setOutputRedstoneSignal(side, strength); } @@ -584,6 +584,7 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov * @param aList - List to add the information to */ public static void addInstalledCoversInformation(NBTTagCompound aNBT, List<String> aList) { + if (aNBT == null || aList == null) return; final NBTTagList tList = aNBT.getTagList(GT_Values.NBT.COVERS, 10); for (byte i = 0; i < tList.tagCount(); i++) { final NBTTagCompound tNBT = tList.getCompoundTagAt(i); diff --git a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java index 2ecdd7f2ca..4d18cce9ba 100644 --- a/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java +++ b/src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java @@ -913,13 +913,13 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { } private void connectAtSide(ForgeDirection side) { - mConnections |= (1 << side.ordinal()); + mConnections |= side.flag; } @Override public void disconnect(ForgeDirection side) { if (side == ForgeDirection.UNKNOWN) return; - mConnections &= ~(1 << side.ordinal()); + mConnections &= ~side.flag; final ForgeDirection oppositeSide = side.getOpposite(); IGregTechTileEntity tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntityAtSide(side); IMetaTileEntity tPipe = tTileEntity == null ? null : tTileEntity.getMetaTileEntity(); @@ -934,7 +934,7 @@ public abstract class MetaPipeEntity implements IMetaTileEntity, IConnectable { @Override public boolean isConnectedAtSide(ForgeDirection sideDirection) { - return (mConnections & (1 << sideDirection.ordinal())) != 0; + return (mConnections & sideDirection.flag) != 0; } public boolean letsIn(GT_CoverBehavior coverBehavior, ForgeDirection side, int aCoverID, int aCoverVariable, diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java index 699b0d5797..59dc65f89a 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java @@ -2,6 +2,11 @@ package gregtech.api.metatileentity.implementations; import static gregtech.api.enums.Mods.GalacticraftCore; import static net.minecraftforge.common.util.ForgeDirection.DOWN; +import static net.minecraftforge.common.util.ForgeDirection.EAST; +import static net.minecraftforge.common.util.ForgeDirection.NORTH; +import static net.minecraftforge.common.util.ForgeDirection.SOUTH; +import static net.minecraftforge.common.util.ForgeDirection.UP; +import static net.minecraftforge.common.util.ForgeDirection.WEST; import java.util.ArrayList; import java.util.HashSet; @@ -511,34 +516,34 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile spaceDown = spaceNorth = spaceWest = 0; spaceSouth = spaceEast = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.UP) != 0) { + if (getBaseMetaTileEntity().getCoverIDAtSide(UP) != 0) { spaceNorth = spaceWest = 0; spaceUp = spaceSouth = spaceEast = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.NORTH) != 0) { + if (getBaseMetaTileEntity().getCoverIDAtSide(NORTH) != 0) { spaceDown = spaceNorth = spaceWest = 0; spaceUp = spaceEast = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.SOUTH) != 0) { + if (getBaseMetaTileEntity().getCoverIDAtSide(SOUTH) != 0) { spaceDown = spaceWest = 0; spaceUp = spaceSouth = spaceEast = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.WEST) != 0) { + if (getBaseMetaTileEntity().getCoverIDAtSide(WEST) != 0) { spaceDown = spaceNorth = spaceWest = 0; spaceUp = spaceSouth = 1; } - if (getBaseMetaTileEntity().getCoverIDAtSide(ForgeDirection.EAST) != 0) { + if (getBaseMetaTileEntity().getCoverIDAtSide(EAST) != 0) { spaceDown = spaceNorth = 0; spaceUp = spaceSouth = spaceEast = 1; } byte tConn = ((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections; - if ((tConn & (1 << DOWN.ordinal())) != 0) spaceDown = 0f; - if ((tConn & (1 << ForgeDirection.UP.ordinal())) != 0) spaceUp = 1f; - if ((tConn & (1 << ForgeDirection.NORTH.ordinal())) != 0) spaceNorth = 0f; - if ((tConn & (1 << ForgeDirection.SOUTH.ordinal())) != 0) spaceSouth = 1f; - if ((tConn & (1 << ForgeDirection.WEST.ordinal())) != 0) spaceWest = 0f; - if ((tConn & (1 << ForgeDirection.EAST.ordinal())) != 0) spaceEast = 1f; + if ((tConn & DOWN.flag) != 0) spaceDown = 0f; + if ((tConn & UP.flag) != 0) spaceUp = 1f; + if ((tConn & NORTH.flag) != 0) spaceNorth = 0f; + if ((tConn & SOUTH.flag) != 0) spaceSouth = 1f; + if ((tConn & WEST.flag) != 0) spaceWest = 0f; + if ((tConn & EAST.flag) != 0) spaceEast = 1f; return AxisAlignedBB.getBoundingBox( aX + spaceWest, diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java index 50927d7b89..c0c6c7663d 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java @@ -428,7 +428,7 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { final IGregTechTileEntity gTank = tTank instanceof IGregTechTileEntity ? (IGregTechTileEntity) tTank : null; if (isConnectedAtSide(side) && tTank != null - && (mLastReceivedFrom & (1 << side.ordinal())) == 0 + && (mLastReceivedFrom & side.flag) == 0 && getBaseMetaTileEntity().getCoverInfoAtSide(side) .letsFluidOut(tFluid.getFluid()) && (gTank == null || gTank.getCoverInfoAtSide(oppositeSide) @@ -478,7 +478,7 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { float aX, float aY, float aZ) { if (GT_Mod.gregtechproxy.gt6Pipe) { final ForgeDirection tSide = GT_Utility.determineWrenchingSide(side, aX, aY, aZ); - final byte tMask = (byte) (1 << tSide.ordinal()); + final byte tMask = (byte) (tSide.flag); if (entityPlayer.isSneaking()) { if (isInputDisabledAtSide(tSide)) { mDisableInput &= ~tMask; @@ -798,7 +798,7 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { } public boolean isInputDisabledAtSide(ForgeDirection side) { - return (mDisableInput & (1 << side.ordinal())) != 0; + return (mDisableInput & side.flag) != 0; } @Override @@ -843,12 +843,12 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity { } final byte tConn = ((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections; - if ((tConn & (1 << ForgeDirection.DOWN.ordinal())) != 0) tSide0 = 0f; - if ((tConn & (1 << ForgeDirection.UP.ordinal())) != 0) tSide1 = 1f; - if ((tConn & (1 << ForgeDirection.NORTH.ordinal())) != 0) tSide2 = 0f; - if ((tConn & (1 << ForgeDirection.SOUTH.ordinal())) != 0) tSide3 = 1f; - if ((tConn & (1 << ForgeDirection.WEST.ordinal())) != 0) tSide4 = 0f; - if ((tConn & (1 << ForgeDirection.EAST.ordinal())) != 0) tSide5 = 1f; + if ((tConn & ForgeDirection.DOWN.flag) != 0) tSide0 = 0f; + if ((tConn & ForgeDirection.UP.flag) != 0) tSide1 = 1f; + if ((tConn & ForgeDirection.NORTH.flag) != 0) tSide2 = 0f; + if ((tConn & ForgeDirection.SOUTH.flag) != 0) tSide3 = 1f; + if ((tConn & ForgeDirection.WEST.flag) != 0) tSide4 = 0f; + if ((tConn & ForgeDirection.EAST.flag) != 0) tSide5 = 1f; return AxisAlignedBB .getBoundingBox(aX + tSide4, aY + tSide0, aZ + tSide2, aX + tSide5, aY + tSide1, aZ + tSide3); diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java index 0a1fe6ae7a..f0d8807e95 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java @@ -497,12 +497,12 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE } final byte tConn = ((BaseMetaPipeEntity) getBaseMetaTileEntity()).mConnections; - if ((tConn & (1 << ForgeDirection.DOWN.ordinal())) != 0) spaceDown = 0f; - if ((tConn & (1 << ForgeDirection.UP.ordinal())) != 0) spaceUp = 1f; - if ((tConn & (1 << ForgeDirection.NORTH.ordinal())) != 0) spaceNorth = 0f; - if ((tConn & (1 << ForgeDirection.SOUTH.ordinal())) != 0) spaceSouth = 1f; - if ((tConn & (1 << ForgeDirection.WEST.ordinal())) != 0) spaceWest = 0f; - if ((tConn & (1 << ForgeDirection.EAST.ordinal())) != 0) spaceEast = 1f; + if ((tConn & ForgeDirection.DOWN.flag) != 0) spaceDown = 0f; + if ((tConn & ForgeDirection.UP.flag) != 0) spaceUp = 1f; + if ((tConn & ForgeDirection.NORTH.flag) != 0) spaceNorth = 0f; + if ((tConn & ForgeDirection.SOUTH.flag) != 0) spaceSouth = 1f; + if ((tConn & ForgeDirection.WEST.flag) != 0) spaceWest = 0f; + if ((tConn & ForgeDirection.EAST.flag) != 0) spaceEast = 1f; return AxisAlignedBB.getBoundingBox( aX + spaceWest, diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java index fe5d57c84a..80ad9e38a5 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java @@ -17,6 +17,9 @@ import static gregtech.api.metatileentity.BaseTileEntity.STALLED_VENT_TOOLTIP; import static gregtech.api.metatileentity.BaseTileEntity.TOOLTIP_DELAY; import static gregtech.api.metatileentity.BaseTileEntity.UNUSED_SLOT_TOOLTIP; import static gregtech.api.util.GT_Utility.moveMultipleItemStacks; +import static net.minecraftforge.common.util.ForgeDirection.DOWN; +import static net.minecraftforge.common.util.ForgeDirection.UNKNOWN; +import static net.minecraftforge.common.util.ForgeDirection.UP; import java.util.Arrays; import java.util.Collections; @@ -68,8 +71,15 @@ import gregtech.api.interfaces.modularui.IAddUIWidgets; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.objects.GT_ItemStack; import gregtech.api.render.TextureFactory; -import gregtech.api.util.*; +import gregtech.api.util.GT_ClientPreference; +import gregtech.api.util.GT_CoverBehaviorBase; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; +import gregtech.api.util.GT_TooltipDataCache; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.GT_Waila; import gregtech.common.gui.modularui.UIHelper; import gregtech.common.gui.modularui.widget.FluidDisplaySlotWidget; import gregtech.common.power.BasicMachineEUPower; @@ -101,7 +111,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B public boolean mDisableFilter = true; public boolean mDisableMultiStack = true; public int mProgresstime = 0, mMaxProgresstime = 0, mEUt = 0, mOutputBlocked = 0; - public ForgeDirection mMainFacing = ForgeDirection.UNKNOWN; + public ForgeDirection mMainFacing = ForgeDirection.WEST; public FluidStack mOutputFluid; public String mGUIName, mNEIName; protected final Power mPower; @@ -190,7 +200,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B } protected boolean isValidMainFacing(ForgeDirection side) { - return side.offsetY == 0; // Neither DOWN nor UP + return (side.flag & (UP.flag | DOWN.flag | UNKNOWN.flag)) == 0; // Horizontal } public boolean setMainFacing(ForgeDirection side) { @@ -205,6 +215,20 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B } @Override + public void onFacingChange() { + super.onFacingChange(); + // Set up the correct facing (front towards player, output opposite) client-side before the server packet + // arrives + if (mMainFacing == UNKNOWN) { + IGregTechTileEntity te = getBaseMetaTileEntity(); + if (te != null && te.getWorld().isRemote) { + mMainFacing = te.getFrontFacing(); + te.setFrontFacing(te.getBackFacing()); + } + } + } + + @Override public ITexture[][][] getTextureSet(ITexture[] aTextures) { ITexture[][][] rTextures = new ITexture[14][17][]; aTextures = Arrays.copyOf(aTextures, 14); @@ -237,7 +261,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection sideDirection, ForgeDirection facingDirection, int colorIndex, boolean active, boolean redstoneLevel) { final int textureIndex; - if (mMainFacing.offsetY != 0) { // UP or DOWN + if ((mMainFacing.flag & (UP.flag | DOWN.flag)) != 0) { // UP or DOWN if (sideDirection == facingDirection) { textureIndex = active ? 2 : 3; } else { @@ -298,7 +322,8 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B @Override public boolean isFacingValid(ForgeDirection facing) { - return facing.offsetY == 0 || facing.offsetY == 0; + // Either mMainFacing or mMainFacing is horizontal + return ((facing.flag | mMainFacing.flag) & ~(UP.flag | DOWN.flag | UNKNOWN.flag)) != 0; } @Override @@ -525,7 +550,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B public void initDefaultModes(NBTTagCompound aNBT) { mMainFacing = ForgeDirection.UNKNOWN; if (!getBaseMetaTileEntity().getWorld().isRemote) { - GT_ClientPreference tPreference = GT_Mod.gregtechproxy + final GT_ClientPreference tPreference = GT_Mod.gregtechproxy .getClientPreference(getBaseMetaTileEntity().getOwnerUuid()); if (tPreference != null) { mDisableFilter = !tPreference.isSingleBlockInitialFilterEnabled(); @@ -722,10 +747,10 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B } protected void doDisplayThings() { - if (mMainFacing.offsetY != 0 && getBaseMetaTileEntity().getFrontFacing().offsetY == 0) { + if (!isValidMainFacing(mMainFacing) && isValidMainFacing(getBaseMetaTileEntity().getFrontFacing())) { mMainFacing = getBaseMetaTileEntity().getFrontFacing(); } - if (mMainFacing.offsetY == 0 && !mHasBeenUpdated) { + if (isValidMainFacing(mMainFacing) && !mHasBeenUpdated) { mHasBeenUpdated = true; getBaseMetaTileEntity().setFrontFacing(getBaseMetaTileEntity().getBackFacing()); } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java index 2d4b080093..dc79ef0ba9 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java @@ -672,7 +672,8 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ final ForgeDirection mainFacing = this.mMainFacing; - if (mainFacing.ordinal() > 1 && aBaseMetaTileEntity.getCoverIDAtSide(mainFacing) == 0 + if ((mainFacing.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0 + && aBaseMetaTileEntity.getCoverIDAtSide(mainFacing) == 0 && !aBaseMetaTileEntity.getOpacityAtSide(mainFacing)) { final double oX = aBaseMetaTileEntity.getXCoord(); diff --git a/src/main/java/gregtech/api/util/GT_HatchElementBuilder.java b/src/main/java/gregtech/api/util/GT_HatchElementBuilder.java index 8565dc21f5..194a29f8a2 100644 --- a/src/main/java/gregtech/api/util/GT_HatchElementBuilder.java +++ b/src/main/java/gregtech/api/util/GT_HatchElementBuilder.java @@ -481,7 +481,10 @@ public class GT_HatchElementBuilder<T> { // explicitly rejected, probably obstructed by another slice if (mDisallowedDirection.contains(direction)) continue; ForgeDirection rotated = env.getFacing() - .getWorldDirection(direction.offsetY != 0 ? direction.getOpposite() : direction); + .getWorldDirection( + (direction.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) != 0 + ? direction.getOpposite() + : direction); allowed.add(rotated); } } @@ -492,7 +495,7 @@ public class GT_HatchElementBuilder<T> { // find the first facing available, but prefer a facing that isn't up/down for (ForgeDirection facing : allowed) { result = facing; - if (facing.offsetY == 0) break; + if ((facing.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0) break; // Horizontal } assert result != null; ((IGregTechTileEntity) tileEntity).setFrontFacing(result); diff --git a/src/main/java/gregtech/api/util/GT_ModHandler.java b/src/main/java/gregtech/api/util/GT_ModHandler.java index 8097f82dea..b87fda289a 100644 --- a/src/main/java/gregtech/api/util/GT_ModHandler.java +++ b/src/main/java/gregtech/api/util/GT_ModHandler.java @@ -1566,12 +1566,12 @@ public class GT_ModHandler { boolean aNotRemoveShapelessRecipes, boolean aOnlyRemoveNativeHandlers) { if (aOutput == null) return false; boolean rReturn = false; - ArrayList<IRecipe> tList = (ArrayList<IRecipe>) CraftingManager.getInstance() + final ArrayList<IRecipe> tList = (ArrayList<IRecipe>) CraftingManager.getInstance() .getRecipeList(); aOutput = GT_OreDictUnificator.get(aOutput); int tList_sS = tList.size(); for (int i = 0; i < tList_sS; i++) { - IRecipe tRecipe = tList.get(i); + final IRecipe tRecipe = tList.get(i); if (aNotRemoveShapelessRecipes && (tRecipe instanceof ShapelessRecipes || tRecipe instanceof ShapelessOreRecipe)) continue; if (aOnlyRemoveNativeHandlers) { diff --git a/src/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java index def58487c9..b7ef7e8fef 100644 --- a/src/main/java/gregtech/common/GT_Client.java +++ b/src/main/java/gregtech/common/GT_Client.java @@ -5,7 +5,6 @@ package gregtech.common; -import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; import static gregtech.api.enums.GT_Values.calculateMaxPlasmaTurbineEfficiency; import static gregtech.api.enums.Mods.Forestry; import static gregtech.api.enums.Mods.GregTech; @@ -327,20 +326,19 @@ public class GT_Client extends GT_Proxy implements Runnable { .getTileEntity(aEvent.target.blockX, aEvent.target.blockY, aEvent.target.blockZ); // draw connection indicators - byte tConnections = 0; - if (tTile instanceof ICoverable) { + int tConnections = 0; + if (tTile instanceof ICoverable iCoverable) { if (showCoverConnections) { for (final ForgeDirection tSide : ForgeDirection.VALID_DIRECTIONS) { - if (((ICoverable) tTile).getCoverIDAtSide(tSide) > 0) - tConnections = (byte) (tConnections + (1 << tSide.ordinal())); + if (iCoverable.getCoverIDAtSide(tSide) != 0) tConnections |= tSide.flag; } } else if (tTile instanceof BaseMetaPipeEntity) tConnections = ((BaseMetaPipeEntity) tTile).mConnections; } - if (tConnections > 0) { - for (byte tSide : ALL_VALID_SIDES) { - if ((tConnections & (1 << tSide)) != 0) { - switch (GRID_SWITCH_TABLE[aEvent.target.sideHit][tSide]) { + if (tConnections != 0) { + for (ForgeDirection tSide : ForgeDirection.VALID_DIRECTIONS) { + if ((tConnections & tSide.flag) != 0) { + switch (GRID_SWITCH_TABLE[aEvent.target.sideHit][tSide.ordinal()]) { case 0 -> { GL11.glVertex3d(+.25D, .0D, +.25D); GL11.glVertex3d(-.25D, .0D, -.25D); diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Drain.java b/src/main/java/gregtech/common/covers/GT_Cover_Drain.java index 14b25e4777..92d1aca0d7 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Drain.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Drain.java @@ -79,8 +79,9 @@ public class GT_Cover_Drain extends GT_CoverBehavior { false); } if ((tLiquid != null) && (tLiquid.getFluid() != null) - && ((side.ordinal() > 1) || ((side == ForgeDirection.DOWN) && (tLiquid.getFluid() - .getDensity() <= 0)) + && ((side.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0 // Horizontal + || ((side == ForgeDirection.DOWN) && (tLiquid.getFluid() + .getDensity() <= 0)) || ((side == ForgeDirection.UP) && (tLiquid.getFluid() .getDensity() >= 0))) && (((IFluidHandler) aTileEntity).fill(side, tLiquid, false) == tLiquid.amount)) { diff --git a/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java b/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java index 79f94f8d5b..296b9c3469 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java @@ -120,8 +120,9 @@ public class GT_Cover_Fluidfilter extends GT_CoverBehaviorBase<GT_Cover_Fluidfil @Override protected boolean onCoverRightClickImpl(ForgeDirection side, int aCoverID, FluidFilterData aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (side == ForgeDirection.UNKNOWN) return false; if (((aX > 0.375D) && (aX < 0.625D)) || ((side.offsetX != 0) && ((aY > 0.375D) && (aY < 0.625D))) - || ((side.offsetY != 0) && ((aZ > 0.375D) && (aZ < 0.625D))) + || (side.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) != 0 && aZ > 0.375D && aZ < 0.625D || (side.offsetZ != 0)) { final ItemStack tStack = aPlayer.inventory.getCurrentItem(); if (tStack == null) return true; diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java index 325728ba98..6c4a91cd09 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java +++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler.java @@ -73,7 +73,7 @@ public abstract class GT_MetaTileEntity_Boiler extends GT_MetaTileEntity_BasicTa public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection sideDirection, ForgeDirection facingDirection, int colorIndex, boolean active, boolean redstoneLevel) { ITexture[] tmp; - if (sideDirection.offsetY == 0) { + if ((sideDirection.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0) { // Horizontal if (sideDirection != facingDirection) tmp = mTextures[2][colorIndex + 1]; else tmp = mTextures[(byte) (active ? 4 : 3)][colorIndex + 1]; } else { @@ -92,7 +92,7 @@ public abstract class GT_MetaTileEntity_Boiler extends GT_MetaTileEntity_BasicTa @Override public boolean isFacingValid(ForgeDirection facingDirection) { - return facingDirection.offsetY == 0; + return (facingDirection.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0; } @Override diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java index c9a67f5d42..92d89502f9 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java @@ -102,7 +102,8 @@ public class GT_MetaTileEntity_Boiler_Bronze extends GT_MetaTileEntity_Boiler { final ForgeDirection frontFacing = aBaseMetaTileEntity.getFrontFacing(); - if (frontFacing.offsetY == 0 && aBaseMetaTileEntity.getCoverIDAtSide(frontFacing) == 0 + if ((frontFacing.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0 + && aBaseMetaTileEntity.getCoverIDAtSide(frontFacing) == 0 && !aBaseMetaTileEntity.getOpacityAtSide(frontFacing)) { final double oX = aBaseMetaTileEntity.getOffsetX(frontFacing, 1) + 8D / 16D; diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java index 3a8b94463b..6a797f5e2a 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java +++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java @@ -90,7 +90,7 @@ public class GT_MetaTileEntity_Boiler_Lava extends GT_MetaTileEntity_Boiler { ForgeDirection facingDirection, int colorIndex, boolean active, boolean redstoneLevel) { final ForgeDirection rearDirection = facingDirection.getOpposite(); final ITexture[] tmp; - if (sideDirection.offsetY == 0) { + if ((sideDirection.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0) { if (sideDirection == facingDirection) { if (active) tmp = mTextures[4][colorIndex + 1]; else tmp = mTextures[3][colorIndex + 1]; @@ -320,7 +320,8 @@ public class GT_MetaTileEntity_Boiler_Lava extends GT_MetaTileEntity_Boiler { final ForgeDirection frontFacing = aBaseMetaTileEntity.getFrontFacing(); - if (frontFacing.offsetY == 0 && aBaseMetaTileEntity.getCoverIDAtSide(frontFacing) == 0 + if ((frontFacing.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0 + && aBaseMetaTileEntity.getCoverIDAtSide(frontFacing) == 0 && !aBaseMetaTileEntity.getOpacityAtSide(frontFacing)) { final double oX = aBaseMetaTileEntity.getOffsetX(frontFacing, 1) + 8D / 16D; diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java index aa7ed2a1c8..89b48cd6a1 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java +++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java @@ -130,7 +130,7 @@ public class GT_MetaTileEntity_Boiler_Solar extends GT_MetaTileEntity_Boiler { public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection sideDirection, ForgeDirection facingDirection, int colorIndex, boolean active, boolean redstoneLevel) { final int i = colorIndex + 1; - if (sideDirection.offsetY == 0) { + if ((sideDirection.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0) { // Horizontal if (sideDirection != facingDirection) return mTextures[2][i]; return mTextures[3][i]; } diff --git a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_NaquadahReactor.java b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_NaquadahReactor.java index c7e4106399..c4075ca9b2 100644 --- a/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_NaquadahReactor.java +++ b/src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_NaquadahReactor.java @@ -36,7 +36,9 @@ public class GT_MetaTileEntity_NaquadahReactor extends GT_MetaTileEntity_BasicGe @Override public boolean isOutputFacing(ForgeDirection side) { - return (side.offsetY == 0) && (side != getBaseMetaTileEntity().getFrontFacing()) + if (side == ForgeDirection.UNKNOWN) return false; + return ((side.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0) + && (side != getBaseMetaTileEntity().getFrontFacing()) && (side != getBaseMetaTileEntity().getBackFacing()); } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java index ea67dc2dc3..0bc3b2e367 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java @@ -805,7 +805,8 @@ public class GT_MetaTileEntity_Pump extends GT_MetaTileEntity_Hatch { public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection sideDirection, ForgeDirection facingDirection, int colorIndex, boolean active, boolean redstoneLevel) { return new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[mTier][colorIndex + 1], - (sideDirection.offsetY != 0) ? TextureFactory.of(Textures.BlockIcons.OVERLAY_PIPE_OUT) + (sideDirection.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) != 0 + ? TextureFactory.of(Textures.BlockIcons.OVERLAY_PIPE_OUT) : TextureFactory.of(Textures.BlockIcons.OVERLAY_ADV_PUMP) }; } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java index 3a45496772..8e5ad21bbe 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java @@ -48,7 +48,7 @@ public class GT_MetaTileEntity_Charcoal_Pit extends GT_MetaTileEntity_TooltipMul @Override public boolean isFacingValid(ForgeDirection facing) { - return facing.offsetY == 0; + return (facing.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0; } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java index a3326c4a07..6d4d95f2ed 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java @@ -101,7 +101,7 @@ public class GT_MetaTileEntity_Cleanroom extends GT_MetaTileEntity_TooltipMultiB @Override public boolean isFacingValid(ForgeDirection facing) { - return facing.offsetY == 0; + return (facing.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0; } @Override @@ -324,7 +324,7 @@ public class GT_MetaTileEntity_Cleanroom extends GT_MetaTileEntity_TooltipMultiB @Override public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection sideDirection, ForgeDirection facingDirection, int colorIndex, boolean active, boolean redstoneLevel) { - if (sideDirection.offsetY != 0) { + if ((sideDirection.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) != 0) { return new ITexture[] { TextureFactory.of(BLOCK_PLASCRETE), active ? TextureFactory.of( TextureFactory.of(OVERLAY_TOP_CLEANROOM_ACTIVE), diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java index 73b6526903..7b62c40ed7 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java @@ -279,7 +279,8 @@ public class GT_MetaTileEntity_DistillationTower extends @Override protected IAlignmentLimits getInitialAlignmentLimits() { // don't rotate a freaking tower, it won't work - return (d, r, f) -> d.offsetY == 0 && r.isNotRotated() && !f.isVerticallyFliped(); + return (d, r, f) -> (d.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0 && r.isNotRotated() + && !f.isVerticallyFliped(); } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java index d65dd0ad60..5d92f251de 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java @@ -424,7 +424,8 @@ public abstract class GT_MetaTileEntity_DrillerBase @Override protected IAlignmentLimits getInitialAlignmentLimits() { - return (d, r, f) -> d.offsetY == 0 && r.isNotRotated() && !f.isVerticallyFliped(); + return (d, r, f) -> (d.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0 && r.isNotRotated() + && !f.isVerticallyFliped(); } @Override diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java index 88ca267e51..9dbaebae3c 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java @@ -129,7 +129,7 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn @Override public boolean isFacingValid(ForgeDirection facing) { - return facing.offsetY == 0; + return (facing.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0; } @Override @@ -206,7 +206,8 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn @Override public IAlignmentLimits getAlignmentLimits() { - return (d, r, f) -> d.offsetY == 0 && r.isNotRotated() && f.isNotFlipped(); + return (d, r, f) -> (d.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0 && r.isNotRotated() + && f.isNotFlipped(); } private boolean checkMachine() { diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java index 8fce81c676..42010f8073 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Bronze.java @@ -142,7 +142,8 @@ public class GT_MetaTileEntity_ForgeHammer_Bronze extends GT_MetaTileEntity_Basi final ForgeDirection mainFacing = this.mMainFacing; - if (mainFacing.ordinal() > 1 && aBaseMetaTileEntity.getCoverIDAtSide(mainFacing) == 0 + if ((mainFacing.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0 + && aBaseMetaTileEntity.getCoverIDAtSide(mainFacing) == 0 && !aBaseMetaTileEntity.getOpacityAtSide(mainFacing)) { final double oX = aBaseMetaTileEntity.getXCoord(); diff --git a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java index 3fc2d45e38..ad0296b14a 100644 --- a/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java +++ b/src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_ForgeHammer_Steel.java @@ -142,7 +142,8 @@ public class GT_MetaTileEntity_ForgeHammer_Steel extends GT_MetaTileEntity_Basic final ForgeDirection mainFacing = this.mMainFacing; - if (mainFacing.ordinal() > 1 && aBaseMetaTileEntity.getCoverIDAtSide(mainFacing) == 0 + if ((mainFacing.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0 + && aBaseMetaTileEntity.getCoverIDAtSide(mainFacing) == 0 && !aBaseMetaTileEntity.getOpacityAtSide(mainFacing)) { final double oX = aBaseMetaTileEntity.getXCoord(); diff --git a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java index 9779d696ea..a36ed7fe40 100644 --- a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java +++ b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_Locker.java @@ -89,7 +89,7 @@ public class GT_MetaTileEntity_Locker extends GT_MetaTileEntity_TieredMachineBlo @Override public boolean isFacingValid(ForgeDirection facing) { - return facing.offsetY == 0; + return (facing.flag & (ForgeDirection.UP.flag | ForgeDirection.DOWN.flag)) == 0; } @Override |