From 78089b226585e916d6f3405785f1199058a02421 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 18 Apr 2025 07:49:30 +0200 Subject: [PATCH] yesterday's shit buffet --- src/main/java/com/hbm/items/ItemEnums.java | 6 +- src/main/java/com/hbm/items/ModItems.java | 4 +- src/main/java/com/hbm/main/NEIConfig.java | 3 + .../hbm/render/loader/ModelRendererObj.java | 47 +++------ .../com/hbm/render/model/ModelArmorBase.java | 90 +++++------------- .../hbm/world/biome/BiomeGenNoMansLand.java | 13 ++- src/main/resources/assets/hbm/lang/de_DE.lang | 10 ++ src/main/resources/assets/hbm/lang/en_US.lang | 10 ++ .../hbm/textures/items/ingot_metal.bar.png | Bin 0 -> 476 bytes .../hbm/textures/items/ingot_metal.beacon.png | Bin 0 -> 529 bytes .../hbm/textures/items/ingot_metal.casing.png | Bin 0 -> 596 bytes .../textures/items/ingot_metal.clockwork.png | Bin 0 -> 526 bytes .../textures/items/ingot_metal.counter.png | Bin 0 -> 467 bytes .../textures/items/ingot_metal.detector.png | Bin 0 -> 466 bytes .../hbm/textures/items/ingot_metal.ingot.png | Bin 0 -> 552 bytes .../hbm/textures/items/ingot_metal.key.png | Bin 0 -> 391 bytes .../hbm/textures/items/item_secret.folly.png | Bin 0 -> 431 bytes 17 files changed, 82 insertions(+), 101 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_metal.bar.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_metal.beacon.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_metal.casing.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_metal.clockwork.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_metal.counter.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_metal.detector.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_metal.ingot.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_metal.key.png create mode 100644 src/main/resources/assets/hbm/textures/items/item_secret.folly.png diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index e832c102a..18878469c 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -79,10 +79,14 @@ public class ItemEnums { } public static enum EnumSecretType { - CANISTER, CONTROLLER, SELENIUM_STEEL, ABERRATOR + CANISTER, CONTROLLER, SELENIUM_STEEL, ABERRATOR, FOLLY } public static enum EnumCasingType { SMALL, LARGE, SMALL_STEEL, LARGE_STEEL, SHOTSHELL, BUCKSHOT, BUCKSHOT_ADVANCED } + + public static enum EnumIngotMetal { + INGOT, COUNTER, KEY, BEACON, CASING, CLOCKWORK, BAR, DETECTOR + } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 13595166f..bd3a08cd6 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -343,6 +343,7 @@ public class ModItems { public static Item safety_fuse; public static Item part_generic; public static Item item_secret; + public static Item ingot_metal; public static Item chemical_dye; public static Item crayon; @@ -2369,6 +2370,7 @@ public class ModItems { safety_fuse = new Item().setUnlocalizedName("safety_fuse").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":safety_fuse"); part_generic = new ItemGenericPart().setUnlocalizedName("part_generic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_generic"); item_secret = new ItemEnumMulti(EnumSecretType.class, true, true).setUnlocalizedName("item_secret").setCreativeTab(null).setTextureName(RefStrings.MODID + ":item_secret"); + ingot_metal = new ItemEnumMulti(EnumIngotMetal.class, true, true).setUnlocalizedName("ingot_metal").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ingot_metal"); chemical_dye = new ItemChemicalDye().setUnlocalizedName("chemical_dye").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chemical_dye"); crayon = new ItemCrayon().setUnlocalizedName("crayon").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crayon"); @@ -2433,7 +2435,6 @@ public class ModItems { ingot_bakelite = new ItemCustomLore().setUnlocalizedName("ingot_bakelite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bakelite"); ingot_biorubber = new ItemCustomLore().setUnlocalizedName("ingot_biorubber").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_biorubber"); ingot_rubber = new ItemCustomLore().setUnlocalizedName("ingot_rubber").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_rubber"); - //ingot_pet = new ItemCustomLore().setUnlocalizedName("ingot_pet").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pet"); ingot_pc = new ItemCustomLore().setUnlocalizedName("ingot_pc").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pc"); ingot_pvc = new ItemCustomLore().setUnlocalizedName("ingot_pvc").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pvc"); ingot_desh = new ItemCustomLore().setUnlocalizedName("ingot_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_desh"); @@ -5574,6 +5575,7 @@ public class ModItems { GameRegistry.registerItem(crayon, crayon.getUnlocalizedName()); GameRegistry.registerItem(part_generic, part_generic.getUnlocalizedName()); GameRegistry.registerItem(item_secret, item_secret.getUnlocalizedName()); + GameRegistry.registerItem(ingot_metal, ingot_metal.getUnlocalizedName()); GameRegistry.registerItem(parts_legendary, parts_legendary.getUnlocalizedName()); GameRegistry.registerItem(gear_large, gear_large.getUnlocalizedName()); GameRegistry.registerItem(sawblade, sawblade.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 3e8c4df68..9abd3dfe0 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -10,6 +10,7 @@ import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie; import com.hbm.config.ClientConfig; import com.hbm.config.CustomMachineConfigJSON; import com.hbm.handler.nei.CustomMachineHandler; +import com.hbm.items.ItemEnums.EnumIngotMetal; import com.hbm.items.ItemEnums.EnumSecretType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; @@ -42,6 +43,8 @@ public class NEIConfig implements IConfigureNEI { for(int i = 0; i < EnumAmmoSecret.values().length; i++) API.hideItem(new ItemStack(ModItems.ammo_secret, 1, i)); for(int i = 0; i < EnumSecretType.values().length; i++) API.hideItem(new ItemStack(ModItems.item_secret, 1, i)); } + + for(int i = 0; i < EnumIngotMetal.values().length; i++) API.hideItem(new ItemStack(ModItems.ingot_metal, 1, i)); //Some things are even beyond my control...or are they? API.hideItem(ItemBattery.getEmptyBattery(ModItems.memory)); diff --git a/src/main/java/com/hbm/render/loader/ModelRendererObj.java b/src/main/java/com/hbm/render/loader/ModelRendererObj.java index b7e85a58d..93184ddac 100644 --- a/src/main/java/com/hbm/render/loader/ModelRendererObj.java +++ b/src/main/java/com/hbm/render/loader/ModelRendererObj.java @@ -60,15 +60,15 @@ public class ModelRendererObj { } public void copyRotationFrom(ModelRenderer model) { - /*offsetX = model.offsetX; + offsetX = model.offsetX; offsetY = model.offsetY; - offsetZ = model.offsetZ;*/ + offsetZ = model.offsetZ; rotateAngleX = model.rotateAngleX; rotateAngleY = model.rotateAngleY; rotateAngleZ = model.rotateAngleZ; - /*rotationPointX = model.rotationPointX; + rotationPointX = model.rotationPointX; rotationPointY = model.rotationPointY; - rotationPointZ = model.rotationPointZ;*/ + rotationPointZ = model.rotationPointZ; } @SideOnly(Side.CLIENT) @@ -79,23 +79,14 @@ public class ModelRendererObj { GL11.glPushMatrix(); - GL11.glTranslatef(this.offsetX * scale, this.offsetY * scale, this.offsetZ * scale); - GL11.glTranslatef(this.rotationPointX * scale, this.rotationPointY * scale, this.rotationPointZ * scale); - if(this.rotateAngleZ != 0.0F) { - GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F); - } + if(this.rotateAngleZ != 0.0F) GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F); + if(this.rotateAngleY != 0.0F) GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F); + if(this.rotateAngleX != 0.0F) GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F); - if(this.rotateAngleY != 0.0F) { - GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F); - } - - if(this.rotateAngleX != 0.0F) { - GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F); - } - - GL11.glTranslatef(-this.rotationPointX * scale, -this.rotationPointY * scale, -this.originPointZ * scale); //yes, that is correct + GL11.glTranslatef(-this.rotationPointX * scale, -this.originPointY * scale, -this.originPointZ * scale); + GL11.glTranslatef(-this.offsetX * scale, -this.offsetY * scale, -this.offsetZ * scale); GL11.glScalef(scale, scale, scale); @@ -111,26 +102,18 @@ public class ModelRendererObj { } @SideOnly(Side.CLIENT) - public void postRender(float p_78794_1_) { + public void postRender(float scale) { if(this.rotateAngleX == 0.0F && this.rotateAngleY == 0.0F && this.rotateAngleZ == 0.0F) { if(this.rotationPointX != 0.0F || this.rotationPointY != 0.0F || this.rotationPointZ != 0.0F) { - GL11.glTranslatef(this.rotationPointX * p_78794_1_, this.rotationPointY * p_78794_1_, this.rotationPointZ * p_78794_1_); + GL11.glTranslatef(this.rotationPointX * scale, this.rotationPointY * scale, this.rotationPointZ * scale); } } else { - GL11.glTranslatef(this.rotationPointX * p_78794_1_, this.rotationPointY * p_78794_1_, this.rotationPointZ * p_78794_1_); + GL11.glTranslatef(this.rotationPointX * scale, this.rotationPointY * scale, this.rotationPointZ * scale); - if(this.rotateAngleZ != 0.0F) { - GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F); - } - - if(this.rotateAngleY != 0.0F) { - GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F); - } - - if(this.rotateAngleX != 0.0F) { - GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F); - } + if(this.rotateAngleZ != 0.0F) GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F); + if(this.rotateAngleY != 0.0F) GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F); + if(this.rotateAngleX != 0.0F) GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F); } } } diff --git a/src/main/java/com/hbm/render/model/ModelArmorBase.java b/src/main/java/com/hbm/render/model/ModelArmorBase.java index 4408f39df..7b188342b 100644 --- a/src/main/java/com/hbm/render/model/ModelArmorBase.java +++ b/src/main/java/com/hbm/render/model/ModelArmorBase.java @@ -1,6 +1,5 @@ package com.hbm.render.model; -import com.hbm.interfaces.IHoldableWeapon; import com.hbm.render.loader.ModelRendererObj; import net.minecraft.client.Minecraft; @@ -10,8 +9,6 @@ import net.minecraft.client.renderer.entity.RenderBiped; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; @@ -51,68 +48,31 @@ public class ModelArmorBase extends ModelBiped { RenderPlayer renderPlayer = (RenderPlayer) render; this.copyPropertiesFromBiped(renderPlayer.modelBipedMain); calculateRotations = false; + } else if(render instanceof RenderBiped) { RenderBiped renderBiped = (RenderBiped) render; this.copyPropertiesFromBiped(renderBiped.modelBipedMain); calculateRotations = false; } - this.rightFoot.rotateAngleX = this.rightLeg.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount; - this.leftFoot.rotateAngleX = this.leftLeg.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 1.4F * limbSwingAmount; - this.rightFoot.rotateAngleY = this.rightLeg.rotateAngleY = 0.0F; - this.leftFoot.rotateAngleY = this.leftLeg.rotateAngleY = 0.0F; - - if(entity instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) entity; - - this.aimedBow = false; - - if(player.getHeldItem() != null) { - - int hold = 1; - - if(player.getItemInUseCount() > 0) { - - EnumAction action = player.getHeldItem().getItemUseAction(); - - if(action == EnumAction.block) - hold = 3; - - if(action == EnumAction.bow) - this.aimedBow = true; - } - - if(player.getHeldItem().getItem() instanceof IHoldableWeapon) - this.aimedBow = true; - - if(calculateRotations) - this.rightArm.rotateAngleX = this.rightArm.rotateAngleX * 0.5F - ((float) Math.PI / 10F) * hold; - } - } - - this.isSneak = entity.isSneaking(); - this.isRiding = entity.isRiding(); - - if(this.isRiding) { - this.rightFoot.rotateAngleX = this.rightLeg.rotateAngleX = -((float) Math.PI * 2F / 5F); - this.leftFoot.rotateAngleX = this.leftLeg.rotateAngleX = -((float) Math.PI * 2F / 5F); - this.rightFoot.rotateAngleY = this.rightLeg.rotateAngleY = ((float) Math.PI / 10F); - this.leftFoot.rotateAngleY = this.leftLeg.rotateAngleY = -((float) Math.PI / 10F); - } - - if(this.isSneak) { - this.rightFoot.offsetZ = this.rightLeg.offsetZ = 4.0F; - this.leftFoot.offsetZ = this.leftLeg.offsetZ = 4.0F; - this.rightFoot.offsetY = this.rightLeg.offsetY = -3.0F; - this.leftFoot.offsetY = this.leftLeg.offsetY = -3.0F; - } else { - this.rightFoot.offsetZ = this.rightLeg.offsetZ = 0.1F; - this.leftFoot.offsetZ = this.leftLeg.offsetZ = 0.1F; - this.rightFoot.offsetY = this.rightLeg.offsetY = 0.0F; - this.leftFoot.offsetY = this.leftLeg.offsetY = 0.0F; - } - + /// FALLBACK /// if(calculateRotations) { + + this.isSneak = entity.isSneaking(); + this.isRiding = entity.isRiding(); + + if(this.isSneak) { + this.rightFoot.offsetZ = this.rightLeg.offsetZ = 4.0F; + this.leftFoot.offsetZ = this.leftLeg.offsetZ = 4.0F; + this.rightFoot.offsetY = this.rightLeg.offsetY = -3.0F; + this.leftFoot.offsetY = this.leftLeg.offsetY = -3.0F; + } else { + this.rightFoot.offsetZ = this.rightLeg.offsetZ = 0.1F; + this.leftFoot.offsetZ = this.leftLeg.offsetZ = 0.1F; + this.rightFoot.offsetY = this.rightLeg.offsetY = 0.0F; + this.leftFoot.offsetY = this.leftLeg.offsetY = 0.0F; + } + this.head.rotateAngleY = netHeadYaw / (180F / (float) Math.PI); this.head.rotateAngleX = headPitch / (180F / (float) Math.PI); this.rightArm.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 2.0F * limbSwingAmount * 0.5F; @@ -194,20 +154,22 @@ public class ModelArmorBase extends ModelBiped { } protected static void bindTexture(ResourceLocation location) { - Minecraft.getMinecraft().renderEngine.bindTexture(location); } private void copyPropertiesFromBiped(ModelBiped modelBiped) { this.head.copyRotationFrom(modelBiped.bipedHead); - this.head.offsetY = modelBiped.bipedHead.offsetY; this.body.copyRotationFrom(modelBiped.bipedBody); this.leftArm.copyRotationFrom(modelBiped.bipedLeftArm); - this.leftArm.rotationPointX = modelBiped.bipedLeftArm.rotationPointX; - this.leftArm.rotationPointZ = modelBiped.bipedLeftArm.rotationPointZ; this.rightArm.copyRotationFrom(modelBiped.bipedRightArm); - this.rightArm.rotationPointX = modelBiped.bipedRightArm.rotationPointX; - this.rightArm.rotationPointZ = modelBiped.bipedRightArm.rotationPointZ; + this.leftLeg.copyRotationFrom(modelBiped.bipedLeftLeg); + this.rightLeg.copyRotationFrom(modelBiped.bipedRightLeg); + this.leftFoot.copyRotationFrom(modelBiped.bipedLeftLeg); + this.rightFoot.copyRotationFrom(modelBiped.bipedRightLeg); + // compat crap + this.aimedBow = modelBiped.aimedBow; + this.isSneak = modelBiped.isSneak; + this.isRiding = modelBiped.isRiding; } } diff --git a/src/main/java/com/hbm/world/biome/BiomeGenNoMansLand.java b/src/main/java/com/hbm/world/biome/BiomeGenNoMansLand.java index ec87dc3d4..42dd104af 100644 --- a/src/main/java/com/hbm/world/biome/BiomeGenNoMansLand.java +++ b/src/main/java/com/hbm/world/biome/BiomeGenNoMansLand.java @@ -18,9 +18,10 @@ import net.minecraftforge.common.BiomeManager.BiomeType; public class BiomeGenNoMansLand extends BiomeGenBase { - public static final BiomeGenBase noMansLand = new BiomeGenNoMansLand(99).setBiomeName("No Man's Land"); public static final List EMPTY_LIST = new ArrayList(0); - public static final List HOSTILE_LIST = new ArrayList(0); + public static final List HOSTILE_LIST = new ArrayList(1); + + public static final BiomeGenBase noMansLand = new BiomeGenNoMansLand(99).setBiomeName("No Man's Land"); public static void initDictionary() { BiomeDictionary.registerBiomeType(noMansLand, DEAD, PLAINS, WASTELAND); @@ -45,7 +46,13 @@ public class BiomeGenNoMansLand extends BiomeGenBase { @Override public List getSpawnableList(EnumCreatureType type) { - if(type == type.monster) return this.HOSTILE_LIST; + if(type == type.monster) { + if(this.HOSTILE_LIST.size() != 1) { + this.HOSTILE_LIST.clear(); + this.HOSTILE_LIST.add(new BiomeGenBase.SpawnListEntry(EntityUndeadSoldier.class, 1, 4, 6)); + } + return this.HOSTILE_LIST; + } if(!EMPTY_LIST.isEmpty()) EMPTY_LIST.clear(); return EMPTY_LIST; } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 61a1aa941..2ccd162bc 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2222,6 +2222,15 @@ item.ingot_lanthanium.name=Semistabiler Lanthanbarren item.ingot_lead.name=Bleibarren item.ingot_les.name=Schwach angereicherter Schrabidiumkernbrennstoffbarren item.ingot_magnetized_tungsten.name=Magnetisierter Wolframbarren +item.ingot_metal.name=Metallbarren +item.ingot_metal.bar.name=Metallstange +item.ingot_metal.beacon.name=Funkleitstrahl +item.ingot_metal.casing.name=Metallgehäuse +item.ingot_metal.clockwork.name=Uhrwerk +item.ingot_metal.counter.name=Zählwerk +item.ingot_metal.detector.name=Detektor +item.ingot_metal.ingot.name=Metallbarren +item.ingot_metal.key.name=Metallschlüssel item.ingot_meteorite.name=Meteoritenbarren item.ingot_meteorite_forged.name=Geschmiedeter Meteoritenbarren item.ingot_mox_fuel.name=MOX-Kernbrennstoffbarren @@ -2296,6 +2305,7 @@ item.insert_yharonite.name=Yharoniteinlage item.item_secret.aberrator.name=Aberrator-Teil item.item_secret.canister.name=Komposit SB-26 item.item_secret.controller.name=Proprietäre Steuereinheit +item.item_secret.folly.name=Folly-Teil item.item_secret.selenium_steel.name=Selen-Stahl item.iv_blood.name=Blutbeutel item.iv_empty.name=Infusionsbeutel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c0560a40d..16da79af3 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3043,6 +3043,15 @@ item.ingot_lanthanium.desc.P11=Actually Lanthanum, but whatever. item.ingot_lead.name=Lead Ingot item.ingot_les.name=Low Enriched Schrabidium Fuel Ingot item.ingot_magnetized_tungsten.name=Magnetized Tungsten Ingot +item.ingot_metal.name=Metal Ingot +item.ingot_metal.bar.name=Metal Bar +item.ingot_metal.beacon.name=Radio Homing Beacon +item.ingot_metal.casing.name=Metal Casing +item.ingot_metal.clockwork.name=Clockwork +item.ingot_metal.counter.name=Counter +item.ingot_metal.detector.name=Detector +item.ingot_metal.ingot.name=Metal Ingot +item.ingot_metal.key.name=Metal Key item.ingot_meteorite.name=Meteorite Ingot item.ingot_meteorite_forged.name=Forged Meteorite Ingot item.ingot_mox_fuel.name=Ingot of MOX Fuel @@ -3123,6 +3132,7 @@ item.insert_yharonite.name=Yharonite Insert item.item_secret.aberrator.name=Aberrator Part item.item_secret.canister.name=Composition SB-26 item.item_secret.controller.name=Proprietary Control Unit +item.item_secret.folly.name=Folly Part item.item_secret.selenium_steel.name=Selenium Steel item.iv_blood.name=Blood Bag item.iv_empty.name=IV Bag diff --git a/src/main/resources/assets/hbm/textures/items/ingot_metal.bar.png b/src/main/resources/assets/hbm/textures/items/ingot_metal.bar.png new file mode 100644 index 0000000000000000000000000000000000000000..5db5d3348b1a39ac7f38f04da5e7749e4d877158 GIT binary patch literal 476 zcmV<20VDp2P)GW zt^uwbAxRR^E6d#R7MNR{VZP$AwzkT%tql(LK9nL;O-!D~qT>xzHKbl&=k1$Ud_2rc z;Pm*2-q+llIzp1{h;C~*6Y8}GyngW#_c_N}3qar65}xQF*^WgwHLALV6c@ZVDaX#y zx0ZXg8d;VxD2hu=*+H_qDLRf(^HuIwAM(zm44lJS%lb-7&@t>wtw+A<>O9-Q06O&N*;w zkVqsX5D3UoylI+Zn&w};yIE+OhG7^Ki^Z0KR4OHo;~e?e^=G50;@+K`a-q9RYEBhh z*Rd??&;$Dld?#FNsV5nX^wB>!Cid6wL@)00ZT$zb>+taY81EMr4_A;L9~F<^gWm%? zbs?EZ!cGa=+j#nXf+rIhrlzwr8VyEQg3o(sWNm2#zy`dgj=x=W$#0;s~K!;9&+L4bHq_nI4^ z4lEZoST1aE+2}H$y)ud-D8YjtqP#H T7R|@}00000NkvXXu0mjf?$h?3 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ingot_metal.casing.png b/src/main/resources/assets/hbm/textures/items/ingot_metal.casing.png new file mode 100644 index 0000000000000000000000000000000000000000..e4cff45b98e359c61a18eabc754a9c9d1347f86e GIT binary patch literal 596 zcmV-a0;~OrP)AjKy`SHp)8nA0Oihkc zTzUeD1Q0lR{mlYrmq_Y!vRS)PuEd*dZpN3vE z1ensh7L5BdIgGhU_|?O6TaW}=mxgQxf)J)ghJY{CW3d?37|OT^-8kgN;*gF(s1U?x z1tFPK97v*$OUIY%L8?}(gLDB96U8+F6SvW1;&zsr8zF9;v}r>3Y#8O6$g(U|y?Bv_ i`5Cr9?%cTdulfzxpVp!o3$JjHczhl}ZhS zg#JA^jsrkUDMCjrjI$AOhkCIS)x!VNH${~`&0$6va%%Z>ut2wFd4_+tHO^k z$Zy(5LV7C6en&7(6M)0RFXVF1RFJ@V`n-=D3*&#PVq8e^-u=i(Ji!OgV}3r%tZA}c zD$(>b?v96TKb9cDi+otAzb9e5d^*hYuC05rq`RaL8 znoSi3=!z^xVsUnN_v!xX(K`4>2W|C;8apH9`ZLQDHp51}N&v(ub|0Vu5*=$z1 zuFDGnv3M_Zx_mx!h!2khVeu?ZE|(LL-=>&YS5*#RNg-`hi;eL)LrZ0>#t z2nvNfNq;avF=BuVcZ$;X7M=D3J-WcTQ%EVP)oP?t!=O9>f(rEq%GENJ@8_7)6CebG zeF@g{7AezYHl1eMwwa&LVD#%;J5Az7^yxso?NgCe%()qk56d(?pM^|`J zGveDfOUmzy1JElV2FS1*>|$up^1;`T7vHFbeJpF|`9J@0Jp!sDm$Kjvk2?SW002ov JPDHLkV1h2P%d-Fg literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ingot_metal.detector.png b/src/main/resources/assets/hbm/textures/items/ingot_metal.detector.png new file mode 100644 index 0000000000000000000000000000000000000000..04e70b7067d6dc14bca96977138bc915f7215761 GIT binary patch literal 466 zcmV;@0WJQCP){1Gl_%#{LIuzQDl?j&o*Q7Y{q8CBY}Ph600+ZZB!5-_ zAy9xy;o5V6=zoQ=-iE!tN{od#G#$#0GQQhfx#L9EZY{ErVTYQ6!jAXPEU`C&c&cPc+ey8 z<}ifReC*d6rwo1cdPgFW-$hc1KSjPX|3&rzkB!F2w=p(80rt3s+c$dd@&Et;07*qo IM6N<$f=D97UH||9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ingot_metal.ingot.png b/src/main/resources/assets/hbm/textures/items/ingot_metal.ingot.png new file mode 100644 index 0000000000000000000000000000000000000000..1e84401a9b855294dcc3e79b4041447b5675bc0e GIT binary patch literal 552 zcmV+@0@wYCP))II};?@|$?TCf&T{6 zG?i(Z>hND2C+*#(Qi-^n@bzblH_MHE@5q2@7)l+Ggb-vh836q4E%1HX8!eU^e@7%h zp>R%hIxYakxj6)Ib#|6iNWgGJ*8>l*e4lg>mE&5OY`j~dSivI z>oB&^vuD5=kxHgu*JE=$;pW0Tbow9#)n|`!+YXYx1yML_sEZdaL0EEc@geKA8u^6<=x&0icvP*T#U!pj zhOIutB~ikNh{o!NI-*cGt%|uKoQeYjDmQLXefk8eJHl}srey#r6?mX!3_?Lc&r^(S zn=j2ZBm}Xi6q;?}4;8OhnhZuEy3RIwBnaUE(c}!87Ulc54lAo`03=QX`0?8kvf11a z+3XcXRH03Wi0KjRWg7uRW7G8dKJQ=Fv3DnoCSX~X0I&{sP%d9rxRSJyWZ>=aqSn}N qV^2Dk^87WGh{shTkvNjYU7{z~)PCkG!8N`3Zp>@6r6&+k7(xKqumrogep{5B`lT%aWF5$)vuS z;SdA?K@ecub|Q!}`Vc}$RaIGEOLOjCD&tIl0H?=CayA969z6T^XiGZj>?V%mOoc=X zrdg1*yR0s(@aR{WTh>WuGC0oJL`c*@sdTM`Z%tm>A-8u`C46lX)SkGo6BfI_yAc_7 zgpdWpki`ktnVNB12)Q_~lFe-a9r*mB+mRGKFILI@U*&`}&AbFOKr_ul>7FErW*+QG zKy&+129Uf2NW}q!?;ij-o~OI6TMudvv>QEO6oo%!*#`)MXd_4zth5{u>;hY-5led?z(*Ja*&^?- zF>GbGKEQxwwhcCc_!9{65wguraEw;Fx0+$*eD|I+1AnaAvjgAv3%#DrW>4?cpNRm3 z5X5m@?iY)dac%&7-!Fs^2Bh6?8)DlYRv<5Wp*v}a>$(6;r&E%oURYL>{r;F#5qW-LKA!-PBne8XY6d|Nl%BWSh(@DDqtODuak>?u0f^(6j>d49ohx&SDp$~#X(Tr5_FWi^SSkbZx}d_E~VkH=$_QY@ECLsP#M+xDs@l;8Y0N{CEO+)T&lz`3Vy_RKX