aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/common
diff options
context:
space:
mode:
authorkekzdealer <kekzdealer@gmail.com>2020-06-05 00:45:10 +0200
committerkekzdealer <kekzdealer@gmail.com>2020-06-05 00:45:10 +0200
commit8fd1775f96fe9402019446945ef61e60a4741bbf (patch)
treeca8e4bbded4cbab3f628ba8d5e4b2327164eac08 /src/main/java/common
parent065481ed6bfe450d2b5606346de7d31c5c5bdb4b (diff)
downloadGT5-Unofficial-8fd1775f96fe9402019446945ef61e60a4741bbf.tar.gz
GT5-Unofficial-8fd1775f96fe9402019446945ef61e60a4741bbf.tar.bz2
GT5-Unofficial-8fd1775f96fe9402019446945ef61e60a4741bbf.zip
Multi hatch only shows connection texture on outwards facing side
Diffstat (limited to 'src/main/java/common')
-rw-r--r--src/main/java/common/blocks/Block_TFFTMultiHatch.java45
-rw-r--r--src/main/java/common/tileentities/TE_TFFTMultiHatch.java16
2 files changed, 54 insertions, 7 deletions
diff --git a/src/main/java/common/blocks/Block_TFFTMultiHatch.java b/src/main/java/common/blocks/Block_TFFTMultiHatch.java
index e9e4230572..6e392f2a22 100644
--- a/src/main/java/common/blocks/Block_TFFTMultiHatch.java
+++ b/src/main/java/common/blocks/Block_TFFTMultiHatch.java
@@ -1,5 +1,6 @@
package common.blocks;
+import common.Blocks;
import common.itemBlocks.IB_TFFTMultiHatch;
import common.tileentities.TE_TFFTMultiHatch;
import cpw.mods.fml.common.registry.GameRegistry;
@@ -11,12 +12,17 @@ import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
+import net.minecraft.util.MathHelper;
+import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+import thaumcraft.common.tiles.TileJarFillable;
import java.util.List;
@@ -24,6 +30,7 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock {
private static final Block_TFFTMultiHatch INSTANCE = new Block_TFFTMultiHatch();
+ private IIcon casing;
private final IIcon[] tieredTexture = new IIcon[3];
private Block_TFFTMultiHatch() {
@@ -38,12 +45,13 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock {
INSTANCE.setHardness(5.0f);
INSTANCE.setResistance(6.0f);
GameRegistry.registerBlock(INSTANCE, IB_TFFTMultiHatch.class, blockName);
-
+
return INSTANCE;
}
@Override
public void registerBlockIcons(IIconRegister ir) {
+ casing = ir.registerIcon("kekztech:TFFTCasing");
for(int i = 0; i < tieredTexture.length; i++) {
tieredTexture[i] = ir.registerIcon("kekztech:TFFTMultiHatch" + (i + 1));
}
@@ -59,17 +67,21 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock {
}
@Override
- public IIcon getIcon(int side, int meta) {
- return tieredTexture[meta];
+ public IIcon getIcon(IBlockAccess blockAccess, int x, int y, int z, int side) {
+ final TileEntity te = blockAccess.getTileEntity(x, y, z);
+ if(te instanceof TE_TFFTMultiHatch && ((TE_TFFTMultiHatch) te).hasFacingOnSide((byte) side)){
+ return tieredTexture[blockAccess.getBlockMetadata(x, y, z)];
+ }
+ return casing;
}
@Override
- public TileEntity createTileEntity(World world, int p_149915_2_) {
+ public TileEntity createTileEntity(World world, int meta) {
return new TE_TFFTMultiHatch();
}
@Override
- public boolean hasTileEntity(int metadata) {
+ public boolean hasTileEntity(int meta) {
return true;
}
@@ -91,4 +103,27 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock {
}
return false;
}
+
+ @Override
+ public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase ent, ItemStack stack) {
+ final TileEntity te = world.getTileEntity(x, y, z);
+ if (te instanceof TE_TFFTMultiHatch) {
+ final TE_TFFTMultiHatch hatchTE = (TE_TFFTMultiHatch) te;
+ for(int i = 0; i < 6; i++) {
+ final ForgeDirection d = ForgeDirection.getOrientation(i);
+ final Block n = world.getBlock(x + d.offsetX, y + d.offsetY, z + d.offsetZ);
+ KekzCore.LOGGER.info("Block on side " + i + " is " + n.getUnlocalizedName());
+ // Always implement your tiered blocks as sub-blocks so you don't have to do this
+ if(n.equals(Blocks.tfftStorageField1)
+ || n.equals(Blocks.tfftStorageField2)
+ || n.equals(Blocks.tfftStorageField3)
+ || n.equals(Blocks.tfftStorageField4)
+ || n.equals(Blocks.tfftStorageField5)) {
+ KekzCore.LOGGER.info("Found Storage Field at side: " + i);
+ hatchTE.setFacingOnSide((byte) ForgeDirection.OPPOSITES[i], true);
+ }
+ }
+ }
+ }
+
}
diff --git a/src/main/java/common/tileentities/TE_TFFTMultiHatch.java b/src/main/java/common/tileentities/TE_TFFTMultiHatch.java
index d387e4968d..30e6b0ee0e 100644
--- a/src/main/java/common/tileentities/TE_TFFTMultiHatch.java
+++ b/src/main/java/common/tileentities/TE_TFFTMultiHatch.java
@@ -17,11 +17,23 @@ import net.minecraftforge.fluids.IFluidHandler;
public class TE_TFFTMultiHatch extends TileEntity implements IFluidHandler {
public static final int BASE_OUTPUT_PER_SECOND = 2000; // L/s
-
+
+ private byte facings = 0x0;
+
private MultiFluidHandler mfh;
private int tickCounter = 0;
private boolean autoOutput = false;
-
+
+ public boolean hasFacingOnSide(byte side) {
+ final byte key = (byte) Math.pow(0x2, side);
+ return (facings & key) == key;
+ }
+
+ public void setFacingOnSide(byte side, boolean b) {
+ final byte key = (byte) Math.pow(0x2, side);
+ facings = (byte) (b ? facings | key : facings ^ key);
+ }
+
public void setMultiFluidHandler(MultiFluidHandler mfh) {
this.mfh = mfh;
}