aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/metatileentity/implementations
diff options
context:
space:
mode:
authorPrometheus0000 <prometheus0000000@gmail.com>2020-12-22 16:55:00 -0500
committerGitHub <noreply@github.com>2020-12-22 16:55:00 -0500
commitc55d87373080f16df371fc69b2248f60a6112237 (patch)
tree8a47984e06c150ad6f4f85ca2b401c5c15a9c4f2 /src/main/java/gregtech/api/metatileentity/implementations
parentf7388b4c5e74b57b6d01bec1b9d36dada1a734f2 (diff)
parentdf2ad16b2f8b8b4fe39dac1ee6128d09232b6068 (diff)
downloadGT5-Unofficial-c55d87373080f16df371fc69b2248f60a6112237.tar.gz
GT5-Unofficial-c55d87373080f16df371fc69b2248f60a6112237.tar.bz2
GT5-Unofficial-c55d87373080f16df371fc69b2248f60a6112237.zip
Merge pull request #15 from GTNewHorizons/experimental
update
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity/implementations')
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java2
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java14
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java133
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java9
4 files changed, 99 insertions, 59 deletions
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 8a28301fdf..2afc996df2 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
@@ -111,7 +111,7 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
if (aSide >= 0 && aSide < 6) {
for (byte i = 0; i < 4; i++) if (isInputDisabledAtSide(sRestrictionArray[aSide][i])) tMask |= 1 << i;
//Full block size renderer flips side 5 and 2 textures, flip restrictor textures to compensate
- if (tThickNess >= 0.99F && (aSide == 5 || aSide == 2))
+ if (aSide == 5 || aSide == 2 || aSide == 0)
if (tMask > 3 && tMask < 12)
tMask = (byte) (tMask ^ 12);
}
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 c73e95e95b..6ed5a9edd0 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
@@ -38,6 +38,7 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE
public int mTransferredItems = 0;
public byte mLastReceivedFrom = 0, oLastReceivedFrom = 0;
public boolean mIsRestrictive = false;
+ private int[] cacheSides;
public GT_MetaPipeEntity_Item(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, int aInvSlotCount, int aStepSize, boolean aIsRestrictive, int aTickTime) {
super(aID, aName, aNameRegional, aInvSlotCount, false);
@@ -313,6 +314,19 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE
}
@Override
+ public int[] getAccessibleSlotsFromSide(int aSide) {
+ IGregTechTileEntity tTileEntity = getBaseMetaTileEntity();
+ boolean tAllow = tTileEntity.getCoverBehaviorAtSide((byte) aSide).letsItemsIn((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getCoverDataAtSide((byte) aSide), -2, tTileEntity) || tTileEntity.getCoverBehaviorAtSide((byte) aSide).letsItemsOut((byte) aSide, tTileEntity.getCoverIDAtSide((byte) aSide), tTileEntity.getCoverDataAtSide((byte) aSide), -2, tTileEntity);
+ if (tAllow) {
+ if (cacheSides == null)
+ cacheSides = super.getAccessibleSlotsFromSide(aSide);
+ return cacheSides;
+ } else {
+ return new int[0];
+ }
+ }
+
+ @Override
public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
return isConnectedAtSide(aSide);
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java
index 7284cd3c01..8758ea1a02 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Buffer.java
@@ -8,10 +8,18 @@ import gregtech.api.util.GT_Utility;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraftforge.common.util.ForgeDirection;
import static gregtech.api.enums.GT_Values.V;
public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredMachineBlock {
+ private static final int OUTPUT_INDEX = 0;
+ private static final int ARROW_RIGHT_INDEX = 1;
+ private static final int ARROW_DOWN_INDEX = 2;
+ private static final int ARROW_LEFT_INDEX = 3;
+ private static final int ARROW_UP_INDEX = 4;
+ private static final int FRONT_INDEX = 5;
+
public boolean bOutput = false, bRedstoneIfFull = false, bInvert = false, bStockingMode = false;
public int mSuccess = 0, mTargetStackSize = 0;
@@ -33,74 +41,85 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM
@Override
public ITexture[][][] getTextureSet(ITexture[] aTextures) {
- ITexture[][][] rTextures = new ITexture[6][17][];
- ITexture tIcon = getOverlayIcon(), tOut = new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT), tUp = new GT_RenderedTexture(Textures.BlockIcons.ARROW_UP), tDown = new GT_RenderedTexture(Textures.BlockIcons.ARROW_DOWN), tLeft = new GT_RenderedTexture(Textures.BlockIcons.ARROW_LEFT), tRight = new GT_RenderedTexture(Textures.BlockIcons.ARROW_RIGHT);
- for (byte i = -1; i < 16; i++) {
- rTextures[0][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], tOut};
- rTextures[1][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], tRight, tIcon};
- rTextures[2][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], tDown, tIcon};
- rTextures[3][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], tLeft, tIcon};
- rTextures[4][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], tUp, tIcon};
- rTextures[5][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], tIcon};
+ ITexture[][][] rTextures = new ITexture[ForgeDirection.VALID_DIRECTIONS.length][17][];
+ ITexture tIcon = getOverlayIcon();
+ ITexture tOut = new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT);
+ ITexture tUp = new GT_RenderedTexture(Textures.BlockIcons.ARROW_UP);
+ ITexture tDown = new GT_RenderedTexture(Textures.BlockIcons.ARROW_DOWN);
+ ITexture tLeft = new GT_RenderedTexture(Textures.BlockIcons.ARROW_LEFT);
+ ITexture tRight = new GT_RenderedTexture(Textures.BlockIcons.ARROW_RIGHT);
+ for (int i = 0; i < rTextures[0].length; i++) {
+ rTextures[OUTPUT_INDEX][i] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i], tOut};
+ rTextures[ARROW_RIGHT_INDEX][i] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i], tRight, tIcon};
+ rTextures[ARROW_DOWN_INDEX][i] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i], tDown, tIcon};
+ rTextures[ARROW_LEFT_INDEX][i] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i], tLeft, tIcon};
+ rTextures[ARROW_UP_INDEX][i] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i], tUp, tIcon};
+ rTextures[FRONT_INDEX][i] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i], tIcon};
}
return rTextures;
}
@Override
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
- if (aSide == aFacing) return mTextures[5][aColorIndex + 1];
- if (GT_Utility.getOppositeSide(aSide) == aFacing) return mTextures[0][aColorIndex + 1];
- switch (aFacing) {
- case 0:
- return mTextures[4][aColorIndex + 1];
- case 1:
- return mTextures[2][aColorIndex + 1];
- case 2:
- switch (aSide) {
- case 0:
- return mTextures[2][aColorIndex + 1];
- case 1:
- return mTextures[2][aColorIndex + 1];
- case 4:
- return mTextures[1][aColorIndex + 1];
- case 5:
- return mTextures[3][aColorIndex + 1];
+ int colorIndex = aColorIndex + 1;
+ ForgeDirection side = ForgeDirection.VALID_DIRECTIONS[aSide];
+ ForgeDirection facing = ForgeDirection.VALID_DIRECTIONS[aFacing];
+ if (side == facing) return mTextures[FRONT_INDEX][colorIndex];
+ if (ForgeDirection.OPPOSITES[aSide] == aFacing) return mTextures[OUTPUT_INDEX][colorIndex];
+ switch (facing) {
+ case DOWN:
+ return mTextures[ARROW_UP_INDEX][colorIndex]; // ARROW_UP
+ case UP:
+ return mTextures[ARROW_DOWN_INDEX][colorIndex]; // ARROW_DOWN
+ case NORTH:
+ switch (side) {
+ case DOWN:
+ case UP:
+ return mTextures[ARROW_DOWN_INDEX][colorIndex]; // ARROW_DOWN
+ case WEST:
+ return mTextures[ARROW_RIGHT_INDEX][colorIndex]; // ARROW_RIGHT
+ case EAST:
+ return mTextures[ARROW_LEFT_INDEX][colorIndex]; // ARROW_LEFT
+ default:
}
- case 3:
- switch (aSide) {
- case 0:
- return mTextures[4][aColorIndex + 1];
- case 1:
- return mTextures[4][aColorIndex + 1];
- case 4:
- return mTextures[3][aColorIndex + 1];
- case 5:
- return mTextures[1][aColorIndex + 1];
+ break;
+ case SOUTH:
+ switch (side) {
+ case DOWN:
+ case UP:
+ return mTextures[ARROW_UP_INDEX][colorIndex]; // ARROW_UP
+ case WEST:
+ return mTextures[ARROW_LEFT_INDEX][colorIndex]; // ARROW_LEFT
+ case EAST:
+ return mTextures[ARROW_RIGHT_INDEX][colorIndex]; // ARROW_RIGHT
+ default:
}
- case 4:
- switch (aSide) {
- case 0:
- return mTextures[3][aColorIndex + 1];
- case 1:
- return mTextures[1][aColorIndex + 1];
- case 2:
- return mTextures[3][aColorIndex + 1];
- case 3:
- return mTextures[1][aColorIndex + 1];
+ break;
+ case WEST:
+ switch (side) {
+ case DOWN:
+ case UP:
+ case SOUTH:
+ return mTextures[ARROW_RIGHT_INDEX][colorIndex]; // ARROW_RIGHT
+ case NORTH:
+ return mTextures[ARROW_LEFT_INDEX][colorIndex]; // ARROW_LEFT
+ default:
}
- case 5:
- switch (aSide) {
- case 0:
- return mTextures[1][aColorIndex + 1];
- case 1:
- return mTextures[3][aColorIndex + 1];
- case 2:
- return mTextures[1][aColorIndex + 1];
- case 3:
- return mTextures[3][aColorIndex + 1];
+ break;
+ case EAST:
+ switch (side) {
+ case DOWN:
+ case UP:
+ case SOUTH:
+ return mTextures[ARROW_LEFT_INDEX][colorIndex]; // ARROW_LEFT
+ case NORTH:
+ return mTextures[ARROW_RIGHT_INDEX][colorIndex]; // ARROW_RIGHT
+ default:
}
+ break;
+ default:
}
- return mTextures[5][aColorIndex + 1];
+ return mTextures[FRONT_INDEX][colorIndex];
}
@Override
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java
index dfac210915..f2f76dca4f 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBus.java
@@ -13,10 +13,12 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.StatCollector;
public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch {
public GT_Recipe_Map mRecipeMap = null;
public boolean disableSort;
+ public boolean disableFilter = false;
public GT_MetaTileEntity_Hatch_InputBus(int aID, String aName, String aNameRegional, int aTier) {
super(aID, aName, aNameRegional, aTier, getSlots(aTier), new String[]{
@@ -136,12 +138,14 @@ public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch {
public void saveNBTData(NBTTagCompound aNBT) {
super.saveNBTData(aNBT);
aNBT.setBoolean("disableSort", disableSort);
+ aNBT.setBoolean("disableFilter", disableFilter);
}
@Override
public void loadNBTData(NBTTagCompound aNBT) {
super.loadNBTData(aNBT);
disableSort = aNBT.getBoolean("disableSort");
+ disableFilter = aNBT.getBoolean("disableFilter");
}
@Override
@@ -151,6 +155,9 @@ public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch {
if (aPlayer.isSneaking()) {
disableSort = !disableSort;
GT_Utility.sendChatToPlayer(aPlayer, trans("200", "Sort mode: " + (disableSort ? "Disabled" : "Enabled")));
+ } else {
+ disableFilter = !disableFilter;
+ GT_Utility.sendChatToPlayer(aPlayer, StatCollector.translateToLocal("GT5U.hatch.disableFilter."+disableFilter));
}
}
@@ -165,6 +172,6 @@ public class GT_MetaTileEntity_Hatch_InputBus extends GT_MetaTileEntity_Hatch {
@Override
public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
- return aSide == getBaseMetaTileEntity().getFrontFacing() && (mRecipeMap == null || mRecipeMap.containsInput(aStack));
+ return aSide == getBaseMetaTileEntity().getFrontFacing() && (mRecipeMap == null || disableFilter || mRecipeMap.containsInput(aStack));
}
}