From 5241ff661bd932ed062179c713e12e959a9a757e Mon Sep 17 00:00:00 2001 From: George Paton Date: Mon, 3 Jun 2024 19:26:38 +1000 Subject: [PATCH 1/3] Automatic fence posts --- .../hbm/blocks/generic/BlockMetalFence.java | 136 +++++++++--------- .../com/hbm/render/block/RenderFence.java | 85 +++++------ .../hbm/textures/blocks/fence_metal.png | Bin 596 -> 4488 bytes .../hbm/textures/blocks/fence_metal_post.png | Bin 0 -> 596 bytes 4 files changed, 104 insertions(+), 117 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/fence_metal_post.png diff --git a/src/main/java/com/hbm/blocks/generic/BlockMetalFence.java b/src/main/java/com/hbm/blocks/generic/BlockMetalFence.java index 753832e36..1cdfaa2a7 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockMetalFence.java +++ b/src/main/java/com/hbm/blocks/generic/BlockMetalFence.java @@ -10,104 +10,98 @@ import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; import net.minecraft.world.World; public class BlockMetalFence extends BlockFence { - - public BlockMetalFence(Material p_i45406_2_) { - super("", p_i45406_2_); + + public IIcon postIcon; + + public BlockMetalFence(Material mat) { + super("", mat); } - - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); @Override - public int getRenderType(){ + public int getRenderType() { return renderID; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister p_149651_1_) - { - this.blockIcon = p_149651_1_.registerIcon(this.getTextureName()); - } - - public void addCollisionBoxesToList(World p_149743_1_, int p_149743_2_, int p_149743_3_, int p_149743_4_, AxisAlignedBB p_149743_5_, List p_149743_6_, Entity p_149743_7_) - { - boolean flag = this.canConnectFenceTo(p_149743_1_, p_149743_2_, p_149743_3_, p_149743_4_ - 1); - boolean flag1 = this.canConnectFenceTo(p_149743_1_, p_149743_2_, p_149743_3_, p_149743_4_ + 1); - boolean flag2 = this.canConnectFenceTo(p_149743_1_, p_149743_2_ - 1, p_149743_3_, p_149743_4_); - boolean flag3 = this.canConnectFenceTo(p_149743_1_, p_149743_2_ + 1, p_149743_3_, p_149743_4_); - float f = 0.375F; - float f1 = 0.625F; - float f2 = 0.375F; - float f3 = 0.625F; + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(this.getTextureName()); + this.postIcon = iconRegister.registerIcon(this.getTextureName() + "_post"); + } - if (flag) - { - f2 = 0.0F; - } + @Override + public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB aabb, List list, Entity entity) { + boolean flag = this.canConnectFenceTo(world, x, y, z - 1); + boolean flag1 = this.canConnectFenceTo(world, x, y, z + 1); + boolean flag2 = this.canConnectFenceTo(world, x - 1, y, z); + boolean flag3 = this.canConnectFenceTo(world, x + 1, y, z); + float f = 0.375F; + float f1 = 0.625F; + float f2 = 0.375F; + float f3 = 0.625F; - if (flag1) - { - f3 = 1.0F; - } + if(flag) { + f2 = 0.0F; + } - if (flag || flag1) - { - this.setBlockBounds(f, 0.0F, f2, f1, 1.0F, f3); - addCol(p_149743_1_, p_149743_2_, p_149743_3_, p_149743_4_, p_149743_5_, p_149743_6_, p_149743_7_); - } + if(flag1) { + f3 = 1.0F; + } - f2 = 0.375F; - f3 = 0.625F; + if(flag || flag1) { + this.setBlockBounds(f, 0.0F, f2, f1, 1.0F, f3); + addCol(world, x, y, z, aabb, list, entity); + } - if (flag2) - { - f = 0.0F; - } + f2 = 0.375F; + f3 = 0.625F; - if (flag3) - { - f1 = 1.0F; - } + if(flag2) { + f = 0.0F; + } - if (flag2 || flag3 || !flag && !flag1) - { - this.setBlockBounds(f, 0.0F, f2, f1, 1.0F, f3); - addCol(p_149743_1_, p_149743_2_, p_149743_3_, p_149743_4_, p_149743_5_, p_149743_6_, p_149743_7_); - } + if(flag3) { + f1 = 1.0F; + } - if (flag) - { - f2 = 0.0F; - } + if(flag2 || flag3 || !flag && !flag1) { + this.setBlockBounds(f, 0.0F, f2, f1, 1.0F, f3); + addCol(world, x, y, z, aabb, list, entity); + } - if (flag1) - { - f3 = 1.0F; - } + if(flag) { + f2 = 0.0F; + } - this.setBlockBounds(f, 0.0F, f2, f1, 1.0F, f3); - } - - public void addCol(World p_149743_1_, int p_149743_2_, int p_149743_3_, int p_149743_4_, AxisAlignedBB p_149743_5_, List p_149743_6_, Entity p_149743_7_) - { - AxisAlignedBB axisalignedbb1 = this.getCollisionBoundingBoxFromPool(p_149743_1_, p_149743_2_, p_149743_3_, p_149743_4_); + if(flag1) { + f3 = 1.0F; + } - if (axisalignedbb1 != null && p_149743_5_.intersectsWith(axisalignedbb1)) - { - p_149743_6_.add(axisalignedbb1); - } - } + this.setBlockBounds(f, 0.0F, f2, f1, 1.0F, f3); + } + + private void addCol(World world, int x, int y, int z, AxisAlignedBB aabb, List list, Entity entity) { + AxisAlignedBB axisalignedbb1 = this.getCollisionBoundingBoxFromPool(world, x, y, z); + + if(axisalignedbb1 != null && aabb.intersectsWith(axisalignedbb1)) { + list.add(axisalignedbb1); + } + } } diff --git a/src/main/java/com/hbm/render/block/RenderFence.java b/src/main/java/com/hbm/render/block/RenderFence.java index f86d128cc..5b58fbd89 100644 --- a/src/main/java/com/hbm/render/block/RenderFence.java +++ b/src/main/java/com/hbm/render/block/RenderFence.java @@ -5,7 +5,6 @@ import com.hbm.blocks.generic.BlockMetalFence; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.world.IBlockAccess; @@ -19,58 +18,52 @@ public class RenderFence implements ISimpleBlockRenderingHandler { @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - BlockFence fence = (BlockFence) ModBlocks.fence_metal; + BlockMetalFence fence = (BlockMetalFence) ModBlocks.fence_metal; + + boolean xNeg = fence.canConnectFenceTo(world, x - 1, y, z); + boolean xPos = fence.canConnectFenceTo(world, x + 1, y, z); + boolean zNeg = fence.canConnectFenceTo(world, x, y, z - 1); + boolean zPos = fence.canConnectFenceTo(world, x, y, z + 1); + + boolean flag1 = xNeg || xPos; + boolean flag2 = zNeg || zPos; - float f = 0.375F; - float f1 = 0.625F; - renderer.setRenderBounds((double)f, 0.0D, (double)f, (double)f1, 1.0D, (double)f1); - renderer.renderStandardBlock(fence, x, y, z); - boolean flag1 = false; - boolean flag2 = false; + boolean hidePost = (xNeg && xPos) || (zNeg && zPos); - if (fence.canConnectFenceTo(world, x - 1, y, z) || fence.canConnectFenceTo(world, x + 1, y, z)) - { - flag1 = true; - } + if (!flag1 && !flag2) { + flag1 = true; + } - if (fence.canConnectFenceTo(world, x, y, z - 1) || fence.canConnectFenceTo(world, x, y, z + 1)) - { - flag2 = true; - } + float f = 0.4375F; + float f1 = 0.5625F; + float f4 = xNeg ? 0.0F : f; + float f5 = xPos ? 1.0F : f1; + float f6 = zNeg ? 0.0F : f; + float f7 = zPos ? 1.0F : f1; + renderer.field_152631_f = true; - boolean flag3 = fence.canConnectFenceTo(world, x - 1, y, z); - boolean flag4 = fence.canConnectFenceTo(world, x + 1, y, z); - boolean flag5 = fence.canConnectFenceTo(world, x, y, z - 1); - boolean flag6 = fence.canConnectFenceTo(world, x, y, z + 1); + if (flag1) { + renderer.setRenderBounds((double)f4, (double)0, (double)0.5, (double)f5, (double)1, (double)0.5); + renderer.renderStandardBlock(fence, x, y, z); + } - if (!flag1 && !flag2) - { - flag1 = true; - } + if (flag2) { + renderer.setRenderBounds((double)0.5, (double)0, (double)f6, (double)0.5, (double)1, (double)f7); + renderer.renderStandardBlock(fence, x, y, z); + } - f = 0.4375F; - f1 = 0.5625F; - float f4 = flag3 ? 0.0F : f; - float f5 = flag4 ? 1.0F : f1; - float f6 = flag5 ? 0.0F : f; - float f7 = flag6 ? 1.0F : f1; - renderer.field_152631_f = true; + if(!hidePost) { + f = 0.375F; + f1 = 0.625F; + renderer.setOverrideBlockTexture(fence.postIcon); + renderer.setRenderBounds((double)f, 0.0D, (double)f, (double)f1, 1.0D, (double)f1); + renderer.renderStandardBlock(fence, x, y, z); + renderer.clearOverrideBlockTexture(); + } - if (flag1) - { - renderer.setRenderBounds((double)f4, (double)0, (double)0.5, (double)f5, (double)1, (double)0.5); - renderer.renderStandardBlock(fence, x, y, z); - } - - if (flag2) - { - renderer.setRenderBounds((double)0.5, (double)0, (double)f6, (double)0.5, (double)1, (double)f7); - renderer.renderStandardBlock(fence, x, y, z); - } - - renderer.field_152631_f = false; - fence.setBlockBoundsBasedOnState(world, x, y, z); - return true; + renderer.field_152631_f = false; + fence.setBlockBoundsBasedOnState(world, x, y, z); + return true; } @Override diff --git a/src/main/resources/assets/hbm/textures/blocks/fence_metal.png b/src/main/resources/assets/hbm/textures/blocks/fence_metal.png index 12d6faaea426ba17de801a84cd9448c04c0c3db8..40f5411bba5643958554457edfe7235a85e26cf7 100644 GIT binary patch literal 4488 zcmeHKdsGwY6(3XxvcQ6ix~r^?(NYnTOu~@Il&C{=R#E_ulW!SCpKT5a2h>4}zcoU82SSojUmHyI(iOuwD{bbndkOis0rMWyDakFo&8Dm)2}Vd@PBX0hE)*cwS|t4Pu9i9zl;S$u&;2J zI}n!9(;7_T-o zXQT+O*!5fn$^?U^}YDqXJ1_IQ$73W{j*SMVkl9E2Uovw*^-GpDEu0USnSuO z>N*)abyq#-AnB6zCk9XYbJ$n-?^;OXWp@(gUe?(Yf7HB&*-0Zrc}6RNmT%1zi_~B z^6qxQi_Ld#l{6pLDZ)bpby=2PVuJ6ZaTn{X8)mxmx+iol7@wBu&ay(Em415Noq5mq z+dDquDtE~jf|dV-HZQFs6L;Jz4-ffeeeYX^DKp+Y>0OX^>vm?ZvJg7ncC{sdWqp73 z+qv&uY`@iT>2|-m^}7y1L!AB356No*py={wP+aNyB^be2#W=|rDY47Sf~td{m<28t zC)QCMY^2PzO)c#B{7*udCe^~UXg#85?9VUG&8PAyE=C&TfKoq|y@Dn>+F7o8^)&i8|3?4$`ZXxey8V4*j5oBNg=FYA)@3ag$R{P0SbXq zB3z*)5ha3}P$}twA_?pr#%{$yI%z9zrX;M*?3v&R$6}LpYN1Sw3`>$NIA;O|pa*Ch z$v7RuQ>nC-O5t#xPpLwxKoJyGB64N4JZgmf3d-&PwaBAN5pfjiG3OJ5fp7q|IA5s% zz#|9IVDWYe=NNk`!&uZp-YJ;39GcdHh9Yqe*WerlKoJ>=A#x0fN|h=xREZ%-gcJey zVSR?AP5J*zn{OXDW+3T_v;(Z4?-333R0@?dFd7(IXiqc2u%|6BoEQkff#*>J90RO@ zDIy!UnJKV;3>NH5IsF60fSaOm6Rx5}MwJrOlN2P+D3eJ=gh{EOjG!!JB;|=}2;IS$ zI45qWV$Fa@z!fM^4_ENq!BmBh)^}!8d>#O0B1A44L77l87_5ZfFwNjq3y_B zZ;8m@r=6fxXhRgj{)hXPCwOng7VQ)ceYf7Mfm(5;mXacnI`s9tx#$A6${I{HG zpY`*$?ti26Lj$+?e4ILOVtqC`Y2$r+IP`tND(IW;{HinUIaBg#S1x(n<%)c=w&q+V zbK7=e+|D^g5cl~iuNxM5?T$|pU8h!u)!wpA&#Jy2Hy+u0@q+)>#xkh#`Z}*{`QF;9 z6%`pbNSX9(Y*0w1AfUdtPyY75{wRTdvq%d)?JcZ2fB*RN6BP%yWwt*2{T0Zy|EHzf z>aq$C%$51&uyi-g;KK zqdl&>wr6#<+17IDS>O7qiwl_(dv(`#W?k#(7fiM^8Yu4@Bh&P`FMnrKV;@ThJ%9SqscP^x77V@Ts&fQ(^;k@TP=UxEv z`MdxwE-nP%d7h4ji2}E-$ahuA+XC=?UjY02`vRCwr{eDJPJeu>`}=zVOa^^*oSMRB zBP9ShJw46f0a#mG6F?Y-0!WfXN5e$DR#S1?*Ur{Y0Tc=a0qpJV2_TB1CE4ZWWrq1^ zn5gSHihNhq?Yz#;&NB1iaJcL}&-;=+nFwGun`zXK6t{hKJx9NPZ3>`XuM1#29t+_3 z_*gtVJY<-w)qko0{`5jcep4N%rlS2L#av%suX->T3^E=BL7>0WvEsI;j#HOYDGFdT z8VR6WE(^f6m*&#z^;SIS@3z$STs6u?9UL5F=1GzWAP4aH_^7wHH_IsKcDwrc_y9m! zuvjd3etxz#HZ}w>pU?I3@?x#8uZtiEGR*V&T;Ed&n}1Gb58^n^;B)Wq?^e6rmKi=h zJy|B-&(BYCIV%O*wyoFKSId02QmHJ-%o>{-#$5$&UA>m4dZ{22v8mhJ+hu=vcqo8U zsU(0-r=xh+U%3U7ze%lDtBI?ts|@q``MJInMC$Lh6gC^G6}MB&$;rv;9vCAX$4OtB z4EpM|nluWV4ee}wU8_;*x^C)ON^)~^^WR%ADH!>tX0w?9{s9kZ6GU%*->Coq002ov JPDHLkV1je|7%>0< diff --git a/src/main/resources/assets/hbm/textures/blocks/fence_metal_post.png b/src/main/resources/assets/hbm/textures/blocks/fence_metal_post.png new file mode 100644 index 0000000000000000000000000000000000000000..12d6faaea426ba17de801a84cd9448c04c0c3db8 GIT binary patch literal 596 zcmV-a0;~OrP)`XuM1#29t+_3_*gtVJY<-w)v5sg^g=~`Qyr(KqWvSq zTwhSS)ycezrC?HUu!A&-L>1Vy&;Qiy#Ox z%=7tN-%|*iPG%3{IL_d6@9*zcyWN%3f**Vk9ee791mEXm9o zn;OPl1#VrvmZy5DAQQ2v+uPe^e|UH(fKsU>fKI2Qc-LRK1(Ux?tyZgvtE;OF^ZEI? zz7$02@3s^+8>$tzQ_RW9$?6^$BOS*{Uz!a1>b05*n+@%3eO;?j>bh>~SxRzqbMxO@ iFew=Mre?F50R90FX%j?me&4A80000 Date: Tue, 4 Jun 2024 11:07:53 +1000 Subject: [PATCH 2/3] Fence blocks can be converted into posts --- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../hbm/blocks/generic/BlockMetalFence.java | 35 ++++++++++++++++++- .../com/hbm/items/block/ItemBlockBase.java | 3 ++ .../java/com/hbm/main/CraftingManager.java | 2 ++ .../com/hbm/render/block/RenderFence.java | 7 ++-- src/main/resources/assets/hbm/lang/en_US.lang | 1 + 6 files changed, 46 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 1e4c5efb4..fbb9d13e4 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2934,7 +2934,7 @@ public class ModBlocks { GameRegistry.registerBlock(hev_battery, hev_battery.getUnlocalizedName()); //Chainlink Fence - GameRegistry.registerBlock(fence_metal, fence_metal.getUnlocalizedName()); + GameRegistry.registerBlock(fence_metal, ItemBlockBase.class, fence_metal.getUnlocalizedName()); //Sands, Glass GameRegistry.registerBlock(ash_digamma, ash_digamma.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockMetalFence.java b/src/main/java/com/hbm/blocks/generic/BlockMetalFence.java index 1cdfaa2a7..ffcea711d 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockMetalFence.java +++ b/src/main/java/com/hbm/blocks/generic/BlockMetalFence.java @@ -2,18 +2,23 @@ package com.hbm.blocks.generic; import java.util.List; +import com.hbm.blocks.IBlockMulti; + import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockFence; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; import net.minecraft.world.World; -public class BlockMetalFence extends BlockFence { +public class BlockMetalFence extends BlockFence implements IBlockMulti { public IIcon postIcon; @@ -38,6 +43,21 @@ public class BlockMetalFence extends BlockFence { return false; } + @Override + public int damageDropped(int meta) { + return rectify(meta); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return meta == 0 ? this.blockIcon : this.postIcon; + } + + public String getUnlocalizedName(ItemStack stack) { + return stack.getItemDamage() == 1 ? getUnlocalizedName() + "_post" : getUnlocalizedName(); + } + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { @@ -104,4 +124,17 @@ public class BlockMetalFence extends BlockFence { } } + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < getSubCount(); ++i) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public int getSubCount() { + return 2; + } + } diff --git a/src/main/java/com/hbm/items/block/ItemBlockBase.java b/src/main/java/com/hbm/items/block/ItemBlockBase.java index e04959cff..d4976b1ab 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockBase.java +++ b/src/main/java/com/hbm/items/block/ItemBlockBase.java @@ -6,6 +6,7 @@ import com.hbm.blocks.BlockMulti; import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.generic.BlockMetalFence; import com.hbm.tileentity.IPersistentNBT; import cpw.mods.fml.relauncher.Side; @@ -42,6 +43,8 @@ public class ItemBlockBase extends ItemBlock { if(field_150939_a instanceof BlockMulti) { return ((BlockMulti)field_150939_a).getUnlocalizedName(stack); + } else if(field_150939_a instanceof BlockMetalFence) { + return ((BlockMetalFence)field_150939_a).getUnlocalizedName(stack); // I considered reworking IBlockMulti instead but there are like a bajillion implementers } else { return super.getUnlocalizedName(stack); } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 7758ffcb8..0095f2e01 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -740,6 +740,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.obj_tester, 1), new Object[] { "P", "I", "S", 'P', ModItems.polaroid, 'I', ModItems.flame_pony, 'S', STEEL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.fence_metal, 6), new Object[] { "BIB", "BIB", 'B', Blocks.iron_bars, 'I', Items.iron_ingot }); + addShapelessAuto(new ItemStack(ModBlocks.fence_metal, 1, 1), new Object[] { new ItemStack(ModBlocks.fence_metal, 1, 0) }); + addShapelessAuto(new ItemStack(ModBlocks.fence_metal, 1, 0), new Object[] { new ItemStack(ModBlocks.fence_metal, 1, 1) }); addShapelessAuto(new ItemStack(ModBlocks.waste_trinitite), new Object[] { new ItemStack(Blocks.sand, 1, 0), ModItems.trinitite }); addShapelessAuto(new ItemStack(ModBlocks.waste_trinitite_red), new Object[] { new ItemStack(Blocks.sand, 1, 1), ModItems.trinitite }); diff --git a/src/main/java/com/hbm/render/block/RenderFence.java b/src/main/java/com/hbm/render/block/RenderFence.java index 5b58fbd89..b03ff14e6 100644 --- a/src/main/java/com/hbm/render/block/RenderFence.java +++ b/src/main/java/com/hbm/render/block/RenderFence.java @@ -19,6 +19,7 @@ public class RenderFence implements ISimpleBlockRenderingHandler { public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { BlockMetalFence fence = (BlockMetalFence) ModBlocks.fence_metal; + int meta = world.getBlockMetadata(x, y, z); boolean xNeg = fence.canConnectFenceTo(world, x - 1, y, z); boolean xPos = fence.canConnectFenceTo(world, x + 1, y, z); @@ -28,7 +29,9 @@ public class RenderFence implements ISimpleBlockRenderingHandler { boolean flag1 = xNeg || xPos; boolean flag2 = zNeg || zPos; - boolean hidePost = (xNeg && xPos) || (zNeg && zPos); + boolean straightX = xNeg && xPos; + boolean straightZ = zNeg && zPos; + boolean showPost = meta == 1 || (!straightX && !straightZ); if (!flag1 && !flag2) { flag1 = true; @@ -52,7 +55,7 @@ public class RenderFence implements ISimpleBlockRenderingHandler { renderer.renderStandardBlock(fence, x, y, z); } - if(!hidePost) { + if(showPost) { f = 0.375F; f1 = 0.625F; renderer.setOverrideBlockTexture(fence.postIcon); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 742f18ca9..f69d23017 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5066,6 +5066,7 @@ tile.fallout.name=Fallout tile.fan.name=Fan tile.fan.desc=Activates using redstone$Will push entities up to 10 blocks$Right-click with screwdriver to flip tile.fence_metal.name=Chainlink Fence +tile.fence_metal_post.name=Chainlink Fence Post tile.field_disturber.name=High Energy Field Jammer tile.filing_cabinet.green.name=Dusty Filing Cabinet tile.filing_cabinet.steel.name=Steel Filing Cabinet From 811a1b92c11555610f8bfbc2c18057c6e95476d6 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 4 Jun 2024 11:23:51 +1000 Subject: [PATCH 3/3] T and X junctions now render posts too --- .../java/com/hbm/render/block/RenderFence.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/hbm/render/block/RenderFence.java b/src/main/java/com/hbm/render/block/RenderFence.java index b03ff14e6..5dd5a9012 100644 --- a/src/main/java/com/hbm/render/block/RenderFence.java +++ b/src/main/java/com/hbm/render/block/RenderFence.java @@ -26,15 +26,15 @@ public class RenderFence implements ISimpleBlockRenderingHandler { boolean zNeg = fence.canConnectFenceTo(world, x, y, z - 1); boolean zPos = fence.canConnectFenceTo(world, x, y, z + 1); - boolean flag1 = xNeg || xPos; - boolean flag2 = zNeg || zPos; + boolean hasX = xNeg || xPos; + boolean hasZ = zNeg || zPos; - boolean straightX = xNeg && xPos; - boolean straightZ = zNeg && zPos; + boolean straightX = !hasZ && xNeg && xPos; + boolean straightZ = !hasX && zNeg && zPos; boolean showPost = meta == 1 || (!straightX && !straightZ); - if (!flag1 && !flag2) { - flag1 = true; + if (!hasX && !hasZ) { + hasX = true; } float f = 0.4375F; @@ -45,12 +45,12 @@ public class RenderFence implements ISimpleBlockRenderingHandler { float f7 = zPos ? 1.0F : f1; renderer.field_152631_f = true; - if (flag1) { + if (hasX) { renderer.setRenderBounds((double)f4, (double)0, (double)0.5, (double)f5, (double)1, (double)0.5); renderer.renderStandardBlock(fence, x, y, z); } - if (flag2) { + if (hasZ) { renderer.setRenderBounds((double)0.5, (double)0, (double)f6, (double)0.5, (double)1, (double)f7); renderer.renderStandardBlock(fence, x, y, z); }