From 71fb9a814d66f1420b9ec9a34e646fd2d526b153 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 11 Jan 2026 19:14:08 +0100 Subject: [PATCH] he rotates --- changelog | 12 ++- .../hbm/blocks/machine/MachineCrucible.java | 8 +- .../inventory/recipes/AssemblerRecipes.java | 1 - .../recipes/AssemblyMachineRecipes.java | 5 +- .../hbm/inventory/recipes/MachineRecipes.java | 9 +- .../inventory/recipes/anvil/AnvilRecipes.java | 3 +- src/main/java/com/hbm/items/ModItems.java | 32 ++++--- .../com/hbm/items/machine/ItemBatterySC.java | 62 +++++++++++++ .../java/com/hbm/main/CraftingManager.java | 22 +++-- .../java/com/hbm/main/ResourceManager.java | 1 + .../tileentity/RenderBatterySocket.java | 34 +++++++ .../render/tileentity/RendererObjTester.java | 69 +------------- src/main/resources/assets/hbm/lang/de_DE.lang | 85 ++++++++++-------- src/main/resources/assets/hbm/lang/en_US.lang | 83 +++++++++-------- .../hbm/textures/items/battery_sc.am241.png | Bin 0 -> 330 bytes .../hbm/textures/items/battery_sc.au198.png | Bin 0 -> 327 bytes .../hbm/textures/items/battery_sc.co60.png | Bin 0 -> 323 bytes .../hbm/textures/items/battery_sc.empty.png | Bin 0 -> 296 bytes .../hbm/textures/items/battery_sc.pb209.png | Bin 0 -> 329 bytes .../hbm/textures/items/battery_sc.po210.png | Bin 0 -> 325 bytes .../hbm/textures/items/battery_sc.pu238.png | Bin 0 -> 321 bytes .../hbm/textures/items/battery_sc.ra226.png | Bin 0 -> 320 bytes .../hbm/textures/items/battery_sc.tc99.png | Bin 0 -> 320 bytes .../hbm/textures/items/battery_sc.waste.png | Bin 0 -> 321 bytes .../hbm/textures/models/horse/sunburst.png | Bin 0 -> 1409 bytes .../textures/models/machines/battery_sc.png | Bin 0 -> 1008 bytes 26 files changed, 250 insertions(+), 176 deletions(-) create mode 100644 src/main/java/com/hbm/items/machine/ItemBatterySC.java create mode 100644 src/main/resources/assets/hbm/textures/items/battery_sc.am241.png create mode 100644 src/main/resources/assets/hbm/textures/items/battery_sc.au198.png create mode 100644 src/main/resources/assets/hbm/textures/items/battery_sc.co60.png create mode 100644 src/main/resources/assets/hbm/textures/items/battery_sc.empty.png create mode 100644 src/main/resources/assets/hbm/textures/items/battery_sc.pb209.png create mode 100644 src/main/resources/assets/hbm/textures/items/battery_sc.po210.png create mode 100644 src/main/resources/assets/hbm/textures/items/battery_sc.pu238.png create mode 100644 src/main/resources/assets/hbm/textures/items/battery_sc.ra226.png create mode 100644 src/main/resources/assets/hbm/textures/items/battery_sc.tc99.png create mode 100644 src/main/resources/assets/hbm/textures/items/battery_sc.waste.png create mode 100644 src/main/resources/assets/hbm/textures/models/horse/sunburst.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/battery_sc.png diff --git a/changelog b/changelog index a05a9fc17..0a380e1fd 100644 --- a/changelog +++ b/changelog @@ -4,6 +4,14 @@ * Drone hitboxes are now way smaller, which should cause them to get stuck when flying less * The new FENSU now keeps its charge and installed muffler when broken * Battery sockets are now compatible with comparator output +* Battery sockets now have a tooltip when a battery pack is installed +* Sef-charging batteries have been reworked + * They are now a new item with metadata (legacy ones still work) + * The base form is an empty selfcharger which is filled with two billets of material, i.e. no more upgrade recipes + * There are a few new variants like cobalt-60 and gold-198 + * New selfchargers have a model when plugged into a battery socket + * Selfchargers are a fair bit weaker than their old counterparts, but substantially cheaper too +* Old batteries now have the "LEGACY" tag ## Fixed * Fixed the FEnSU, cyclotron and reliant robin missile being uncraftable due to stacksize limitations @@ -15,4 +23,6 @@ * Fixed enchantability on many armor sets being incorrect * Most power armors are intended to not be enchantable at all * Fixed crash caused by the balefire bomb -* Fixed JSON gun reload animations becoming faster and faster with the trenchmaster set \ No newline at end of file +* Fixed JSON gun reload animations becoming faster and faster with the trenchmaster set +* Fixed heat transfer rate labels on the boilers and coker unit being off by a magnitude of 10 +* Fixed crucible not having a heat transfer rate tooltip \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/machine/MachineCrucible.java b/src/main/java/com/hbm/blocks/machine/MachineCrucible.java index cb9671776..c7ad347bd 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCrucible.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCrucible.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ICustomBlockHighlight; +import com.hbm.blocks.ITooltipProvider; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.items.machine.ItemScraps; import com.hbm.main.MainRegistry; @@ -27,7 +28,7 @@ import net.minecraft.world.World; import net.minecraftforge.client.event.DrawBlockHighlightEvent; import net.minecraftforge.common.util.ForgeDirection; -public class MachineCrucible extends BlockDummyable implements ICrucibleAcceptor { +public class MachineCrucible extends BlockDummyable implements ICrucibleAcceptor, ITooltipProvider { public MachineCrucible() { super(Material.rock); @@ -181,4 +182,9 @@ public class MachineCrucible extends BlockDummyable implements ICrucibleAcceptor @Override public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return false; } @Override public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return null; } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 6ad7036c3..97510ed26 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -126,7 +126,6 @@ import net.minecraft.item.ItemStack; makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(TI.shell(), 3), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC), },200); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate(), 6), new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_TAR.any(), 4), },150); makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); - makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new OreDictStack(TI.shell(), 8) : new OreDictStack(TI.heavyComp(), 1), new OreDictStack(DURA.pipe(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.turbine_tungsten, 1), new OreDictStack(GOLD.wireDense(), 12), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal()) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 10) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(GOLD.wireDense(), 12), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal())}, 600); makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java index aee6c4b70..2a9c16c95 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java @@ -28,6 +28,7 @@ import com.hbm.items.ItemEnums.EnumSecretType; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; +import com.hbm.items.machine.ItemBatterySC.EnumBatterySC; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemDrillbit.EnumDrillType; import com.hbm.items.machine.ItemPACoil.EnumCoilType; @@ -456,8 +457,8 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItems(new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16))); this.register(new GenericRecipe("ass.orbus").setup(300, 100).outputItems(new ItemStack(ModBlocks.machine_orbus, 1)) - .inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plateCast(), 4), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new OreDictStack(BIGMT.plateCast(), 16), new ComparableStack(ModItems.coil_advanced_alloy, 24), new ComparableStack(ModItems.battery_sc_polonium, 1))); + .inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plateCast(), 4), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc, 1, EnumBatterySC.PO210)) + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new OreDictStack(BIGMT.plateCast(), 16), new ComparableStack(ModItems.coil_advanced_alloy, 24), new ComparableStack(ModItems.battery_sc, 1, EnumBatterySC.PO210))); // accelerators this.register(new GenericRecipe("ass.cyclotron").setup(600, 100).outputItems(new ItemStack(ModBlocks.machine_cyclotron, 1)) diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index ecbe59072..fd6668851 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -7,6 +7,7 @@ import com.hbm.inventory.FluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; +import com.hbm.items.machine.ItemBatterySC.EnumBatterySC; import com.hbm.util.Tuple.Triplet; import net.minecraft.init.Blocks; @@ -52,14 +53,8 @@ public class MachineRecipes { fuels.add(new ItemStack(ModItems.fusion_core)); fuels.add(new ItemStack(ModItems.energy_core)); for(EnumBatteryPack num : EnumBatteryPack.values()) fuels.add(new ItemStack(ModItems.battery_pack, 1, num.ordinal())); + for(EnumBatterySC num : EnumBatterySC.values()) fuels.add(new ItemStack(ModItems.battery_sc, 1, num.ordinal())); fuels.add(new ItemStack(ModItems.battery_creative)); - fuels.add(new ItemStack(ModItems.battery_sc_uranium)); - fuels.add(new ItemStack(ModItems.battery_sc_technetium)); - fuels.add(new ItemStack(ModItems.battery_sc_plutonium)); - fuels.add(new ItemStack(ModItems.battery_sc_polonium)); - fuels.add(new ItemStack(ModItems.battery_sc_gold)); - fuels.add(new ItemStack(ModItems.battery_sc_lead)); - fuels.add(new ItemStack(ModItems.battery_sc_americium)); return fuels; } diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 27d058172..de7d3e6e8 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -26,6 +26,7 @@ import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ModItems; import com.hbm.items.food.ItemFlask.EnumInfusion; +import com.hbm.items.machine.ItemBatterySC.EnumBatterySC; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.util.Tuple.Pair; @@ -751,7 +752,7 @@ public class AnvilRecipes extends SerializableRecipe { new AnvilOutput(new ItemStack(ModItems.scrap, 1)), new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 2)), new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F), - new AnvilOutput(new ItemStack(ModItems.battery_sc_uranium, 1), 0.1F), + new AnvilOutput(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.RA226.ordinal()), 0.1F), new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.05F) } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 73dd3ea86..7fd1ba599 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1657,13 +1657,15 @@ public class ModItems { public static Item battery_spark; public static Item battery_trixite; - public static Item battery_sc_uranium; - public static Item battery_sc_technetium; - public static Item battery_sc_plutonium; - public static Item battery_sc_polonium; - public static Item battery_sc_gold; - public static Item battery_sc_lead; - public static Item battery_sc_americium; + @Deprecated public static Item battery_sc_uranium; + @Deprecated public static Item battery_sc_technetium; + @Deprecated public static Item battery_sc_plutonium; + @Deprecated public static Item battery_sc_polonium; + @Deprecated public static Item battery_sc_gold; + @Deprecated public static Item battery_sc_lead; + @Deprecated public static Item battery_sc_americium; + + public static Item battery_sc; public static Item battery_potato; public static Item battery_potatos; @@ -3899,13 +3901,14 @@ public class ModItems { battery_creative = new ItemBatteryCreative().setUnlocalizedName("battery_creative").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_creative_new"); cube_power = new ItemBattery(1000000000000000000L, 1000000000000000L, 1000000000000000L).setUnlocalizedName("cube_power").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":cube_power"); - battery_sc_uranium = new ItemSelfcharger(5).setUnlocalizedName("battery_sc_uranium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_uranium"); - battery_sc_technetium = new ItemSelfcharger(25).setUnlocalizedName("battery_sc_technetium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_technetium"); - battery_sc_plutonium = new ItemSelfcharger(100).setUnlocalizedName("battery_sc_plutonium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_plutonium"); - battery_sc_polonium = new ItemSelfcharger(500).setUnlocalizedName("battery_sc_polonium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_polonium"); - battery_sc_gold = new ItemSelfcharger(2500).setUnlocalizedName("battery_sc_gold").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_gold"); - battery_sc_lead = new ItemSelfcharger(5000).setUnlocalizedName("battery_sc_lead").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_lead"); - battery_sc_americium = new ItemSelfcharger(10000).setUnlocalizedName("battery_sc_americium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_americium"); + battery_sc_uranium = new ItemSelfcharger(5).setUnlocalizedName("battery_sc_uranium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_sc_uranium"); + battery_sc_technetium = new ItemSelfcharger(25).setUnlocalizedName("battery_sc_technetium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_sc_technetium"); + battery_sc_plutonium = new ItemSelfcharger(100).setUnlocalizedName("battery_sc_plutonium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_sc_plutonium"); + battery_sc_polonium = new ItemSelfcharger(500).setUnlocalizedName("battery_sc_polonium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_sc_polonium"); + battery_sc_gold = new ItemSelfcharger(2500).setUnlocalizedName("battery_sc_gold").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_sc_gold"); + battery_sc_lead = new ItemSelfcharger(5000).setUnlocalizedName("battery_sc_lead").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_sc_lead"); + battery_sc_americium = new ItemSelfcharger(10000).setUnlocalizedName("battery_sc_americium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_sc_americium"); + battery_sc = new ItemBatterySC().setUnlocalizedName("battery_sc").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc"); battery_potato = new ItemBattery(1000, 0, 100).setUnlocalizedName("battery_potato").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potato"); battery_potatos = new ItemPotatos(500000, 0, 100).setUnlocalizedName("battery_potatos").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potatos"); @@ -5704,6 +5707,7 @@ public class ModItems { GameRegistry.registerItem(battery_spark_cell_power, battery_spark_cell_power.getUnlocalizedName()); GameRegistry.registerItem(battery_pack, battery_pack.getUnlocalizedName()); + GameRegistry.registerItem(battery_sc, battery_sc.getUnlocalizedName()); GameRegistry.registerItem(battery_creative, battery_creative.getUnlocalizedName()); GameRegistry.registerItem(cube_power, cube_power.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemBatterySC.java b/src/main/java/com/hbm/items/machine/ItemBatterySC.java new file mode 100644 index 000000000..691b60b1a --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemBatterySC.java @@ -0,0 +1,62 @@ +package com.hbm.items.machine; + +import java.util.List; + +import com.hbm.items.ItemEnumMulti; +import com.hbm.main.MainRegistry; +import com.hbm.util.BobMathUtil; +import com.hbm.util.EnumUtil; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class ItemBatterySC extends ItemEnumMulti implements IBatteryItem { + + public ItemBatterySC() { + super(EnumBatterySC.class, true, true); + this.setMaxStackSize(1); + this.setCreativeTab(MainRegistry.controlTab); + } + + public static enum EnumBatterySC { + + EMPTY( 0), + WASTE( 150), + RA226( 200), + TC99( 500), + CO60( 750), + PU238( 1_000), + PO210( 1_250), + AU198( 1_500), + PB209( 2_000), + AM241( 2_500); + + public long power; + + private EnumBatterySC(long power) { + this.power = power; + } + } + + @Override public void chargeBattery(ItemStack stack, long i) { } + @Override public void setCharge(ItemStack stack, long i) { } + @Override public void dischargeBattery(ItemStack stack, long i) { } + @Override public long getChargeRate(ItemStack stack) { return 0; } + + @Override public long getCharge(ItemStack stack) { return getMaxCharge(stack); } + @Override public long getDischargeRate(ItemStack stack) { return getMaxCharge(stack); } + + @Override + public long getMaxCharge(ItemStack stack) { + EnumBatterySC pack = EnumUtil.grabEnumSafely(EnumBatterySC.class, stack.getItemDamage()); + return pack.power; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + EnumBatterySC pack = EnumUtil.grabEnumSafely(EnumBatterySC.class, stack.getItemDamage()); + if(pack.power > 0) list.add(EnumChatFormatting.YELLOW + "Discharge rate: " + BobMathUtil.getShortNumber(pack.power) + "HE/t"); + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 26e7fafe1..47e9829bb 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -31,6 +31,7 @@ import com.hbm.items.food.ItemConserve.EnumFoodType; import com.hbm.items.machine.ItemArcElectrode.EnumElectrodeType; import com.hbm.items.machine.ItemBattery; import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; +import com.hbm.items.machine.ItemBatterySC.EnumBatterySC; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemFluidIDMulti; import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType; @@ -271,6 +272,17 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_REDSTONE.ordinal()), new Object[] { "IRI", "PRP", "IRI", 'I', IRON.plate(), 'R', REDSTONE.block(), 'P', ModItems.plate_polymer }); addRecipeAuto(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_COPPER.ordinal()), new Object[] { "IRI", "PRP", "IRI", 'I', STEEL.plate(), 'R', CU.block(), 'P', ModItems.plate_polymer }); + addRecipeAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.EMPTY.ordinal()), new Object[] { "PGP", "L L", "PGP", 'P', ANY_PLASTIC.ingot(), 'G', GOLD.wireFine(), 'L', PB.plate() }); + addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.WASTE.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), ModItems.billet_nuclear_waste, ModItems.billet_nuclear_waste }); + addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.RA226.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), RA226.billet(), RA226.billet() }); + addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.TC99.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), TC99.billet(), TC99.billet() }); + addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.CO60.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), CO60.billet(), CO60.billet() }); + addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.PU238.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), PU238.billet(), PU238.billet() }); + addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.PO210.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), PO210.billet(), PO210.billet() }); + addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.AU198.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), AU198.billet(), AU198.billet() }); + addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.PB209.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), PB209.billet(), PB209.billet() }); + addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.AM241.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), AM241.billet(), AM241.billet() }); + GameRegistry.addRecipe(new ContainerUpgradeCraftingHandler(new ItemStack(ModBlocks.crate_desh, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.plate_desh, 'S', ModBlocks.crate_steel })); GameRegistry.addRecipe(new ContainerUpgradeCraftingHandler(new ItemStack(ModBlocks.crate_tungsten, 1), new Object[] { "BPB", "PCP", "BPB", 'B', W.block(), 'P', CU.plateCast(), 'C', ModBlocks.crate_steel })); // Note: voids the last few slots when placed, because a safe's inventory is smaller than a crate's one @@ -535,14 +547,6 @@ public class CraftingManager { addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potato), new Object[] { Items.potato, AL.wireFine(), CU.wireFine() }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potatos), new Object[] { ItemBattery.getFullBattery(ModItems.battery_potato), ModItems.turret_chip, REDSTONE.dust() }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_uranium), new Object[] { "NBN", "PCP", "NBN", 'N', GOLD.nugget(), 'B', U238.billet(), 'P', PB.plate(), 'C', ModItems.thermo_element }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_technetium), new Object[] { "NBN", "PCP", "NBN", 'N', GOLD.nugget(), 'B', TC99.billet(), 'P', PB.plate(), 'C', ModItems.battery_sc_uranium }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_plutonium), new Object[] { "NBN", "PCP", "NBN", 'N', TC99.nugget(), 'B', PU238.billet(), 'P', PB.plate(), 'C', ModItems.battery_sc_technetium }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_polonium), new Object[] { "NBN", "PCP", "NBN", 'N', TC99.nugget(), 'B', PO210.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_plutonium }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_gold), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AU198.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_polonium }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_lead), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', PB209.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_gold }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_americium), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AM241.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_lead }); - addRecipeAuto(new ItemStack(ModItems.wiring_red_copper, 1), new Object[] { "PPP", "PIP", "PPP", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.jetpack_tank, 1), new Object[] { " S ", "BKB", " S ", 'S', STEEL.plate(), 'B', STEEL.bolt(), 'K', Fluids.KEROSENE.getDict(1000) }); @@ -738,7 +742,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_steel, 1), new Object[] { "IPI", "I I", "IPI", 'I', STEEL.plate(), 'P', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_tcalloy, 1), new Object[] { "IPI", "I I", "IPI", 'I', "ingotTcAlloy", 'P', TI.plate() }); - addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IBI", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus, 'B', ModItems.battery_sc_technetium }); + addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "I I", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus }); addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModBlocks.struct_watz_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ANY_RESISTANTALLOY.plateCast(), 'H', ModBlocks.watz_cooler }); addShapelessAuto(new ItemStack(ModItems.energy_core), new Object[] { ModItems.fusion_core, ModItems.fuse }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index d3de4e543..5052dd575 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -741,6 +741,7 @@ public class ResourceManager { //FENSU public static final ResourceLocation battery_socket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/battery_socket.png"); + public static final ResourceLocation battery_sc_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/battery_sc.png"); public static final ResourceLocation battery_redd_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fensu2.png"); public static final ResourceLocation fensu_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fensu.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderBatterySocket.java b/src/main/java/com/hbm/render/tileentity/RenderBatterySocket.java index 6b4e8828e..7d3264202 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBatterySocket.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBatterySocket.java @@ -1,12 +1,19 @@ package com.hbm.render.tileentity; +import java.util.Random; + import org.lwjgl.opengl.GL11; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; +import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.util.BeamPronter; +import com.hbm.render.util.HorsePronter; +import com.hbm.render.util.BeamPronter.EnumBeamType; +import com.hbm.render.util.BeamPronter.EnumWaveType; import com.hbm.tileentity.machine.storage.TileEntityBatterySocket; import com.hbm.util.EnumUtil; @@ -14,10 +21,14 @@ import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; import net.minecraftforge.client.IItemRenderer; public class RenderBatterySocket extends TileEntitySpecialRenderer implements IItemRendererProvider { + private static ResourceLocation blorbo = new ResourceLocation(RefStrings.MODID, "textures/models/horse/sunburst.png"); + @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { GL11.glPushMatrix(); @@ -47,6 +58,29 @@ public class RenderBatterySocket extends TileEntitySpecialRenderer implements II EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, render.getItemDamage()); bindTexture(pack.texture); ResourceManager.battery_socket.renderPart(pack.isCapacitor() ? "Capacitor" : "Battery"); + } else if(render.getItem() == ModItems.battery_sc) { + bindTexture(ResourceManager.battery_sc_tex); + ResourceManager.battery_socket.renderPart("Battery"); + } else if(render.getItem() == ModItems.battery_creative) { + GL11.glPushMatrix(); + GL11.glScaled(0.75, 0.75, 0.75); + GL11.glRotated((socket.getWorldObj().getTotalWorldTime() % 360 + interp) * 25D, 0, -1, 0); + this.bindTexture(blorbo); + HorsePronter.reset(); + HorsePronter.enableHorn(); + HorsePronter.pront(); + GL11.glPopMatrix(); + + Random rand = new Random(tile.getWorldObj().getTotalWorldTime() / 5); + rand.nextBoolean(); + + for(int i = -1; i <= 1; i += 2) for(int j = -1; j <= 1; j += 2) if(rand.nextInt(4) == 0) { + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.75, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(0.4375 * i, 1.1875, 0.4375 * j), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.0625F, 3, 0.025F); + BeamPronter.prontBeam(Vec3.createVectorHelper(0.4375 * i, 1.1875, 0.4375 * j), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 1, 0, 3, 0.025F); + GL11.glPopMatrix(); + } } } diff --git a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java index 450fcd6cb..3bffbaf34 100644 --- a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java +++ b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java @@ -6,81 +6,30 @@ import org.lwjgl.BufferUtils; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; -import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import com.hbm.render.util.HorsePronter; -import com.hbm.wiaj.WorldInAJar; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemRenderer; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; public class RendererObjTester extends TileEntitySpecialRenderer { - private static RenderBlocks renderer; - private static WorldInAJar world; - private static ResourceLocation extra = new ResourceLocation(RefStrings.MODID, "textures/models/horse/dyx.png"); + private static ResourceLocation extra = new ResourceLocation(RefStrings.MODID, "textures/models/horse/sunburst.png"); @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5, y + 1, z + 0.5); + GL11.glTranslated(x + 0.5, y, z + 0.5); GL11.glDisable(GL11.GL_CULL_FACE); - - if(world == null) { - world = new WorldInAJar(5, 3, 5); - for(int i = 0; i < 25; i++) world.setBlock(i / 5, 1, i % 5, Blocks.brick_block, 0); - for(int i = 0; i < 9; i++) world.setBlock(1 + i / 3, 0, 1 + i % 3, Blocks.brick_block, 0); - } - - if(renderer == null) { - renderer = new RenderBlocks(world); - } - renderer.enableAO = true; - world.lightlevel = tileEntity.getWorldObj().getLightBrightnessForSkyBlocks(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord, 0); - - RenderHelper.disableStandardItemLighting(); - - GL11.glPushMatrix(); - GL11.glRotated(15, 0, 0, 1); - GL11.glRotated(System.currentTimeMillis() / 5D % 360D, 0, -1, 0); - GL11.glTranslated(-2.5, 0, -2.5); - Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationBlocksTexture); - GL11.glShadeModel(GL11.GL_SMOOTH); - Tessellator.instance.startDrawingQuads(); - - for(int ix = 0; ix < world.sizeX; ix++) { - for(int iy = 0; iy < world.sizeY; iy++) { - for(int iz = 0; iz < world.sizeZ; iz++) { - try { renderer.renderBlockByRenderType(world.getBlock(ix, iy, iz), ix, iy, iz); } catch(Exception ex) { } - } - } - } - - Tessellator.instance.draw(); - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glPopMatrix(); RenderHelper.enableStandardItemLighting(); - - GL11.glRotated(15, 0, 0, 1); - GL11.glRotated(System.currentTimeMillis() / 5D % 360D, 0, -1, 0); - - GL11.glTranslated(0, 2.1, 0.5); this.bindTexture(extra); HorsePronter.reset(); - double r = 60; + /*double r = 60; HorsePronter.pose(HorsePronter.id_body, 0, -r, 0); HorsePronter.pose(HorsePronter.id_tail, 0, 45, 90); HorsePronter.pose(HorsePronter.id_lbl, 0, -90 + r, 35); @@ -88,20 +37,10 @@ public class RendererObjTester extends TileEntitySpecialRenderer { HorsePronter.pose(HorsePronter.id_lfl, 0, r - 10, 5); HorsePronter.pose(HorsePronter.id_rfl, 0, r - 10, -5); HorsePronter.pose(HorsePronter.id_head, 0, r, 0); + HorsePronter.enableWings();*/ HorsePronter.enableHorn(); - HorsePronter.enableWings(); HorsePronter.pront(); - ItemStack stack = new ItemStack(ModItems.cigarette); - double scale = 0.25; - GL11.glTranslated(0.02, 1.13, -0.42); - GL11.glScaled(scale, scale, scale); - GL11.glRotated(90, 0, -1, 0); - GL11.glRotated(60, 0, 0, -1); - bindTexture(TextureMap.locationItemsTexture); - IIcon icon = stack.getIconIndex(); - ItemRenderer.renderItemIn2D(Tessellator.instance, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.0625F); - GL11.glPopMatrix(); } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 772fd5ee0..6e3394ca5 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1308,16 +1308,16 @@ item.ballistite.name=Ballistit item.bandaid.name=Samtenes Pflaster item.bathwater.name=Toxisches Seifenwasser item.bathwater_mk2.name=Toxisches Seifenwasser (Pferdearoma) -item.battery_advanced.name=Fortgeschrittene Batterie -item.battery_advanced_cell.name=Fortgeschrittene Energiezelle -item.battery_advanced_cell_12.name=Zwölffache fortgeschrittene Energiezelle -item.battery_advanced_cell_4.name=Vierfache fortgeschrittene Energiezelle +item.battery_advanced.name=Fortgeschrittene Batterie (LEGACY) +item.battery_advanced_cell.name=Fortgeschrittene Energiezelle (LEGACY) +item.battery_advanced_cell_12.name=Zwölffache fortgeschrittene Energiezelle (LEGACY) +item.battery_advanced_cell_4.name=Vierfache fortgeschrittene Energiezelle (LEGACY) item.battery_creative.name=Unendliche Batterie -item.battery_generic.name=Batterie -item.battery_lithium.name=Lithium-Ionen-Batterie -item.battery_lithium_cell.name=Lithium-Ionen-Energiezelle -item.battery_lithium_cell_3.name=Dreifache Lithium-Ionen-Energiezelle -item.battery_lithium_cell_6.name=Sechsfache Lithium-Ionen-Energiezelle +item.battery_generic.name=Batterie (LEGACY) +item.battery_lithium.name=Lithium-Ionen-Batterie (LEGACY) +item.battery_lithium_cell.name=Lithium-Ionen-Energiezelle (LEGACY) +item.battery_lithium_cell_3.name=Dreifache Lithium-Ionen-Energiezelle (LEGACY) +item.battery_lithium_cell_6.name=Sechsfache Lithium-Ionen-Energiezelle (LEGACY) item.battery_pack.battery_lead.name=Bleisäure-Akku item.battery_pack.battery_lithium.name=Lithium-Ionen-Akku item.battery_pack.battery_quantum.name=Quantenakku @@ -1332,33 +1332,41 @@ item.battery_pack.capacitor_spark.name=Spark-Kondensator item.battery_pack.capacitor_tantalum.name=Tantalkondensator item.battery_potato.name=Katoffelbatterie item.battery_potatos.name=PotatOS -item.battery_red_cell.name=Redstone-Energiezelle -item.battery_red_cell_24.name=24-fache Redstone-Energiezelle -item.battery_red_cell_6.name=Sechsfache Redstone-Energiezelle -item.battery_sc_americium.name=Americium-241-Selbstlader -item.battery_sc_gold.name=Gold-198-Selbstlader -item.battery_sc_lead.name=Blei-209-Selbstlader -item.battery_sc_plutonium.name=Plutonium-238-Selbstlader -item.battery_sc_polonium.name=Polonium-210-Selbstlader -item.battery_sc_technetium.name=Technerium-99-Selbstlader -item.battery_sc_uranium.name=Uran-238-Selbstlader -item.battery_schrabidium.name=Schrabidiumbatterie -item.battery_schrabidium_cell.name=Schrabidium-Energiezelle -item.battery_schrabidium_cell_2.name=Doppelte Schrabidium-Energiezelle -item.battery_schrabidium_cell_4.name=Vierfache Schrabidium-Energiezelle +item.battery_red_cell.name=Redstone-Energiezelle (LEGACY) +item.battery_red_cell_24.name=24-fache Redstone-Energiezelle (LEGACY) +item.battery_red_cell_6.name=Sechsfache Redstone-Energiezelle (LEGACY) +item.battery_sc.am241.name=Americium-241-Selbstlader +item.battery_sc.au198.name=Gold-198-Selbstlader +item.battery_sc.co60.name=Kobalt-60-Selbstlader +item.battery_sc.empty.name=Leerer Selbstlader +item.battery_sc.pb209.name=Blei-209-Selbstlader +item.battery_sc.po210.name=Polonium-210-Selbstlader +item.battery_sc.pu238.name=Plutonium-238-Selbstlader +item.battery_sc.ra226.name=Radium-226-Selbstlader +item.battery_sc.tc99.name=Technetium-99-Selbstlader +item.battery_sc.waste.name=Atommüll-Selbstlader +item.battery_sc_americium.name=Americium-241-Selbstlader (LEGACY) +item.battery_sc_gold.name=Gold-198-Selbstlader (LEGACY) +item.battery_sc_lead.name=Blei-209-Selbstlader (LEGACY) +item.battery_sc_plutonium.name=Plutonium-238-Selbstlader (LEGACY) +item.battery_sc_polonium.name=Polonium-210-Selbstlader (LEGACY) +item.battery_sc_technetium.name=Technerium-99-Selbstlader (LEGACY) +item.battery_sc_uranium.name=Uran-238-Selbstlader (LEGACY) +item.battery_schrabidium.name=Schrabidiumbatterie (LEGACY) +item.battery_schrabidium_cell.name=Schrabidium-Energiezelle (LEGACY) +item.battery_schrabidium_cell_2.name=Doppelte Schrabidium-Energiezelle (LEGACY) +item.battery_schrabidium_cell_4.name=Vierfache Schrabidium-Energiezelle (LEGACY) item.battery_spark.name=Spark-Batterie -item.battery_spark_cell_100.name=Spark-Arkane Energiespeicher-Matrix -item.battery_spark_cell_1000.name=Spark-Arkane Massen-Energie Speicherleere -item.battery_spark_cell_10000.name=Spark Solider Raumzeit Kristall -item.battery_spark_cell_25.name=Spark-Arkane Autobatterie -item.battery_spark_cell_2500.name=Spark-Arkanes Dirac'sches Meer -item.battery_spark_cell_6.name=Spark-Energiezelle -item.battery_spark_cell_power.name=Spark Lächerliche Physik-missachtende Energiespeichereinheit -item.battery_steam.name=Dampfbetriebener Energiespeichertank -item.battery_steam_large.name=Großer dampfbetriebener Energiespeichertank -item.battery_su.name=Einwegbatterie -item.battery_su_l.name=Große Einwegbatterie -item.battery_trixite.name=Billige Spark-Batterie-Nachmache +item.battery_spark_cell_100.name=Spark-Arkane Energiespeicher-Matrix (LEGACY) +item.battery_spark_cell_1000.name=Spark-Arkane Massen-Energie Speicherleere (LEGACY) +item.battery_spark_cell_10000.name=Spark Solider Raumzeit Kristall (LEGACY) +item.battery_spark_cell_25.name=Spark-Arkane Autobatterie (LEGACY) +item.battery_spark_cell_2500.name=Spark-Arkanes Dirac'sches Meer (LEGACY) +item.battery_spark_cell_6.name=Spark-Energiezelle (LEGACY) +item.battery_spark_cell_power.name=Spark Lächerliche Physik-missachtende Energiespeichereinheit (LEGACY) +item.battery_steam.name=Dampfbetriebener Energiespeichertank (LEGACY) +item.battery_steam_large.name=Großer dampfbetriebener Energiespeichertank (LEGACY) +item.battery_trixite.name=Billiger Spark-Batterie Nachbau item.bdcl.name=BDCL item.bedrock_ore.grade.base.name=%s-Bedrockerz item.bedrock_ore.grade.base_roasted.name=Geröstetes %s-Bedrockerz @@ -4479,7 +4487,7 @@ tile.machine_battery_redd.name=FEnSU tile.machine_battery_socket.name=Batteriesockel tile.machine_battery_socket.desc=Erlaubt es, Batterien direkt mit$dem Stromnetz zu verbinden.$Verhält sich wie ein Kabel, alle$Verbindungen sind im selben Netzwek. tile.machine_boiler.name=Boiler -tile.machine_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.01 TU/t +tile.machine_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.1 TU/t tile.machine_boiler_electric_off.name=Elektrischer Ölwärmer tile.machine_boiler_electric_on.name=Elektrischer Ölwärmer tile.machine_boiler_off.name=Alter Boiler @@ -4495,7 +4503,7 @@ tile.machine_chungus.desc=Effizienz: 85%% tile.machine_coal_off.name=Verbrennungsgenerator tile.machine_coal_on.name=Verbrennungsgenerator tile.machine_coker.name=Koker-Anlage -tile.machine_coker.desc=Verkokt Öl, erzeugt fluides Nebenprodukt.$Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.025 TU/t +tile.machine_coker.desc=Verkokt Öl, erzeugt fluides Nebenprodukt.$Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.25 TU/t tile.machine_combine_factory.name=CMB-Stahl Hochofen tile.machine_combustion_engine.name=Industrieller Verbrennungsmotor tile.machine_compressor.name=Kompressor @@ -4508,6 +4516,7 @@ tile.machine_converter_rf_he.name=RF zu HE Konverter tile.machine_conveyor_press.name=Förderband-Presse tile.machine_conveyor_press.desc=Band bewegt sich von links nach rechts$Rechtsclick um Stempel zu montieren$Stempel kann mit Schraubenzieher entfernt werden tile.machine_crucible.name=Schmelztiegel +tile.machine_crucible.desc=Wärmestransferrate: ΔT*0.25 TU/t tile.machine_crystallizer.name=Erzauflöser tile.machine_cyclotron.name=Zyklotron tile.machine_detector.name=Energiedetektor @@ -4543,7 +4552,7 @@ tile.machine_geo.name=Geothermiegenerator tile.machine_hephaestus.name=Geothermischer Wärmetauscher tile.machine_icf_press.name=ICF-Brennstoffpellet-Fabrikant tile.machine_industrial_boiler.name=Industrieller Boiler -tile.machine_industrial_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.01 TU/t$Überdrucksicher +tile.machine_industrial_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.1 TU/t$Überdrucksicher tile.machine_industrial_generator.name=Industrieller Generator tile.machine_intake.name=Lufteinlass tile.machine_keyforge.name=Schlossertisch diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 3fef4b463..32007905e 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2066,16 +2066,16 @@ item.ballistite.name=Ballistite item.bandaid.name=Velvet Band-Aid item.bathwater.name=Toxic Soapy Water item.bathwater_mk2.name=Toxic Soapy Water (Horse Scented) -item.battery_advanced.name=Advanced Battery -item.battery_advanced_cell.name=Advanced Power Cell -item.battery_advanced_cell_12.name=Twelvefold Advanced Power Cell -item.battery_advanced_cell_4.name=Quadruple Advanced Power Cell +item.battery_advanced.name=Advanced Battery (LEGACY) +item.battery_advanced_cell.name=Advanced Power Cell (LEGACY) +item.battery_advanced_cell_12.name=Twelvefold Advanced Power Cell (LEGACY) +item.battery_advanced_cell_4.name=Quadruple Advanced Power Cell (LEGACY) item.battery_creative.name=Infinite Battery -item.battery_generic.name=Battery -item.battery_lithium.name=Lithium-Ion Battery -item.battery_lithium_cell.name=Lithium-Ion Power Cell -item.battery_lithium_cell_3.name=Triple Lithium-Ion Power Cell -item.battery_lithium_cell_6.name=Sixfold Lithium-Ion Power Cell +item.battery_generic.name=Battery (LEGACY) +item.battery_lithium.name=Lithium-Ion Battery (LEGACY) +item.battery_lithium_cell.name=Lithium-Ion Power Cell (LEGACY) +item.battery_lithium_cell_3.name=Triple Lithium-Ion Power Cell (LEGACY) +item.battery_lithium_cell_6.name=Sixfold Lithium-Ion Power Cell (LEGACY) item.battery_pack.battery_lead.name=Lead-Acid Battery item.battery_pack.battery_lithium.name=Lithium-Ion Battery item.battery_pack.battery_quantum.name=Quantum Battery @@ -2090,32 +2090,40 @@ item.battery_pack.capacitor_spark.name=Spark Capacitor item.battery_pack.capacitor_tantalum.name=Tantalum Capacitor item.battery_potato.name=Potato Battery item.battery_potatos.name=PotatOS -item.battery_red_cell.name=Redstone Power Cell -item.battery_red_cell_24.name=24-Fold Redstone Power Cell -item.battery_red_cell_6.name=Sixfold Redstone Power Cell -item.battery_sc_americium.name=Self-Charging Americium-241 Battery -item.battery_sc_gold.name=Self-Charging Gold-198 Battery -item.battery_sc_lead.name=Self-Charging Lead-209 Battery -item.battery_sc_plutonium.name=Self-Charging Plutonium-238 Battery -item.battery_sc_polonium.name=Self-Charging Polonium-210 Battery -item.battery_sc_technetium.name=Self-Charging Technetium-99 Battery -item.battery_sc_uranium.name=Self-Charging Uranium-238 Battery -item.battery_schrabidium.name=Schrabidium Battery -item.battery_schrabidium_cell.name=Schrabidium Power Cell -item.battery_schrabidium_cell_2.name=Double Schrabidium Power Cell -item.battery_schrabidium_cell_4.name=Quadruple Schrabidium Power Cell +item.battery_red_cell.name=Redstone Power Cell (LEGACY) +item.battery_red_cell_24.name=24-Fold Redstone Power Cell (LEGACY) +item.battery_red_cell_6.name=Sixfold Redstone Power Cell (LEGACY) +item.battery_sc.am241.name=Americium-241 Self-Charging Battery +item.battery_sc.au198.name=Gold-198 Self-Charging Battery +item.battery_sc.co60.name=Cobalt-60 Self-Charging Battery +item.battery_sc.empty.name=Empty Self-Charging Battery +item.battery_sc.pb209.name=Lead-209 Self-Charging Battery +item.battery_sc.po210.name=Polonium-210 Self-Charging Battery +item.battery_sc.pu238.name=Plutonium-238 Self-Charging Battery +item.battery_sc.ra226.name=Radium-226 Self-Charging Battery +item.battery_sc.tc99.name=Technetium-99 Self-Charging Battery +item.battery_sc.waste.name=Spent Fuel Self-Charging Battery +item.battery_sc_americium.name=Self-Charging Americium-241 Battery (LEGACY) +item.battery_sc_gold.name=Self-Charging Gold-198 Battery (LEGACY) +item.battery_sc_lead.name=Self-Charging Lead-209 Battery (LEGACY) +item.battery_sc_plutonium.name=Self-Charging Plutonium-238 Battery (LEGACY) +item.battery_sc_polonium.name=Self-Charging Polonium-210 Battery (LEGACY) +item.battery_sc_technetium.name=Self-Charging Technetium-99 Battery (LEGACY) +item.battery_sc_uranium.name=Self-Charging Uranium-238 Battery (LEGACY) +item.battery_schrabidium.name=Schrabidium Battery (LEGACY) +item.battery_schrabidium_cell.name=Schrabidium Power Cell (LEGACY) +item.battery_schrabidium_cell_2.name=Double Schrabidium Power Cell (LEGACY) +item.battery_schrabidium_cell_4.name=Quadruple Schrabidium Power Cell (LEGACY) item.battery_spark.name=Spark Battery -item.battery_spark_cell_100.name=Spark Arcane Energy Storage Array -item.battery_spark_cell_1000.name=Spark Arcane Mass-Energy Void -item.battery_spark_cell_10000.name=Spark Solid Space-Time Crystal -item.battery_spark_cell_25.name=Spark Arcane Car Battery -item.battery_spark_cell_2500.name=Spark Arcane Dirac Sea -item.battery_spark_cell_6.name=Spark Power Cell -item.battery_spark_cell_power.name=Spark Ludicrous Physics-Defying Energy Storage Unit -item.battery_steam.name=Steam Powered Energy Storage Tank -item.battery_steam_large.name=Large Steam Powered Energy Storage Tank -item.battery_su.name=SU-Battery -item.battery_su_l.name=Large SU-Battery +item.battery_spark_cell_100.name=Spark Arcane Energy Storage Array (LEGACY) +item.battery_spark_cell_1000.name=Spark Arcane Mass-Energy Void (LEGACY) +item.battery_spark_cell_10000.name=Spark Solid Space-Time Crystal (LEGACY) +item.battery_spark_cell_25.name=Spark Arcane Car Battery (LEGACY) +item.battery_spark_cell_2500.name=Spark Arcane Dirac Sea (LEGACY) +item.battery_spark_cell_6.name=Spark Power Cell (LEGACY) +item.battery_spark_cell_power.name=Spark Ludicrous Physics-Defying Energy Storage Unit (LEGACY) +item.battery_steam.name=Steam Powered Energy Storage Tank (LEGACY) +item.battery_steam_large.name=Large Steam Powered Energy Storage Tank (LEGACY) item.battery_trixite.name=Off-Brand Spark Battery item.bdcl.name=BDCL item.bedrock_ore.grade.base.name=%s Bedrock Ore @@ -5742,7 +5750,7 @@ tile.machine_battery_redd.name=FEnSU tile.machine_battery_socket.name=Battery Socket tile.machine_battery_socket.desc=Allows battery items to be connected$to the power grid directly.$Acts as a cable, all ports are connected$to the same network. tile.machine_boiler.name=Boiler -tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t +tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.1 TU/t tile.machine_boiler_electric_off.name=Electric Oil Heater tile.machine_boiler_electric_on.name=Electric Oil Heater tile.machine_boiler_off.name=Old Boiler @@ -5759,7 +5767,7 @@ tile.machine_chungus.desc=Efficiency: 85%% tile.machine_coal_off.name=Combustion Generator tile.machine_coal_on.name=Combustion Generator tile.machine_coker.name=Coker Unit -tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t +tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.25 TU/t tile.machine_combine_factory.name=CMB Steel Furnace tile.machine_combustion_engine.name=Industrial Combustion Engine tile.machine_compressor.name=Compressor @@ -5772,6 +5780,7 @@ tile.machine_converter_rf_he.name=RF to HE Converter tile.machine_conveyor_press.name=Conveyor Press tile.machine_conveyor_press.desc=Conveyor moves left to right$Right click stamp to install$Use screwdriver to remove stamp tile.machine_crucible.name=Crucible +tile.machine_crucible.desc=Heat transfer rate: ΔT*0.25 TU/t tile.machine_crystallizer.name=Ore Acidizer tile.machine_cyclotron.name=Cyclotron tile.machine_detector.name=Power Detector @@ -5808,7 +5817,7 @@ tile.machine_hephaestus.name=Geothermal Heat Exchanger tile.machine_icf_press.name=ICF Fuel Pellet Maker tile.machine_icf_press.desc=Fills ICF Fuel pellets$Left fuel slot is accepted by top/bottom, right by the sides$Muons and pellets may be supplied from any side tile.machine_industrial_boiler.name=Industrial Boiler -tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t$Cannot explode +tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.1 TU/t$Cannot explode tile.machine_industrial_generator.name=Industrial Generator tile.machine_intake.name=Air Intake tile.machine_keyforge.name=Locksmith Table diff --git a/src/main/resources/assets/hbm/textures/items/battery_sc.am241.png b/src/main/resources/assets/hbm/textures/items/battery_sc.am241.png new file mode 100644 index 0000000000000000000000000000000000000000..2837a00e3e4bdad04ff2d6df0b3298361cc097a0 GIT binary patch literal 330 zcmV-Q0k!^#P)%dlPns4w;pRYWw3A^={VPx*e^aQ$=wKwa0tN+#ubt|FqtdZpG{wbtrKd8U9S zN#dJDa(>9%jo-lGUuE(p%(z)oMRY<$wKmW0ibCb z9&T=Vyt}8Wsvsa(0l;V1?YjOS&~3i<16*BR><2iECwS*tL^O`$*&K|m+`R|CA&g^8 cU=sm;00il6?pX}4+5i9m07*qoM6N<$f;V1Mo(oAPzW#zm04k-h9gLJpaV_07b zjZFj##lyl%#4<#XvAGKbH;P*M!@w{*d^5ZJJ7Yr5IRjX&R-4i+)VCEXiika29}z_n zs!G3{16Zi{6IDbkj$;6>F7|o5ec||g7l5W|CN~*W6orY1^~<@bs;R0yRfh&xnx?@m zMsm(sS(fIUv-LX|U|E)J@{x8zkgBT4^PH~hhVb482L=HE-h2AKA7V zr7<=s>`Y~m!fQip#>NW-cNMwH9|o4$pKoWEe>Vi=oHKx77!IwC&v)W$iio{FUlK(T zs>;0E0+`SHjVdA*$1wm;kLP^6ymNJX20+(!!ATaCWoaT}^KNUZYN~2)&4mG$Wtn%1 zm7H@{*R?t4?CTv2usqKX>y=J@kfv!Uih^mHma3}Cd!QEpP*oN4JTDbe5YYEM_t^sg zcQ@Cl>fZnW`~Ci>?cV|8I35Q`lH@qR|G0uT*CJwRnyzxtwr$Ywm53}cCh!vhJ^{T)LL`>kVefkGa{> zxes1qWnU(mPqiu z9COZko$cgAiHzIRN@KTo8SWC_#l~Rh7UUKE^n}!z&wpxLSFBoHeEo;?Ki+=_4xHWE s5fK`?Tc+pnjH|mlPKYHN*$X}pw(&~1F?(h~G|;OIp00i_>zopr0PyE{mH+?% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/battery_sc.pb209.png b/src/main/resources/assets/hbm/textures/items/battery_sc.pb209.png new file mode 100644 index 0000000000000000000000000000000000000000..00300e3bd231cdddf18a633662a9fc6886ec8a1f GIT binary patch literal 329 zcmV-P0k-~$P)RpuXI1R1wkTatXlQ%|7oB&s<#Z0Z`XxmBhD$l) z>hzqds)B%E1psfaFWZiP26SEbH^9;H$)|JsOThnlf_JV(MB_M~&B55p?R)SQ!Z^kR bHWAx(?2Mnd7kgj3!VBPbzM^w1;a4R=A82;^a22!bByCSTS(q60CZi)&2`M( z`huouf`DKJ0AHUUhpztyybrtM0GCN}9N>RE!8_L?qG_5g=3r{&;XU{XVH#rsn+Wg? X{Zef1A&8>000000NkvXXu0mjfwU>qW literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/battery_sc.pu238.png b/src/main/resources/assets/hbm/textures/items/battery_sc.pu238.png new file mode 100644 index 0000000000000000000000000000000000000000..99e9098627d01df44da17e48690c2e80e69a3755 GIT binary patch literal 321 zcmV-H0lxl;P)((D(hZ6ovXuLPZg=?eisZ9HXj? zn-zeCdOuM`#F8Wd;OXI<_m?-WZ_fZ|+jeo2No84@h}gJUnW~zq+G~AbfMr=0++rr@ zoK;n2&N(~0g8`Q3`7xjAGz6*ZnxZHehG7cteQ;n90N}l69LFh^vqGMROTfRlLeSSDVriPre9$z_Vt-H~GTE4gp9t^)%MxmM TxU?y700000NkvXXu0mjfhm?+4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/battery_sc.ra226.png b/src/main/resources/assets/hbm/textures/items/battery_sc.ra226.png new file mode 100644 index 0000000000000000000000000000000000000000..7198a5319234999780610553c2b5888adc2d7001 GIT binary patch literal 320 zcmV-G0l)r2)U@5bGNHd-HOuj?PK;9r_lE<*VH0GLc zTxZ}83lZxOo3Zf%!CghJ@`r(C_UGH#<=+JXIp++Z@B340;qzVinj&J)+dHBtLRA?z zF@X8J->4#DtJMmCr^g#U_V3(3TmjIwZE%uFMNycD*tm&JRZUgxrM@-5(lqr>F_Ux7 zs;V;QoPE860hVRiX+6`W4^r1Pd7d*2!&GHidJpsh0Lrpt9LK3b3Ie*WW4GS{u)JQP zs(%9j9NrE;ZT}89z8=p5tmE~0fd6p?Z>~kek|desplO<*-zyQBVocyC0(=6owru1g Sp1Y6$0000SKy zoU^K`%sFRY?_hxCd45_ibQyxwbxlzejN>?$_da-F5CGu4XPTzD*0c&}+m^@O4uCu7 zP}RQy0ES`sY5R9T-}mPMk|a3~@IS5)%(aMEnx=~!91e$7e^4Sa$C#C$2=EEeT5RM_ SlEO3q0000C}{{4LK`uZAgm38Z@GYgr(i>4lBA& zA7;;Z=g!^vas9~$19R@3d*(a$oO|xMR{{s6Yd`}4IS|A~LB*5L9$@bCTl{ALfTqD# ztY=mL0QbNB+thdXix&X^;h{E=J^UV?abY7x>sejOGAm&rGarz1pL8j zG!3>Ia#77%zF~EGF+Q`hAZ!o$*GzKbwX|!)2|fULdd{ysJ?GcF4t9&aM7OQH9h93C zukf*k)B8>kWWh(1m+0ClL(9Qe)fff)09Jx*Xxp{fVWXfL58LJzd;$c_>z*)qwANE3 z%WDr(9MKlN!()OHt$AIa)yVA_4#2b{h>TA~6fHXKJ^=!NOkOAS5BFjuHfkZ+G}vlv zhrIVU3;D7?=pXL2XYkHN+iuq5KzZW#!Xyy7vkkn-7t|dQ$T^+IV-4cMUwJr*E zHV-%%mx?GFtB2J^H3HQdfM6T6!-2Oh007p1{m9EON0c+3+P!!*I-QqN5k(96*Nno- z4#GlcKOr(cIiJ>&^JybedASleMnIwEN4&fI7&l&h8S9&RTd-pSZ~l1?KZT!1;O@za z2sBx@K5knOfGwvVqDsv4uV+aEvP zsh>T-@JWyNx>v&iJ*p`4lN_DSOFkkZdRU@WjZr-OA%H(dYAnV(ji;kA3sIXBQV~V- zTIm7S3C$I&j5aAZeoW)f$)=B6FPP-|aH|9WeEksYn2-RVrsq?wFVT&W*r;h-|8OrZ z4UA*){Rz|AoWP#Z0c#~nh1qg^$`wDi5bgqWmZ!-GD!Q!Zw~K1Z;VpCV+20STdeS5|-mr2*-f4anBreqNN+EorZ85YfIl#DxftzC`z)cpm^{Q;Ex!lV0WRVxypz-3fM^pS)X&y~57pyUFi=y+B1tJ}?zH P00000NkvXXu0mjfp{JCw literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/battery_sc.png b/src/main/resources/assets/hbm/textures/models/machines/battery_sc.png new file mode 100644 index 0000000000000000000000000000000000000000..554c4078592fac34dccfd76ee2331669231385b2 GIT binary patch literal 1008 zcmV4DQrUF{Pu&x?W830s1LAWXMqZ z0WxIj7x2`fQ*fci{sZM#Vx9{s6!(4e7e(%d#~dDOLV74x<@}hdUT4O ztASFl*Nf;r8JbKcH5KEi(iYuOuh(_>AwpyT)XKIyoler8&*wD&=yW9FFdBAx46V2!I1SkoXaa^jM0=Zl+^IbMmc`1ptpN5=>gi6?O+bNKv(I`3T zU@(xDF9(A`M32>MHnChTv0AM*&7pb6(EDjP8|x8ohfIhP$B3{FhIKn~_mdIGxWzO7 zrXmth1CbnyjLiQKE7}UTsfS9cop*dHB2_}vIi_fB^?JRiUauq0PfnYOnpj@AnHmsK(>5)OUNUBeE#OvbLMZ+K8mVEEWr>`dJCo{z^&rVeBw@~`4cwjHVsU=MjaHGe9wY#~dHV|h zaCdr(*|f0+aqoCXi4T96814br9z~G1^qs_$g(J~g~(b17^7fQ)kki+3nw+p3YEXXhn zb-PeX#(<>1ZFjp}t3J^(OIB2WXJ!=$R3ai(!sJz1Y;SL?7+#pTx3&tHS*0qrMP%+I zRaazMpCf7MDm*14((}AjA5Xe$b3y8=2a0oK7>3DvwD0@L1+k>lHW%b-waPP*qWG5& z!w|F2uK@t>K3--c$p%Yzv^>v1=3_Wkb-0^$jbabQny@03X%gUNDibR9UdO) zcA=Dv1$l6ApxcE~G8Safq9?cVOMu+UF9C8Zza+@5{1PCy@=KuH$}fR(E59nD%7An$ zzXZsw{1PBjR(>%jrzTYF=BeNBN95d)_fd+5C~HE_J*n=B-6ATxc1Gr+rOXrSETSr^ eqA+Ez{Q3)zPqq&~gwrJe0000