aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/client/ClientProxy.java3
-rw-r--r--src/main/java/client/renderer/HatchRenderer.java77
-rw-r--r--src/main/java/common/blocks/Block_TFFTMultiHatch.java41
3 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