From b7641dcd54c57702c8e95c7d925a1f515ff567ab Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 18 Jul 2025 23:34:43 +0200 Subject: [PATCH] now's your chance to take a [BIG SHIT] --- changelog | 25 ++++++++++++- .../java/com/hbm/crafting/ToolRecipes.java | 2 +- .../java/com/hbm/handler/CompatHandler.java | 2 -- .../gui/GUIScreenTemplateFolder.java | 19 ---------- .../recipes/AssemblyMachineRecipes.java | 25 ++++++++++++- .../recipes/ChemicalPlantRecipes.java | 15 -------- .../com/hbm/itempool/ItemPoolsLegacy.java | 2 -- src/main/java/com/hbm/items/ModItems.java | 20 +++++++---- .../items/machine/ItemAssemblyTemplate.java | 5 ++- .../com/hbm/items/machine/ItemBlueprints.java | 14 ++++++-- .../hbm/items/machine/ItemChemistryIcon.java | 1 + .../items/machine/ItemChemistryTemplate.java | 5 ++- .../com/hbm/items/machine/ItemFluidTank.java | 33 ++++++------------ .../weapon/sedna/factory/Orchestras.java | 9 ++++- .../weapon/sedna/factory/XFactory12ga.java | 2 +- .../machine/ModuleMachineAssembler.java | 9 +++++ .../tileentity/RenderAssemblyMachine.java | 3 -- .../TileEntityMachineAssemblyMachine.java | 14 ++++++-- .../TileEntityMachineChemicalFactory.java | 14 +++++++- .../TileEntityMachineChemicalPlant.java | 10 +++++- src/main/java/com/hbm/util/ShadyUtil.java | 4 +-- .../gen/util/LogicBlockInteractions.java | 6 ---- src/main/resources/assets/hbm/lang/de_DE.lang | 8 +++-- src/main/resources/assets/hbm/lang/en_US.lang | 8 +++-- src/main/resources/assets/hbm/sounds.json | 1 + .../assets/hbm/sounds/weapon/hkShoot.ogg | Bin 0 -> 13919 bytes .../assets/hbm/textures/items/fluid_pack.png | Bin 0 -> 477 bytes .../hbm/textures/items/fluid_pack_overlay.png | Bin 0 -> 201 bytes .../hbm/textures/items/fluid_tank_lead.png | Bin 262 -> 289 bytes .../items/fluid_tank_lead_overlay.png | Bin 132 -> 180 bytes 30 files changed, 154 insertions(+), 102 deletions(-) create mode 100644 src/main/resources/assets/hbm/sounds/weapon/hkShoot.ogg create mode 100644 src/main/resources/assets/hbm/textures/items/fluid_pack.png create mode 100644 src/main/resources/assets/hbm/textures/items/fluid_pack_overlay.png diff --git a/changelog b/changelog index 00743753b..07f6038d5 100644 --- a/changelog +++ b/changelog @@ -9,8 +9,18 @@ * Replace the journals * Instead of opening them and making a template, they act as a multi template * Blueprints need to remain in the slot, removing them will disable the recipes again +* More paintables + * Paintable pneumatic tube + * Behaves the exact same as a regular pneumatic tube + * Can also be used as in and outputs + * Full block + * Paintable OpenComputers cable + * Only enabled if OpenComputers is installed + * Full block + * Also supports OC wire colors ## Changed +* Updated chinese and ukrainian localization * Removed levitation unit * Many of NTM's regular building blocks now have forge microblock support * RBMK crane models now conform to the dimensions of the room they're in @@ -19,9 +29,22 @@ * Electric attacks (i.e. tesla cannon) are now in the "energy damage" category * This means that armors that have energy resistance actually properly work against the tesla cannon * Heavy components are being deprecated +* Flow control pumps can now be interfaced with OpenComputers +* The electrolyzer now remembers the last visited GUI screen +* Retextured many fluid containers such as universal tanks, canisters and gas tanks +* Removed the legacy assembler and chemical plant recipes from the template folder +* Removed journals from various loot pools +* Drinking whiskey now gives strength III, resistance III and nausea +* Chemical artillery shell recipes have now been moved to the assembler +* The chemical plant and factory now scale their max power based on the recipe, similar to how the arc welder works +* The chemical plant's default max power is now 100kHE again instead of 1MHE ## Fixed * Fixed gas centrifuge sound persisting when broken or when unloaded * Fixed all centrifuge sounds trying to play even when the player is far away, using up audio slots * Fixed guns that don't have durability always displaying a condition of 0% -* Fixed GL state leak caused by skeletons \ No newline at end of file +* Fixed GL state leak caused by skeletons +* Fixed OpenComputers integration for the CCGT +* Fixed rotated RBMK consoles not behaving correctly when trying to change rod insertion levels +* Fixed crash caused by piston inserters on servers +* Fixed flare gun not having a firing sound diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index de9dc346f..b01ee10cf 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -113,7 +113,7 @@ public class ToolRecipes { //Utility CraftingManager.addRecipeAuto(new ItemStack(ModItems.rangefinder, 1), new Object[] { "GRC", " S", 'G', KEY_ANYPANE, 'R', REDSTONE.dust(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'S' ,STEEL.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator, 1), new Object[] { " A", "#B#", "#B#", '#', IRON.plate(), 'A', STEEL.plate(), 'B', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator, 1), new Object[] { " A", "#B#", "#B#", '#', ANY_PLASTIC.ingot(), 'A', STEEL.plate(), 'B', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.designator_range, 1), new Object[] { ModItems.rangefinder, ModItems.designator, ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_manual, 1), new Object[] { " A", "#C#", "#B#", '#', ANY_PLASTIC.ingot(), 'A', PB.plate(), 'B', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'C', ModItems.designator }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.designator_arty_range, 1), new Object[] { ModItems.rangefinder, DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), ANY_PLASTIC.ingot() }); diff --git a/src/main/java/com/hbm/handler/CompatHandler.java b/src/main/java/com/hbm/handler/CompatHandler.java index ac4bbe114..feb113b7a 100644 --- a/src/main/java/com/hbm/handler/CompatHandler.java +++ b/src/main/java/com/hbm/handler/CompatHandler.java @@ -1,7 +1,6 @@ package com.hbm.handler; import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.network.BlockOpenComputersCablePaintable; import com.hbm.inventory.RecipesCommon; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -17,7 +16,6 @@ import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.*; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.oredict.OreDictionary; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index 134b83c75..aebfa05ee 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -10,16 +10,11 @@ import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; -import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.AssemblerRecipes; -import com.hbm.inventory.recipes.AssemblerRecipes.AssemblerRecipe; -import com.hbm.inventory.recipes.ChemplantRecipes; -import com.hbm.inventory.recipes.ChemplantRecipes.ChemRecipe; import com.hbm.inventory.recipes.CrucibleRecipes; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemCassette; import com.hbm.items.machine.ItemStamp; import com.hbm.items.machine.ItemStamp.StampType; @@ -83,22 +78,8 @@ public class GUIScreenTemplateFolder extends GuiScreen { } } } - - // Assembly Templates - for(int i = 0; i < AssemblerRecipes.recipeList.size(); i++) { - ComparableStack comp = AssemblerRecipes.recipeList.get(i); - AssemblerRecipe recipe = AssemblerRecipes.recipes.get(comp); - if(recipe != null && recipe.folders.contains(item)) { - allStacks.add(ItemAssemblyTemplate.writeType(new ItemStack(ModItems.assembly_template, 1, i), comp)); - } - } if(!this.isJournal) { - // Chemistry Templates - for(int i = 0; i < ChemplantRecipes.recipes.size(); i++) { - ChemRecipe chem = ChemplantRecipes.recipes.get(i); - allStacks.add(new ItemStack(ModItems.chemistry_template, 1, chem.getId())); - } // Crucible Templates for(int i = 0; i < CrucibleRecipes.recipes.size(); i++) { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java index c6e98b525..a8444a256 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java @@ -16,6 +16,7 @@ import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.material.Mats; import com.hbm.inventory.recipes.loader.GenericRecipe; @@ -233,7 +234,7 @@ public class AssemblyMachineRecipes extends GenericRecipes { this.register(new GenericRecipe("ass.epress").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_epress, 1)) .inputItems(new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC))); this.register(new GenericRecipe("ass.fel").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_fel, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(ALLOY.wireDense(), 64), new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC))); + .inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(ALLOY.wireDense(), 64), new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.part_generic, 4, EnumPartType.GLASS_POLARIZED), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC))); this.register(new GenericRecipe("ass.silex").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_silex, 1)) .inputItems(new ComparableStack(ModBlocks.glass_quartz, 16), new OreDictStack(STEEL.plateCast(), 8), new OreDictStack(DESH.ingot(), 4), new OreDictStack(RUBBER.ingot(), 8), new OreDictStack(STEEL.pipe(), 8))); this.register(new GenericRecipe("ass.excavator").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_excavator, 1)) @@ -669,6 +670,15 @@ public class AssemblyMachineRecipes extends GenericRecipes { this.register(new GenericRecipe("ass.50bmgbypass").setup(100, 100).outputItems(new ItemStack(ModItems.ammo_secret, 12, EnumAmmoSecret.BMG50_BLACK.ordinal())) .inputItems(new ComparableStack(ModItems.casing, 2, EnumCasingType.LARGE_STEEL), new OreDictStack(ANY_SMOKELESS.dust(), 24), new ComparableStack(ModItems.item_secret, 1, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.black_diamond)) .setPools(GenericRecipes.POOL_PREFIX_SECRET + "psalm")); + this.register(new GenericRecipe("chem.shellchlorine").setup(100, 1_000).outputItems(new ItemStack(ModItems.ammo_arty, 1, 9)) + .inputItems(new ComparableStack(ModItems.ammo_arty, 1, 0), new OreDictStack(ANY_PLASTIC.ingot(), 1)) + .inputFluids(new FluidStack(Fluids.CHLORINE, 4_000))); + this.register(new GenericRecipe("ass.shellphosgene").setup(100, 1_000).outputItems(new ItemStack(ModItems.ammo_arty, 1, 10)) + .inputItems(new ComparableStack(ModItems.ammo_arty, 1, 0), new OreDictStack(ANY_PLASTIC.ingot(), 1)) + .inputFluids(new FluidStack(Fluids.PHOSGENE, 4_000))); + this.register(new GenericRecipe("ass.shellmustard").setup(100, 1_000).outputItems(new ItemStack(ModItems.ammo_arty, 1, 11)) + .inputItems(new ComparableStack(ModItems.ammo_arty, 1, 0), new OreDictStack(ANY_PLASTIC.ingot(), 1)) + .inputFluids(new FluidStack(Fluids.MUSTARDGAS, 4_000))); // tools this.register(new GenericRecipe("ass.multitool").setup(100, 100).outputItems(new ItemStack(ModItems.multitool_hit, 1)) @@ -773,6 +783,19 @@ public class AssemblyMachineRecipes extends GenericRecipes { new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE), new ComparableStack(ModItems.circuit, 64, EnumCircuitType.CONTROLLER_QUANTUM), new ComparableStack(ModItems.coin_ufo, 1)).setPools(GenericRecipes.POOL_PREFIX_DISCOVER + "gerald")); + + this.register(new GenericRecipe("ass.emptypackage").setup(40, 100).outputItems(new ItemStack(ModItems.fluid_pack_empty, 1)) + .inputItems(new OreDictStack(TI.plate(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2))); + + FluidType[] order = Fluids.getInNiceOrder(); + for(int i = 1; i < order.length; ++i) { + FluidType type = order[i]; + if(type.hasNoContainer()) continue; + this.register(new GenericRecipe("ass.package" + type.getUnlocalizedName()).setup(100, 100).outputItems(new ItemStack(ModItems.fluid_pack_full, 1, type.getID())) + .inputItems(new ComparableStack(ModItems.fluid_pack_empty)).inputFluids(new FluidStack(type, 32_000))); + this.register(new GenericRecipe("ass.unpackage" + type.getUnlocalizedName()).setup(100, 100).setIcon(ItemFluidIcon.make(type, 32_000)).outputItems(new ItemStack(ModItems.fluid_pack_empty)) + .inputItems(new ComparableStack(ModItems.fluid_pack_full, 1, type.getID())).outputFluids(new FluidStack(type, 32_000))); + } if(GeneralConfig.enableMekanismChanges && Loader.isModLoaded("Mekanism")) { Block mb = (Block) Block.blockRegistry.getObject("Mekanism:MachineBlock"); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java index ca4bcc193..4bbf1074c 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java @@ -268,21 +268,6 @@ public class ChemicalPlantRecipes extends GenericRecipes { .inputFluids(new FluidStack(Fluids.UNSATURATEDS, 500, GeneralConfig.enable528 ? 1 : 0)) .outputItems(new ItemStack(ModItems.ingot_c4, 4))); - this.register(new GenericRecipe("chem.shellchlorine").setup(100, 1_000) - .inputItems(new ComparableStack(ModItems.ammo_arty, 1, 0), new OreDictStack(ANY_PLASTIC.ingot(), 1)) - .inputFluids(new FluidStack(Fluids.CHLORINE, 4_000)) - .outputItems(new ItemStack(ModItems.ammo_arty, 1, 9))); - - this.register(new GenericRecipe("chem.shellphosgene").setup(100, 1_000) - .inputItems(new ComparableStack(ModItems.ammo_arty, 1, 0), new OreDictStack(ANY_PLASTIC.ingot(), 1)) - .inputFluids(new FluidStack(Fluids.PHOSGENE, 4_000)) - .outputItems(new ItemStack(ModItems.ammo_arty, 1, 10))); - - this.register(new GenericRecipe("chem.shellmustard").setup(100, 1_000) - .inputItems(new ComparableStack(ModItems.ammo_arty, 1, 0), new OreDictStack(ANY_PLASTIC.ingot(), 1)) - .inputFluids(new FluidStack(Fluids.MUSTARDGAS, 4_000)) - .outputItems(new ItemStack(ModItems.ammo_arty, 1, 11))); - /// GLASS /// this.register(new GenericRecipe("chem.laminate").setup(20, 100) .inputFluids(new FluidStack(Fluids.XYLENE, 50), new FluidStack(Fluids.PHOSGENE, 50)) diff --git a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java index ef3bc5569..289a495e9 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java @@ -130,8 +130,6 @@ public class ItemPoolsLegacy { weighted(ModItems.bomb_caller, 1, 1, 1, 1), weighted(ModItems.bomb_caller, 2, 1, 1, 1), weighted(ModItems.gas_mask_filter, 0, 1, 1, 4), - weighted(ModItems.journal_pip, 0, 1, 1, 1), - weighted(ModItems.journal_bj, 0, 1, 1, 1), weighted(ModItems.launch_code_piece, 0, 1, 1, 1), weighted(ModItems.gun_double_barrel, 0, 1, 1, 1), }; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 3ded60786..41b783fc6 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -844,6 +844,8 @@ public class ModItems { public static Item fluid_barrel_full; public static Item fluid_barrel_empty; public static Item fluid_barrel_infinite; + public static Item fluid_pack_full; + public static Item fluid_pack_empty; public static Item pipette; public static Item pipette_boron; public static Item pipette_laboratory; @@ -1181,12 +1183,12 @@ public class ModItems { public static Item blueprints; public static Item template_folder; - public static Item journal_pip; - public static Item journal_bj; - public static Item journal_silver; - public static Item assembly_template; - public static Item chemistry_template; - public static Item chemistry_icon; + @Deprecated public static Item journal_pip; + @Deprecated public static Item journal_bj; + @Deprecated public static Item journal_silver; + @Deprecated public static Item assembly_template; + @Deprecated public static Item chemistry_template; + @Deprecated public static Item chemistry_icon; public static Item crucible_template; public static Item fluid_identifier; public static Item fluid_identifier_multi; @@ -4115,6 +4117,8 @@ public class ModItems { fluid_barrel_empty = new Item().setUnlocalizedName("fluid_barrel_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); fluid_barrel_full = new ItemFluidTank().setUnlocalizedName("fluid_barrel_full").setContainerItem(ModItems.fluid_barrel_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); fluid_barrel_infinite = new ItemInfiniteFluid(null, 1_000_000_000).setUnlocalizedName("fluid_barrel_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel_infinite"); + fluid_pack_empty = new Item().setUnlocalizedName("fluid_pack_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_pack"); + fluid_pack_full = new ItemFluidTank().setUnlocalizedName("fluid_pack_full").setContainerItem(ModItems.fluid_pack_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_pack"); pipette = new ItemPipette().setUnlocalizedName("pipette").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette"); pipette_boron = new ItemPipette().setUnlocalizedName("pipette_boron").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette_boron"); pipette_laboratory = new ItemPipette().setUnlocalizedName("pipette_laboratory").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette_laboratory"); @@ -5686,6 +5690,10 @@ public class ModItems { GameRegistry.registerItem(fluid_barrel_empty, fluid_barrel_empty.getUnlocalizedName()); GameRegistry.registerItem(fluid_barrel_full, fluid_barrel_full.getUnlocalizedName()); GameRegistry.registerItem(fluid_barrel_infinite, fluid_barrel_infinite.getUnlocalizedName()); + + //Packaged fluids + GameRegistry.registerItem(fluid_pack_empty, fluid_pack_empty.getUnlocalizedName()); + GameRegistry.registerItem(fluid_pack_full, fluid_pack_full.getUnlocalizedName()); //Pipette GameRegistry.registerItem(pipette, pipette.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java index 7a1c26a0b..76f38f7d6 100644 --- a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java @@ -24,6 +24,7 @@ import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; import net.minecraftforge.oredict.OreDictionary; +@Deprecated public class ItemAssemblyTemplate extends Item { @SideOnly(Side.CLIENT) @@ -157,6 +158,7 @@ public class ItemAssemblyTemplate extends Item { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + list.add(EnumChatFormatting.RED + "Deprecated"); if(!(stack.getItem() instanceof ItemAssemblyTemplate)) return; @@ -198,9 +200,6 @@ public class ItemAssemblyTemplate extends Item { a++; } - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("info.templatefolder", String.join(" / ", names))); - list.add(""); - if(out == null) { list.add("I AM ERROR"); return; diff --git a/src/main/java/com/hbm/items/machine/ItemBlueprints.java b/src/main/java/com/hbm/items/machine/ItemBlueprints.java index 84976e8c5..874cfd6f6 100644 --- a/src/main/java/com/hbm/items/machine/ItemBlueprints.java +++ b/src/main/java/com/hbm/items/machine/ItemBlueprints.java @@ -56,13 +56,19 @@ public class ItemBlueprints extends Item { @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tab, List list) { for(Entry> pool : GenericRecipes.blueprintPools.entrySet()) { - list.add(make(pool.getKey())); + String poolName = pool.getKey(); + if(!poolName.startsWith(GenericRecipes.POOL_PREFIX_SECRET)) list.add(make(poolName)); } } @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { if(world.isRemote) return stack; + if(!stack.hasTagCompound()) return stack; + + String poolName = stack.stackTagCompound.getString("pool"); + + if(poolName.startsWith(GenericRecipes.POOL_PREFIX_SECRET)) return stack; if(!player.inventory.hasItem(Items.paper)) return stack; player.inventory.consumeInventoryItem(Items.paper); @@ -94,7 +100,6 @@ public class ItemBlueprints extends Item { @Override @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(EnumChatFormatting.RED + "Right-click to copy (requires paper)"); if(!stack.hasTagCompound()) { return; @@ -106,6 +111,11 @@ public class ItemBlueprints extends Item { if(pool == null || pool.isEmpty()) { return; } + if(poolName.startsWith(GenericRecipes.POOL_PREFIX_SECRET)) { + list.add(EnumChatFormatting.RED + "Cannot be copied!"); + } else { + list.add(EnumChatFormatting.YELLOW + "Right-click to copy (requires paper)"); + } for(String name : pool) { GenericRecipe recipe = GenericRecipes.pooledBlueprints.get(name); diff --git a/src/main/java/com/hbm/items/machine/ItemChemistryIcon.java b/src/main/java/com/hbm/items/machine/ItemChemistryIcon.java index f3e190dc5..41cd901c9 100644 --- a/src/main/java/com/hbm/items/machine/ItemChemistryIcon.java +++ b/src/main/java/com/hbm/items/machine/ItemChemistryIcon.java @@ -15,6 +15,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; +@Deprecated public class ItemChemistryIcon extends Item { @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java index d644a4515..b310805b6 100644 --- a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java @@ -16,6 +16,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.StatCollector; +@Deprecated public class ItemChemistryTemplate extends Item { public ItemChemistryTemplate() { @@ -51,6 +52,7 @@ public class ItemChemistryTemplate extends Item { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + list.add(EnumChatFormatting.RED + "Deprecated"); if(!(stack.getItem() instanceof ItemChemistryTemplate)) return; @@ -61,9 +63,6 @@ public class ItemChemistryTemplate extends Item { return; } - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("info.templatefolder", I18nUtil.resolveKey(ModItems.template_folder.getUnlocalizedName() + ".name"))); - list.add(""); - try { list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("info.template_out_p")); for(int i = 0; i < 4; i++) { diff --git a/src/main/java/com/hbm/items/machine/ItemFluidTank.java b/src/main/java/com/hbm/items/machine/ItemFluidTank.java index ce7a2cd0d..a8642652a 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidTank.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidTank.java @@ -30,9 +30,7 @@ public class ItemFluidTank extends Item { for(int i = 1; i < order.length; ++i) { FluidType type = order[i]; - if(type.hasNoContainer()) - continue; - + if(type.hasNoContainer()) continue; int id = type.getID(); if(type.needsLeadContainer()) { @@ -46,14 +44,10 @@ public class ItemFluidTank extends Item { } } + @Override public String getItemStackDisplayName(ItemStack stack) { - String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); - - if(s1 != null) { - s = s + " " + s1; - } - + String s = ("" + StatCollector.translateToLocalFormatted(this.getUnlocalizedName() + ".name", s1)).trim(); return s; } @@ -68,12 +62,10 @@ public class ItemFluidTank extends Item { public void registerIcons(IIconRegister p_94581_1_) { super.registerIcons(p_94581_1_); - if(this == ModItems.fluid_tank_full) - this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_tank_overlay"); - if(this == ModItems.fluid_tank_lead_full) - this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_tank_lead_overlay"); - if(this == ModItems.fluid_barrel_full) - this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_barrel_overlay"); + if(this == ModItems.fluid_tank_full) this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_tank_overlay"); + if(this == ModItems.fluid_tank_lead_full) this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_tank_lead_overlay"); + if(this == ModItems.fluid_barrel_full) this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_barrel_overlay"); + if(this == ModItems.fluid_pack_full) this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_pack_overlay"); } @Override @@ -84,18 +76,13 @@ public class ItemFluidTank extends Item { @Override @SideOnly(Side.CLIENT) - public int getColorFromItemStack(ItemStack stack, int p_82790_2_) { - if(p_82790_2_ == 0) { + public int getColorFromItemStack(ItemStack stack, int pass) { + if(pass == 0) { return 16777215; } else { int j = Fluids.fromID(stack.getItemDamage()).getColor(); - - if(j < 0) { - j = 16777215; - } - + if(j < 0) j = 16777215; return j; } } - } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java index c13f16a26..33c583b54 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java @@ -27,6 +27,8 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; import net.minecraft.util.MovingObjectPosition; @@ -942,7 +944,7 @@ public class Orchestras { if(timer == 2) { SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); - if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.375, aiming ? -0.0625 : -0.125, aiming ? 0 : -0.25D, 0, 0.18, -0.12, 0.01, -10F + (float)entity.getRNG().nextGaussian() * 2.5F, (float)entity.getRNG().nextGaussian() * -20F + 15F, casing.getName(), false, 60, 0.5D, 20); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.375, aiming ? -0.0625 : -0.125, aiming ? -0.125 : -0.25D, 0, 0.18, -0.12, 0.01, -10F + (float)entity.getRNG().nextGaussian() * 2.5F, (float)entity.getRNG().nextGaussian() * -20F + 15F, casing.getName(), false, 60, 0.5D, 20); } } @@ -969,6 +971,11 @@ public class Orchestras { if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:player.gulp", 1F, 1F); if(timer == 35) entity.worldObj.playSoundAtEntity(entity, "hbm:player.gulp", 1F, 1F); if(timer == 50) entity.worldObj.playSoundAtEntity(entity, "hbm:player.groan", 1F, 1F); + if(timer == 60) { + entity.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 30 * 20, 2)); + entity.addPotionEffect(new PotionEffect(Potion.resistance.id, 30 * 20, 2)); + entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 10 * 20, 0)); + } } }; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java index 490bd64b7..44f9d046f 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java @@ -375,7 +375,7 @@ public class XFactory12ga { ).setUnlocalizedName("gun_autoshotgun_shredder"); ModItems.gun_autoshotgun_sexy = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() - .dura(5_000).draw(20).inspect(33).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).hideCrosshair(false).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .dura(5_000).draw(20).inspect(65).reloadSequential(true).inspectCancel(false).crosshair(Crosshair.L_CIRCLE).hideCrosshair(false).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) .dmg(64F).delay(4).auto(true).dryfireAfterAuto(true).reload(110).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 100).addConfigs(g12_equestrian_bj, g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus)) diff --git a/src/main/java/com/hbm/module/machine/ModuleMachineAssembler.java b/src/main/java/com/hbm/module/machine/ModuleMachineAssembler.java index 1823b540b..2316ad787 100644 --- a/src/main/java/com/hbm/module/machine/ModuleMachineAssembler.java +++ b/src/main/java/com/hbm/module/machine/ModuleMachineAssembler.java @@ -3,6 +3,7 @@ package com.hbm.module.machine; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.recipes.AssemblyMachineRecipes; import com.hbm.inventory.recipes.loader.GenericRecipe; +import com.hbm.util.BobMathUtil; import api.hbm.energymk2.IEnergyHandlerMK2; import net.minecraft.item.ItemStack; @@ -21,6 +22,14 @@ public class ModuleMachineAssembler extends ModuleMachineBase { public GenericRecipe getRecipe() { return AssemblyMachineRecipes.INSTANCE.recipeNameMap.get(this.recipe); } + + @Override + public void setupTanks(GenericRecipe recipe) { + super.setupTanks(recipe); + if(recipe == null) return; + for(int i = 0; i < inputTanks.length; i++) if(recipe.inputFluid != null && recipe.inputFluid.length > i) inputTanks[i].changeTankSize(BobMathUtil.max(inputTanks[i].getFill(), recipe.inputFluid[i].fill * 2, 4_000)); + for(int i = 0; i < outputTanks.length; i++) if(recipe.outputFluid != null && recipe.outputFluid.length > i) outputTanks[i].changeTankSize(BobMathUtil.max(outputTanks[i].getFill(), recipe.outputFluid[i].fill * 2, 4_000)); + } public ModuleMachineAssembler itemInput(int from) { for(int i = 0; i < inputSlots.length; i++) inputSlots[i] = from + i; return this; } public ModuleMachineAssembler itemOutput(int a) { outputSlots[0] = a; return this; } diff --git a/src/main/java/com/hbm/render/tileentity/RenderAssemblyMachine.java b/src/main/java/com/hbm/render/tileentity/RenderAssemblyMachine.java index 1111a998a..5900c0f84 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderAssemblyMachine.java +++ b/src/main/java/com/hbm/render/tileentity/RenderAssemblyMachine.java @@ -13,13 +13,11 @@ import com.hbm.tileentity.machine.TileEntityMachineAssemblyMachine; import com.hbm.util.BobMathUtil; import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; @@ -109,7 +107,6 @@ public class RenderAssemblyMachine extends TileEntitySpecialRenderer implements GL11.glRotated(90, 0, 1, 0); GL11.glTranslated(0, 1.0625, 0); - EntityPlayer player = Minecraft.getMinecraft().thePlayer; ItemStack stack = recipe.getIcon(); stack.stackSize = 1; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblyMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblyMachine.java index 2ad98b8c0..ecc1c787c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblyMachine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblyMachine.java @@ -11,6 +11,8 @@ import com.hbm.inventory.container.ContainerMachineAssemblyMachine; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineAssemblyMachine; +import com.hbm.inventory.recipes.AssemblyMachineRecipes; +import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; @@ -44,7 +46,7 @@ public class TileEntityMachineAssemblyMachine extends TileEntityMachineBase impl public FluidTank outputTank; public long power; - public long maxPower = 1_000_000; + public long maxPower = 100_000; public boolean didProcess = false; public boolean frame = false; @@ -63,8 +65,8 @@ public class TileEntityMachineAssemblyMachine extends TileEntityMachineBase impl public TileEntityMachineAssemblyMachine() { super(17); - this.inputTank = new FluidTank(Fluids.NONE, 32_000); - this.outputTank = new FluidTank(Fluids.NONE, 32_000); + this.inputTank = new FluidTank(Fluids.NONE, 4_000); + this.outputTank = new FluidTank(Fluids.NONE, 4_000); for(int i = 0; i < this.arms.length; i++) this.arms[i] = new AssemblerArm(); @@ -85,6 +87,12 @@ public class TileEntityMachineAssemblyMachine extends TileEntityMachineBase impl if(!worldObj.isRemote) { + GenericRecipe recipe = AssemblyMachineRecipes.INSTANCE.recipeNameMap.get(assemblerModule.recipe); + if(recipe != null) { + this.maxPower = recipe.power * 100; + } + this.maxPower = BobMathUtil.max(this.power, this.maxPower, 100_000); + this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); upgradeManager.checkSlots(slots, 2, 3); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalFactory.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalFactory.java index dfcd1c50d..ca0c259c7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalFactory.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalFactory.java @@ -10,6 +10,8 @@ import com.hbm.inventory.container.ContainerMachineChemicalFactory; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineChemicalFactory; +import com.hbm.inventory.recipes.ChemicalPlantRecipes; +import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; @@ -49,7 +51,7 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl public FluidTank lps; public long power; - public long maxPower = 10_000_000; + public long maxPower = 1_000_000; public boolean[] didProcess = new boolean[4]; public boolean frame = false; @@ -130,6 +132,16 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl if(!worldObj.isRemote) { + long nextMaxPower = 0; + for(int i = 0; i < 4; i++) { + GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(chemplantModule[i].recipe); + if(recipe != null) { + nextMaxPower += recipe.power * 100; + } + } + this.maxPower = nextMaxPower; + this.maxPower = BobMathUtil.max(this.power, this.maxPower, 1_000_000); + this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); upgradeManager.checkSlots(slots, 1, 3); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java index 6a21f07de..97ebd11bf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java @@ -10,6 +10,8 @@ import com.hbm.inventory.container.ContainerMachineChemicalPlant; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineChemicalPlant; +import com.hbm.inventory.recipes.ChemicalPlantRecipes; +import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; @@ -43,7 +45,7 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem public FluidTank[] outputTanks; public long power; - public long maxPower = 1_000_000; + public long maxPower = 100_000; public boolean didProcess = false; public boolean frame = false; @@ -83,6 +85,12 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem if(!worldObj.isRemote) { + GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(chemplantModule.recipe); + if(recipe != null) { + this.maxPower = recipe.power * 100; + } + this.maxPower = BobMathUtil.max(this.power, this.maxPower, 100_000); + this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); upgradeManager.checkSlots(slots, 2, 3); diff --git a/src/main/java/com/hbm/util/ShadyUtil.java b/src/main/java/com/hbm/util/ShadyUtil.java index 03a2390ab..7f6d3351f 100644 --- a/src/main/java/com/hbm/util/ShadyUtil.java +++ b/src/main/java/com/hbm/util/ShadyUtil.java @@ -144,8 +144,8 @@ public class ShadyUtil { Field field = ReflectionHelper.findField(test, decode(offset(checksum, -2))); if(field != null) { System.out.println("TEST SECTION START"); - Class toLoad = Class.forName(decode(offset(testCase, -2))); - Field toRead = ReflectionHelper.findField(toLoad, decode(offset(testValue, -2))); + //Class toLoad = Class.forName(decode(offset(testCase, -2))); + //Field toRead = ReflectionHelper.findField(toLoad, decode(offset(testValue, -2))); //ModEventHandler.reference = toRead; System.out.println("TEST SECTION END"); } diff --git a/src/main/java/com/hbm/world/gen/util/LogicBlockInteractions.java b/src/main/java/com/hbm/world/gen/util/LogicBlockInteractions.java index bf3bc47eb..b9ee4dde1 100644 --- a/src/main/java/com/hbm/world/gen/util/LogicBlockInteractions.java +++ b/src/main/java/com/hbm/world/gen/util/LogicBlockInteractions.java @@ -7,7 +7,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.potion.PotionEffect; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; -import net.minecraft.world.World; import java.util.ArrayList; import java.util.LinkedHashMap; @@ -22,13 +21,8 @@ public class LogicBlockInteractions { public static LinkedHashMap> interactions = new LinkedHashMap<>(); public static Consumer TEST = (array) -> { - World world = (World) array[0]; LogicBlock.TileEntityLogicBlock logic = (LogicBlock.TileEntityLogicBlock) array[1]; - int x = (int) array[2]; - int y = (int) array[3]; - int z = (int) array[4]; EntityPlayer player = (EntityPlayer) array[5]; - int side = (int) array[6]; if(logic.phase > 1) return; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 1e54344ec..2cc9428b9 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1966,7 +1966,7 @@ item.fleija_igniter.name=Impulszünder item.fleija_kit.name=F.L.E.I.J.A. Kit item.fleija_propellant.name=Schrabidiumtreibladung item.fluid_barrel_empty.name=Leeres Fass -item.fluid_barrel_full.name=Flüssigkeitsfass: +item.fluid_barrel_full.name=Flüssigkeitsfass: %s item.fluid_barrel_infinite.name=Unendliches Fass item.fluid_duct.name=Flüssigkeitsrohr: item.fluid_identifier.name=Flüssigkeits-Kennzeichnung @@ -1977,10 +1977,12 @@ item.fluid_identifier.usage2=einer maximalen Reichweite von 64 Rohren zuzuweisen item.fluid_identifier_multi.name=Multi-Flüssigkeits-Kennzeichnung item.fluid_identifier_multi.info=Universelle Flüssigkeits-Kennzeichnung für: item.fluid_identifier_multi.info2=Sekundärer Typ: +item.fluid_pack_empty.name=Großer Flüssigkeitsbehälter +item.fluid_pack_full.name=%s (Abgepackt) item.fluid_tank_empty.name=Leere universelle Flüssigkeitszelle -item.fluid_tank_full.name=Universelle Flüssigkeitszelle: +item.fluid_tank_full.name=Universelle Flüssigkeitszelle: %s item.fluid_tank_lead_empty.name=Leere Gefahrenstoffzelle -item.fluid_tank_lead_full.name=Gefahrenstoffzelle: +item.fluid_tank_lead_full.name=Gefahrenstoffzelle: %s item.fluorite.name=Fluorit item.flywheel_beryllium.name=Berylliumschwungscheibe item.fmn.name=Flunitrazepamtablette diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index fb3f37c9a..53f1112b2 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2772,7 +2772,7 @@ item.fleija_igniter.name=Pulse Igniter item.fleija_kit.name=F.L.E.I.J.A. Kit item.fleija_propellant.name=Schrabidium Propellant item.fluid_barrel_empty.name=Empty Fluid Barrel -item.fluid_barrel_full.name=Fluid Barrel: +item.fluid_barrel_full.name=Fluid Barrel: %s item.fluid_barrel_infinite.name=Infinite Fluid Barrel item.fluid_duct.name=Fluid Duct: item.fluid_identifier.name=Fluid Identifier @@ -2783,10 +2783,12 @@ item.fluid_identifier.usage2=up to a maximum range of 64 ducts. item.fluid_identifier_multi.name=Multi Fluid Identifier item.fluid_identifier_multi.info=Universal fluid identifier for: item.fluid_identifier_multi.info2=Secondary type: +item.fluid_pack_empty.name=Large Fluid Container +item.fluid_pack_full.name=Packaged %s item.fluid_tank_empty.name=Empty Universal Fluid Tank -item.fluid_tank_full.name=Universal Fluid Tank: +item.fluid_tank_full.name=Universal Fluid Tank: %s item.fluid_tank_lead_empty.name=Empty Hazardous Material Tank -item.fluid_tank_lead_full.name=Hazardous Material Tank: +item.fluid_tank_lead_full.name=Hazardous Material Tank: %s item.fluorite.name=Fluorite item.flywheel_beryllium.name=Beryllium Flywheel item.fmn.name=Flunitrazepam Tablet diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 2d472a53a..1b5db22f5 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -222,6 +222,7 @@ "weapon.explosionSmallNear": {"category": "player", "sounds": ["weapon/explosionSmallNear1", "weapon/explosionSmallNear2", "weapon/explosionSmallNear3"]}, "weapon.explosionSmallFar": {"category": "player", "sounds": ["weapon/explosionSmallFar1", "weapon/explosionSmallFar2"]}, "weapon.explosionTiny": {"category": "player", "sounds": ["weapon/explosionTiny1", "weapon/explosionTiny2"]}, + "weapon.hkShoot": {"category": "player", "sounds": [{"name": "weapon/hkShoot", "stream": false}]}, "weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/hkShoot.ogg b/src/main/resources/assets/hbm/sounds/weapon/hkShoot.ogg new file mode 100644 index 0000000000000000000000000000000000000000..883b0e46a39fb7fa8fc73e9ef150d80b9c2dc337 GIT binary patch literal 13919 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 C3&rsO literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/fluid_pack.png b/src/main/resources/assets/hbm/textures/items/fluid_pack.png new file mode 100644 index 0000000000000000000000000000000000000000..c3c5de9aadd096d963c82b0e28760433d44875ae GIT binary patch literal 477 zcmV<30V4j1P)GQdk5fXlDuw5h7ON0tCql6dMaWF&5S-odsB1 zi22A=1ks_JV2ve|4RAB{#5z&pV4c$^G}LxLc{G)+`h zMV4jq`8_YDyDHU!fLgmSS*ssWB|C` zZk*3&5m+b`05}{DD2f8WZnu+U0MGN7&1Q_pV`Nzd;Q4&=csxXc`~42U^?D@?L&4tx zN~O}I+wG$3I?LsfdcBUW>*%_Us;UeI1Ho&x8kI_gTrP*$!Rw5!>;Bkw5Co|l;4OX} zt6VOVq%w&~UzvoWkKTZ>%-EK#*MF6&KOaJjt(wzUp TSkw6%00000NkvXXu0mjf^sUr1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/fluid_pack_overlay.png b/src/main/resources/assets/hbm/textures/items/fluid_pack_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..0de07193ea21f97b716c3b3195a9433c0484c4c1 GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfNS%G}%0G|+72L~TDHRF_&g0ixvWy>}(GxHxicG=fA5-1-u+2RY3;w%aB3;quU z48i^tLLk8ckH}&M2EM}}%y>M1MG8V>FE~M){gB*Er53MrABzB`T8K~y-6&62SR z!!QsdiD{a!EDOB%Sl1QK zxv0n`72_i*RWp%bV;Z)$Wg@{ug3D4LXQk>OUeLif-ZB6viUL~e!_V^^RaFJd*CPB` vfqg*pJYyJ!!}s39ITtXye!mB&SNXIaDsWj1790q700000NkvXXu0mjfG8kqY diff --git a/src/main/resources/assets/hbm/textures/items/fluid_tank_lead_overlay.png b/src/main/resources/assets/hbm/textures/items/fluid_tank_lead_overlay.png index 2fd03ec75d1b0bb9928ff8e8df98d451f10ec506..10b09d8fde13539a299a135348cedd59e1950ad4 100644 GIT binary patch delta 152 zcmZo++`>3PrJk`k$lZxy-8q?;3=9k`>5jgR3=A9lx&I`x0{NT;9+AZi419+{nDKc2 ziWH!rzNd?0h=qT$1nc64We0BD_+ih%FjK+Dsv&b<@pHa7<{1l2*mhKZ*PCL>^?{j< wjp2u_;O-CU=bM3A`BEc1(|mmyw18|5AZB0?WMH@yJQ>9DboFyt=akR{0Q=M}T>t<8 delta 103 zcmdnO*upqLC4r^b$uool2x>S|Iv5xjtUX;ELo9le6C_xhW$x@QfBzo@Cg&cg*Eq1e zt#g9n_xJaYYx`edaAH``2xO;M{QF~>8*9KNA;Iv?TD(