From 4832b33b0c2d8f285158497398045ed0f3e21b40 Mon Sep 17 00:00:00 2001 From: KitsuShadow Date: Fri, 21 Aug 2015 06:40:28 -0400 Subject: [PATCH] Lathe Model in game --- .../nmd/primal/energy/block/ModBlocks.java | 4 +- .../primal/energy/block/lathe/FlintLathe.java | 24 + .../primal/energy/block/lathe/LatheBase.java | 37 ++ .../nmd/primal/energy/render/RenderID.java | 8 + .../primal/energy/render/RenderRegistry.java | 4 + .../energy/render/block/RenderLathe.java | 64 +++ .../nmd/primal/energy/tileents/TileBase.java | 19 - .../energy/tileents/TileEntFlintLathe.java | 86 ++++ .../primal/energy/tileents/TileRegistry.java | 1 + .../assets/energy/models/FlintLathe.png | Bin 0 -> 906 bytes .../resources/assets/energy/models/Lathe.obj | 454 ++++++++++++++++++ 11 files changed, 681 insertions(+), 20 deletions(-) create mode 100644 src/main/java/nmd/primal/energy/block/lathe/FlintLathe.java create mode 100644 src/main/java/nmd/primal/energy/block/lathe/LatheBase.java create mode 100644 src/main/java/nmd/primal/energy/render/block/RenderLathe.java create mode 100644 src/main/java/nmd/primal/energy/tileents/TileEntFlintLathe.java create mode 100644 src/main/resources/assets/energy/models/FlintLathe.png create mode 100644 src/main/resources/assets/energy/models/Lathe.obj diff --git a/src/main/java/nmd/primal/energy/block/ModBlocks.java b/src/main/java/nmd/primal/energy/block/ModBlocks.java index 7b6db47..cd0340e 100644 --- a/src/main/java/nmd/primal/energy/block/ModBlocks.java +++ b/src/main/java/nmd/primal/energy/block/ModBlocks.java @@ -2,18 +2,20 @@ package nmd.primal.energy.block; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import nmd.primal.energy.block.lathe.FlintLathe; import cpw.mods.fml.common.registry.GameRegistry; public class ModBlocks { public static Block SMBBlock; public static Block crankBlock; - +public static Block flintLathe; public static final void init() { GameRegistry.registerBlock(SMBBlock = new SMBBlock("SMBBlock", Material.wood), "SMBBlock"); GameRegistry.registerBlock(crankBlock = new CrankBlock("CrankBlock", Material.wood), "CrankBlock"); + GameRegistry.registerBlock(flintLathe = new FlintLathe("FlintLathe", Material.wood), "FlintLathe"); //GameRegistry.registerBlock(mineralBlock = new MineralBlock("mineralBlock", Material.rock), "mineralBlock"); } } diff --git a/src/main/java/nmd/primal/energy/block/lathe/FlintLathe.java b/src/main/java/nmd/primal/energy/block/lathe/FlintLathe.java new file mode 100644 index 0000000..dcca755 --- /dev/null +++ b/src/main/java/nmd/primal/energy/block/lathe/FlintLathe.java @@ -0,0 +1,24 @@ +package nmd.primal.energy.block.lathe; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import nmd.primal.energy.render.RenderID; +import nmd.primal.energy.tileents.TileEntCrank; +import nmd.primal.energy.tileents.TileEntFlintLathe; + +public class FlintLathe extends LatheBase{ + + public FlintLathe(String unlocalizedName, Material material) { + super(unlocalizedName, material); + + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + return new TileEntFlintLathe("TileEntFlintLathe"); + } + + + +} diff --git a/src/main/java/nmd/primal/energy/block/lathe/LatheBase.java b/src/main/java/nmd/primal/energy/block/lathe/LatheBase.java new file mode 100644 index 0000000..b8299a4 --- /dev/null +++ b/src/main/java/nmd/primal/energy/block/lathe/LatheBase.java @@ -0,0 +1,37 @@ +package nmd.primal.energy.block.lathe; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.ITileEntityProvider; +import net.minecraft.block.material.Material; +import nmd.primal.energy.common.ModInfo; +import nmd.primal.energy.render.RenderID; +import nmd.primal.energy.util.CustomTab; + +public abstract class LatheBase extends BlockContainer implements ITileEntityProvider{ + + protected LatheBase(String unlocalizedName, Material material) { + super(material); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(ModInfo.MOD_ID + ":" + unlocalizedName); + this.setCreativeTab(CustomTab.NMDEnergyTab); + this.setHardness(1.0F); + this.setResistance(6.0F); + this.setStepSound(soundTypeStone); + this.setBlockBounds(0.1F, 0.0F, 0.1F, + 0.9F, 0.75F, 0.9F); + } + + @Override + public int getRenderType() { + return RenderID.latheID; + } + @Override + public boolean renderAsNormalBlock() { + return false; + } + @Override + public boolean isOpaqueCube() { + return false; + } + +} diff --git a/src/main/java/nmd/primal/energy/render/RenderID.java b/src/main/java/nmd/primal/energy/render/RenderID.java index f10ab26..79b0292 100644 --- a/src/main/java/nmd/primal/energy/render/RenderID.java +++ b/src/main/java/nmd/primal/energy/render/RenderID.java @@ -1,14 +1,22 @@ package nmd.primal.energy.render; + +import java.awt.List; +import java.util.Vector; + import cpw.mods.fml.client.registry.RenderingRegistry; public class RenderID { public static int crankID; + public static int latheID; + public static void init(){ + latheID = RenderingRegistry.getNextAvailableRenderId(); crankID = RenderingRegistry.getNextAvailableRenderId(); + } } diff --git a/src/main/java/nmd/primal/energy/render/RenderRegistry.java b/src/main/java/nmd/primal/energy/render/RenderRegistry.java index 7f5b44e..ec668f6 100644 --- a/src/main/java/nmd/primal/energy/render/RenderRegistry.java +++ b/src/main/java/nmd/primal/energy/render/RenderRegistry.java @@ -2,13 +2,17 @@ package nmd.primal.energy.render; import cpw.mods.fml.client.registry.ClientRegistry; import nmd.primal.energy.render.block.RenderCrank; +import nmd.primal.energy.render.block.RenderLathe; import nmd.primal.energy.tileents.TileEntCrank; +import nmd.primal.energy.tileents.TileEntFlintLathe; public class RenderRegistry { + public static final void init() { //MinecraftForgeClient.registerItemRenderer(ModItems.woodenShield, new ItemRenderWoodenShield()); //MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.emptySoftCrucible), new ItemRendererSECrucible()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntCrank.class, new RenderCrank()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntFlintLathe.class, new RenderLathe()); } } \ No newline at end of file diff --git a/src/main/java/nmd/primal/energy/render/block/RenderLathe.java b/src/main/java/nmd/primal/energy/render/block/RenderLathe.java new file mode 100644 index 0000000..55b1169 --- /dev/null +++ b/src/main/java/nmd/primal/energy/render/block/RenderLathe.java @@ -0,0 +1,64 @@ +package nmd.primal.energy.render.block; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.FMLClientHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; +import nmd.primal.energy.block.ModBlocks; +import nmd.primal.energy.tileents.TileEntCrank; +import nmd.primal.energy.tileents.TileEntFlintLathe; + +public class RenderLathe extends TileEntitySpecialRenderer { + + public int i = 0; + public int a = 0; + 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 void renderTileEntityAt(TileEntity tileEnt, double x, double y, double z, float scale) { + + GL11.glPushMatrix(); + + GL11.glTranslatef((float) x, (float) y, (float) z); + TileEntFlintLathe tile = (TileEntFlintLathe) tileEnt; + + renderBlock(tile, tileEnt.getWorldObj(), tileEnt.xCoord,tileEnt.yCoord, tileEnt.zCoord, ModBlocks.flintLathe); + GL11.glPopMatrix(); + } + + public void renderBlock(TileEntFlintLathe tl, World world, int x, int y,int z, Block block) { + + GL11.glPushMatrix(); + + float scale = 1.0F; + GL11.glScalef(scale, scale, scale); + + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + /*if(tl.isPowered == true){ + + GL11.glRotatef(i, 0.0F, 1.0F, 0.0F); + a++; + if(a==1){ + i=i+7; + a=0; + } + if(i==360){ + i=0; + } + }*/ + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE); + + this.model.renderAll(); + GL11.glPopMatrix(); + } + +} diff --git a/src/main/java/nmd/primal/energy/tileents/TileBase.java b/src/main/java/nmd/primal/energy/tileents/TileBase.java index 45df1a9..30444fa 100644 --- a/src/main/java/nmd/primal/energy/tileents/TileBase.java +++ b/src/main/java/nmd/primal/energy/tileents/TileBase.java @@ -16,24 +16,6 @@ public class TileBase extends TileEntity{ public TileBase(String name){ specName = name; } - - /* - * - * this.hits = tagCompound.getInteger("HITS"); - this.coolTicks = tagCompound.getInteger("COOLTICK"); - this.heatTicks = tagCompound.getInteger("HEATTICKS"); - this.hot = tagCompound.getBoolean("HOT"); - } - - @Override - public void writeToNBT(NBTTagCompound tagCompound) - { - super.writeToNBT(tagCompound); - tagCompound.setInteger("HITS", this.hits); - tagCompound.setInteger("COOLTICK", this.coolTicks); - tagCompound.setInteger("HEATTICKS", this.heatTicks); - tagCompound.setBoolean("HOT", this.hot); - */ public void markForUpdate(){ worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); @@ -46,7 +28,6 @@ public class TileBase extends TileEntity{ int y = this.yCoord; int z = this.zCoord; if (worldObj.isRemote) return; - } @Override diff --git a/src/main/java/nmd/primal/energy/tileents/TileEntFlintLathe.java b/src/main/java/nmd/primal/energy/tileents/TileEntFlintLathe.java new file mode 100644 index 0000000..4bda633 --- /dev/null +++ b/src/main/java/nmd/primal/energy/tileents/TileEntFlintLathe.java @@ -0,0 +1,86 @@ +package nmd.primal.energy.tileents; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; + +public class TileEntFlintLathe extends TileBase implements IInventory { + + public TileEntFlintLathe(String name) { + super(name); + // TODO Auto-generated constructor stub + } + + @Override + public int getSizeInventory() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public ItemStack getStackInSlot(int slot) { + // TODO Auto-generated method stub + return null; + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + // TODO Auto-generated method stub + return null; + } + + @Override + public ItemStack getStackInSlotOnClosing(int p_70304_1_) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void setInventorySlotContents(int p_70299_1_, ItemStack p_70299_2_) { + // TODO Auto-generated method stub + + } + + @Override + public String getInventoryName() { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean hasCustomInventoryName() { + // TODO Auto-generated method stub + return false; + } + + @Override + public int getInventoryStackLimit() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer p_70300_1_) { + // TODO Auto-generated method stub + return false; + } + + @Override + public void openInventory() { + // TODO Auto-generated method stub + + } + + @Override + public void closeInventory() { + // TODO Auto-generated method stub + + } + + @Override + public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) { + // TODO Auto-generated method stub + return false; + } + +} diff --git a/src/main/java/nmd/primal/energy/tileents/TileRegistry.java b/src/main/java/nmd/primal/energy/tileents/TileRegistry.java index 019737d..efea4eb 100644 --- a/src/main/java/nmd/primal/energy/tileents/TileRegistry.java +++ b/src/main/java/nmd/primal/energy/tileents/TileRegistry.java @@ -7,5 +7,6 @@ public class TileRegistry { public static final void init() { GameRegistry.registerTileEntity(TileEntCrank.class, "TileEntCrank"); + GameRegistry.registerTileEntity(TileEntFlintLathe.class, "TileEntFlintLathe"); } } diff --git a/src/main/resources/assets/energy/models/FlintLathe.png b/src/main/resources/assets/energy/models/FlintLathe.png new file mode 100644 index 0000000000000000000000000000000000000000..8b6397ec23b556d771011a499e85ed36cb0543a9 GIT binary patch literal 906 zcmV;519kj~P)t01 z&Vr!{7YsA52*Me}K@3De71r39?XJpS1P3G-7vP;-{`&oglw*fl*h=ToltYC@=MrJ> zO6H*CLEnTqC(zj{Tvy?~pzomVPS#seb#cZ(*eF-UG#H1lR9N$(OySro*9oO6 z{Rp%V!UaUR|*-10<20jN7!nW@83DFm=La}6) zlMxG@PNkya54?ligx!Lf&gc-Q)3-ZfH!eT97en)4)K0gjZSGd znosf`IGuS_Y-`lHks+uzh=UnPL?9uodIL^$dZIoNHb%XW2xKj0DAj~3H~#$lm9-RE zL6pYf@cG$MS7HsMPkdv+snDGH3H*~Vz66^oRHd}VZ$JG5>C8~JXYy|*RV%qVDvlln zO_C6WEy(x5_1@Ukd6U5s2%CJKLB@gs&4O1=Bsc6e(JkO|bZ$nQor?=8Aj7#T6g7}W zIV#Wf9TX?4F`{xU*j_sMt*TY}ssRTu6~n+|ID{X*iRuJ-?+8}#R7 zpHO_Efa>}I3u6ysSm8yS)F7UVjlps22DvLGch;O(7glsi z7P1w#z0-V9t&v5@>m5xVjD1JOfl6mxhV{zI0s7>Y!KI6GIIAgn-}(9#XvUfc#>Do8 z*6(lVweZ(LSS7Xz(NV9g`AWVhCKZ1w@e+8S>@mOwVFs6=tDp?Qvv7s5s==u&g`9zp zZ_EYLCVdaKuLqBMlCOihl6^fGcfk$h*I$0jz6L?zs2ArH%!EIF{vv!JjXAKKxOawk ziV87;kES8ckPT5FK0^`E{o|09#)}9M!g@@&z;b>ZV%&Lp$I_{v1}LP