diff options
Diffstat (limited to 'src/main')
12 files changed, 113 insertions, 8 deletions
diff --git a/src/main/java/client/ClientProxy.java b/src/main/java/client/ClientProxy.java index e50639b878..c863198976 100644 --- a/src/main/java/client/ClientProxy.java +++ b/src/main/java/client/ClientProxy.java @@ -1,11 +1,13 @@ package client; +import client.renderer.HatchRenderer; import client.renderer.TESR_SECapacitor; import client.renderer.TESR_SETether; import common.CommonProxy; import common.tileentities.TE_SpaceElevatorCapacitor; import common.tileentities.TE_SpaceElevatorTether; import cpw.mods.fml.client.registry.ClientRegistry; +import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; @@ -24,6 +26,7 @@ public class ClientProxy extends CommonProxy { super.init(e); // Register Simple Block Renderers //RenderingRegistry.registerBlockHandler(ConduitRenderer.getInstance()); + RenderingRegistry.registerBlockHandler(HatchRenderer.getInstance()); } } diff --git a/src/main/java/client/renderer/HatchRenderer.java b/src/main/java/client/renderer/HatchRenderer.java new file mode 100644 index 0000000000..0a764b3118 --- /dev/null +++ b/src/main/java/client/renderer/HatchRenderer.java @@ -0,0 +1,77 @@ +package client.renderer; + +import common.tileentities.TE_ItemProxyCable; +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.common.util.ForgeDirection; +import org.lwjgl.opengl.GL11; + +public class HatchRenderer implements ISimpleBlockRenderingHandler { + + public static final int RID = RenderingRegistry.getNextAvailableRenderId(); + private static final HatchRenderer INSTANCE = new HatchRenderer(); + + private HatchRenderer() { + + } + + public static HatchRenderer getInstance() { + return INSTANCE; + } + + @Override + public void renderInventoryBlock(Block block, int meta, int modelId, RenderBlocks renderer) { + block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + renderer.setRenderBoundsFromBlock(block); + final Tessellator t = Tessellator.instance; + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + t.startDrawingQuads(); + t.setNormal(0.0F, -1.0F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, meta)); + t.draw(); + t.startDrawingQuads(); + t.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(1, meta)); + t.draw(); + t.startDrawingQuads(); + t.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(2, meta)); + t.draw(); + t.startDrawingQuads(); + t.setNormal(-1.0F, 0.0F, 0.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(3, meta)); + t.draw(); + t.startDrawingQuads(); + t.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(5, meta)); + t.draw(); + t.startDrawingQuads(); + t.setNormal(0.0F, 0.0F, -1.0F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(6, meta)); + t.draw(); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, + RenderBlocks renderer) { + + + return false; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return HatchRenderer.RID; + } +} diff --git a/src/main/java/common/blocks/Block_TFFTMultiHatch.java b/src/main/java/common/blocks/Block_TFFTMultiHatch.java index a70e983ed3..eda34c8ce3 100644 --- a/src/main/java/common/blocks/Block_TFFTMultiHatch.java +++ b/src/main/java/common/blocks/Block_TFFTMultiHatch.java @@ -1,9 +1,13 @@ package common.blocks; +import client.renderer.ConduitRenderer; +import client.renderer.HatchRenderer; import common.Blocks; import common.itemBlocks.IB_TFFTMultiHatch; import common.tileentities.TE_TFFTMultiHatch; import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; @@ -29,7 +33,8 @@ 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 final IIcon[] overlayOff = new IIcon[3]; + private final IIcon[] overlayOn = new IIcon[3]; private Block_TFFTMultiHatch() { super(Material.iron); @@ -39,7 +44,6 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { final String blockName = "kekztech_tfftmultihatch_block"; INSTANCE.setBlockName(blockName); INSTANCE.setCreativeTab(CreativeTabs.tabMisc); - INSTANCE.setBlockTextureName(KekzCore.MODID + ":" + "TFFTMultiHatch"); INSTANCE.setHardness(5.0f); INSTANCE.setResistance(6.0f); GameRegistry.registerBlock(INSTANCE, IB_TFFTMultiHatch.class, blockName); @@ -50,8 +54,9 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { @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)); + for(int i = 0; i < overlayOff.length; i++) { + overlayOff[i] = ir.registerIcon("kekztech:TFFTMultiHatch" + i + "_off"); + overlayOn[i] = ir.registerIcon("kekztech:TFFTMultiHatch" + i + "_on"); } } @@ -65,12 +70,32 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { } @Override + public IIcon getIcon(int side, int meta) { + if(side != 3) { + return casing; + } else { + return overlayOff[meta]; + } + } + + @Override 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)]; + if(side != 3) { + return casing; + } else { + return overlayOff[blockAccess.getBlockMetadata(x, y, z)]; } - return casing; + } + + @Override + @SideOnly(Side.CLIENT) + public int getRenderBlockPass() { + return 0; + } + + @Override + public int getRenderType() { + return HatchRenderer.RID; } @Override diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch0_off.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch0_off.png Binary files differnew file mode 100755 index 0000000000..96ced7f091 --- /dev/null +++ b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch0_off.png diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch0_on.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch0_on.png Binary files differnew file mode 100755 index 0000000000..149c7c847e --- /dev/null +++ b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch0_on.png diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1.png Binary files differdeleted file mode 100755 index 3b897857a6..0000000000 --- a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1.png +++ /dev/null diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1_off.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1_off.png Binary files differnew file mode 100755 index 0000000000..259826d921 --- /dev/null +++ b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1_off.png diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1_on.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1_on.png Binary files differnew file mode 100755 index 0000000000..ed5dd7610b --- /dev/null +++ b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1_on.png diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2.png Binary files differdeleted file mode 100755 index eb749ca0e8..0000000000 --- a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2.png +++ /dev/null diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2_off.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2_off.png Binary files differnew file mode 100755 index 0000000000..30fbb78f34 --- /dev/null +++ b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2_off.png diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2_on.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2_on.png Binary files differnew file mode 100755 index 0000000000..be6c2a6856 --- /dev/null +++ b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2_on.png diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch3.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch3.png Binary files differdeleted file mode 100755 index 8d0c0d2fdc..0000000000 --- a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch3.png +++ /dev/null |