diff --git a/src/main/java/storagecraft/SCItems.java b/src/main/java/storagecraft/SCItems.java new file mode 100644 index 000000000..76d969190 --- /dev/null +++ b/src/main/java/storagecraft/SCItems.java @@ -0,0 +1,4 @@ +package storagecraft; + +public class SCItems { +} diff --git a/src/main/java/storagecraft/proxy/ClientProxy.java b/src/main/java/storagecraft/proxy/ClientProxy.java index 120f97ba8..d3b7d07ad 100644 --- a/src/main/java/storagecraft/proxy/ClientProxy.java +++ b/src/main/java/storagecraft/proxy/ClientProxy.java @@ -2,7 +2,11 @@ package storagecraft.proxy; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import storagecraft.render.CableRenderer; +import net.minecraft.item.Item; +import net.minecraftforge.client.MinecraftForgeClient; +import storagecraft.SCBlocks; +import storagecraft.render.BlockCableRenderer; +import storagecraft.render.ItemCableRenderer; import storagecraft.tile.TileCable; public class ClientProxy extends CommonProxy { @@ -10,6 +14,8 @@ public class ClientProxy extends CommonProxy { public void preInit(FMLPreInitializationEvent e) { super.preInit(e); - ClientRegistry.bindTileEntitySpecialRenderer(TileCable.class, new CableRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileCable.class, new BlockCableRenderer()); + + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(SCBlocks.CABLE), new ItemCableRenderer()); } } diff --git a/src/main/java/storagecraft/render/CableRenderer.java b/src/main/java/storagecraft/render/BlockCableRenderer.java similarity index 89% rename from src/main/java/storagecraft/render/CableRenderer.java rename to src/main/java/storagecraft/render/BlockCableRenderer.java index 5b979c055..d684fccbb 100644 --- a/src/main/java/storagecraft/render/CableRenderer.java +++ b/src/main/java/storagecraft/render/BlockCableRenderer.java @@ -8,7 +8,7 @@ import org.lwjgl.opengl.GL11; import storagecraft.render.model.CableModel; import storagecraft.tile.TileCable; -public class CableRenderer extends TileEntitySpecialRenderer { +public class BlockCableRenderer extends TileEntitySpecialRenderer { public static final ResourceLocation CABLE_RESOURCE = new ResourceLocation("storagecraft:textures/blocks/cable.png"); @Override @@ -20,8 +20,11 @@ public class CableRenderer extends TileEntitySpecialRenderer { { GL11.glPushMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_RESOURCE); + model.render(null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); + GL11.glPopMatrix(); } diff --git a/src/main/java/storagecraft/render/ItemCableRenderer.java b/src/main/java/storagecraft/render/ItemCableRenderer.java new file mode 100644 index 000000000..c59d5e706 --- /dev/null +++ b/src/main/java/storagecraft/render/ItemCableRenderer.java @@ -0,0 +1,23 @@ +package storagecraft.render; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.IItemRenderer; + +public class ItemCableRenderer implements IItemRenderer { + public static final BlockCableRenderer CABLE_RENDERER = new BlockCableRenderer(); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + return true; + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return true; + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + CABLE_RENDERER.renderTileEntityAt(null, 0, 0, 0, 0); + } +} diff --git a/src/main/java/storagecraft/render/model/CableModel.java b/src/main/java/storagecraft/render/model/CableModel.java index 138fd5977..33a6b2ad7 100644 --- a/src/main/java/storagecraft/render/model/CableModel.java +++ b/src/main/java/storagecraft/render/model/CableModel.java @@ -53,28 +53,33 @@ public class CableModel extends ModelBase { public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { core.render(f5); - if (cable.hasConnection(ForgeDirection.UP)) { - up.render(f5); - } + if (cable != null) { + if (cable.hasConnection(ForgeDirection.UP)) { + up.render(f5); + } - if (cable.hasConnection(ForgeDirection.DOWN)) { - down.render(f5); - } + if (cable.hasConnection(ForgeDirection.DOWN)) { + down.render(f5); + } - if (cable.hasConnection(ForgeDirection.NORTH)) { + if (cable.hasConnection(ForgeDirection.NORTH)) { + north.render(f5); + } + + if (cable.hasConnection(ForgeDirection.EAST)) { + east.render(f5); + } + + if (cable.hasConnection(ForgeDirection.SOUTH)) { + south.render(f5); + } + + if (cable.hasConnection(ForgeDirection.WEST)) { + west.render(f5); + } + } else { north.render(f5); - } - - if (cable.hasConnection(ForgeDirection.EAST)) { - east.render(f5); - } - - if (cable.hasConnection(ForgeDirection.SOUTH)) { south.render(f5); } - - if (cable.hasConnection(ForgeDirection.WEST)) { - west.render(f5); - } } } diff --git a/src/main/resources/assets/storagecraft/textures/items/cable.png b/src/main/resources/assets/storagecraft/textures/items/cable.png deleted file mode 100644 index a8e8dbf51..000000000 Binary files a/src/main/resources/assets/storagecraft/textures/items/cable.png and /dev/null differ