From 5dd260bb4281673aa3ea28de438903a46055e647 Mon Sep 17 00:00:00 2001 From: Kam Date: Wed, 12 Feb 2025 17:39:33 -0500 Subject: [PATCH] Anvil Model + Push Attributes --- .../npcs/blocks/BlockCarpentryBench.java | 3 + .../java/noppes/npcs/blocks/BlockRotated.java | 20 +- .../java/noppes/npcs/blocks/BlockTable.java | 12 +- .../npcs/client/model/blocks/ModelAnvil.java | 174 +++++++++++------- .../model/blocks/legacy/ModelLegacyAnvil.java | 90 +++++++++ .../renderer/blocks/BlockBannerRenderer.java | 2 + .../blocks/BlockCampfireRenderer.java | 2 + .../renderer/blocks/BlockCandleRenderer.java | 3 +- .../blocks/BlockCarpentryBenchRenderer.java | 34 +++- .../renderer/blocks/BlockChairRenderer.java | 3 +- .../blocks/BlockCouchWoolRenderer.java | 3 +- .../renderer/blocks/BlockLanternRenderer.java | 3 +- .../renderer/blocks/BlockStoolRenderer.java | 3 +- .../renderer/blocks/BlockTableRenderer.java | 8 +- .../blocks/BlockTallLampRenderer.java | 9 +- .../blocks/BlockWallBannerRenderer.java | 2 + .../java/noppes/npcs/config/ConfigClient.java | 2 + .../customnpcs/textures/models/anvil.png | Bin 0 -> 2393 bytes .../textures/models/{ => legacy}/Steel.png | Bin 19 files changed, 275 insertions(+), 98 deletions(-) create mode 100644 src/main/java/noppes/npcs/client/model/blocks/legacy/ModelLegacyAnvil.java create mode 100644 src/main/resources/assets/customnpcs/textures/models/anvil.png rename src/main/resources/assets/customnpcs/textures/models/{ => legacy}/Steel.png (100%) diff --git a/src/main/java/noppes/npcs/blocks/BlockCarpentryBench.java b/src/main/java/noppes/npcs/blocks/BlockCarpentryBench.java index 5b579c406..209ba7b5b 100644 --- a/src/main/java/noppes/npcs/blocks/BlockCarpentryBench.java +++ b/src/main/java/noppes/npcs/blocks/BlockCarpentryBench.java @@ -68,6 +68,9 @@ public class BlockCarpentryBench extends BlockContainer @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { + if(meta >= 4){ + return Blocks.anvil.getIcon(side, 0); + } return Blocks.planks.getIcon(side, 0); } diff --git a/src/main/java/noppes/npcs/blocks/BlockRotated.java b/src/main/java/noppes/npcs/blocks/BlockRotated.java index 41898f21c..4472bfff7 100644 --- a/src/main/java/noppes/npcs/blocks/BlockRotated.java +++ b/src/main/java/noppes/npcs/blocks/BlockRotated.java @@ -15,7 +15,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import noppes.npcs.blocks.tiles.TileColorable; -public abstract class BlockRotated extends BlockContainer{ +public abstract class BlockRotated extends BlockContainer { private Block block; protected BlockRotated(Block block) { super(block.getMaterial()); @@ -24,38 +24,38 @@ public abstract class BlockRotated extends BlockContainer{ public int renderId = -1; - @Override + @Override public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLivingBase par5EntityLivingBase, ItemStack par6ItemStack){ int l = MathHelper.floor_double((double)(par5EntityLivingBase.rotationYaw * maxRotation() / 360.0F) + 0.5D) & (maxRotation() - 1); l %= maxRotation(); TileColorable tile = (TileColorable) par1World.getTileEntity(par2, par3, par4); - tile.rotation = l; + tile.rotation = l; } public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z){ setBlockBoundsBasedOnState(world, x, y, z); return super.getCollisionBoundingBoxFromPool(world, x, y, z); } - + public int maxRotation(){ return 4; } - @Override + @Override public boolean isOpaqueCube(){ return false; } - @Override + @Override public boolean renderAsNormalBlock(){ return false; } - @Override + @Override public int getRenderType(){ - return renderId; + return renderId; } - @Override + @Override public boolean isSideSolid(IBlockAccess world, int x, int y, int z, ForgeDirection side){ return true; } @@ -64,7 +64,7 @@ public abstract class BlockRotated extends BlockContainer{ @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister par1IconRegister) { - + } @Override @SideOnly(Side.CLIENT) diff --git a/src/main/java/noppes/npcs/blocks/BlockTable.java b/src/main/java/noppes/npcs/blocks/BlockTable.java index 62be7406d..015fcbfaa 100644 --- a/src/main/java/noppes/npcs/blocks/BlockTable.java +++ b/src/main/java/noppes/npcs/blocks/BlockTable.java @@ -11,14 +11,14 @@ import noppes.npcs.blocks.tiles.TileTable; import java.util.List; -public class BlockTable extends BlockRotated{ +public class BlockTable extends BlockRotated { public BlockTable() { super(Blocks.planks); this.setLightOpacity(-1); } - - @Override + + @Override public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List){ par3List.add(new ItemStack(par1, 1, 0)); par3List.add(new ItemStack(par1, 1, 1)); @@ -28,15 +28,15 @@ public class BlockTable extends BlockRotated{ par3List.add(new ItemStack(par1, 1, 5)); } - @Override + @Override public int damageDropped(int par1){ return par1; } - @Override + @Override public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLivingBase par5EntityLivingBase, ItemStack par6ItemStack){ - super.onBlockPlacedBy(par1World, par2, par3, par4, par5EntityLivingBase, par6ItemStack); + super.onBlockPlacedBy(par1World, par2, par3, par4, par5EntityLivingBase, par6ItemStack); par1World.setBlockMetadataWithNotify(par2, par3, par4, par6ItemStack.getItemDamage() , 2); } diff --git a/src/main/java/noppes/npcs/client/model/blocks/ModelAnvil.java b/src/main/java/noppes/npcs/client/model/blocks/ModelAnvil.java index 27307ebf7..6e2368c1d 100644 --- a/src/main/java/noppes/npcs/client/model/blocks/ModelAnvil.java +++ b/src/main/java/noppes/npcs/client/model/blocks/ModelAnvil.java @@ -1,90 +1,136 @@ -// Date: 11-10-2012 19:29:20 -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - package noppes.npcs.client.model.blocks; 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 ModelAnvil extends ModelBase { - ModelRenderer Tail; - ModelRenderer Nose1; - ModelRenderer Nose2; - ModelRenderer Nose3; - ModelRenderer Nose4; - ModelRenderer Head1; - ModelRenderer Head2; - ModelRenderer Neck2; - ModelRenderer Bottom2; - ModelRenderer Bottom3; - ModelRenderer Foot4; + public final ModelRenderer Anvil; + public final ModelRenderer Desk; + public final ModelRenderer Bucket; + private final ModelRenderer cube_r1; + private final ModelRenderer cube_r2; + public final ModelRenderer Lava; + public final ModelRenderer Hammer; + private final ModelRenderer Hammer_r1; + public final ModelRenderer Mold; + private final ModelRenderer cube_r3; + private final ModelRenderer cube_r4; + private final ModelRenderer cube_r5; + private final ModelRenderer cube_r6; + private final ModelRenderer cube_r7; + private final ModelRenderer cube_r8; public ModelAnvil() { textureWidth = 64; - textureHeight = 32; + textureHeight = 64; - Tail = new ModelRenderer(this, 0, 0); - Tail.addBox(0F, 0F, 0F, 1, 2, 4); - Tail.setRotationPoint(-7F, 12F, -2F); + Anvil = new ModelRenderer(this); + Anvil.setRotationPoint(0.0F, 24.0F, 0.0F); + Anvil.cubeList.add(new ModelBox(Anvil, 0, 16, -6.0F, -4.0F, -8.0F, 12, 4, 12, 0.0F)); + Anvil.cubeList.add(new ModelBox(Anvil, 0, 32, -5.0F, -5.0F, -6.0F, 10, 1, 8, 0.0F)); + Anvil.cubeList.add(new ModelBox(Anvil, 0, 41, -4.0F, -10.0F, -4.0F, 8, 5, 4, 0.0F)); + Anvil.cubeList.add(new ModelBox(Anvil, 0, 0, -8.0F, -16.0F, -7.0F, 16, 6, 10, 0.0F)); - Nose1 = new ModelRenderer(this, 0, 0); - Nose1.addBox(0F, 0F, 0F, 1, 5, 6); - Nose1.setRotationPoint(6F, 10F, -3F); + Desk = new ModelRenderer(this); + Desk.setRotationPoint(0.0F, 24.0F, 0.0F); + Desk.cubeList.add(new ModelBox(Desk, 52, 0, 5.0F, -14.0F, 5.0F, 3, 14, 3, 0.0F)); + Desk.cubeList.add(new ModelBox(Desk, 52, 0, -8.0F, -14.0F, 5.0F, 3, 14, 3, 0.0F)); + Desk.cubeList.add(new ModelBox(Desk, 0, 50, -8.0F, -16.0F, 3.0F, 16, 2, 5, 0.0F)); - Nose2 = new ModelRenderer(this, 0, 0); - Nose2.addBox(0F, 0F, 0F, 1, 4, 5); - Nose2.setRotationPoint(7F, 10F, -2.5F); + Bucket = new ModelRenderer(this); + Bucket.setRotationPoint(3.0F, 5.5F, 4.0F); + setRotationAngle(Bucket, 0.0F, 0.3927F, 0.0F); + Bucket.cubeList.add(new ModelBox(Bucket, 48, 17, -2.0F, 1.5F, -2.0F, 4, 1, 4, 0.0F)); + Bucket.cubeList.add(new ModelBox(Bucket, 54, 22, 1.5F, -2.5F, -2.0F, 1, 4, 4, 0.0F)); + Bucket.cubeList.add(new ModelBox(Bucket, 54, 22, -2.5F, -2.5F, -2.0F, 1, 4, 4, 0.0F)); - Nose3 = new ModelRenderer(this, 0, 0); - Nose3.addBox(0F, 0F, 0F, 1, 3, 4); - Nose3.setRotationPoint(8F, 10F, -2F); + cube_r1 = new ModelRenderer(this); + cube_r1.setRotationPoint(0.0F, -0.5F, -2.0F); + Bucket.addChild(cube_r1); + setRotationAngle(cube_r1, 0.0F, 1.5708F, 0.0F); + cube_r1.cubeList.add(new ModelBox(cube_r1, 54, 22, -0.5F, -2.0F, -2.0F, 1, 4, 4, 0.0F)); - Nose4 = new ModelRenderer(this, 0, 0); - Nose4.addBox(0F, 0F, 0F, 1, 2, 2); - Nose4.setRotationPoint(9F, 10F, -1F); + cube_r2 = new ModelRenderer(this); + cube_r2.setRotationPoint(0.0F, -0.5F, 2.0F); + Bucket.addChild(cube_r2); + setRotationAngle(cube_r2, 0.0F, -1.5708F, 0.0F); + cube_r2.cubeList.add(new ModelBox(cube_r2, 54, 22, -0.5F, -2.0F, -2.0F, 1, 4, 4, 0.0F)); - Head1 = new ModelRenderer(this, 0, 0); - Head1.addBox(0F, 0F, 0F, 12, 4, 7); - Head1.setRotationPoint(-6F, 12F, -3.5F); + Lava = new ModelRenderer(this); + Lava.setRotationPoint(3.0F, 5.5F, 4.0F); + setRotationAngle(Lava, 0.0F, 0.3927F, 0.0F); + Lava.cubeList.add(new ModelBox(Lava, 48, 30, -2.0F, -1.5F, -2.0F, 4, 3, 4, 0.0F)); - Head2 = new ModelRenderer(this, 0, 0); - Head2.addBox(0F, 0F, 0F, 14, 2, 9); - Head2.setRotationPoint(-8F, 10F, -4.5F); + Hammer = new ModelRenderer(this); + Hammer.setRotationPoint(4.9909F, 6.5642F, -4.0337F); + setRotationAngle(Hammer, 0.1327F, 0.0189F, 0.1303F); - Neck2 = new ModelRenderer(this, 0, 0); - Neck2.addBox(0F, 0F, 0F, 10, 1, 6); - Neck2.setRotationPoint(-5F, 16F, -3F); - Bottom2 = new ModelRenderer(this, 0, 0); - Bottom2.addBox(0F, 0F, 0F, 10, 2, 7); - Bottom2.setRotationPoint(-5F, 20F, -3.5F); + Hammer_r1 = new ModelRenderer(this); + Hammer_r1.setRotationPoint(-0.2409F, 0.5358F, -0.4663F); + Hammer.addChild(Hammer_r1); + setRotationAngle(Hammer_r1, 2.9697F, -0.7703F, -2.8972F); + Hammer_r1.cubeList.add(new ModelBox(Hammer_r1, 56, 45, -2.8377F, -0.7659F, -1.0002F, 3, 1, 1, 0.0F)); + Hammer_r1.cubeList.add(new ModelBox(Hammer_r1, 48, 37, 0.1623F, -1.7659F, -3.0002F, 3, 3, 5, 0.0F)); - Bottom3 = new ModelRenderer(this, 0, 0); - Bottom3.addBox(0F, 0F, 0F, 8, 3, 4); - Bottom3.setRotationPoint(-4F, 17F, -2F); + Mold = new ModelRenderer(this); + Mold.setRotationPoint(-3.2778F, 7.5556F, 1.5F); + setRotationAngle(Mold, 0.0F, 0.7854F, 0.0F); + Mold.cubeList.add(new ModelBox(Mold, -5, 59, -3.7222F, 0.4444F, -2.5F, 7, 0, 5, 0.0F)); + Mold.cubeList.add(new ModelBox(Mold, 14, 62, -3.7222F, -0.5556F, -2.5F, 7, 1, 1, 0.0F)); + Mold.cubeList.add(new ModelBox(Mold, 14, 62, -3.7222F, -0.5556F, 1.5F, 7, 1, 1, 0.0F)); - Foot4 = new ModelRenderer(this, 0, 0); - Foot4.addBox(0F, 0F, 0F, 14, 2, 10); - Foot4.setRotationPoint(-7F, 22F, -5F); + cube_r3 = new ModelRenderer(this); + cube_r3.setRotationPoint(0.7778F, -0.0556F, -1.0F); + Mold.addChild(cube_r3); + setRotationAngle(cube_r3, 0.0F, 0.0F, 0.0F); + cube_r3.cubeList.add(new ModelBox(cube_r3, 31, 62, 0.5F, -0.5F, -0.5F, 1, 1, 1, 0.0F)); + + cube_r4 = new ModelRenderer(this); + cube_r4.setRotationPoint(-1.2222F, -0.0556F, -1.0F); + Mold.addChild(cube_r4); + setRotationAngle(cube_r4, 0.0F, 0.0F, 0.0F); + cube_r4.cubeList.add(new ModelBox(cube_r4, 25, 60, -1.5F, -0.5F, -0.5F, 3, 1, 1, 0.0F)); + + cube_r5 = new ModelRenderer(this); + cube_r5.setRotationPoint(0.7778F, -0.0556F, 1.0F); + Mold.addChild(cube_r5); + setRotationAngle(cube_r5, 0.0F, 0.0F, 0.0F); + cube_r5.cubeList.add(new ModelBox(cube_r5, 31, 62, 0.5F, -0.5F, -0.5F, 1, 1, 1, 0.0F)); + + cube_r6 = new ModelRenderer(this); + cube_r6.setRotationPoint(-1.2222F, -0.0556F, 1.0F); + Mold.addChild(cube_r6); + setRotationAngle(cube_r6, 0.0F, 0.0F, 0.0F); + cube_r6.cubeList.add(new ModelBox(cube_r6, 25, 60, -1.5F, -0.5F, -0.5F, 3, 1, 1, 0.0F)); + + cube_r7 = new ModelRenderer(this); + cube_r7.setRotationPoint(2.7778F, -0.0556F, 0.0F); + Mold.addChild(cube_r7); + setRotationAngle(cube_r7, 0.0F, -1.5708F, 0.0F); + cube_r7.cubeList.add(new ModelBox(cube_r7, 15, 60, -1.5F, -0.5F, -0.5F, 3, 1, 1, 0.0F)); + + cube_r8 = new ModelRenderer(this); + cube_r8.setRotationPoint(-3.2222F, -0.0556F, 0.0F); + Mold.addChild(cube_r8); + setRotationAngle(cube_r8, 0.0F, -1.5708F, 0.0F); + cube_r8.cubeList.add(new ModelBox(cube_r8, 15, 60, -1.5F, -0.5F, -0.5F, 3, 1, 1, 0.0F)); } + @Override public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5,entity); - Tail.render(f5); - Nose1.render(f5); - Nose2.render(f5); - Nose3.render(f5); - Nose4.render(f5); - Head1.render(f5); - Head2.render(f5); - Neck2.render(f5); - Bottom2.render(f5); - Bottom3.render(f5); - Foot4.render(f5); + Anvil.render(f5); + Desk.render(f5); + Bucket.render(f5); + Hammer.render(f5); + Mold.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/legacy/ModelLegacyAnvil.java b/src/main/java/noppes/npcs/client/model/blocks/legacy/ModelLegacyAnvil.java new file mode 100644 index 000000000..6eb1360b7 --- /dev/null +++ b/src/main/java/noppes/npcs/client/model/blocks/legacy/ModelLegacyAnvil.java @@ -0,0 +1,90 @@ +// Date: 11-10-2012 19:29:20 +// Template version 1.1 +// Java generated by Techne +// Keep in mind that you still need to fill in some blanks +// - ZeuX + +package noppes.npcs.client.model.blocks.legacy; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +public class ModelLegacyAnvil extends ModelBase { + ModelRenderer Tail; + ModelRenderer Nose1; + ModelRenderer Nose2; + ModelRenderer Nose3; + ModelRenderer Nose4; + ModelRenderer Head1; + ModelRenderer Head2; + ModelRenderer Neck2; + ModelRenderer Bottom2; + ModelRenderer Bottom3; + ModelRenderer Foot4; + + public ModelLegacyAnvil() { + textureWidth = 64; + textureHeight = 32; + + Tail = new ModelRenderer(this, 0, 0); + Tail.addBox(0F, 0F, 0F, 1, 2, 4); + Tail.setRotationPoint(-7F, 12F, -2F); + + Nose1 = new ModelRenderer(this, 0, 0); + Nose1.addBox(0F, 0F, 0F, 1, 5, 6); + Nose1.setRotationPoint(6F, 10F, -3F); + + Nose2 = new ModelRenderer(this, 0, 0); + Nose2.addBox(0F, 0F, 0F, 1, 4, 5); + Nose2.setRotationPoint(7F, 10F, -2.5F); + + Nose3 = new ModelRenderer(this, 0, 0); + Nose3.addBox(0F, 0F, 0F, 1, 3, 4); + Nose3.setRotationPoint(8F, 10F, -2F); + + Nose4 = new ModelRenderer(this, 0, 0); + Nose4.addBox(0F, 0F, 0F, 1, 2, 2); + Nose4.setRotationPoint(9F, 10F, -1F); + + Head1 = new ModelRenderer(this, 0, 0); + Head1.addBox(0F, 0F, 0F, 12, 4, 7); + Head1.setRotationPoint(-6F, 12F, -3.5F); + + Head2 = new ModelRenderer(this, 0, 0); + Head2.addBox(0F, 0F, 0F, 14, 2, 9); + Head2.setRotationPoint(-8F, 10F, -4.5F); + + Neck2 = new ModelRenderer(this, 0, 0); + Neck2.addBox(0F, 0F, 0F, 10, 1, 6); + Neck2.setRotationPoint(-5F, 16F, -3F); + + Bottom2 = new ModelRenderer(this, 0, 0); + Bottom2.addBox(0F, 0F, 0F, 10, 2, 7); + Bottom2.setRotationPoint(-5F, 20F, -3.5F); + + Bottom3 = new ModelRenderer(this, 0, 0); + Bottom3.addBox(0F, 0F, 0F, 8, 3, 4); + Bottom3.setRotationPoint(-4F, 17F, -2F); + + Foot4 = new ModelRenderer(this, 0, 0); + Foot4.addBox(0F, 0F, 0F, 14, 2, 10); + Foot4.setRotationPoint(-7F, 22F, -5F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5,entity); + Tail.render(f5); + Nose1.render(f5); + Nose2.render(f5); + Nose3.render(f5); + Nose4.render(f5); + Head1.render(f5); + Head2.render(f5); + Neck2.render(f5); + Bottom2.render(f5); + Bottom3.render(f5); + Foot4.render(f5); + } +} diff --git a/src/main/java/noppes/npcs/client/renderer/blocks/BlockBannerRenderer.java b/src/main/java/noppes/npcs/client/renderer/blocks/BlockBannerRenderer.java index d7e19393e..ed8d6aeb8 100644 --- a/src/main/java/noppes/npcs/client/renderer/blocks/BlockBannerRenderer.java +++ b/src/main/java/noppes/npcs/client/renderer/blocks/BlockBannerRenderer.java @@ -55,6 +55,7 @@ public class BlockBannerRenderer extends BlockRendererInterface{ public void renderTileEntityAt(TileEntity var1, double var2, double var4, double var6, float var8) { TileBanner tile = (TileBanner) var1; + GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); GL11.glDisable(GL12.GL_RESCALE_NORMAL); GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glPushMatrix(); @@ -103,6 +104,7 @@ public class BlockBannerRenderer extends BlockRendererInterface{ doRender(var2, var4, var6, tile.rotation, tile.icon, angle_x); } } + GL11.glPopAttrib(); } public void doRender(double par2, double par4, double par6, int meta, ItemStack iicon, float rotate) { diff --git a/src/main/java/noppes/npcs/client/renderer/blocks/BlockCampfireRenderer.java b/src/main/java/noppes/npcs/client/renderer/blocks/BlockCampfireRenderer.java index a1b2328fd..4d2c8bc22 100644 --- a/src/main/java/noppes/npcs/client/renderer/blocks/BlockCampfireRenderer.java +++ b/src/main/java/noppes/npcs/client/renderer/blocks/BlockCampfireRenderer.java @@ -64,12 +64,14 @@ public class BlockCampfireRenderer extends BlockRendererInterface { Minecraft.getMinecraft().getTextureManager().bindTexture(Cobble); stonesModel.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); if(block == CustomItems.campfire){ + GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); GL11.glDisable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_ALPHA_TEST); Minecraft.getMinecraft().getTextureManager().bindTexture(Flame); flameModel.render(null, tile.getWorldObj().getWorldTime(), 0, 0, 0, 0.0F, 0.0625F); GL11.glDisable(GL11.GL_ALPHA_TEST); GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); } Minecraft.getMinecraft().getTextureManager().bindTexture(coalsTexture); coalsModel.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); diff --git a/src/main/java/noppes/npcs/client/renderer/blocks/BlockCandleRenderer.java b/src/main/java/noppes/npcs/client/renderer/blocks/BlockCandleRenderer.java index 8d2aa36e2..96fe6112e 100644 --- a/src/main/java/noppes/npcs/client/renderer/blocks/BlockCandleRenderer.java +++ b/src/main/java/noppes/npcs/client/renderer/blocks/BlockCandleRenderer.java @@ -51,7 +51,7 @@ public class BlockCandleRenderer extends TileEntitySpecialRenderer implements IS GL11.glTranslatef((float)var2 + 0.5f, (float)var4 + 1.5f, (float)var6 + 0.5f); //GL11.glScalef(0.95f, 0.95f, 0.95f); GL11.glRotatef(180, 0, 0, 1); - + GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); GL11.glEnable(GL11.GL_ALPHA_TEST); if(ConfigClient.LegacyCandle){ GL11.glRotatef(45 * tile.rotation, 0, 1, 0); @@ -88,6 +88,7 @@ public class BlockCandleRenderer extends TileEntitySpecialRenderer implements IS } } GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/noppes/npcs/client/renderer/blocks/BlockCarpentryBenchRenderer.java b/src/main/java/noppes/npcs/client/renderer/blocks/BlockCarpentryBenchRenderer.java index 9ee1bf066..727eb95bd 100644 --- a/src/main/java/noppes/npcs/client/renderer/blocks/BlockCarpentryBenchRenderer.java +++ b/src/main/java/noppes/npcs/client/renderer/blocks/BlockCarpentryBenchRenderer.java @@ -3,6 +3,7 @@ package noppes.npcs.client.renderer.blocks; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.Block; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -11,6 +12,7 @@ import net.minecraft.world.IBlockAccess; import noppes.npcs.CustomItems; import noppes.npcs.blocks.BlockCarpentryBench; import noppes.npcs.client.model.blocks.ModelAnvil; +import noppes.npcs.client.model.blocks.legacy.ModelLegacyAnvil; import noppes.npcs.client.model.blocks.ModelCarpentryBench; import noppes.npcs.client.model.blocks.legacy.ModelLegacyCarpentryBench; import noppes.npcs.config.ConfigClient; @@ -21,12 +23,14 @@ public class BlockCarpentryBenchRenderer extends TileEntitySpecialRenderer imple private final ModelCarpentryBench modelCarpentryBench = new ModelCarpentryBench(); private static final ResourceLocation carpentryBenchTexture = new ResourceLocation("customnpcs","textures/models/CarpentryBench.png"); - private final ModelAnvil anvil = new ModelAnvil(); + private static final ResourceLocation legacyAnvilTexture = new ResourceLocation("customnpcs","textures/models/legacy/Steel.png"); + private static final ResourceLocation anvilTexture = new ResourceLocation("customnpcs","textures/models/anvil.png"); - private static final ResourceLocation anvilTexture = new ResourceLocation("customnpcs","textures/models/Steel.png"); private final ModelLegacyCarpentryBench legacyBench = new ModelLegacyCarpentryBench(); private static final ResourceLocation legacyCarpentryBench = new ResourceLocation("customnpcs","textures/models/legacy/bench.png"); + private final ModelLegacyAnvil legacyAnvil = new ModelLegacyAnvil(); + private final ModelAnvil anvil = new ModelAnvil(); public BlockCarpentryBenchRenderer(){ ((BlockCarpentryBench)CustomItems.carpentyBench).renderId = RenderingRegistry.getNextAvailableRenderId(); @@ -42,9 +46,20 @@ public class BlockCarpentryBenchRenderer extends TileEntitySpecialRenderer imple GL11.glScalef(0.95f, 0.95f, 0.95f); GL11.glRotatef(180, 0, 0, 1); GL11.glRotatef(90 * (meta % 4), 0, 1, 0); + GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); if(meta >= 4){ - this.bindTexture(anvilTexture); - anvil.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); + if(ConfigClient.LegacyAnvil){ + this.bindTexture(legacyAnvilTexture); + legacyAnvil.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); + } else { + GL11.glEnable(GL11.GL_ALPHA_TEST); + this.bindTexture(anvilTexture); + // Render the lava part glowing + anvil.Lava.render(0.0625F); + // Now render the rest (the anvil) normally + anvil.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); + GL11.glDisable(GL11.GL_ALPHA_TEST); + } } else { @@ -58,6 +73,7 @@ public class BlockCarpentryBenchRenderer extends TileEntitySpecialRenderer imple } GL11.glDisable(GL11.GL_ALPHA_TEST); } + GL11.glPopAttrib(); GL11.glPopMatrix(); } @@ -81,8 +97,14 @@ public class BlockCarpentryBenchRenderer extends TileEntitySpecialRenderer imple } } else{ - this.bindTexture(anvilTexture); - anvil.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); + if(ConfigClient.LegacyAnvil){ + this.bindTexture(legacyAnvilTexture); + legacyAnvil.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); + } else { + this.bindTexture(anvilTexture); + anvil.Lava.render(0.0625F); + anvil.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); + } } GL11.glPopMatrix(); diff --git a/src/main/java/noppes/npcs/client/renderer/blocks/BlockChairRenderer.java b/src/main/java/noppes/npcs/client/renderer/blocks/BlockChairRenderer.java index b394ba01b..2b699501f 100644 --- a/src/main/java/noppes/npcs/client/renderer/blocks/BlockChairRenderer.java +++ b/src/main/java/noppes/npcs/client/renderer/blocks/BlockChairRenderer.java @@ -39,6 +39,7 @@ public class BlockChairRenderer extends BlockRendererInterface{ public void renderTileEntityAt(TileEntity var1, double var2, double var4, double var6, float var8) { TileColorable tile = (TileColorable) var1; + GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); GL11.glDisable(GL12.GL_RESCALE_NORMAL); GL11.glPushMatrix(); GL11.glTranslatef((float)var2 + 0.5f, (float)var4 + 1.65f, (float)var6 + 0.5f); @@ -60,7 +61,7 @@ public class BlockChairRenderer extends BlockRendererInterface{ } } GL11.glDisable(GL11.GL_ALPHA_TEST); - + GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/noppes/npcs/client/renderer/blocks/BlockCouchWoolRenderer.java b/src/main/java/noppes/npcs/client/renderer/blocks/BlockCouchWoolRenderer.java index d3372f3d5..9176a93ad 100644 --- a/src/main/java/noppes/npcs/client/renderer/blocks/BlockCouchWoolRenderer.java +++ b/src/main/java/noppes/npcs/client/renderer/blocks/BlockCouchWoolRenderer.java @@ -55,6 +55,7 @@ public class BlockCouchWoolRenderer extends BlockRendererInterface{ public void renderTileEntityAt(TileEntity var1, double var2, double var4, double var6, float var8) { TileCouchWool tile = (TileCouchWool) var1; + GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); GL11.glDisable(GL12.GL_RESCALE_NORMAL); GL11.glPushMatrix(); GL11.glTranslatef((float)var2 + 0.5f, (float)var4 + 1.5f, (float)var6 + 0.5f); @@ -62,7 +63,6 @@ public class BlockCouchWoolRenderer extends BlockRendererInterface{ GL11.glRotatef(180, 0, 0, 1); GL11.glRotatef(90 * tile.rotation, 0, 1, 0); GL11.glColor3f(1, 1, 1); - GL11.glEnable(GL11.GL_ALPHA_TEST); if(ConfigClient.LegacyCouch){ setWoodTexture(var1.getBlockMetadata()); @@ -134,6 +134,7 @@ public class BlockCouchWoolRenderer extends BlockRendererInterface{ } } GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/noppes/npcs/client/renderer/blocks/BlockLanternRenderer.java b/src/main/java/noppes/npcs/client/renderer/blocks/BlockLanternRenderer.java index 1a46aec55..77e432d68 100644 --- a/src/main/java/noppes/npcs/client/renderer/blocks/BlockLanternRenderer.java +++ b/src/main/java/noppes/npcs/client/renderer/blocks/BlockLanternRenderer.java @@ -49,6 +49,7 @@ public class BlockLanternRenderer extends TileEntitySpecialRenderer implements I GL11.glTranslatef((float)var2 + 0.5f, (float)var4 + 1.5f, (float)var6 + 0.5f); GL11.glRotatef(180, 0, 0, 1); GL11.glColor3f(1, 1, 1); + GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); GL11.glEnable(GL11.GL_ALPHA_TEST); if(ConfigClient.LegacyLantern){ @@ -80,7 +81,7 @@ public class BlockLanternRenderer extends TileEntitySpecialRenderer implements I } } GL11.glDisable(GL11.GL_ALPHA_TEST); - + GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/noppes/npcs/client/renderer/blocks/BlockStoolRenderer.java b/src/main/java/noppes/npcs/client/renderer/blocks/BlockStoolRenderer.java index 3775a35d3..76ed0b034 100644 --- a/src/main/java/noppes/npcs/client/renderer/blocks/BlockStoolRenderer.java +++ b/src/main/java/noppes/npcs/client/renderer/blocks/BlockStoolRenderer.java @@ -43,7 +43,7 @@ public class BlockStoolRenderer extends BlockRendererInterface{ GL11.glRotatef(180, 0, 0, 1); GL11.glColor3f(1, 1, 1); - + GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); GL11.glEnable(GL11.GL_ALPHA_TEST); if(ConfigClient.LegacyStool){ setWoodTexture(var1.getBlockMetadata()); @@ -59,6 +59,7 @@ public class BlockStoolRenderer extends BlockRendererInterface{ stool.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); } GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/noppes/npcs/client/renderer/blocks/BlockTableRenderer.java b/src/main/java/noppes/npcs/client/renderer/blocks/BlockTableRenderer.java index 1d958196f..5274a3c09 100644 --- a/src/main/java/noppes/npcs/client/renderer/blocks/BlockTableRenderer.java +++ b/src/main/java/noppes/npcs/client/renderer/blocks/BlockTableRenderer.java @@ -50,20 +50,22 @@ public class BlockTableRenderer extends BlockRendererInterface{ legacyTable.Shape4.showModel = table.Shape4.showModel = !north && !east; legacyTable.Shape5.showModel = table.Shape5.showModel = !south && !west; + GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); + GL11.glEnable(GL11.GL_ALPHA_TEST); if(ConfigClient.LegacyTable){ setWoodTexture(var1.getBlockMetadata()); legacyTable.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); GL11.glRotatef(90 * tile.rotation, 0, 1, 0); legacyTable.Table.render(0.0625f); } else { - GL11.glEnable(GL11.GL_ALPHA_TEST); + setTableTexture(var1.getBlockMetadata()); table.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); GL11.glRotatef(90 * tile.rotation, 0, 1, 0); table.Table.render(0.0625f); - GL11.glDisable(GL11.GL_ALPHA_TEST); - } + } + GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/noppes/npcs/client/renderer/blocks/BlockTallLampRenderer.java b/src/main/java/noppes/npcs/client/renderer/blocks/BlockTallLampRenderer.java index a0bc00673..24a20cc90 100644 --- a/src/main/java/noppes/npcs/client/renderer/blocks/BlockTallLampRenderer.java +++ b/src/main/java/noppes/npcs/client/renderer/blocks/BlockTallLampRenderer.java @@ -16,10 +16,10 @@ import org.lwjgl.opengl.GL12; public class BlockTallLampRenderer extends BlockRendererInterface{ private final ModelTallLamp model = new ModelTallLamp(); - + private final ModelTallLampTop top = new ModelTallLampTop(); public static final ResourceLocation resourceTop = new ResourceLocation("customnpcs","textures/cache/wool_colored_white.png"); - + public BlockTallLampRenderer(){ ((BlockTallLamp)CustomItems.tallLamp).renderId = RenderingRegistry.getNextAvailableRenderId(); RenderingRegistry.registerBlockHandler(this); @@ -29,6 +29,7 @@ public class BlockTallLampRenderer extends BlockRendererInterface{ public void renderTileEntityAt(TileEntity var1, double var2, double var4, double var6, float var8) { TileTallLamp tile = (TileTallLamp) var1; + GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); GL11.glDisable(GL12.GL_RESCALE_NORMAL); GL11.glPushMatrix(); GL11.glTranslatef((float)var2 + 0.5f, (float)var4 + 1.5f, (float)var6 + 0.5f); @@ -36,7 +37,7 @@ public class BlockTallLampRenderer extends BlockRendererInterface{ GL11.glRotatef(180, 0, 0, 1); GL11.glRotatef(90 * tile.rotation, 0, 1, 0); GL11.glColor3f(1, 1, 1); - + setMaterialTexture(var1.getBlockMetadata()); model.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); @@ -44,7 +45,7 @@ public class BlockTallLampRenderer extends BlockRendererInterface{ float[] color = BlockBannerRenderer.colorTable[tile.color]; GL11.glColor3f(color[0], color[1], color[2]); top.render(null, 0, 0, 0, 0, 0.0F, 0.0625F); - + GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/noppes/npcs/client/renderer/blocks/BlockWallBannerRenderer.java b/src/main/java/noppes/npcs/client/renderer/blocks/BlockWallBannerRenderer.java index d9167073b..773cb0b24 100644 --- a/src/main/java/noppes/npcs/client/renderer/blocks/BlockWallBannerRenderer.java +++ b/src/main/java/noppes/npcs/client/renderer/blocks/BlockWallBannerRenderer.java @@ -41,6 +41,7 @@ public class BlockWallBannerRenderer extends BlockRendererInterface{ public void renderTileEntityAt(TileEntity var1, double var2, double var4, double var6, float var8) { TileWallBanner tile = (TileWallBanner) var1; + GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); GL11.glDisable(GL12.GL_RESCALE_NORMAL); GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glPushMatrix(); @@ -89,6 +90,7 @@ public class BlockWallBannerRenderer extends BlockRendererInterface{ doRender(var2, var4, var6, tile.rotation, tile.icon, angle_x); } } + GL11.glPopAttrib(); } public void doRender(double par2, double par4, double par6, int meta, ItemStack iicon, float rotate) { diff --git a/src/main/java/noppes/npcs/config/ConfigClient.java b/src/main/java/noppes/npcs/config/ConfigClient.java index cc82fb7a9..bc320a60f 100644 --- a/src/main/java/noppes/npcs/config/ConfigClient.java +++ b/src/main/java/noppes/npcs/config/ConfigClient.java @@ -90,6 +90,7 @@ public class ConfigClient public static boolean LegacyTable = false; public static boolean LegacyBarrel = false; public static boolean LegacyCarpentryBench = false; + public static boolean LegacyAnvil = false; public static boolean LegacyLantern = false; public static boolean LegacyCandle = false; @@ -158,6 +159,7 @@ public class ConfigClient LegacyStool = config.get(MODEL, "Legacy Stool Model", false).getBoolean(false); LegacyCouch = config.get(MODEL, "Legacy Couch Model", false).getBoolean(false); LegacyTable = config.get(MODEL, "Legacy Table Model", false).getBoolean(false); + LegacyAnvil = config.get(MODEL, "Legacy Anvil Model", false).getBoolean(false); LegacyCarpentryBench = config.get(MODEL, "Legacy Carpentry Bench Model", false).getBoolean(false); LegacyLantern = config.get(MODEL, "Legacy Lantern Model", false).getBoolean(false); LegacyCandle = config.get(MODEL, "Legacy Candle Model", false).getBoolean(false); diff --git a/src/main/resources/assets/customnpcs/textures/models/anvil.png b/src/main/resources/assets/customnpcs/textures/models/anvil.png new file mode 100644 index 0000000000000000000000000000000000000000..a141b9eea719b4d45523c4345754b23751410989 GIT binary patch literal 2393 zcmV-f38wamP)Px;6G=otRCt`tTg`79*Af4b+BNqrNrj}O!jg!zFw!I~(#QqcNG&SV;U$QTA_w1- zQxNn&2+(tY`~d}mqPHAd7-$dmQ7Pby-4=!IBCQjoK~jC#u_=-P$^9@XZ4cC}W`}Rd zU4F>=UG#R|@a@dJdGlu8K4p*)TU%QJ0GOs3q4VcnuNR?PmIcrABK$;?yt*;?^X=QW zGf8D7lq*YtQhB&;7XU!*X5%m%%SbwyX_}#+mSsiyJkLX^R0`Xk=fSe9kdKVOY4W+% zY7O;!o(I!3hm4XGO65@~JQqGwyNSb)me>GNXi`%C1)F95%)$HQv;3{}pfsSFr@yj| zv>u=X39M6s^FS!Wd8EfAeYXzM?Z@$ClMYO7s8f;)ANO}upIk1oKg|-*xxG^PSbAau zP*CF-HOtb))9`XwmX*o_xRRU}M^9`34ld-VHLB}N%0JE8SIQ1&T`7AcePRQ|DVIj@ zS&cIdQtbkAhUD6%{hbFzoieoL@wKhnHYYIzpYc&Nq9-nsxp%326{M9v>_2eR4T*`lxqOAIYec4cG0$b-P1BP|^*V#v)-f zmaeT^!{f$~igQolhKS1(My1J05_8Hc!h zjl%;d`_#)QCdAPV`4SHKVs33IfN7ecV5A7e1UXBiJcW-dU3-)a-2Ej+?gF~Z3jloI zkGLO2VyQTUE7Hy&h2%|B&+;f5(NovhwOTEpEm3ZBaaCd( z{+l;%rk06gZTa-|9YXg2l$0G)0h08q#qxOewX z#K04!!VqpZ?%-n*{z*Z~Q=60rGXzI!1L)Qy?~_qKE&o|#A_GwJL5lIjMJW|gBrX56 zAh)M>A%D8cd7Cg*41kE@rfG)JeH#8W*tonI@HGwqySraSo=5SgHh?@Br5V;GIdrI* zhCeN2P>aL6@4X-V?an8&34(lY*X94y@}DIp-UVclqk~S-r2J=v)CSO{rvzPAmzMvm zF;NgC$bFngcRB}{hJPBo``-IQ8R2W2uj94N*CX_a3_yX5uWg>k(}9M?K7%FYpB47@ z9wy?;Y;A1?+)Z@{3{r7^lts{e-y^4#uL5zlTi@KGX{rQFvu#h=1%hs0&)W52EZH$2V)#|MW)S{CgMe`wwB1bI2M7?3Y%tP${B& z=LOFp5AGM=p#QB8|Dcg95lULl z&a>=|Lv!a}$QVH2AHyiwIQ-ulN3r7!ezkQ651fB z`vlHY)^Yu33EiP6L8(Gm{3unxo7dinOzy${1APq8m7+3_AJu=>AjSEI58dp$ZU@!s zDyr4h({ea&&?H5SuK!s;=K;L#r?w1?O#qqg?d^bXSu%suU4lx(e;#7OM{m~x0N6Vm z1n}z8;Hu59KiWt1jx4|D$8U$|>Ux}9dr8B8-l27mjpcHxTNbm%y?XP^ z0;hHxT(T}io~?z2As+AONZUvBS^j>W&>DaXMFL5|bUczii{H;1S_7)`n4 zbf>cO%UD`kg|V?*4%YK3?AY(RGZAc>F?B&WE-;qM7bBHkcEN({3?`6_K*j+O8p!iH zaGdtQ1LXR=yfpYa6X&WN+--^P?qO@}m`TSao_qCXEU)Jc3{b9Aaj^e+--`@)-g69MTImwwT zwd(;NV4M