From cd3d8ccdbb1aece557a904acd773061690f4a540 Mon Sep 17 00:00:00 2001 From: Kam Date: Thu, 9 May 2024 05:02:01 -0400 Subject: [PATCH] Custom Barrel Rendering --- .../model/blocks/barrel/BarrelCore.java | 69 ++++++++++++++++++ .../model/blocks/barrel/BarrelTrim.java | 47 ++++++++++++ .../renderer/blocks/BlockBarrelRenderer.java | 31 ++++---- .../blocks/BlockRendererInterface.java | 33 +++++++-- .../customnpcs/textures/models/BarrelTrim.png | Bin 0 -> 405 bytes 5 files changed, 162 insertions(+), 18 deletions(-) create mode 100644 src/main/java/noppes/npcs/client/model/blocks/barrel/BarrelCore.java create mode 100644 src/main/java/noppes/npcs/client/model/blocks/barrel/BarrelTrim.java create mode 100644 src/main/resources/assets/customnpcs/textures/models/BarrelTrim.png diff --git a/src/main/java/noppes/npcs/client/model/blocks/barrel/BarrelCore.java b/src/main/java/noppes/npcs/client/model/blocks/barrel/BarrelCore.java new file mode 100644 index 000000000..fb3aa099a --- /dev/null +++ b/src/main/java/noppes/npcs/client/model/blocks/barrel/BarrelCore.java @@ -0,0 +1,69 @@ +package noppes.npcs.client.model.blocks.barrel; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBox; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +public class BarrelCore extends ModelBase { + private final ModelRenderer bb_main; + private final ModelRenderer cube_r1; + private final ModelRenderer cube_r2; + private final ModelRenderer cube_r3; + private final ModelRenderer cube_r4; + private final ModelRenderer cube_r5; + + public BarrelCore() { + textureWidth = 64; + textureHeight = 32; + + bb_main = new ModelRenderer(this); + bb_main.setRotationPoint(0.0F, 24.0F, 0.0F); + + cube_r1 = new ModelRenderer(this); + cube_r1.setRotationPoint(0.0F, 0.0F, 0.0F); + bb_main.addChild(cube_r1); + setRotationAngle(cube_r1, 1.5708F, 0.0F, -1.5708F); + cube_r1.cubeList.add(new ModelBox(cube_r1, 6, -6, 0.0F, -5.0F, -5.0F, 0, 10, 10, 0.0F)); + + cube_r2 = new ModelRenderer(this); + cube_r2.setRotationPoint(0.0F, -14.5F, 0.0F); + bb_main.addChild(cube_r2); + setRotationAngle(cube_r2, 0.0F, 0.0F, 1.5708F); + cube_r2.cubeList.add(new ModelBox(cube_r2, 0, 2, 2.5F, -5.5F, 5.5F, 8, 11, 0, 0.0F)); + cube_r2.cubeList.add(new ModelBox(cube_r2, 8, 2, 2.5F, -5.5F, -5.5F, 8, 11, 0, 0.0F)); + cube_r2.cubeList.add(new ModelBox(cube_r2, 0, 3, -1.5F, -5.0F, -5.0F, 16, 10, 0, 0.0F)); + + cube_r3 = new ModelRenderer(this); + cube_r3.setRotationPoint(0.0F, -14.5F, 0.0F); + bb_main.addChild(cube_r3); + setRotationAngle(cube_r3, 1.5708F, 0.0F, 1.5708F); + cube_r3.cubeList.add(new ModelBox(cube_r3, 8, 2, 2.5F, -5.5F, -5.5F, 8, 11, 0, 0.0F)); + cube_r3.cubeList.add(new ModelBox(cube_r3, 0, 2, 2.5F, -5.5F, 5.5F, 8, 11, 0, 0.0F)); + cube_r3.cubeList.add(new ModelBox(cube_r3, 6, -5, -1.5F, -5.0F, -5.0F, 0, 10, 10, 0.0F)); + cube_r3.cubeList.add(new ModelBox(cube_r3, 0, 5, -1.5F, -5.0F, -5.0F, 16, 10, 0, 0.0F)); + + cube_r4 = new ModelRenderer(this); + cube_r4.setRotationPoint(0.0F, -14.5F, 0.0F); + bb_main.addChild(cube_r4); + setRotationAngle(cube_r4, -1.5708F, 0.0F, 1.5708F); + cube_r4.cubeList.add(new ModelBox(cube_r4, 0, 4, -1.5F, -5.0F, -5.0F, 16, 10, 0, 0.0F)); + + cube_r5 = new ModelRenderer(this); + cube_r5.setRotationPoint(0.0F, -8.0F, 5.0F); + bb_main.addChild(cube_r5); + setRotationAngle(cube_r5, 3.1416F, 0.0F, 1.5708F); + cube_r5.cubeList.add(new ModelBox(cube_r5, 0, 3, -8.0F, -5.0F, 0.0F, 16, 10, 0, 0.0F)); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + bb_main.render(f5); + } + + public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/src/main/java/noppes/npcs/client/model/blocks/barrel/BarrelTrim.java b/src/main/java/noppes/npcs/client/model/blocks/barrel/BarrelTrim.java new file mode 100644 index 000000000..b5404428e --- /dev/null +++ b/src/main/java/noppes/npcs/client/model/blocks/barrel/BarrelTrim.java @@ -0,0 +1,47 @@ +package noppes.npcs.client.model.blocks.barrel;// Made with Blockbench 4.9.4 +// Exported for Minecraft version 1.7 - 1.12 +// Paste this class into your mod and generate all required imports + + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBox; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +public class BarrelTrim extends ModelBase { + private final ModelRenderer bb_main; + private final ModelRenderer cube_r1; + private final ModelRenderer cube_r2; + + public BarrelTrim() { + textureWidth = 32; + textureHeight = 32; + + bb_main = new ModelRenderer(this); + bb_main.setRotationPoint(0.0F, 24.0F, 0.0F); + bb_main.cubeList.add(new ModelBox(bb_main, 0, 7, 0.0F, -16.5F, -4.0F, 2, 1, 2, 0.0F)); + + cube_r1 = new ModelRenderer(this); + cube_r1.setRotationPoint(0.0F, -8.0F, 0.0F); + bb_main.addChild(cube_r1); + setRotationAngle(cube_r1, -1.5708F, 0.0F, 1.5708F); + cube_r1.cubeList.add(new ModelBox(cube_r1, 0, 0, -6.0F, -6.0F, -6.0F, 2, 12, 12, 0.0F)); + + cube_r2 = new ModelRenderer(this); + cube_r2.setRotationPoint(0.0F, -3.0F, 0.0F); + bb_main.addChild(cube_r2); + setRotationAngle(cube_r2, 1.5708F, 0.0F, 1.5708F); + cube_r2.cubeList.add(new ModelBox(cube_r2, 0, 0, -1.0F, -6.0F, -6.0F, 2, 12, 12, 0.0F)); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + bb_main.render(f5); + } + + public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/src/main/java/noppes/npcs/client/renderer/blocks/BlockBarrelRenderer.java b/src/main/java/noppes/npcs/client/renderer/blocks/BlockBarrelRenderer.java index ef07179b1..e90dd504f 100644 --- a/src/main/java/noppes/npcs/client/renderer/blocks/BlockBarrelRenderer.java +++ b/src/main/java/noppes/npcs/client/renderer/blocks/BlockBarrelRenderer.java @@ -11,6 +11,8 @@ import noppes.npcs.blocks.BlockBarrel; import noppes.npcs.blocks.tiles.TileColorable; import noppes.npcs.client.model.blocks.ModelBarrel; import noppes.npcs.client.model.blocks.ModelBarrelLit; +import noppes.npcs.client.model.blocks.barrel.BarrelCore; +import noppes.npcs.client.model.blocks.barrel.BarrelTrim; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; @@ -19,12 +21,17 @@ public class BlockBarrelRenderer extends BlockRendererInterface{ private final ModelBarrel model = new ModelBarrel(); private final ModelBarrelLit modelLit = new ModelBarrelLit(); private static final ResourceLocation resource1 = new ResourceLocation("customnpcs","textures/models/Barrel.png"); - + + + private final BarrelCore core = new BarrelCore(); + private final BarrelTrim trim = new BarrelTrim(); + private static final ResourceLocation trimTexture = new ResourceLocation("customnpcs","textures/models/BarrelTrim.png"); + public BlockBarrelRenderer(){ ((BlockBarrel)CustomItems.barrel).renderId = RenderingRegistry.getNextAvailableRenderId(); RenderingRegistry.registerBlockHandler(this); } - + @Override public void renderTileEntityAt(TileEntity var1, double var2, double var4, double var6, float var8) { @@ -33,16 +40,16 @@ public class BlockBarrelRenderer extends BlockRendererInterface{ GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glPushMatrix(); GL11.glTranslatef((float)var2 + 0.5f, (float)var4 + 1.42f, (float)var6 + 0.5f); - GL11.glScalef(1f, 0.94f,1f); + GL11.glScalef(1.2f, 0.94f,1.2f); GL11.glRotatef(180, 0, 0, 1); GL11.glRotatef(45 * tile.rotation, 0, 1, 0); GL11.glColor3f(1, 1, 1); GL11.glEnable(GL11.GL_CULL_FACE); setWoodTexture(var1.getBlockMetadata()); - model.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); - Minecraft.getMinecraft().getTextureManager().bindTexture(resource1); - modelLit.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); + core.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); + Minecraft.getMinecraft().getTextureManager().bindTexture(trimTexture); + trim.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); GL11.glPopMatrix(); } @@ -51,18 +58,16 @@ public class BlockBarrelRenderer extends BlockRendererInterface{ public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { GL11.glPushMatrix(); - GL11.glTranslatef(0, 0.75f, 0); - GL11.glScalef(0.7f, 0.7f, 0.7f); + GL11.glTranslatef(0, 1.05f, 0); + GL11.glScalef(1f, 1f, 1f); GL11.glRotatef(180, 0, 0, 1); GL11.glRotatef(180, 0, 1, 0); setWoodTexture(metadata); GL11.glColor3f(1, 1, 1); - model.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); - - Minecraft.getMinecraft().getTextureManager().bindTexture(resource1); - modelLit.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); - + core.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); + Minecraft.getMinecraft().getTextureManager().bindTexture(trimTexture); + trim.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); GL11.glPopMatrix(); } diff --git a/src/main/java/noppes/npcs/client/renderer/blocks/BlockRendererInterface.java b/src/main/java/noppes/npcs/client/renderer/blocks/BlockRendererInterface.java index c57a60d04..9327b4627 100644 --- a/src/main/java/noppes/npcs/client/renderer/blocks/BlockRendererInterface.java +++ b/src/main/java/noppes/npcs/client/renderer/blocks/BlockRendererInterface.java @@ -24,9 +24,17 @@ public abstract class BlockRendererInterface extends TileEntitySpecialRenderer i protected static final ResourceLocation PlanksAcacia = new ResourceLocation("customnpcs","textures/cache/planks_acacia.png"); protected static final ResourceLocation PlanksJungle = new ResourceLocation("customnpcs","textures/cache/planks_jungle.png"); + + protected static final ResourceLocation MCPlanksOak = new ResourceLocation("customnpcs","textures/cache/planks_oak.png"); + protected static final ResourceLocation MCPlanksBigOak = new ResourceLocation("customnpcs","textures/cache/planks_big_oak.png"); + protected static final ResourceLocation MCPlanksSpruce = new ResourceLocation("customnpcs","textures/cache/planks_spruce.png"); + protected static final ResourceLocation MCPlanksBirch = new ResourceLocation("customnpcs","textures/cache/planks_birch.png"); + protected static final ResourceLocation MCPlanksAcacia = new ResourceLocation("customnpcs","textures/cache/planks_acacia.png"); + protected static final ResourceLocation MCPlanksJungle = new ResourceLocation("customnpcs","textures/cache/planks_jungle.png"); + protected static final ResourceLocation Steel = new ResourceLocation("customnpcs","textures/models/Steel.png"); protected static final RenderItem renderer = new RenderItem(); - + public static float colorTable[][] = { { 1.0F, 1.0F, 1.0F @@ -73,8 +81,8 @@ public abstract class BlockRendererInterface extends TileEntitySpecialRenderer i public boolean shouldRender3DInInventory(int modelId) { return true; } - - + + public boolean playerTooFar(TileEntity tile){ Minecraft mc = Minecraft.getMinecraft(); double d6 = mc.renderViewEntity.posX - tile.xCoord; @@ -83,7 +91,7 @@ public abstract class BlockRendererInterface extends TileEntitySpecialRenderer i return d6 * d6 + d7 * d7 + d8 * d8 > specialRenderDistance() * specialRenderDistance(); } - + public int specialRenderDistance(){ return 20; } @@ -103,6 +111,22 @@ public abstract class BlockRendererInterface extends TileEntitySpecialRenderer i manager.bindTexture(PlanksOak); } + public void setDefaultWoodTexture(int meta){ + TextureManager manager = Minecraft.getMinecraft().getTextureManager(); + if(meta == 1) + manager.bindTexture(PlanksSpruce); + else if(meta == 2) + manager.bindTexture(PlanksBirch); + else if(meta == 3) + manager.bindTexture(PlanksJungle); + else if(meta == 4) + manager.bindTexture(PlanksAcacia); + else if(meta == 5) + manager.bindTexture(PlanksBigOak); + else + manager.bindTexture(PlanksOak); + } + public static void setMaterialTexture(int meta){ TextureManager manager = Minecraft.getMinecraft().getTextureManager(); if(meta == 1) @@ -115,6 +139,5 @@ public abstract class BlockRendererInterface extends TileEntitySpecialRenderer i manager.bindTexture(Diamond); else manager.bindTexture(PlanksOak); - } } diff --git a/src/main/resources/assets/customnpcs/textures/models/BarrelTrim.png b/src/main/resources/assets/customnpcs/textures/models/BarrelTrim.png new file mode 100644 index 0000000000000000000000000000000000000000..6269af2a12e68a6d7b00d554cf5402db372f9962 GIT binary patch literal 405 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=hEVFgkgHcQKNkg>34Q7=;4w-&#D>wL~h=l1Bv$BiW8Cp zZ|pYo=vAL@s>D@5~2Dwnveul-R-Y52RFVIOYw25Lc zKgblM6vkLstGINF6Nko928Ptgs@tpA{o5tB?2?NEN2ASocKs)-S|hwN867mQzLBeN zV|n4$wEC|UW9`Csi}UtR=}_g}T<%z+!^Le=p0*{gXtt0k>-QC_u07zqyEFUq=b}tk zn>ck&yK~PSGjGWAUE3>PC9wBxnHYoF?cC?F0bD^!|11T9t_J%%%wK=wbL@o1l`NbO ztQcd%>Jzu{&tJcQqu^})^qcH~6Btez{gW4Zx9=bC{PhwH_x#m=7vEue(UbPw^24kG wZXgK$!S>pvQYRqe@&RC=@})+2ruq6ZXaU(AKnwzxf+vG0Pgg&ebxsLQ0HiRV2><{9 literal 0 HcmV?d00001