aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/metatileentity
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity')
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java6
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java7
-rw-r--r--src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java3
-rw-r--r--src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java6
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java27
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java18
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java12
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java41
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java3
9 files changed, 77 insertions, 46 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();