From 6849d117cb6bafdfd9afd525620e5f2c4d0b1c63 Mon Sep 17 00:00:00 2001 From: KitsuShadow Date: Sun, 30 Aug 2015 14:19:03 -0400 Subject: [PATCH] need sounds --- .../primal/energy/render/RenderRegistry.java | 8 ++ .../render/item/blockToItem/IRCrank.java | 105 ++++++++++++++++ .../item/blockToItem/IRCrankGrinder.java | 113 ++++++++++++++++++ .../render/item/blockToItem/IRLathe.java | 113 ++++++++++++++++++ .../tileents/grinder/TileEntCrankGrinder.java | 7 +- 5 files changed, 343 insertions(+), 3 deletions(-) create mode 100644 src/main/java/nmd/primal/energy/render/item/blockToItem/IRCrank.java create mode 100644 src/main/java/nmd/primal/energy/render/item/blockToItem/IRCrankGrinder.java create mode 100644 src/main/java/nmd/primal/energy/render/item/blockToItem/IRLathe.java diff --git a/src/main/java/nmd/primal/energy/render/RenderRegistry.java b/src/main/java/nmd/primal/energy/render/RenderRegistry.java index 8ed3ad0..91fe43d 100644 --- a/src/main/java/nmd/primal/energy/render/RenderRegistry.java +++ b/src/main/java/nmd/primal/energy/render/RenderRegistry.java @@ -1,12 +1,17 @@ package nmd.primal.energy.render; import cpw.mods.fml.client.registry.ClientRegistry; +import net.minecraft.item.Item; import net.minecraftforge.client.MinecraftForgeClient; +import nmd.primal.energy.block.ModBlocks; import nmd.primal.energy.item.ModItems; import nmd.primal.energy.render.block.RenderCrank; import nmd.primal.energy.render.block.RenderCrankGrinder; import nmd.primal.energy.render.block.RenderLathe; import nmd.primal.energy.render.item.IRStoneGrindWheel; +import nmd.primal.energy.render.item.blockToItem.IRCrank; +import nmd.primal.energy.render.item.blockToItem.IRCrankGrinder; +import nmd.primal.energy.render.item.blockToItem.IRLathe; import nmd.primal.energy.tileents.TileEntCrank; import nmd.primal.energy.tileents.TileEntLatheBase; import nmd.primal.energy.tileents.grinder.TileEntCrankGrinder; @@ -21,6 +26,9 @@ public class RenderRegistry { ClientRegistry.bindTileEntitySpecialRenderer(TileEntCrankGrinder.class, new RenderCrankGrinder()); MinecraftForgeClient.registerItemRenderer(ModItems.stoneGrinder, new IRStoneGrindWheel()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.crankBlock), new IRCrank()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.crankGrinder), new IRCrankGrinder()); + MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.flintLathe), new IRLathe()); } } \ No newline at end of file diff --git a/src/main/java/nmd/primal/energy/render/item/blockToItem/IRCrank.java b/src/main/java/nmd/primal/energy/render/item/blockToItem/IRCrank.java new file mode 100644 index 0000000..13fa8a8 --- /dev/null +++ b/src/main/java/nmd/primal/energy/render/item/blockToItem/IRCrank.java @@ -0,0 +1,105 @@ +package nmd.primal.energy.render.item.blockToItem; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +public class IRCrank implements IItemRenderer { + + public static final ResourceLocation MODEL = new ResourceLocation("energy:models/Crank.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("energy:models/Crank.png"); + private IModelCustom model = AdvancedModelLoader.loadModel(MODEL); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + return helper == ItemRendererHelper.BLOCK_3D; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + GL11.glPushMatrix(); + GL11.glTranslatef(0.8F, 0.25F, 0.0F); + GL11.glRotated(-75, 1, 0, 0); + GL11.glRotated(-20, 0, 1.0, 0); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + GL11.glPushMatrix(); + GL11.glTranslatef(1.0F, 0.5F, 0.8F); + GL11.glRotated(-45, 0.0f, 1.0f, 0.0f); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPopMatrix(); + } break; + case INVENTORY: { + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPopMatrix(); + } break; + case ENTITY: { + GL11.glPushMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPopMatrix(); + } break; + default: + break; + } + } + +} + + diff --git a/src/main/java/nmd/primal/energy/render/item/blockToItem/IRCrankGrinder.java b/src/main/java/nmd/primal/energy/render/item/blockToItem/IRCrankGrinder.java new file mode 100644 index 0000000..eeb6684 --- /dev/null +++ b/src/main/java/nmd/primal/energy/render/item/blockToItem/IRCrankGrinder.java @@ -0,0 +1,113 @@ +package nmd.primal.energy.render.item.blockToItem; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +public class IRCrankGrinder implements IItemRenderer { + + public static final ResourceLocation MODEL = new ResourceLocation("energy:models/CrankGrinder.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("energy:models/CrankGrinder.png"); + private IModelCustom model = AdvancedModelLoader.loadModel(MODEL); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + //return helper == ItemRendererHelper.BLOCK_3D; + return false; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + GL11.glPushMatrix(); + GL11.glRotatef(20, 0.0f, 1.0f, 0.0f); + //GL11.glRotatef(-45, 1.0f, 0.0f, 0.0f); + GL11.glTranslatef(0.75F, 0.0F, 0.05F); + //GL11.glRotated(-75f, 1.0f, 0.0f, 0.0f); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + GL11.glPushMatrix(); + GL11.glTranslatef(1.0F, 0.5F, 0.8F); + GL11.glRotated(-45, 0.0f, 1.0f, 0.0f); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPopMatrix(); + } break; + case INVENTORY: { + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glTranslatef(1.0F, 0.40F, 0.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPopMatrix(); + } break; + case ENTITY: { + GL11.glPushMatrix(); + GL11.glScalef(1.5f, 1.5f, 1.5f); + GL11.glTranslatef(0.5F, 0.25F, -0.5F); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPopMatrix(); + } break; + default: + break; + } + } + +} + + diff --git a/src/main/java/nmd/primal/energy/render/item/blockToItem/IRLathe.java b/src/main/java/nmd/primal/energy/render/item/blockToItem/IRLathe.java new file mode 100644 index 0000000..5c815e5 --- /dev/null +++ b/src/main/java/nmd/primal/energy/render/item/blockToItem/IRLathe.java @@ -0,0 +1,113 @@ +package nmd.primal.energy.render.item.blockToItem; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +public class IRLathe implements IItemRenderer { + + public static final ResourceLocation MODEL = new ResourceLocation("energy:models/Lathe.obj"); + public static final ResourceLocation TEXTURE = new ResourceLocation("energy:models/FlintLathe.png"); + private IModelCustom model = AdvancedModelLoader.loadModel(MODEL); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + + switch(type) { + case EQUIPPED: { + return true; + } + case EQUIPPED_FIRST_PERSON: { + return true; + } + case INVENTORY: { + return true; + } + case ENTITY: { + return true; + } + + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,ItemRendererHelper helper) { + + switch(type) { + case EQUIPPED: { + //return helper == ItemRendererHelper.BLOCK_3D; + return false; + } + case EQUIPPED_FIRST_PERSON: { + return helper == ItemRendererHelper.EQUIPPED_BLOCK; + } + case INVENTORY: { + return helper == ItemRendererHelper.INVENTORY_BLOCK; + } + case ENTITY: { + return (helper == ItemRendererHelper.ENTITY_BOBBING || + helper == ItemRendererHelper.ENTITY_ROTATION || + helper == ItemRendererHelper.BLOCK_3D); + } + + default: return false; + } + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + switch(type) { + + case EQUIPPED: { + GL11.glPushMatrix(); + GL11.glRotatef(110, 0.0f, 1.0f, 0.0f); + //GL11.glRotatef(-45, 1.0f, 0.0f, 0.0f); + GL11.glTranslatef(-0.4F, 0.4F, 0.3F); + //GL11.glRotated(-75f, 1.0f, 0.0f, 0.0f); + + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPopMatrix(); + } break; + + case EQUIPPED_FIRST_PERSON: { + GL11.glPushMatrix(); + GL11.glTranslatef(1.0F, 0.5F, 0.5F); + GL11.glRotated(-45, 0.0f, 1.0f, 0.0f); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPopMatrix(); + } break; + case INVENTORY: { + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glTranslatef(0.0F, 0.1F, 0.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPopMatrix(); + } break; + case ENTITY: { + GL11.glPushMatrix(); + GL11.glScalef(1.5f, 1.5f, 1.5f); + GL11.glTranslatef(0.0F, 0.25F, 0.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); + model.renderAll(); + GL11.glPopMatrix(); + } break; + default: + break; + } + } + +} + + diff --git a/src/main/java/nmd/primal/energy/tileents/grinder/TileEntCrankGrinder.java b/src/main/java/nmd/primal/energy/tileents/grinder/TileEntCrankGrinder.java index 32c2a2a..b18dafb 100644 --- a/src/main/java/nmd/primal/energy/tileents/grinder/TileEntCrankGrinder.java +++ b/src/main/java/nmd/primal/energy/tileents/grinder/TileEntCrankGrinder.java @@ -65,8 +65,10 @@ public class TileEntCrankGrinder extends TileEntity implements IInventory, Grind if(GrinderRecipes.grinderCheck.contains(this.getStackInSlot(0).getItem())){ this.decrStackSize(0, 1); ItemStack stack = GrinderRecipes.grinderIn.get(this.getStackInSlot(0).getItem()); - System.out.println(stack); stack.stackSize=GrinderRecipes.grinderSize.get(stack.getItem()); + if(stack.getItem()==Items.redstone){ + stack.stackSize+=random.nextInt(6); + } EntityItem eItem=new EntityItem(world, x+0.5f, y+0.35f, z+0.5f, stack); world.spawnEntityInWorld(eItem); workCount=0; @@ -75,8 +77,7 @@ public class TileEntCrankGrinder extends TileEntity implements IInventory, Grind } if(this.getStackInSlot(0).getItem().equals(Item.getItemFromBlock(Blocks.lapis_ore))){ this.decrStackSize(0, 1); - ItemStack stack = new ItemStack(Items.dye, 4, 4); - System.out.println(stack); + ItemStack stack = new ItemStack(Items.dye, (4+random.nextInt(6)), 4); EntityItem eItem=new EntityItem(world, x+0.5f, y+0.35f, z+0.5f, stack); world.spawnEntityInWorld(eItem); workCount=0;