diff options
author | kekzdealer <kekzdealer@gmail.com> | 2020-06-05 00:45:10 +0200 |
---|---|---|
committer | kekzdealer <kekzdealer@gmail.com> | 2020-06-05 00:45:10 +0200 |
commit | 8fd1775f96fe9402019446945ef61e60a4741bbf (patch) | |
tree | ca8e4bbded4cbab3f628ba8d5e4b2327164eac08 /src/main/java | |
parent | 065481ed6bfe450d2b5606346de7d31c5c5bdb4b (diff) | |
download | GT5-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')
-rw-r--r-- | src/main/java/common/blocks/Block_TFFTMultiHatch.java | 45 | ||||
-rw-r--r-- | src/main/java/common/tileentities/TE_TFFTMultiHatch.java | 16 |
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; } |