From d10d4ae1484a7c30085a6d782fc708957a798e58 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Sat, 11 Jul 2026 23:18:22 +0200 Subject: [PATCH] dess is gaster and also a toilet theory --- changelog | 10 +- src/main/java/com/hbm/blocks/ModBlocks.java | 6 +- .../java/com/hbm/blocks/generic/BlockOre.java | 10 +- .../blocks/generic/BlockSellafieldSlaked.java | 2 +- .../hbm/blocks/generic/BlockTrinitite.java | 41 ++++++ .../blocks/machine/MachinePWRController.java | 2 +- .../blocks/machine/pile/BlockPileBrick.java | 117 ++++++++++++++++++ .../blocks/pile_block_control_top_ct.png | Bin 0 -> 1592 bytes .../textures/blocks/pile_block_input_ct.png | Bin 0 -> 1568 bytes .../textures/blocks/pile_block_output_ct.png | Bin 0 -> 1535 bytes .../hbm/textures/blocks/pile_brick_side.png | Bin 0 -> 276 bytes .../hbm/textures/blocks/pile_brick_top.png | Bin 0 -> 214 bytes .../hbm/textures/blocks/waste_trinitite.0.png | Bin 0 -> 894 bytes .../hbm/textures/blocks/waste_trinitite.1.png | Bin 0 -> 896 bytes .../hbm/textures/blocks/waste_trinitite.2.png | Bin 0 -> 915 bytes .../hbm/textures/blocks/waste_trinitite.3.png | Bin 0 -> 890 bytes .../textures/blocks/waste_trinitite_red.0.png | Bin 0 -> 797 bytes .../textures/blocks/waste_trinitite_red.1.png | Bin 0 -> 790 bytes .../textures/blocks/waste_trinitite_red.2.png | Bin 0 -> 806 bytes .../textures/blocks/waste_trinitite_red.3.png | Bin 0 -> 784 bytes 20 files changed, 179 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockTrinitite.java create mode 100644 src/main/java/com/hbm/blocks/machine/pile/BlockPileBrick.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/pile_block_control_top_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pile_block_input_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pile_block_output_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pile_brick_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pile_brick_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/waste_trinitite.0.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/waste_trinitite.1.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/waste_trinitite.2.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/waste_trinitite.3.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.0.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.1.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.2.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.3.png diff --git a/changelog b/changelog index a9bebc540..ff72aae47 100644 --- a/changelog +++ b/changelog @@ -1,2 +1,10 @@ +## Changed +* Updated the trinitite ore textures + * The ore spots are now smaller and more shard-like + * Each trinitite ore block now has four randomized texture variants +* Trinitite ores now spawn fewer particles +* The radiation effect caused by walking on trinitite ore is now much shorter but more intense to compensate + ## Fixed -* Fixed burner press GUI offsets being incorrect \ No newline at end of file +* Fixed burner press GUI offsets being incorrect +* Potentially fixed an issue with journey map where slaked sellafite would sometimes get the wrong color in the minimap \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index fad72e397..4f4bb29d8 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1649,8 +1649,8 @@ public class ModBlocks { waste_earth = new WasteEarth(Material.ground, true).setBlockName("waste_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_earth"); waste_mycelium = new WasteEarth(Material.ground, true).setBlockName("waste_mycelium").setStepSound(Block.soundTypeGrass).setLightLevel(1F).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_mycelium_side"); - waste_trinitite = new BlockOre(Material.sand).noFortune().setBlockName("waste_trinitite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite"); - waste_trinitite_red = new BlockOre(Material.sand).noFortune().setBlockName("waste_trinitite_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite_red"); + waste_trinitite = new BlockTrinitite(Material.sand).noFortune().setBlockName("waste_trinitite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite"); + waste_trinitite_red = new BlockTrinitite(Material.sand).noFortune().setBlockName("waste_trinitite_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite_red"); waste_log = new WasteLog(Material.wood).setBlockName("waste_log").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(2.5F); waste_leaves = new WasteLeaves(Material.leaves).setBlockName("waste_leaves").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setBlockTextureName(RefStrings.MODID + ":waste_leaves"); waste_planks = new BlockOre(Material.wood).setBlockName("waste_planks").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_planks"); @@ -1962,7 +1962,7 @@ public class ModBlocks { custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.machineTab).setLightLevel(1F).setHardness(5.0F).setResistance(10.0F); cm_anchor = new BlockCMAnchor().setBlockName("custom_machine_anchor").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F); - pile_brick = new BlockGenericTooltip(Material.iron).setBlockName("pile_brick").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pile_brick"); + pile_brick = new BlockPileBrick().setBlockName("pile_brick").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pile_brick"); pile_block = new BlockPile().setBlockName("pile_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pile_block"); pwr_fuel = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_fuel_top").setBlockName("pwr_fuel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_fuel_side"); diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index 9e613c75b..c621053d3 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -159,7 +159,7 @@ public class BlockOre extends Block { living.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 2)); } if(this == ModBlocks.waste_trinitite || this == ModBlocks.waste_trinitite_red) { - living.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 0)); + living.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 5 * 20, 2)); } if(this == ModBlocks.brick_jungle_ooze) { living.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 15 * 20, 9)); @@ -178,8 +178,12 @@ public class BlockOre extends Block { public void randomDisplayTick(World world, int x, int y, int z, Random rand) { super.randomDisplayTick(world, x, y, z, rand); - if(this == ModBlocks.waste_trinitite || this == ModBlocks.waste_trinitite_red || this == ModBlocks.block_trinitite || this == ModBlocks.block_waste) { - world.spawnParticle("townaura", x + rand.nextFloat(), y + 1.1F, z + rand.nextFloat(), 0.0D, 0.0D, 0.0D); + if(this == ModBlocks.block_trinitite || this == ModBlocks.block_waste) { + world.spawnParticle("townaura", x + rand.nextFloat(), y + 1.0625, z + rand.nextFloat(), 0, 0, 0); + } + + if((this == ModBlocks.waste_trinitite || this == ModBlocks.waste_trinitite_red) && rand.nextInt(5) == 0) { + world.spawnParticle("townaura", x + rand.nextFloat(), y + 1.0625, z + rand.nextFloat(), 0, 0, 0); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java b/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java index be264d979..c382bb0d8 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java @@ -41,7 +41,7 @@ public class BlockSellafieldSlaked extends Block { @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister reg) { icons = new IIcon[4]; - icons[0] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked"); + this.blockIcon = icons[0] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked"); icons[1] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_1"); icons[2] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_2"); icons[3] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_3"); diff --git a/src/main/java/com/hbm/blocks/generic/BlockTrinitite.java b/src/main/java/com/hbm/blocks/generic/BlockTrinitite.java new file mode 100644 index 000000000..437218f38 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockTrinitite.java @@ -0,0 +1,41 @@ +package com.hbm.blocks.generic; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class BlockTrinitite extends BlockOre { + + public IIcon[] icons; + + public BlockTrinitite(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return icons[0]; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + icons = new IIcon[4]; + + for(int i = 0; i < 4; i++) icons[i] = reg.registerIcon(this.getTextureName() + "." + i); + this.blockIcon = icons[0]; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + long l = (long) (x * 3129871) ^ (long)y * 116129781L ^ (long)z; + l = l * l * 42317861L + l * 11L; + int i = (int)(l >> 16 & 3L); + return icons[(int)(Math.abs(i) % icons.length)]; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java index 61b9930dc..10de4e22d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java @@ -187,7 +187,7 @@ public class MachinePWRController extends BlockContainer implements ITooltipProv errored = true; } - private void sendError(World world, int x, int y, int z, String message, EntityPlayer player) { + public static void sendError(World world, int x, int y, int z, String message, EntityPlayer player) { if(player instanceof EntityPlayerMP) { NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockPileBrick.java b/src/main/java/com/hbm/blocks/machine/pile/BlockPileBrick.java new file mode 100644 index 000000000..2faef09a7 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockPileBrick.java @@ -0,0 +1,117 @@ +package com.hbm.blocks.machine.pile; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.MachinePWRController; +import com.hbm.lib.RefStrings; + +import api.hbm.block.IToolable; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockPileBrick extends Block implements IToolable { + + @SideOnly(Side.CLIENT) protected IIcon iconTop; + @SideOnly(Side.CLIENT) protected IIcon iconSide; + + public static int MAX_SIZE = 15; + + public BlockPileBrick() { + super(Material.rock); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + this.iconTop = reg.registerIcon(RefStrings.MODID + ":pile_brick_top"); + this.iconSide = reg.registerIcon(RefStrings.MODID + ":pile_brick_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + if(side == 0 || side == 1) return this.iconTop; + if(side == 4 || side == 5) return this.iconSide; + return this.blockIcon; + } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + + if(tool == tool.HAND_DRILL) { + if(side == 0 || side == 1) return false; + if(world.isRemote) return true; + + ForgeDirection dir = ForgeDirection.getOrientation(side).getOpposite(); + + int negHeight = 0; + int posHeight = 0; + int left = 0; + int right = 0; + int depth = 0; + + for(int i = 1; i <= MAX_SIZE; i++) { if(world.getBlock(x, y + i, z) != this) break; posHeight = i; } + for(int i = 1; i <= MAX_SIZE - posHeight - 1; i++) { if(world.getBlock(x, y - i, z) != this) break; negHeight = i; } + + ForgeDirection dirLeft = dir.getRotation(ForgeDirection.DOWN); + for(int i = 1; i <= MAX_SIZE; i++) { if(world.getBlock(x + dirLeft.offsetX * i, y, z + dirLeft.offsetZ * i) != this) break; left = i; } + for(int i = 1; i <= MAX_SIZE - left - 1; i++) { if(world.getBlock(x - dirLeft.offsetX * i, y, z - dirLeft.offsetZ * i) != this) break; right = i; } + + for(int i = 1; i <= MAX_SIZE; i++) { if(world.getBlock(x + dir.offsetX * i, y, z + dir.offsetZ * i) != this) break; depth = i; } + + if(posHeight + negHeight + 1 < 5) { + MachinePWRController.sendError(world, x, y + posHeight, z, "Height too low (<5)", player); + MachinePWRController.sendError(world, x, y - negHeight, z, "Height too low (<5)", player); + return true; + } + + if(left + right + 1 < 5) { + MachinePWRController.sendError(world, x + dirLeft.offsetX * left, y, z + dirLeft.offsetZ * right, "Width too low (<5)", player); + MachinePWRController.sendError(world, x - dirLeft.offsetX * right, y, z - dirLeft.offsetZ * right, "Width too low (<5)", player); + return true; + } + + if(depth + 1 < 5) { + MachinePWRController.sendError(world, x + dir.offsetX * depth, y, z + dir.offsetZ * depth, "Depth too low (<5)", player); + return true; + } + + for(int h = -negHeight; h <= posHeight; h++) { + for(int v = -left; v <= right; v++) { + for(int d = 0; d <= depth; d++) { + int iX = x - dirLeft.offsetX * v + dir.offsetX * d; + int iY = y + h; + int iZ = z - dirLeft.offsetZ * v + dir.offsetZ * d; + + if(world.getBlock(iX, iY, iZ) != this) { + MachinePWRController.sendError(world, iX, iY, iZ, "Graphite block missing", player); + return true; + } + } + } + } + + for(int h = -negHeight; h <= posHeight; h++) { + for(int v = -left; v <= right; v++) { + for(int d = 0; d <= depth; d++) { + int iX = x - dirLeft.offsetX * v + dir.offsetX * d; + int iY = y + h; + int iZ = z - dirLeft.offsetZ * v + dir.offsetZ * d; + world.setBlock(iX, iY, iZ, ModBlocks.pile_block); + } + } + } + + return true; + } + + return false; + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/pile_block_control_top_ct.png b/src/main/resources/assets/hbm/textures/blocks/pile_block_control_top_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..267661c4680208669ffcbd17322320c21ec40e2f GIT binary patch literal 1592 zcmV-82FLk{P)s{oMArP-S{w|mC6CTxd%aQLQ!eehA?m41~{0oGPjmF3IT08vdTZQTi?x=?WYYh>zp^ar|F_ms zRTU>^NBGckFq`q|yg+1x_n~KwrhAA8!{Lxm=LIHB3El(H`heawZmngpSoHALSXEU3 zOsCV{aGvM4kyzIp%wV&L&xt518&F9Cv|KGVWZmN7EqyS_?`9rG(TNLfZmxyuZhAkfYQZNTB;4Ku;zUCX-2jrXN3ke9{4c_wV1| zam2YLl50W;q*->yL8VlGU2ZB85u9@vV{lD_))FJI4fl5U^ZEQyB<1_M=lu z(5I)TcV7NWIdFP<+UE>F-IV0r?vzse^y!=sJhiO}Ay8S%a5%(=K%x|%&kO3>V(S_o z{Np+B+`6wDOk)DZoTzzuG{rebS+4nVyjf$6#<$@%2X5;+X8Tj?eh!F?k*?gfXM8-n zRYOtHDWw$7IlT8AOa?et1EAl%d-v55*wqc^9Fpghn+=Hw*2WhH?_-d}#5Zy~BUL zT#_0?nx-Tje}1#+c@f<+`d~KWU^c@!hie*!g8@Li?mCxr4P=`4 z8;^0$0UL~t!^qpStmn7OIY;v2KmO8YSw@pthE#@eBqzX_~TJ zF8LN-|MB;~A$X7XzLV4x=NbUMTo!zH_6ns0*EGH7+w=6^^X6pwEZ-!;58u6dlGm%{ z0`Eg#tIpM2%vZcPoDzbkC<-p-D~@L)RHteo_@1%0dX`_874!KuKmB~o@7^3g;I*qA zJ_MWtQ3@r({wSv`*VMMgxs>t1uw1SH$n%`qIYggn5JI0kA;e)bw0E#y&FhzklRGbnJMw*9=UIji9*7g}?Mk>T)*Maup5!m) zD~t%U+1{gk=cq7WR^)kxF$N`qF)4YLF&qv%L5d@nF)7BR+^iiU@qt)4@gYg4im*u+e-=Q0+#sgus zTE)rLdyZ$Fws-SCz;e0l46A4PK^BkZV4UNc<^iAl`1e1xqJ%^gtq)zvfg}pw21H35 qpS7WB98DANXK6|zipDvoQGK z{+}buGJdyh+3h7bU*erZYmIXbgy1Zlqm`oDj_}R_pmosbPsTHXRd8br#u&QYF2)#s z8jYG4%d+HOy&h2%VT@_sUn~~*ZVTs2jz$?z9_>I`^8Vw5Cy#ar!w`T_Yu=qr`EtJx zWy!mbDf>HHNGTAnUcD+;!HqFQQPc!}lVt$>Se5|vdc7ua9LFpc3tl~Y$iqPgYb|!U zBx$t(u-0-knxF&4{_Zx;Ih0aJDVz0=PROF;Nr|h9TBDO6L$#R@(r0 z@9WfS019JRE*-5_Oc;g)!{Lx_x7#fE{{8z~gT8$ElGO)iS%wZZhX(_kb9nEGq7ZAB z034sDEQR8mCkNQ&vRPwQ4@aZPW(};)$K&y}!TbF_X_}H{S+f-v-Gn?3d4DqD$-w|? z3r6E94|jTa@0iUOjK}Bv^4mGT|6&h-k7p@^Zh|cg65yX7K9JS>eV4-+!`r$TBPFrc zvftmr78d6`+wGY7d`4jkqCl}&7AGQq`}N9G_)P@%iimDFnVQ?4aB2LLGQG9DcS2hQlHJ{4)U0o;@RwXYBU2 zn&(PNoOd{1G8#|OO409c0Rkx3RuY`1Gvq1*KSdFD>4r2-dAql_7Eqy-;&?nmYmHQj z$;=W*5pf)Y5P;yN84mUFOm#+s%Ay7dzVhdxM zo?kjg={-Wq>Yfmkb-MznARu`D{P{*-uLrp4dVOx_Fs$0IC{Rj~Bne6>CX)&0*@F4P zaCk64D%G$8N}MnGaD0Yb_4Q~pB2Ck#RkAGOO_uRPU2s{JHP7L4ZrGy0JICo{hI5WI zP5JjPzgF2OOfxS&9G~HwBhPdG^X?e$97;->!Ms?j0b@+V0jTE0dfKxrYql#8o;=S< zLcw%8#oB^SOEH~JF-1WusT*FWB{1y|oUMZ(Fs zLnuk^~KTvA-l8ZB^Z5nGrxPAM7yvc4g&>Zq(fT?4$`7393my(SpXh`6e1>zrX%Vf1 z4W2va*z4D`T~x&gkmq?FSl+6?&JV2X#rNO+p;S`c$a5tX&bu3VzOH2kiLZAp S$us8w0000G62m9n$Z!dYagg{xA2 z0>6QG*`>VmPH*5R@=iOgoJ=f_hciP0AUOb<-N*tLf#bO)(^V`Im%mT5`<(Or;?=8H zMHEH+KO>G~J{lSJhh3~IaMq%=###$Pa2jpUN-^jKIBNmW+H3U3i#4(io@E(v9Pj*= z-~EXE?nmM{CXVCgejLZl=X0Vc!np$L3f|3Q!Z1Wh$-9#TUu%5dM<|7_HOI^I>bc_Q z`3ma_q!f5{!1_}!V)XiLv(nM)xBTmyhYW{9vMeJ_Q^GI=U@#ak8TaY;dYJ8&Zl}ZZ zejj5DaE|sA-ENmpW&uhmq?CNx?*ovU0`cO-i#r{`moFX@1OdM9W2~jH79nMM41ja4 z+IkH@o@H#emQE+c_kFzSbjn~bXeK;7JiIpO%a<>y7aYei+SkkuCRl56&JhGY#%uvN zI*Hf{#nUGTnC-Tiqt1tS^Cez82kPI8#p2T7hlMfPNz5Kz;rq#pnzq4%oi)PQjEuYfB=ftOoEeWjf~@%<+o1(xJ@e5P;z4d4kqHTKg>52Bj2%@8i|U6n*pX#^Cih|Ho%!S$SNu$KA5d zf7b=dEuV%V#^h+vLrO`%-{+HV7lfeO3DLffl9E+w5wqE>*_Yeoz;rs@*{RPzo*;!l zd1Z^uv#hE4t+f=+A*3wt2|-bnD}eGmyywrK@6>fWz*X1nzM*};EWbQQsj}-SrC2VP zoW&`dG-Gx!K`Pa-0?PLNpQF>V547ugFc^?!8J+LnFai?ZB7x<%Pl=+a310UNbHAMU zWVvR4v_}+0oWHm zF20}TU5?KzLP-kiu&(R_N=R(sD4gTpzs&JG&30?pZp-I^?<17N`^!uN`xVbe70)MC z`P{?zJo2qqHJDMw^L+r07ajJ8W%j@K1L2MzP@-Vm@05Dq-|++16-es}ju&f`6b;Xn zlK5H^1_83-d0p2^Di%rB@Z45@psl~j4=Cj|8gDWlGZ~LD#xy(!%4=iLTBDT0THElv z*W&qPJbwTFE&V_}j4_C>{`y&Q7oI0cayLKl$3HyAS$ieVpUe)BQeDb(Yb_r>7+$Nt z&JS2?@m5KUwGO3ZwJp0mkD`eAV#WP&4=GjkuWX~qvh-U0WqzQo_e^fE&S6YRGO5%K z&yDfvcQi?|0w4@Sa$`_ZHk#}77yZCRy?FKVX`7Lk^4vN1p6AZ(@ciQVU-jOjdxM<` z+B|pG5(YulTrTH%+Y4OO-{c3Xg(?5Fy=(Q?`2myXcv*$vy4_yn`DSy@(aDkz9!!7=+d>cq zWox}jf0-X>>%GlpjkT^R5v{!)o?C0VKdySaD3cK&Ns=nCyjFjiA86~vS6}|AP*PpV lb0rnl*(-UzHHN$B{|h>gme%~p<+K0*002ovPDHLkV1hWR44nV~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pile_brick_side.png b/src/main/resources/assets/hbm/textures/blocks/pile_brick_side.png new file mode 100644 index 0000000000000000000000000000000000000000..d9b1fe0d029bfcfcc06ef06318d4c6235bdf3384 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfFzDWw4#?J3+Cl#-)J18xMFaIQ;)~W6DIEH+GMW*rgOIcU61FO-r3TxtV=tO`GlcyC0d( XPKmt}&uN?i^cI7stDnm{r-UW|2i9)I literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pile_brick_top.png b/src/main/resources/assets/hbm/textures/blocks/pile_brick_top.png new file mode 100644 index 0000000000000000000000000000000000000000..bd1c077f2d425bb953b3e1d47ee30e0137418dba GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf_9KZy9hWm)v+{?fNWE9W)b@Tfbrc5B)Dy^m!lx=1E^ zPH5?v@jN!o?7pg^ap1KLDih{3CZ6+QI8Z2K{Nf!$gOgBpYvR63@02@(vRz$jjyVXO zdDF?-AlyHl=UD#h19$Z+dwyQ%Jb0_{`NsSEk0-qScfUFQPBZ(CX+qjJjn$3;9me44 L>gTe~DWM4fE!I~r literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.0.png b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.0.png new file mode 100644 index 0000000000000000000000000000000000000000..9e4868251f2194d79a6a2b5173e5920387253ecd GIT binary patch literal 894 zcmV-^1A+XBP)2UA=-&xXA=ce zr3hT3AR!835s5KXz(=Eq8ng*wBS?hcS%{IG*$}hGaZfWhJGV2lH?#BDow2a;5BSPY zSpWHAwJ^UxRaN9=Oug3RcodMPDXOYs7^hnc`vMed`0;D-~$ztW?3rvI@Q54zU{Ebe_q1kF8>~ybIrfE_)O*Xf? zh=M>#g`y|`2!epBYRIL5D2jwbpCpTrWSK`FdII?{+~+vedG~{BxUS3Pw_nF`E>|zVMSE%<0L_|0l%)S* zfI&aR3->v(`ZR;10ix^PN7r?}ys*Y&Prim1>>+3cX*nd06Rw;;jqAGjzK`$wy!hrC zmSxco4#@HhaWEJ_p)($d^t#{C@B3uwh&;=Q3m+=Da{e@77!rmd03B-)Ns@6|O9+4e z^;tC@k7*h(HRD@B;d!PKkoW0Ea%!4$H85)*_ zR4aJt^cr?+iKvWd&ovf z%bY_zPLHTJWhw!pXvp%3$1yAk&+{)plWR2`h$g6KjfpcFEEZrB)NoH=Lm8q_>Z051}7Fy;W!SS=Me+} zqi}>QR9074*&7ZRMm;`XI!(p0m}wqB*L9YExr#jF%zz}gv~-rWwKaku;Ko-Mu`4YK zdYOX<9%LNF#7RspGx2)?x9+Udu;wsLlbq}BP^(ti?%iYM+Mlfc`UR4f677YENJTXi zPM-S|$8m67cc1w6`93C>9FryqzPnDC?jl{g@}_W_ z4n?g-nCv1Dg3A^C7~bmk$zi#S2(pcs1f(?bZN|0h@%Kq)tICS zc}+uPf`!EoxO(XwR&L$|KxBfB+eJRuIz*HW*!6r49iB&)B_@+8YCg}__7ZLh^$Y{0Zko%)PhEn0_(@R|c={kd80FodW1U!1|31*w~Ts-&UexIVJ z1mh0PY8#QNa+mGKsR|>>Qh}AUFG>xt9UH%6# WDvO^Iz~__z0000P)=Yu$eCZ;%abUH^Y z9_RS^%UG7h+|(H)Ndmy@{tL3g*2-U;n*0dEFt99(*~ya(8HW*e><4UDORSgfVObWn zT8(2T-lNm*AcQiDi;J|H4o$ZTz|ztZwOS2TRhj?&2O{OQFG9y|kWCcWZEliH6aeT4 z0fH#9T`3dbBS}#PlP0#^;KkEt`TN^ztgPKdu&iw~O=GLN!Prx;Q)!fmC_Zk#NxR)a z)J!BH!J(5RM#pf@-xwIhKp1%e=8_<+grb2Ges@hW4ZV<@VM*NU*) z+T!rBR}iBDp6`LG$ECiwZc?};k|`>AZ(=GG^(7}+8(zjF~irn9}Z34rr5j9k0vQrur%K~r^d`8++p$Azn3?Vs)Q4=0c%1)NqumCY}+>ZOp(x+5u*JlPP0i&)fgT&dE?z_#6UySHEPXGwyPzq zdYQZb++l9&47P3a<;*3ldWl#(j?i*~kjA0h#ubDF2QEA8iiD6R4LG17fiwYy!hn^fBdr@dj^j9S>?G!Zc>aY) zxqa({yuH#U&vVj6Ov$hrO$H=Mg0AbBW{E7z$fg-ZO){U&X>UHs&v$N8tyB=sxd!8O zNWM_9^d`R_{z;M~EEWs0Gz0Y$>>9&ljKWqZBieMMNBr(WT1fg-uM;)08;#A%_>1MT}4$3I7{m& zcMm?vXR{f$+2W~}cDZ%^8sm6OqtT?*YSKAACi17~R?d7j$0}PWGfAcS5Xs;ep=&x) zU7}bt0MK#^Aq46|^5DoLiBm3ZU#54~LrRlLJRwU{0{4(O>!W;gb3b=l4py;7oc77d z(Xfc(0HNg=hJjF20BZFbp4UTH%1n|G^;Q+JzP^s3mihMkuXypT_X+v|cGae67Lclq zQ(LFmtYel;PEWc3w6~riS5pSz01@>2XqwKIE8B!&NXv0>`yI4`&RmJ{!Y;j@&u|#> z=*5d9Ny6ceH^|Z%_m4V=jrJDFVo2W)`02~f5JF)#o1<$Q-IFe7r|y3}3x%g&-lHO$ zyz=%n@_a$Ny@GP@x9hnfBwhb+PP!+oudSg71qFrktB>IMKCMQBK^QX4BMJpU6pgS= zhaduxv>tX42YIU1hWtmp1iJ_MG{KI|hmPxT#q}w~-9Ptl86-A3aKFV3{Sxu^uz_k8L3DJ z@d!v9dV>=Z2gC)5XCV?2R1IlJH(Bqlv-aAa8P9Ow!~=Y{FZ%xD^RO&40^qzQ(+Rzs zaNZ*YC@Ba;I2RBerpa-7TJiE~O_52&Vv%AdOB~0P*^GZyJ=TJ=4r3fbBqRtPKRg2k zv5?%ZcN`TdMXnHvn0cO4%@muqqg)6g9I29MDY0&3!gF`CC66?d2NOKKHOv!@+zvh2 zB>6FY%4%BiNmwzCsT2a?E zbzSr2pAEB2v+V`~AohoWh?vR1)y-@6onbT+&U)-LLGXMk?`WEarfC3J&T?WUD3X-u z=V$K)XB~x3Xzhqnl5up*GsW>y%4$2%H4|~-!9$u#A|F$f1-9=II*v(IN|HzlrHEWa z2%b0yZr%(G2g{T9m$U~*l1Z%dOu(UQ>Fj`bv)N;uq3;bp%|GCUsYqi@-S+g;h?Ih_ z{)%|9*Az)i6boVjW|}BxDe|PsiCn~YLq&akLDMu;ADu%Fe)JsAGroyC#$(N{GejOv z&rkUK^)+wH-FkDwV1yMyJvGdw;kv6JWW`UW2a>&<|8 zds#AiOVe6@`0y<;9alvzO+0YLT zl%yXFzs%lckth~fLZTIUu2DMh^_Atg$`L^j{rc=lIM|60JkA)hL}MK26oe3L?*|t1 zl-qU7vdWoj#qG97YEPNZ5UsJ~Sp)(O&hy~W5m_PF_y64}3e8cTP|i~ng5FHzg+xlp by6N~A3r%xnaO`j500000NkvXXu0mjfB;0S9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.1.png b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.1.png new file mode 100644 index 0000000000000000000000000000000000000000..b7c38c244d6cf1e0f008f9175cbbf8b48945221f GIT binary patch literal 790 zcmV+x1L^#UP)>JRpL`k&*Q9whH ztyv-91%QX4BhUZ}0fG}d_QZ2N=gb)jqaR?C+A$WYc1`SduZng&& zc}$*agho=NDP^WPuTs9x)|}sXVyy_3!n%PG&+YY|7tMmvgPA;?H55^Z*!LaBuIG!J znDu(iZnvYVDhA_F2>$&0p1QNteapxBfg)3^k`yfkKVR+;t0Dpc&*lvm7Z+4j#aHh? zpiCknC3#TB80YW^LZLaK2ClCE;@B7lGvchrjw4K-r|Oo?X2Wi`dr5ruYegQ# z1V4QE=H#p+4zF7~P<-VkzlH%LHf?tuX`=BBclf zOdjUBrs_s?AaQ zma4X#KFUA{y!S`}cU4PuwEUQz0r2#vdt#|6bc7#aS*D2ES`r=d{8n&rS<&?lw4&<` zXRoiAN1Bh^A20XmaH2K?t1?AQ0;MOxv2%QS0?sHBAutBQSW)!@`?kl+iK?nNKbs>b zN#7cryJwbWh}u}vBme=e^St)Pf+YVxnuig291KIqEP)d9SeR8EHDcYk}<|McF#;tPd}!rx|@YX?*5*;IM@5`otOLBD5eKoXNiN5 z+O@c@LkVal^msVeBOSD@V}F0bpQqQPu|me<2-8}8-)9sL_~)|5T5#53j6)9{&y@vNNk)9iJg+dXP) z7={6|YHEtQ;bK*Cd3i~eWqkB|!Ol1o!e3__wzXy3Q~(?wACqMn+82I3$x!oQNM%|^ zVZ{4&#_%YjZ8h{A;t4NJB8+o{LBOL?$wuJOA32kI3yRVq>#aqLa9va!-nz}Q+~Nmd z=&5ao)`}mz1GEy(vJHlgPwx#`l?^>0Mb+Tp(;7HE|C^#T>`aTZ9ky+u?|7)LNPNXx zclL;5&1{h1YatCIWN(_%m>u&`NZWSo%~PIMQ=YpyhqnfVv8LS#>!#u1FFDfp>}<<; zFlICekihqebVL{`QmuJbO<61!0DSOsNmE(wzcyoAIX*rVtm|ljs@ziA2Dw-k7-y(! zLuoDlC(APOJVza!^gM~e~Pm^mkB z=XAYry=;(!*@#_d`EoPi@L&KUe0F!h*KbZ)<`sEi@w=Yhb$r#_2H^7xp=)6_Nsz6z z#5&+z?~>z_oVszK6?J2H@XDNVs2Rs0VW3|;HP3VAlLYAn(Y;XAj!+b{MDgTG@C*cj zB5!uAs+#L+$N5#kd-|sQ`1XKoy&(#HWNR!*?14b#I=+2-N}S$6(;y^G1ExvHXc(ap kzIZStNfk;duJe-r04Seom!!dZBme*a07*qoM6N<$f@x@U00000 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.3.png b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.3.png new file mode 100644 index 0000000000000000000000000000000000000000..14794a073ee5642d3376596ca42423dba86cf5c2 GIT binary patch literal 784 zcmV+r1MmEaP)mM#+pb_So&VyW3UO)hr_30e*VXZ!g}R7FEUs_~6Lmgx-(%5YPff z3lkCEPe_1q^ju%pyu8^^W*V8#Q|#zaN>OD6uh%`!fp;EjJt7GS!n3DKFrY;9X0zv_ zOeu4N7!G(}4#%v}TxK~&34g7&$mJ{nf#q_^dcCG;8j{FRX9m4#poZZO0m{S!o5-UY&Qj$ai5c!B{3aClA zy&D)h$44J8ICh>S(>Na(f$ntV;EnyNi4+HYfqT(DJ&C&7uXOBRH z5CTfzq3LK^hYAyu4}85cq{{H~oe)M?)H%_gpFf{crMN$KGzZIKo+4U^yk}X@XpWY} zEN0hRMkZo`)8LtxIc;kZGYM_)Nkp^AHJJ#Jg*etU!xBtn`1 O0000