From e0db26ef442b06ebe9c6caa28b35d5efe48dce43 Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 21 May 2021 01:01:50 +0200 Subject: [PATCH] RBMK recycling pellets, colored concrete, more fireext mechanics --- src/main/java/com/hbm/blocks/ModBlocks.java | 9 +- .../blocks/generic/BlockConcreteColored.java | 63 +++++++++++ .../com/hbm/blocks/generic/BlockLayering.java | 105 ++++++++++++++++++ .../java/com/hbm/crafting/MineralRecipes.java | 4 + .../hbm/handler/guncfg/GunEnergyFactory.java | 28 ++++- src/main/java/com/hbm/items/ModItems.java | 43 +++++++ .../com/hbm/items/block/ItemBlockColored.java | 17 +++ .../com/hbm/items/block/ItemTrapBlock.java | 17 ++- .../com/hbm/items/machine/ItemRBMKPellet.java | 100 +++++++++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../hbm/textures/blocks/concrete_black.png | Bin 0 -> 521 bytes .../hbm/textures/blocks/concrete_blue.png | Bin 0 -> 523 bytes .../hbm/textures/blocks/concrete_brown.png | Bin 0 -> 524 bytes .../hbm/textures/blocks/concrete_cyan.png | Bin 0 -> 523 bytes .../hbm/textures/blocks/concrete_gray.png | Bin 0 -> 520 bytes .../hbm/textures/blocks/concrete_green.png | Bin 0 -> 524 bytes .../textures/blocks/concrete_light_blue.png | Bin 0 -> 523 bytes .../hbm/textures/blocks/concrete_lime.png | Bin 0 -> 523 bytes .../hbm/textures/blocks/concrete_magenta.png | Bin 0 -> 522 bytes .../hbm/textures/blocks/concrete_orange.png | Bin 0 -> 522 bytes .../hbm/textures/blocks/concrete_pink.png | Bin 0 -> 523 bytes .../hbm/textures/blocks/concrete_purple.png | Bin 0 -> 523 bytes .../hbm/textures/blocks/concrete_red.png | Bin 0 -> 522 bytes .../hbm/textures/blocks/concrete_silver.png | Bin 0 -> 520 bytes .../hbm/textures/blocks/concrete_white.png | Bin 0 -> 519 bytes .../hbm/textures/blocks/concrete_yellow.png | Bin 0 -> 524 bytes .../textures/items/rbmk_pellet_balefire.png | Bin 0 -> 295 bytes .../hbm/textures/items/rbmk_pellet_drx.png | Bin 0 -> 163 bytes .../textures/items/rbmk_pellet_grayscale.png | Bin 0 -> 266 bytes .../hbm/textures/items/rbmk_pellet_heaus.png | Bin 0 -> 271 bytes .../hbm/textures/items/rbmk_pellet_hes.png | Bin 0 -> 279 bytes .../hbm/textures/items/rbmk_pellet_leaus.png | Bin 0 -> 271 bytes .../hbm/textures/items/rbmk_pellet_lep.png | Bin 0 -> 297 bytes .../hbm/textures/items/rbmk_pellet_les.png | Bin 0 -> 278 bytes .../hbm/textures/items/rbmk_pellet_men.png | Bin 0 -> 273 bytes .../hbm/textures/items/rbmk_pellet_mep.png | Bin 0 -> 302 bytes .../hbm/textures/items/rbmk_pellet_mes.png | Bin 0 -> 276 bytes .../hbm/textures/items/rbmk_pellet_meu.png | Bin 0 -> 283 bytes .../hbm/textures/items/rbmk_pellet_mox.png | Bin 0 -> 277 bytes .../textures/items/rbmk_pellet_overlay_e0.png | Bin 0 -> 103 bytes .../textures/items/rbmk_pellet_overlay_e1.png | Bin 0 -> 106 bytes .../textures/items/rbmk_pellet_overlay_e2.png | Bin 0 -> 107 bytes .../textures/items/rbmk_pellet_overlay_e3.png | Bin 0 -> 107 bytes .../textures/items/rbmk_pellet_overlay_e4.png | Bin 0 -> 103 bytes .../items/rbmk_pellet_overlay_xenon.png | Bin 0 -> 106 bytes .../hbm/textures/items/rbmk_pellet_thmeu.png | Bin 0 -> 291 bytes 47 files changed, 372 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockConcreteColored.java create mode 100644 src/main/java/com/hbm/blocks/generic/BlockLayering.java create mode 100644 src/main/java/com/hbm/items/block/ItemBlockColored.java create mode 100644 src/main/java/com/hbm/items/machine/ItemRBMKPellet.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_black.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_blue.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_brown.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_cyan.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_gray.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_green.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_light_blue.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_lime.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_magenta.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_orange.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_pink.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_purple.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_red.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_silver.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_white.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_yellow.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_balefire.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_drx.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_grayscale.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_heaus.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_hes.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_leaus.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_lep.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_les.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_men.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_mep.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_mes.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_meu.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_mox.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_overlay_e0.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_overlay_e1.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_overlay_e2.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_overlay_e3.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_overlay_e4.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_overlay_xenon.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_pellet_thmeu.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 00186ea93..b58595a29 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -236,6 +236,7 @@ public class ModBlocks { public static Block reinforced_stone; public static Block concrete_smooth; + public static Block concrete_colored; public static Block concrete; public static Block concrete_asbestos; public static Block concrete_pillar; @@ -1191,7 +1192,7 @@ public class ModBlocks { block_white_phosphorus = new BlockHazard(Material.rock).addFire(15).toBlock().setBlockName("block_white_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_white_phosphorus"); block_red_phosphorus = new BlockHazardFalling().addFire(15).toBlock().setStepSound(Block.soundTypeSand).setBlockName("block_red_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_red_phosphorus"); block_fallout = new BlockHazardFalling().addRadiation(ItemHazard.fo * ItemHazard.block).toBlock().setStepSound(Block.soundTypeGravel).setBlockName("block_fallout").setCreativeTab(MainRegistry.blockTab).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":ash"); - block_foam = new BlockGeneric(Material.snow).setBlockName("block_foam").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSnow).setHardness(0.5F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":foam"); + block_foam = new BlockGeneric(Material.craftedSnow).setBlockName("block_foam").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSnow).setHardness(0.5F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":foam"); block_graphite = new BlockFlammable(Material.iron, 30, 5).setBlockName("block_graphite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_graphite"); block_boron = new BlockGeneric(Material.iron).setBlockName("block_boron").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_boron"); block_lanthanium = new BlockGeneric(Material.iron).setBlockName("block_lanthanium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lanthanium"); @@ -1244,6 +1245,7 @@ public class ModBlocks { reinforced_stone = new BlockGeneric(Material.rock).setBlockName("reinforced_stone").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(3000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_stone"); concrete_smooth = new BlockGeneric(Material.rock).setBlockName("concrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); + concrete_colored = new BlockConcreteColored(Material.rock).setBlockName("concrete_colored").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); concrete = new BlockGeneric(Material.rock).setBlockName("concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_tile"); concrete_asbestos = new BlockGeneric(Material.rock).setBlockName("concrete_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_asbestos"); concrete_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":concrete_pillar_top").setBlockName("concrete_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_pillar_side"); @@ -1356,8 +1358,8 @@ public class ModBlocks { frozen_log = new WasteLog(Material.wood).setBlockName("frozen_log").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F); frozen_planks = new BlockOre(Material.wood).setBlockName("frozen_planks").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":frozen_planks"); fallout = new BlockFallout(Material.snow).addRadiation(ItemHazard.fo * ItemHazard.powder * 2).toBlock().setBlockName("fallout").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":ash"); - foam_layer = new BlockFallout(Material.snow).setBlockName("foam_layer").setStepSound(Block.soundTypeSnow).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":foam"); - sand_boron_layer = new BlockFallout(Material.sand).setBlockName("sand_boron_layer").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":sand_boron"); + foam_layer = new BlockLayering(Material.snow).setBlockName("foam_layer").setStepSound(Block.soundTypeSnow).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":foam"); + sand_boron_layer = new BlockLayering(Material.sand).setBlockName("sand_boron_layer").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":sand_boron"); sellafield_slaked = new BlockGeneric(Material.rock).setBlockName("sellafield_slaked").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); sellafield_0 = new BlockOre(Material.rock, 0.5F, 10F).setBlockName("sellafield_0").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); @@ -2092,6 +2094,7 @@ public class ModBlocks { //Bricks GameRegistry.registerBlock(reinforced_stone, reinforced_stone.getUnlocalizedName()); GameRegistry.registerBlock(concrete_smooth, concrete_smooth.getUnlocalizedName()); + GameRegistry.registerBlock(concrete_colored, ItemBlockColored.class, concrete_colored.getUnlocalizedName()); GameRegistry.registerBlock(concrete, concrete.getUnlocalizedName()); GameRegistry.registerBlock(concrete_asbestos, concrete_asbestos.getUnlocalizedName()); GameRegistry.registerBlock(concrete_pillar, concrete_pillar.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockConcreteColored.java b/src/main/java/com/hbm/blocks/generic/BlockConcreteColored.java new file mode 100644 index 000000000..d767a9f5e --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockConcreteColored.java @@ -0,0 +1,63 @@ +package com.hbm.blocks.generic; + +import java.util.List; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.MapColor; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemDye; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class BlockConcreteColored extends Block { + + @SideOnly(Side.CLIENT) + private IIcon[] icons; + + public BlockConcreteColored(Material p_i45398_1_) { + super(p_i45398_1_); + this.setCreativeTab(CreativeTabs.tabBlock); + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon(int p_149691_1_, int p_149691_2_) { + return this.icons[p_149691_2_ % this.icons.length]; + } + + public int damageDropped(int p_149692_1_) { + return p_149692_1_; + } + + public static int func_150032_b(int p_150032_0_) { + return func_150031_c(p_150032_0_); + } + + public static int func_150031_c(int p_150031_0_) { + return ~p_150031_0_ & 15; + } + + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item p_149666_1_, CreativeTabs p_149666_2_, List p_149666_3_) { + for(int i = 0; i < 16; ++i) { + p_149666_3_.add(new ItemStack(p_149666_1_, 1, i)); + } + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister p_149651_1_) { + this.icons = new IIcon[16]; + + for(int i = 0; i < this.icons.length; ++i) { + this.icons[i] = p_149651_1_.registerIcon(this.getTextureName() + "_" + ItemDye.field_150921_b[func_150031_c(i)]); + } + } + + public MapColor getMapColor(int p_149728_1_) { + return MapColor.getMapColorForBlockColored(p_149728_1_); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockLayering.java b/src/main/java/com/hbm/blocks/generic/BlockLayering.java new file mode 100644 index 000000000..fa039eff3 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockLayering.java @@ -0,0 +1,105 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import com.hbm.blocks.machine.rbmk.RBMKDebris; + +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.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockLayering extends Block { + + public BlockLayering(Material mat) { + super(mat); + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F); + this.func_150154_b(0); + } + + public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) { + int l = p_149668_1_.getBlockMetadata(p_149668_2_, p_149668_3_, p_149668_4_) & 7; + float f = 0.125F; + return AxisAlignedBB.getBoundingBox((double) p_149668_2_ + this.minX, (double) p_149668_3_ + this.minY, (double) p_149668_4_ + this.minZ, (double) p_149668_2_ + this.maxX, (double) ((float) p_149668_3_ + (float) l * f), (double) p_149668_4_ + this.maxZ); + } + + public boolean isOpaqueCube() { + return false; + } + + public boolean renderAsNormalBlock() { + return false; + } + + public void setBlockBoundsForItemRender() { + this.func_150154_b(0); + } + + public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) { + this.func_150154_b(p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_)); + } + + protected void func_150154_b(int p_150154_1_) { + int j = p_150154_1_ & 7; + float f = (float) (2 * (1 + j)) / 16.0F; + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, f, 1.0F); + } + + public boolean canPlaceBlockAt(World world, int x, int y, int z) { + Block block = world.getBlock(x, y - 1, z); + + if(block instanceof RBMKDebris) + return true; + + return block != Blocks.ice && block != Blocks.packed_ice ? (block.isLeaves(world, x, y - 1, z) ? true : (block == this && (world.getBlockMetadata(x, y - 1, z) & 7) == 7 ? true : block.isOpaqueCube() && block.getMaterial().blocksMovement())) : false; + } + + public void onNeighborBlockChange(World p_149695_1_, int p_149695_2_, int p_149695_3_, int p_149695_4_, Block p_149695_5_) { + this.func_150155_m(p_149695_1_, p_149695_2_, p_149695_3_, p_149695_4_); + } + + private boolean func_150155_m(World p_150155_1_, int p_150155_2_, int p_150155_3_, int p_150155_4_) { + if(!this.canPlaceBlockAt(p_150155_1_, p_150155_2_, p_150155_3_, p_150155_4_)) { + p_150155_1_.setBlockToAir(p_150155_2_, p_150155_3_, p_150155_4_); + return false; + } else { + return true; + } + } + + public void harvestBlock(World p_149636_1_, EntityPlayer p_149636_2_, int p_149636_3_, int p_149636_4_, int p_149636_5_, int p_149636_6_) { + super.harvestBlock(p_149636_1_, p_149636_2_, p_149636_3_, p_149636_4_, p_149636_5_, p_149636_6_); + p_149636_1_.setBlockToAir(p_149636_3_, p_149636_4_, p_149636_5_); + } + + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { + return null; + } + + public void updateTick(World p_149674_1_, int p_149674_2_, int p_149674_3_, int p_149674_4_, Random p_149674_5_) { + if(p_149674_1_.getSavedLightValue(EnumSkyBlock.Block, p_149674_2_, p_149674_3_, p_149674_4_) > 11) { + p_149674_1_.setBlockToAir(p_149674_2_, p_149674_3_, p_149674_4_); + } + } + + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess p_149646_1_, int p_149646_2_, int p_149646_3_, int p_149646_4_, int p_149646_5_) { + return p_149646_5_ == 1 ? true : super.shouldSideBeRendered(p_149646_1_, p_149646_2_, p_149646_3_, p_149646_4_, p_149646_5_); + } + + public int quantityDropped(int meta, int fortune, Random random) { + return (meta & 7) + 1; + } + + public boolean isReplaceable(IBlockAccess world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + return meta >= 7 ? false : blockMaterial.isReplaceable(); + } +} diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index ee9bbdeda..85d94992c 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -124,11 +124,15 @@ public class MineralRecipes { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ingot_pu239, 2), new Object[] { ModItems.billet_pu239, ModItems.billet_pu239, ModItems.billet_pu239 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ingot_pu240, 2), new Object[] { ModItems.billet_pu240, ModItems.billet_pu240, ModItems.billet_pu240 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ingot_pu_mix, 2), new Object[] { ModItems.billet_pu_mix, ModItems.billet_pu_mix, ModItems.billet_pu_mix }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ingot_uranium_fuel, 2), new Object[] { ModItems.billet_uranium_fuel, ModItems.billet_uranium_fuel, ModItems.billet_uranium_fuel }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ingot_plutonium_fuel, 2), new Object[] { ModItems.billet_plutonium_fuel, ModItems.billet_plutonium_fuel, ModItems.billet_plutonium_fuel }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ingot_mox_fuel, 2), new Object[] { ModItems.billet_mox_fuel, ModItems.billet_mox_fuel, ModItems.billet_mox_fuel }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ingot_neptunium, 2), new Object[] { ModItems.billet_neptunium, ModItems.billet_neptunium, ModItems.billet_neptunium }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ingot_neptunium_fuel, 2), new Object[] { ModItems.billet_neptunium_fuel, ModItems.billet_neptunium_fuel, ModItems.billet_neptunium_fuel }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ingot_polonium, 2), new Object[] { ModItems.billet_polonium, ModItems.billet_polonium, ModItems.billet_polonium }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ingot_schrabidium, 2), new Object[] { ModItems.billet_schrabidium, ModItems.billet_schrabidium, ModItems.billet_schrabidium }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ingot_solinium, 2), new Object[] { ModItems.billet_solinium, ModItems.billet_solinium, ModItems.billet_solinium }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ingot_schrabidium_fuel, 2), new Object[] { ModItems.billet_schrabidium_fuel, ModItems.billet_schrabidium_fuel, ModItems.billet_schrabidium_fuel }); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg), new Object[] { ModItems.billet_pu238, ModItems.billet_pu238, ModItems.billet_pu238, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_weak), new Object[] { ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_pu238, "plateIron" })); diff --git a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java index e77b2518e..7b153f1f0 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -421,8 +421,18 @@ public class GunEnergyFactory { Block b = bullet.worldObj.getBlock(ix, iy, iz); - if(b != ModBlocks.foam_layer && b.isReplaceable(bullet.worldObj, ix, iy, iz) && ModBlocks.foam_layer.canPlaceBlockAt(bullet.worldObj, ix, iy, iz)) { - bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.foam_layer); + if(b.isReplaceable(bullet.worldObj, ix, iy, iz) && ModBlocks.foam_layer.canPlaceBlockAt(bullet.worldObj, ix, iy, iz)) { + + if(b != ModBlocks.foam_layer) { + bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.foam_layer); + } else { + int meta = bullet.worldObj.getBlockMetadata(ix, iy, iz); + + if(meta < 6) + bullet.worldObj.setBlockMetadataWithNotify(ix, iy, iz, meta + 1, 3); + else + bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.block_foam); + } } if(fizz) @@ -476,8 +486,18 @@ public class GunEnergyFactory { Block b = bullet.worldObj.getBlock(ix, iy, iz); - if(b != ModBlocks.sand_boron_layer && b.isReplaceable(bullet.worldObj, ix, iy, iz) && ModBlocks.sand_boron_layer.canPlaceBlockAt(bullet.worldObj, ix, iy, iz)) { - bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.sand_boron_layer); + if((b.isReplaceable(bullet.worldObj, ix, iy, iz) || b == ModBlocks.sand_boron_layer) && ModBlocks.sand_boron_layer.canPlaceBlockAt(bullet.worldObj, ix, iy, iz)) { + + if(b != ModBlocks.sand_boron_layer) { + bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.sand_boron_layer); + } else { + int meta = bullet.worldObj.getBlockMetadata(ix, iy, iz); + + if(meta < 6) + bullet.worldObj.setBlockMetadataWithNotify(ix, iy, iz, meta + 1, 3); + else + bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.sand_boron); + } if(b.getMaterial() == Material.fire) bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "random.fizz", 1.0F, 1.5F + bullet.worldObj.rand.nextFloat() * 0.5F); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 9687ad02e..e6f09c840 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -925,6 +925,19 @@ public class ModItems { public static Item rbmk_fuel_pu238be; public static Item rbmk_fuel_balefire; public static Item rbmk_fuel_drx; + public static Item rbmk_pellet_meu; + public static Item rbmk_pellet_thmeu; + public static Item rbmk_pellet_lep; + public static Item rbmk_pellet_mep; + public static Item rbmk_pellet_men; + public static Item rbmk_pellet_mox; + public static Item rbmk_pellet_les; + public static Item rbmk_pellet_mes; + public static Item rbmk_pellet_hes; + public static Item rbmk_pellet_leaus; + public static Item rbmk_pellet_heaus; + public static Item rbmk_pellet_balefire; + public static Item rbmk_pellet_drx; public static Item scrap; public static Item trinitite; @@ -3253,6 +3266,20 @@ public class ModItems { .setMeltingPoint(100000) .addDigamma(0.1F).toItem().setUnlocalizedName("rbmk_fuel_drx").setTextureName(RefStrings.MODID + ":rbmk_fuel_drx"); + rbmk_pellet_meu = new ItemRBMKPellet("Medium Enriched Uranium-235").setUnlocalizedName("rbmk_pellet_meu").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rbmk_pellet_meu"); + rbmk_pellet_thmeu = new ItemRBMKPellet("Thorium with MEU Driver Fuel").setUnlocalizedName("rbmk_pellet_thmeu").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rbmk_pellet_thmeu"); + rbmk_pellet_lep = new ItemRBMKPellet("Low Enriched Plutonium-239").setUnlocalizedName("rbmk_pellet_lep").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rbmk_pellet_lep"); + rbmk_pellet_mep = new ItemRBMKPellet("Medium Enriched Plutonium-239").setUnlocalizedName("rbmk_pellet_mep").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rbmk_pellet_mep"); + rbmk_pellet_men = new ItemRBMKPellet("Medium Enriched Neptunium-237").setUnlocalizedName("rbmk_pellet_men").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rbmk_pellet_men"); + rbmk_pellet_mox = new ItemRBMKPellet("Mixed LEU & LEP Oxide").setUnlocalizedName("rbmk_pellet_mox").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rbmk_pellet_mox"); + rbmk_pellet_les = new ItemRBMKPellet("Low Enriched Schrabidium-326").setUnlocalizedName("rbmk_pellet_les").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rbmk_pellet_les"); + rbmk_pellet_mes = new ItemRBMKPellet("Medium Enriched Schrabidium-326").setUnlocalizedName("rbmk_pellet_mes").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rbmk_pellet_mes"); + rbmk_pellet_hes = new ItemRBMKPellet("Highly Enriched Schrabidium-326").setUnlocalizedName("rbmk_pellet_hes").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rbmk_pellet_hes"); + rbmk_pellet_leaus = new ItemRBMKPellet("Low Enriched Australium (Tasmanite)").setUnlocalizedName("rbmk_pellet_leaus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rbmk_pellet_leaus"); + rbmk_pellet_heaus = new ItemRBMKPellet("Highly Enriched Australium (Ayerite)").setUnlocalizedName("rbmk_pellet_heaus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rbmk_pellet_heaus"); + rbmk_pellet_balefire = new ItemRBMKPellet("Draconic Flames").setUnlocalizedName("rbmk_pellet_balefire").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rbmk_pellet_balefire"); + rbmk_pellet_drx = new ItemRBMKPellet(EnumChatFormatting.OBFUSCATED + "can't you hear, can't you hear the thunder?").setUnlocalizedName("rbmk_pellet_drx").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rbmk_pellet_drx"); + trinitite = new ItemHazard().addRadiation(ItemHazard.trn * ItemHazard.ingot).toItem().setUnlocalizedName("trinitite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":trinitite_new"); nuclear_waste_long = new ItemHazard(5F).setUnlocalizedName("nuclear_waste_long").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long"); nuclear_waste_long_tiny = new ItemHazard(0.5F).setUnlocalizedName("nuclear_waste_long_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long_tiny"); @@ -5924,6 +5951,22 @@ public class ModItems { GameRegistry.registerItem(rbmk_fuel_pu238be, rbmk_fuel_pu238be.getUnlocalizedName()); GameRegistry.registerItem(rbmk_fuel_balefire, rbmk_fuel_balefire.getUnlocalizedName()); GameRegistry.registerItem(rbmk_fuel_drx, rbmk_fuel_drx.getUnlocalizedName()); + + GameRegistry.registerItem(rbmk_pellet_meu, rbmk_pellet_meu.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_thmeu, rbmk_pellet_thmeu.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_lep, rbmk_pellet_lep.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_mep, rbmk_pellet_mep.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_men, rbmk_pellet_men.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_mox, rbmk_pellet_mox.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_les, rbmk_pellet_les.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_mes, rbmk_pellet_mes.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_mes, rbmk_pellet_mes.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_mes, rbmk_pellet_mes.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_hes, rbmk_pellet_hes.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_leaus, rbmk_pellet_leaus.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_heaus, rbmk_pellet_heaus.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_balefire, rbmk_pellet_balefire.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_drx, rbmk_pellet_drx.getUnlocalizedName()); GameRegistry.registerItem(debris_graphite, debris_graphite.getUnlocalizedName()); GameRegistry.registerItem(debris_metal, debris_metal.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/block/ItemBlockColored.java b/src/main/java/com/hbm/items/block/ItemBlockColored.java new file mode 100644 index 000000000..a1c85e4a9 --- /dev/null +++ b/src/main/java/com/hbm/items/block/ItemBlockColored.java @@ -0,0 +1,17 @@ +package com.hbm.items.block; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemBlock; + +public class ItemBlockColored extends ItemBlock { + + public ItemBlockColored(Block block) { + super(block); + this.setMaxDamage(0); + this.setHasSubtypes(true); + } + + public int getMetadata(int meta) { + return meta; + } +} diff --git a/src/main/java/com/hbm/items/block/ItemTrapBlock.java b/src/main/java/com/hbm/items/block/ItemTrapBlock.java index 284bd9699..05f9d52a4 100644 --- a/src/main/java/com/hbm/items/block/ItemTrapBlock.java +++ b/src/main/java/com/hbm/items/block/ItemTrapBlock.java @@ -13,18 +13,17 @@ public class ItemTrapBlock extends ItemBlock { public ItemTrapBlock(Block block) { super(block); - this.setMaxDamage(0); - this.setHasSubtypes(true); + this.setMaxDamage(0); + this.setHasSubtypes(true); } - + @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - + list.add(Trap.get(itemstack.getItemDamage()).toString()); } - - public int getMetadata(int meta) - { - return meta; - } + + public int getMetadata(int meta) { + return meta; + } } diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java b/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java new file mode 100644 index 000000000..3f728273f --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java @@ -0,0 +1,100 @@ +package com.hbm.items.machine; + +import java.util.List; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; + +public class ItemRBMKPellet extends Item { + + public String fullName = ""; + + public ItemRBMKPellet(String fullName) { + this.fullName = fullName; + this.setHasSubtypes(true); + this.setMaxDamage(0); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for(int i = 0; i < 10; ++i) { + list.add(new ItemStack(item, 1, i)); + } + } + + @SideOnly(Side.CLIENT) + private IIcon[] enrichmentOverlays = new IIcon[5]; + private IIcon xenonOverlay; + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister p_94581_1_) { + super.registerIcons(p_94581_1_); + + for(int i = 0; i < enrichmentOverlays.length; i++) { + enrichmentOverlays[i] = p_94581_1_.registerIcon("hbm:rbmk_pellet_overlay_e" + i); + } + + xenonOverlay = p_94581_1_.registerIcon("hbm:rbmk_pellet_overlay_xenon"); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + public int getRenderPasses(int meta) { + return hasXenon(meta) ? 3 : 2; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + super.addInformation(stack, player, list, bool); + + list.add(EnumChatFormatting.ITALIC + this.fullName); + + int meta = rectify(stack.getItemDamage()); + + switch(meta % 5) { + case 0: list.add(EnumChatFormatting.GOLD + "Brand New"); break; + case 1: list.add(EnumChatFormatting.YELLOW + "Barely Depleted"); break; + case 2: list.add(EnumChatFormatting.GREEN + "Moderately Depleted"); break; + case 3: list.add(EnumChatFormatting.DARK_GREEN + "Highly Depleted"); break; + case 4: list.add(EnumChatFormatting.DARK_GRAY + "Fully Depleted"); break; + } + + if(hasXenon(meta)) + list.add(EnumChatFormatting.DARK_PURPLE + "High Xenon Poison"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamageForRenderPass(int meta, int pass) { + + if(pass == 0) + return this.itemIcon; + + if(pass == 2) + return this.xenonOverlay; + + return this.enrichmentOverlays[rectify(meta) % 5]; + } + + private boolean hasXenon(int meta) { + return rectify(meta) >= 5; + } + + private int rectify(int meta) { + return Math.abs(meta) % 10; + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 54204be91..f2dce15bb 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1214,6 +1214,7 @@ item.gun_euthanasia.name=Euthanasia item.gun_euthanasia_ammo.name=Spritze item.gun_fatman.name=M42 Nukleares Katapult "Fat Man" item.gun_fatman_ammo.name=Miniatombombe (LEGACY) +item.gun_fireext.name=Feuerlöscher item.gun_flamer.name=Herr Topaz item.gun_flechette.name=Flechet-Gewehr item.gun_folly.name=Prototyp Digamma "Irrsinn" diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 5a16da838..b5a104b96 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1282,6 +1282,7 @@ item.gun_euthanasia.name=Euthanasia item.gun_euthanasia_ammo.name=Syringe item.gun_fatman.name=M42 Nuclear Catapult "Fat Man" item.gun_fatman_ammo.name=Mini Nuke (LEGACY) +item.gun_fireext.name=Fire Extinguisher item.gun_flamer.name=Mister Topaz item.gun_flechette.name=Flechette Rifle item.gun_folly.name=Prototype Digamma "Folly" diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_black.png b/src/main/resources/assets/hbm/textures/blocks/concrete_black.png new file mode 100644 index 0000000000000000000000000000000000000000..5f4a8ee4b9c2d5514a19c20706c906af80d1b542 GIT binary patch literal 521 zcmV+k0`~ohP)7cch`1vQvpO23< z#-O!^s`B~yNeF?*XU<8Ck@xp^YOMgwIemDo zMem)~8fFH-7~=;Zr9^9uQVRFEu8W*Ay>~(gs46*UX9W;K2mp>8LLh{Ih#(>y$Kg@{ zR231Swe}4lBEI2YZA7zrW#ifOIIp;01Y9q?>lo&-?G+novk&`{5TF$ zN?tZIL+6}M^X`I(08mQt=H01$eSLYE#u(o*-VfGVPV@dOw}frmT*`G_4x~5z-a9cy zH|(aFQu6Fo6@b_4MU0VB3Zb>;1uCWdCr4G;_nlfRr4*je=db&}D~&(c5_63>00000 LNkvXXu0mjf!2s=H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_blue.png b/src/main/resources/assets/hbm/textures/blocks/concrete_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..68c66d7a65c6a1a9ef730f22019521d79e97f0c4 GIT binary patch literal 523 zcmV+m0`&cfP)S}y zHO8Q|hN|-U`AGEcWSKw%sG8{ ztwryh)*5C8z!>8%KuU?$8l@EOb6poXXL|315KvWe&dv%Tgb)B6IfOt60TDq&IF7@m z0H`V=LTl|CKtz1QzsS9JwrwM&gqfkLF2l^+4=tsjs$ADa@12~p(>>3VecxTXh@h%& zxS64?HRhbWy}kLMnK8y7=gfJYhzKbquIqA;IVU1Qh%pjE_z}}ui^t=^aU6sYNGY+_ zBF4xV!!R!S*6pU)rne*lA1Kx~7~a!ddK N002ovPDHLkV1kUj?s5PC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_brown.png b/src/main/resources/assets/hbm/textures/blocks/concrete_brown.png new file mode 100644 index 0000000000000000000000000000000000000000..38eca38fd6a2c4f4703ced1d169f96cf27136b79 GIT binary patch literal 524 zcmV+n0`vWeP)YYORO}F-Ah~o!&chPGXF_zrRy!1z^tU z!)q;i@3hu1GXTaIe*scTwALu4aG&eC$T`z{Cxn2il5=)e03n0`;K(5aLI{WmBEoST zE(JhU5fNHz-vA=w8~#P^y|Zl_DJ9GdRdpF==6+}?1y$v`E_(0eoSp7@p6vVX+C>Ca zb;HdJZLKlq=Fs502v?gg{D( zwH7f(#u&b2twp#axoOQg$vIO>;q`jaTBFvAsxro4&dKxn^eFYZE^4i;wJq znYn@Y0udqS%oxLapk~H-o|qZ6RyPiy*81(VD!0@zhD!#}5CZ$YGw1XzYc1E=TJy}0 z;~=HvWivB$&gnGoE{F&Kr4(=8oyynOmzQab@g3v+V6Eje@6U2e*tX53T-W75deiT{ z6JvD4Zkj12&t6plc)ec47%8O?T5DdQQp$gFRF!?-skKr{;rV?2xc>u7vOpi)?pgZ) O0000S}y zHO8Q|hN|-U`AGEcWSKw%sG8{ ztwryh)*5C8z!>8%KuU?$8l@EOb6poXXL|315KvWe&dv%Tgb)B6IfOt60TDq&IF7@m z0H`V=LTl|CKtz1QzsS9JwrwM&gqfkLF2l^+4=tsjs$ADa@12~p(>>3VecxTXh@h%& zxS64?HRhbWy}kLMnK8y7=gfJYhzKbquIqA;IVU1Qh%pjE_z}}ui^t=^aU6sYNGY+_ zBF4xV!!R!S*6pU)rne*n9dK)Dudx*`Ao N002ovPDHLkV1g7D?m++m literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_gray.png b/src/main/resources/assets/hbm/textures/blocks/concrete_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..a6445a17629ec59bd01f9a9ebfeddea850debf6f GIT binary patch literal 520 zcmV+j0{8uiP)YYORO}F-Ah~o!&chPGXFFetuGG1z^tU!)q;i z@3hu1GXTaIe*scTwALu4aG&eC$T`z{Cxn2il5=)e03n0`;K(5aLI{WmBEoSTE(JhU z5fNHzKL8@)8~#P^y|Zl_DJ9GdRdpF==6+}?1y$v`E_(0eoSp7@p6vVX+C>Cab;HdJ zZLKlq=Fs502v?gg{D(wH7f( z#u&b2twp#axoOQg$vIO>;q`jaTBFvAsxro4&dKxn^eFYZE^4i;wJqnYn@Y z0udqS%oxLapk~H-o|qZ6RyPiy*81bLD!0@zhD!#}5CZ$YGw1XzYc1E=TJy}0;~=Hv zWivB$&gnGoE{F&Kr4(=8oyzz3x0h**@e||yV6Eje@6U2e*tX53T-W75deiT{6JvD4 zZkj12&t6plc)ec47%8O?T5DdQQp$gFRF!?-skKr{;rV?2y8iYYORO}F-Ah~o!&chPGXF_zrRy!1z^tU z!)q;i@3hu1GXTaIe*scTwALu4aG&eC$T`z{Cxn2il5=)e03n0`;K(5aLI{WmBEoST zE(JhU5fNHz-vA=w8~#P^y|Zl_DJ9GdRdpF==6+}?1y$v`E_(0eoSp7@p6vVX+C>Ca zb;HdJZLKlq=Fs502v?gg{D( zwH7f(#u&b2twp#axoOQg$vIO>;q`jaTBFvAsxro4&dKxn^eFYZE^4i;wJq znYn@Y0udqS%oxLapk~H-o|qZ6RyPiy*81(VD!0@zhD!#}5CZ$YGw1XzYc1E=TJy}0 z;~=HvWivB$&gnGoE{F&Kr4(=8oyynOmzQab@g3v+V6Eje@6U2e*tX53T-W75deiT{ z6JvD4Zkj12&t6plc)ec47%8O?T5DdQQp$gFRF!?-skKr{;rV?2xc>uqHb5$ndhqN3 O0000S}y zHO8Q|hN|-U`AGEcWSKw%sG8{ ztwryh)*5C8z!>8%KuU?$8l@EOb6poXXL|315KvWe&dv%Tgb)B6IfOt60TDq&IF7@m z0H`V=LTl|CKtz1QzsS9JwrwM&gqfkLF2l^+4=tsjs$ADa@12~p(>>3VecxTXh@h%& zxS64?HRhbWy}kLMnK8y7=gfJYhzKbquIqA;IVU1Qh%pjE_z}}ui^t=^aU6sYNGY+_ zBF4xV!!R!S*6pU)rne*pJvK}H7{UkU&K N002ovPDHLkV1kc$?OXr= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_lime.png b/src/main/resources/assets/hbm/textures/blocks/concrete_lime.png new file mode 100644 index 0000000000000000000000000000000000000000..3a07f8c4728fc7ceed15fc25f1038a8f2c8cb13c GIT binary patch literal 523 zcmV+m0`&cfP)E z*IM-6X{}*q0E{vI0;H5^tx-zhKG$`TbEfxB2mw_k=j^NiLI?rCkwXZC5D*bWgyT3| z3V^C2BDB`N0Yt<%{EOUsXWKSXN|+g{>N3pC{m@bhs>*d;^xnxiJKgg<+4tSGiwLUf zhMO7MT4T=1+uNHDni*pZa?YIRiHML=;<_#enR6l{gcu_sgdZ`jwRk)p9LGTjfs_(! zEn-D0wMy(Z9WsJd`ljrm4QR;PF)LL0g+YD*L`uYo(OJ^ZER7{|E5MK*kgf3NQcw N002ovPDHLkV1jNX@csY* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_magenta.png b/src/main/resources/assets/hbm/textures/blocks/concrete_magenta.png new file mode 100644 index 0000000000000000000000000000000000000000..7b057487373a6d76a626bd3b3be38d0555772aa8 GIT binary patch literal 522 zcmV+l0`>igP)khsDviH|=~etrC2 zV+>krs4AbIpM(&2JRWS@20-tfwH9+u=A6`85fNgHgx)*7cjlbL7M8r4zi`;u>+cr{4m>H_-GR(~V&{7Jj%5`1z-pM&T-Sa%z_uaLN2&(Fa zn;F_#W6sIj+nW!X8Dk7`&Yb6oh>%j^x-JKqb0Q*y7$YHsA2F@9csw2)$3X~zloD$# zVvLM2e92mia7S{}nsbtKrj)|#^`f;#trb;ejKQ3f=kw`N>UCYzT3KshX5^eXjsr7u z1MdYQLe7~nhW9|tjPpD(Git4F96+u0+i6v9sbdV644@$d_I+p0>08!XuCuk~nIFeN zO3BM+X6T&LY2IBB5dcal-n=`NudgpJ(-`AB#{0oq%W2-9<(9B*n@hQ_%YpQ!-+L#< z=!V@iQ%at_ssiwOy@)YVN+Gn?yg;Rt|KzAD`@U0arIf<+`TTMJ2Z6dlXbwxT^8f$< M07*qoM6N<$f<6QB7XSbN literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_orange.png b/src/main/resources/assets/hbm/textures/blocks/concrete_orange.png new file mode 100644 index 0000000000000000000000000000000000000000..52f97a3bf671ba67e88f7361a9592be5e49cf144 GIT binary patch literal 522 zcmV+l0`>igP)khsDviH|=~e*gMd zV+>krs4AbIpM(&2JRWS@20-tfwH9+u=A6`85fNgHgx)*7cjlbL7M8r4zi`;u>+cr{4m>H_-GR(~V&{7Jj%5`1z-pM&T-Sa%z_uaLN2&(Fa zn;F_#W6sIj+nW!X8Dk7`&Yb6oh>%j^x-JKqb0Q*y7$YHsA2F@9csw2)$3X~zloD$# zVvLM2e92mia7S{}nsbtKrj)|#^`f;#trb;ejKQ3f=kw`N>UCYzT3KshX5^eXjsr7u z1MdYQLe7~nhW9|tjPpD(Git4F96+u0+i6v9sbdV644@$d_I+p0>08!XuCuk~nIFeN zO3BM+X6T&LY2IBB5dcal-n=`NudgpJ(-`AB#{0oq%W2-9<(9B*n@hQ_%YpQ!-+L#< z=!V@iQ%at_ssiwOy@)YVN+Gn?yg;Rt|KzAD`@U0arIf<+`TTMJ2g~L`J6q=UB>(^b M07*qoM6N<$g5Hnv7ytkO literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_pink.png b/src/main/resources/assets/hbm/textures/blocks/concrete_pink.png new file mode 100644 index 0000000000000000000000000000000000000000..20b485813945b218f6f8588b200596f27685aea7 GIT binary patch literal 523 zcmV+m0`&cfP)EcWSKw%sG8{ ztwryh)*5C8z!>8%KuU?$8l@EOb6poXXL|315KvWe&dv%Tgb)B6IfOt60TDq&IF7@m z0H`V=LTl|CKtz1QzsS9JwrwM&gqfkLF2l^+4=tsjs$ADa@12~p(>>3VecxTXh@h%& zxS64?HRhbWy}kLMnK8y7=gfJYhzKbquIqA;IVU1Qh%pjE_z}}ui^t=^aU6sYNGY+_ zBF4xV!!R!S*6pU)rne*m_+L3Q<#Cj0;Z N002ovPDHLkV1lYa@3Q~^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_purple.png b/src/main/resources/assets/hbm/textures/blocks/concrete_purple.png new file mode 100644 index 0000000000000000000000000000000000000000..67720402953d818f5a83285199af877954b6de8e GIT binary patch literal 523 zcmV+m0`&cfP)EcWSKw%sG8{ ztwryh)*5C8z!>8%KuU?$8l@EOb6poXXL|315KvWe&dv%Tgb)B6IfOt60TDq&IF7@m z0H`V=LTl|CKtz1QzsS9JwrwM&gqfkLF2l^+4=tsjs$ADa@12~p(>>3VecxTXh@h%& zxS64?HRhbWy}kLMnK8y7=gfJYhzKbquIqA;IVU1Qh%pjE_z}}ui^t=^aU6sYNGY+_ zBF4xV!!R!S*6pU)rne*lV`KigP)khsDviH|=~e*gMd zV+>krs4AbIpM(&2JRWS@20-tfwH9+u=A6`85fNgHgx)*7cjlbL7M8r4zi`;u>+cr{4m>H_-GR(~V&{7Jj%5`1z-pM&T-Sa%z_uaLN2&(Fa zn;F_#W6sIj+nW!X8Dk7`&Yb6oh>%j^x-JKqb0Q*y7$YHsA2F@9csw2)$3X~zloD$# zVvLM2e92mia7S{}nsbtKrj)|#^`f;#trb;ejKQ3f=kw`N>UCYzT3KshX5^eXjsr7u z1MdYQLe7~nhW9|tjPpD(Git4F96+u0+i6v9sbdV644@$d_I+p0>08!XuCuk~nIFeN zO3BM+X6T&LY2IBB5dcal-n=`NudgpJ(-`AB#{0oq%W2-9<(9B*n@hQ_%YpQ!-+L#< z=!V@iQ%at_ssiwOy@)YVN+Gn?yg;Rt|KzAD`@U0arIf<+`TTMJ2PTFYYORO}F-Ah~o!&chPGXFFetuGG1z^tU!)q;i z@3hu1GXTaIe*scTwALu4aG&eC$T`z{Cxn2il5=)e03n0`;K(5aLI{WmBEoSTE(JhU z5fNHzKL8@)8~#P^y|Zl_DJ9GdRdpF==6+}?1y$v`E_(0eoSp7@p6vVX+C>Cab;HdJ zZLKlq=Fs502v?gg{D(wH7f( z#u&b2twp#axoOQg$vIO>;q`jaTBFvAsxro4&dKxn^eFYZE^4i;wJqnYn@Y z0udqS%oxLapk~H-o|qZ6RyPiy*81bLD!0@zhD!#}5CZ$YGw1XzYc1E=TJy}0;~=Hv zWivB$&gnGoE{F&Kr4(=8oyzz3x0h**@e||yV6Eje@6U2e*tX53T-W75deiT{6JvD4 zZkj12&t6plc)ec47%8O?T5DdQQp$gFRF!?-skKr{;rV?2y8i?BT0w=*OLv$60000< KMNUMnLSTZ#8tK{q literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_white.png b/src/main/resources/assets/hbm/textures/blocks/concrete_white.png new file mode 100644 index 0000000000000000000000000000000000000000..a6a2a66e63f20bdee8d609accdfbe1cc76afb573 GIT binary patch literal 519 zcmV+i0{H!jP)R&`uZY-z~k{?+cp4t@2s_$b28_o){2M_VAf@OB*w_+=O?vR0Op)Nyw;-k zPHPP_17M8t7a*lXYmHJ0_qnc%oHM<5LI|iTIcH}D5JCt5jvPWDgn)=3A{@uzQUFvH z5uvsA10W*4;a}w5JKMIAQo_toRhMCA?uV9AP*tw$qW4bD+3B9=$-eKdT|`h-H{8t7 z)*5q8K0ZEt(99TPkaOldPeg>264!M($ea@qA;cI7A^eJIt;OT<;5ZIK2&9x)YY}5) zjNwbxT7)~2o7S9@oHL~qUauFeHEOM>Dq{@hoIIaTk5aGeqSne<3o|3<%yAr;nHzX7 z5D{|Dj4`|iYG$10iJ4Jrb>jePtv^nya!Va!xMTngA+YZ|b57r~)^eS#HP8Gw4pK^9 zHZw!#oKExZf`|Z6O7Z61seFHbdzr==;U{w%kIZQESRbzKgmH~ro_F-AA+ zrkPUm>{S(j*Xu=$kx~kwwdMsXrTiyHRoVBQS}Ua#p3mp6`#(PDLR6Nxb&CK1002ov JPDHLkV1f}K=xzW2 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_yellow.png b/src/main/resources/assets/hbm/textures/blocks/concrete_yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..c187bd20597fa23701cbfa7781a025ad9f0ae2f1 GIT binary patch literal 524 zcmV+n0`vWeP)YYORO}F-Ah~o!&chPGXF_zrRy!1z^tU z!)q;i@3hu1GXTaIe*scTwALu4aG&eC$T`z{Cxn2il5=)e03n0`;K(5aLI{WmBEoST zE(JhU5fNHz-vA=w8~#P^y|Zl_DJ9GdRdpF==6+}?1y$v`E_(0eoSp7@p6vVX+C>Ca zb;HdJZLKlq=Fs502v?gg{D( zwH7f(#u&b2twp#axoOQg$vIO>;q`jaTBFvAsxro4&dKxn^eFYZE^4i;wJq znYn@Y0udqS%oxLapk~H-o|qZ6RyPiy*81(VD!0@zhD!#}5CZ$YGw1XzYc1E=TJy}0 z;~=HvWivB$&gnGoE{F&Kr4(=8oyynOmzQab@g3v+V6Eje@6U2e*tX53T-W75deiT{ z6JvD4Zkj12&t6plc)ec47%8O?T5DdQQp$gFRF!?-skKr{;rV?2xc>u9!a-Y@v}U#d O0000rZh_QPHQ}x^znVf8L|I;N0YWl@VH6xbf+F{T(RSzNzdzT zyZKFCa*LmKMb!p;L3`N)6iuGaH6G8$R*1IU0ZB?cZ!PpYg^$v4*^Cf!S^C zwUhL>pJHU#rKfb^Y|q)Y$?u-#$T>J=SX|T$RD2Lz%gfQ{xaz#lr5ejBrjCWq5^>6( r(~9nMGNer|{iyV`amkej|6j0L-Sl|kl<6f0^eKad=pkKwB6*UHx3v IIVCg!0Hc~T%K!iX literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_grayscale.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_grayscale.png new file mode 100644 index 0000000000000000000000000000000000000000..650673c45f581b4e916892c9e14bf5b202ac489d GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfl2kb60*Atx>xT$7IJd^v;Q;y z&unarSN>r7$>#pIJ(*I^-&{`jxh%3&gyFFTQ_i{t4>IhemWtimwpO(0mIF_rjC5{% zy^Z2&BZjs_gJYSqdg88sEp50a)v!rNckilI)zS`<3ifOjel5Xv1G2ltq(2%6k%VRDnA;B{7 z$V3J=g}9kq3rjZz^2ScHXB<1vcw`>V4LGtiP{Pb- zm-HTnvnH#fbnB`Q9ooj&@puQz<o$k){0Q21cO5Vr32iu`M@&zmtwNV7FQFWi53 zm1AuFlV-LPz bfBp0PV?7uq?@o~g`i#NT)z4*}Q$iB}tC4TS literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_leaus.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_leaus.png new file mode 100644 index 0000000000000000000000000000000000000000..a360fbac47b89b8a180632767b43a86335b948e1 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfvkzg3CRXM znaJR#5I2)+VdmVD#<2yOwyxn@o~URvk@>tp2Ai%$tz1 z^?~mFlJXDrR-B;>@)hUxt5Ho>V4_Iwm@e97uRI-8K-j&TJ(9^|BPKf+noQxHr>Mp t4EEs`bNd)-V(tI`^H7~Qfqi~E`}&){zs-Z51_S-d;OXk;vd$@?2>|h?cB=pY literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_les.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_les.png new file mode 100644 index 0000000000000000000000000000000000000000..b569051c836759c2ef16ceb2f9207ca0850bd30c GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfMGsHh+?ahVPEnhc-th6|f1dcgX3LIe3aouxH`M1Bc$U)o;8M zes<5z@2P5$KekR;cd#f`J2ddxX3l~KTTB9EG<(%)KvFU&RPnG;@Hh}J*fb=ZtyMyAxh=M$gr{1Otn z_RC%dM!_s@u3js3=C7s?=A};E_i^{K&z_7MHs)?JVZEn5r_Y^1ZhQK7_bg`4tIhux Zi)(Rvv{`NPmFaz@LHg&=2NxodtP;Z z+-&y!$D*xw9Jy%m{{8l2mF4@>d?vLR@GxfF7E35$tz34~k*UIKDzRWRUndaZs>~{VuUQ0E&e~yV)37>Gx&ca;nK U0q))WKtC~fy85}Sb4q9e045b^1^@s6 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_mep.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_mep.png new file mode 100644 index 0000000000000000000000000000000000000000..0ff6e61eb36f8f9db465407790e53566e296409f GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfyU#;oBdHQMTOusIf@qLGt^@BCLTMiGtWhOwx!3q4P{NO8HOB;tsyrL)gC^h z66vvBp5c0H|sTvqs)5Z5sy*-2~6UYpglu^4NnlvY}vFP;*_VDWrK zMg4=aeJ<`jv#zGyUFNuQ?}}AQCwo{pTMlmUo4JfRndg{InLQ{pDWJgU9**8 zO6tq>sO)dQo!_&`GCE94jmWOFi?7=jac1#9|3;6NeG4x9WKWjV&6uV3%KCfV&z~2W yL|h$XuOIl$vHY?*L;vgAA4*?4TTFh`|6n}x%1>7=U0NRKVFpiEKbLh*2~7YwX?gho literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_mes.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_mes.png new file mode 100644 index 0000000000000000000000000000000000000000..44d48bb44bd41302d65651e16976b07d27783394 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfoX>x*xy#1jD4@`?;C=PlpZoGZ z9Ayw)lwhotGiUD9A65%;qnpp~%PzO!VaS|ysZ{oZ-9jC2hI!j}|DKrR$QAtf{{zbP0l+XkK>=$Z2 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_meu.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_meu.png new file mode 100644 index 0000000000000000000000000000000000000000..98810cd2effb82fbc94b1480dcb8367085271ae8 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf}QV*F%z!7=|tBgKO)2M^|N(B|~95Y1#1R^NNM zdb_Rp`m@dPr)OH(E{1p8kN;8P-FnkA fd1~&5`Y%i?r#KgUKYW=H=sN~aS3j3^P6XlJT&I$Xb4s?pK0m!!V3N-R9w(0V zUtiDg)X`WP;8nR;fGL?L$ZP#~PqhnC%mJZOuP>P*)4%*6=Ol)Pr%9dHW^Jpj%(a`( z`u8}4_#+7;t4a1hrmbgQv(-`F=3!Z`QFbnSfZVAENwL=%Y-aubq4YH}_xeGt}44$rjF6*2UngEA&ao_*| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_overlay_e0.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_overlay_e0.png new file mode 100644 index 0000000000000000000000000000000000000000..d9915fd6a2ea46c75a5a49465c372e8156885f52 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfmdKI;Vst0GoLm ALI3~& literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_overlay_e2.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_overlay_e2.png new file mode 100644 index 0000000000000000000000000000000000000000..6c68ad81460a549d7025b02f31804f0538da57b4 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfYZ(vTJH&C3n<4KeGm}wc_H>|X22WQ%mvv4FO#r#O B8)Ewzj6JYD@<);T3K0RSu@7>57= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_overlay_xenon.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_overlay_xenon.png new file mode 100644 index 0000000000000000000000000000000000000000..59e79e2b28bdee2cf36956126b90e1d00078844d GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfmdKI;Vst0Nghm AlmGw# literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_pellet_thmeu.png b/src/main/resources/assets/hbm/textures/items/rbmk_pellet_thmeu.png new file mode 100644 index 0000000000000000000000000000000000000000..522fae02c48b29fe4d5ba1c3974f27b6735a5542 GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfyU#$>waD(l~%DN!61!jjS2?t?@E>np9yW#v}tNpaTO5c))h)h)KT&N7q;b6 z_}M*kzZ-Hh@1JI1tMhcnif_9Q?=0Sy&UH>Lc+N$RhA%~o8oL}8N#?Pg-u32tVMy~9 zGYw|v>sRBps`X`k4inxG(A64bWl<8l?zr;2DYw?I+Uh95!my?$zIxu29P`&@5 n0ll3w`B!p>tdjgAZ_D^e$w~G13)wWFFBv>t{an^LB{Ts52%m1E literal 0 HcmV?d00001