Added plug item and item renderer

This commit is contained in:
Krapht 2013-05-07 19:02:25 +02:00
parent 6a6ba168c7
commit b1ed48da37
6 changed files with 150 additions and 0 deletions

View file

@ -72,6 +72,7 @@ item.PipeLiquidsVoid=Void Waterproof Pipe
item.PipeItemsSandstone=Sandstone Transport Pipe
item.PipeLiquidsSandstone=Sandstone Waterproof Pipe
item.Facade=Facade
item.PipePlug=Pipe Plug
tile.miningWellBlock=Mining Well
tile.plainPipeBlock=Mining Pipe
tile.autoWorkbenchBlock=Autocrafting Table

View file

@ -37,6 +37,7 @@ import buildcraft.transport.GuiHandler;
import buildcraft.transport.ItemFacade;
import buildcraft.transport.ItemGate;
import buildcraft.transport.ItemPipe;
import buildcraft.transport.ItemPlug;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTriggerProvider;
@ -139,6 +140,7 @@ public class BuildCraftTransport {
public static Item pipePowerGold;
public static Item facadeItem;
public static Item plugItem;
// public static Item pipeItemsStipes;
public static Item pipeStructureCobblestone;
@ -351,6 +353,10 @@ public class BuildCraftTransport {
Property pipeFacadeId = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_ITEM, "pipeFacade.id", DefaultProps.PIPE_FACADE_ID);
facadeItem = new ItemFacade(pipeFacadeId.getInt());
facadeItem.setUnlocalizedName("pipeFacade");
Property pipePlugId = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_ITEM, "pipePlug.id", DefaultProps.PIPE_PLUG_ID);
plugItem = new ItemPlug(pipePlugId.getInt());
plugItem.setUnlocalizedName("pipePlug");
} finally {
BuildCraftCore.mainConfiguration.save();

View file

@ -54,6 +54,7 @@ public class DefaultProps {
// Moving to safer id range
public static int GATE_AUTARCHIC_ID = 19140;
public static int PIPE_FACADE_ID = 19141;
public static int PIPE_PLUG_ID = 19142;
public static int PIPE_ITEMS_WOOD_ID = 19160;
public static int PIPE_ITEMS_COBBLESTONE_ID = 19161;

View file

@ -0,0 +1,42 @@
package buildcraft.transport;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import buildcraft.core.CreativeTabBuildCraft;
import buildcraft.core.ItemBuildCraft;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class ItemPlug extends ItemBuildCraft {
public ItemPlug(int i) {
super(i);
setCreativeTab(CreativeTabBuildCraft.tabBuildCraft);
}
@Override
public String getUnlocalizedName(ItemStack itemstack) {
return "item.PipePlug";
}
@Override
public boolean shouldPassSneakingClickToBlock(World worldObj, int x, int y, int z ) {
return true;
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IconRegister par1IconRegister)
{
// NOOP
}
@Override
@SideOnly(Side.CLIENT)
public int getSpriteNumber()
{
return 0;
}
}

View file

@ -5,6 +5,7 @@ import buildcraft.BuildCraftTransport;
import buildcraft.transport.render.FacadeItemRenderer;
import buildcraft.transport.render.PipeItemRenderer;
import buildcraft.transport.render.PipeWorldRenderer;
import buildcraft.transport.render.PlugItemRenderer;
import buildcraft.transport.render.RenderPipe;
import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.client.registry.RenderingRegistry;
@ -13,6 +14,7 @@ public class TransportProxyClient extends TransportProxy {
public final static PipeItemRenderer pipeItemRenderer = new PipeItemRenderer();
public final static PipeWorldRenderer pipeWorldRenderer = new PipeWorldRenderer();
public final static FacadeItemRenderer facadeItemRenderer = new FacadeItemRenderer();
public final static PlugItemRenderer plugItemRenderer = new PlugItemRenderer();
@Override
public void registerTileEntities() {
@ -53,6 +55,7 @@ public class TransportProxyClient extends TransportProxy {
MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeLiquidsSandstone.itemID, pipeItemRenderer);
MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.facadeItem.itemID, facadeItemRenderer);
MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.plugItem.itemID, plugItemRenderer);
TransportProxy.pipeModel = RenderingRegistry.getNextAvailableRenderId();
RenderingRegistry.registerBlockHandler(pipeWorldRenderer);

View file

@ -0,0 +1,97 @@
package buildcraft.transport.render;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Icon;
import net.minecraftforge.client.IItemRenderer;
import org.lwjgl.opengl.GL11;
import buildcraft.BuildCraftTransport;
import buildcraft.transport.PipeIconProvider;
public class PlugItemRenderer implements IItemRenderer{
private void renderPlugItem(RenderBlocks render, ItemStack item, float translateX, float translateY, float translateZ) {
// Render StructurePipe
Block block = BuildCraftTransport.genericPipeBlock;
Tessellator tessellator = Tessellator.instance;
block = BuildCraftTransport.genericPipeBlock;
Icon textureID = BuildCraftTransport.instance.pipeIconProvider.getIcon(PipeIconProvider.PipeStructureCobblestone); // Structure pipe
block.setBlockBounds(0.25F, 0.25F, 0.25F, 0.75F, 0.375F, 0.75F);
block.setBlockBoundsForItemRender();
render.setRenderBoundsFromBlock(block);
GL11.glTranslatef(translateX, translateY, translateZ + 0.25F);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -0F, 0.0F);
render.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, textureID);
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
render.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, textureID);
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1F);
render.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, textureID);
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
render.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, textureID);
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1F, 0.0F, 0.0F);
render.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, textureID);
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
render.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, textureID);
tessellator.draw();
}
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
switch (type) {
case ENTITY:
return true;
case EQUIPPED:
return true;
case INVENTORY:
return true;
default:
return false;
}
}
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
return true;
}
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
switch (type) {
case ENTITY:
GL11.glScalef(0.50F, 0.50F, 0.50F);
renderPlugItem((RenderBlocks) data[0], item, -0.6F, 0f, -0.6F);
break;
case EQUIPPED:
renderPlugItem((RenderBlocks) data[0], item, 0F, 0F, 0f);
break;
case INVENTORY:
GL11.glScalef(1.1F, 1.1F, 1.1F);
renderPlugItem((RenderBlocks) data[0], item, -0.3f, -0.35f, -0.7f);
break;
default:
}
}
}