From 7fe0a113889e3f2ead82e7b93c2918ec9b7eb8e2 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 15 May 2023 14:58:30 +0200 Subject: [PATCH] the malicious gigglefish from the silly dimension --- .../java/com/hbm/blocks/BlockEnumMulti.java | 6 +- .../hbm/blocks/generic/BlockBiomeStone.java | 8 +- .../hbm/blocks/generic/BlockTallPlant.java | 5 +- .../hbm/blocks/machine/DeuteriumTower.java | 3 +- .../hbm/blocks/machine/MachineAutosaw.java | 3 +- .../machine/MachineCatalyticCracker.java | 5 +- .../hbm/blocks/machine/MachineCondenser.java | 3 +- .../machine/MachineDeuteriumExtractor.java | 3 +- .../blocks/machine/MachineFractionTower.java | 5 +- .../hbm/blocks/machine/MachineHeatBoiler.java | 3 +- .../hbm/blocks/machine/MachineHephaestus.java | 3 +- .../hbm/blocks/machine/MachineTowerLarge.java | 3 +- .../hbm/blocks/machine/MachineTowerSmall.java | 3 +- .../hbm/blocks/machine/MachineTurbineGas.java | 9 +- .../java/com/hbm/config/PotionConfig.java | 6 +- .../com/hbm/entity/train/TrainCargoTram.java | 150 ++++++++++++++---- .../com/hbm/inventory/fluid/FluidType.java | 7 +- .../java/com/hbm/inventory/gui/GUIAnvil.java | 9 +- .../java/com/hbm/inventory/gui/GUIHadron.java | 5 +- .../com/hbm/inventory/gui/GUIRBMKConsole.java | 3 +- .../com/hbm/inventory/gui/GUIScreenFluid.java | 5 +- .../gui/GUIScreenTemplateFolder.java | 7 +- .../hbm/inventory/material/NTMMaterial.java | 3 +- .../recipes/GasCentrifugeRecipes.java | 3 +- .../hbm/inventory/recipes/PressRecipes.java | 3 +- .../java/com/hbm/items/ItemEnumMulti.java | 5 +- src/main/java/com/hbm/items/ModItems.java | 3 + .../java/com/hbm/items/food/ItemConserve.java | 5 +- .../java/com/hbm/items/food/ItemCrayon.java | 3 +- .../java/com/hbm/items/food/ItemFlask.java | 4 +- .../com/hbm/items/machine/ItemDrillbit.java | 5 +- .../com/hbm/items/machine/ItemPistons.java | 5 +- .../com/hbm/items/machine/ItemZirnoxRod.java | 5 +- .../com/hbm/items/special/ItemBedrockOre.java | 5 +- .../java/com/hbm/items/special/ItemTrain.java | 55 +++++++ .../com/hbm/items/tool/ItemModMinecart.java | 7 +- .../com/hbm/items/tool/ItemToolAbility.java | 3 +- .../java/com/hbm/items/weapon/ItemAmmo.java | 3 +- .../java/com/hbm/main/ModEventHandler.java | 3 +- .../com/hbm/main/ModEventHandlerClient.java | 3 +- .../machine/rbmk/TileEntityRBMKConsole.java | 3 +- src/main/java/com/hbm/util/ArmorUtil.java | 3 +- .../textures/gui/vehicles/gui_cargo_tram.png | Bin 0 -> 2096 bytes .../hbm/textures/items/train.cargo_tram.png | Bin 0 -> 218 bytes 44 files changed, 285 insertions(+), 98 deletions(-) create mode 100644 src/main/java/com/hbm/items/special/ItemTrain.java create mode 100644 src/main/resources/assets/hbm/textures/gui/vehicles/gui_cargo_tram.png create mode 100644 src/main/resources/assets/hbm/textures/items/train.cargo_tram.png diff --git a/src/main/java/com/hbm/blocks/BlockEnumMulti.java b/src/main/java/com/hbm/blocks/BlockEnumMulti.java index 5ee6e4660..d581bfd2d 100644 --- a/src/main/java/com/hbm/blocks/BlockEnumMulti.java +++ b/src/main/java/com/hbm/blocks/BlockEnumMulti.java @@ -1,5 +1,7 @@ package com.hbm.blocks; +import java.util.Locale; + import com.hbm.util.EnumUtil; import cpw.mods.fml.relauncher.Side; @@ -34,7 +36,7 @@ public class BlockEnumMulti extends BlockMulti { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase(Locale.US)); } } else { this.blockIcon = reg.registerIcon(this.getTextureName()); @@ -45,7 +47,7 @@ public class BlockEnumMulti extends BlockMulti { if(this.multiName) { Enum num = EnumUtil.grabEnumSafely(this.theEnum, stack.getItemDamage()); - return super.getUnlocalizedName() + "." + num.name().toLowerCase(); + return super.getUnlocalizedName() + "." + num.name().toLowerCase(Locale.US); } return this.getUnlocalizedName(); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBiomeStone.java b/src/main/java/com/hbm/blocks/generic/BlockBiomeStone.java index a53cce92d..157270048 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBiomeStone.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBiomeStone.java @@ -1,5 +1,7 @@ package com.hbm.blocks.generic; +import java.util.Locale; + import com.hbm.blocks.BlockEnumMulti; import com.hbm.blocks.BlockEnums.EnumBiomeType; @@ -30,9 +32,9 @@ public class BlockBiomeStone extends BlockEnumMulti { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase()); - this.iconsTop[i] = reg.registerIcon(this.getTextureName() + "_top." + num.name().toLowerCase()); - this.iconsLayer[i] = reg.registerIcon(this.getTextureName() + "_layer." + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase(Locale.US)); + this.iconsTop[i] = reg.registerIcon(this.getTextureName() + "_top." + num.name().toLowerCase(Locale.US)); + this.iconsLayer[i] = reg.registerIcon(this.getTextureName() + "_layer." + num.name().toLowerCase(Locale.US)); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java b/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java index 60ef35c47..4a972a3e7 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java +++ b/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java @@ -1,6 +1,7 @@ package com.hbm.blocks.generic; import java.util.ArrayList; +import java.util.Locale; import java.util.Random; import com.hbm.blocks.BlockEnumMulti; @@ -87,8 +88,8 @@ public class BlockTallPlant extends BlockEnumMulti implements IPlantable, IGrowa for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase() + ".upper"); - this.bottomIcons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase() + ".lower"); + this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase(Locale.US) + ".upper"); + this.bottomIcons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase(Locale.US) + ".lower"); } } diff --git a/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java b/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java index e3e706707..b7530f2d2 100644 --- a/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java +++ b/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -77,7 +78,7 @@ public class DeuteriumTower extends BlockDummyable implements ILookOverlay { text.add((tower.power < tower.getMaxPower() / 20 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(tower.power) + "HE"); for(int i = 0; i < tower.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase()) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java index b2bce040f..fe568c409 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.machine.TileEntityMachineAutosaw; @@ -50,7 +51,7 @@ public class MachineAutosaw extends BlockContainer implements ILookOverlay { TileEntityMachineAutosaw saw = (TileEntityMachineAutosaw) te; List text = new ArrayList(); - text.add(I18nUtil.resolveKey("hbmfluid." + saw.tank.getTankType().getName().toLowerCase()) + ": " + saw.tank.getFill() + "/" + saw.tank.getMaxFill() + "mB"); + text.add(I18nUtil.resolveKey("hbmfluid." + saw.tank.getTankType().getName().toLowerCase(Locale.US)) + ": " + saw.tank.getFill() + "/" + saw.tank.getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java b/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java index 648f9a3b6..247ee608d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -70,7 +71,7 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); cracker.tanks[0].setTankType(type); cracker.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase())).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); return true; } @@ -129,7 +130,7 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver List text = new ArrayList(); for(int i = 0; i < cracker.tanks.length; i++) - text.add((i < 2 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase()) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); + text.add((i < 2 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java index b31340f09..e498acde6 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.machine.TileEntityCondenser; @@ -38,7 +39,7 @@ public class MachineCondenser extends BlockContainer implements ILookOverlay { List text = new ArrayList(); for(int i = 0; i < condenser.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + condenser.tanks[i].getTankType().getName().toLowerCase()) + ": " + condenser.tanks[i].getFill() + "/" + condenser.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + condenser.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + condenser.tanks[i].getFill() + "/" + condenser.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java b/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java index f0d3d2d43..a8e0dc586 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.lib.RefStrings; @@ -66,7 +67,7 @@ public class MachineDeuteriumExtractor extends BlockContainer implements ILookOv text.add((extractor.power < extractor.getMaxPower() / 20 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(extractor.power) + "HE"); for(int i = 0; i < extractor.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + extractor.tanks[i].getTankType().getName().toLowerCase()) + ": " + extractor.tanks[i].getFill() + "/" + extractor.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + extractor.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + extractor.tanks[i].getFill() + "/" + extractor.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java index b8705ead5..af24b1d28 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -73,7 +74,7 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); frac.tanks[0].setTankType(type); frac.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase())).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); } return true; @@ -115,7 +116,7 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay List text = new ArrayList(); for(int i = 0; i < cracker.tanks.length; i++) - text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase()) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); + text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java b/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java index 4264b777d..a8779573e 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IBlockMulti; @@ -68,7 +69,7 @@ public class MachineHeatBoiler extends BlockDummyable implements ILookOverlay, I if(type.hasTrait(FT_Heatable.class) && type.getTrait(FT_Heatable.class).getEfficiency(HeatingType.BOILER) > 0) { boiler.tanks[0].setTankType(type); boiler.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase())).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); } return true; } diff --git a/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java b/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java index b748e3412..6f31472b9 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -110,7 +111,7 @@ public class MachineHephaestus extends BlockDummyable implements ILookOverlay { for(int i = 0; i < heatex.getAllTanks().length; i++) { FluidTank tank = heatex.getAllTanks()[i]; - text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tank.getTankType().getName().toLowerCase()) + ": " + tank.getFill() + "/" + tank.getMaxFill() + "mB"); + text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tank.getTankType().getName().toLowerCase(Locale.US)) + ": " + tank.getFill() + "/" + tank.getMaxFill() + "mB"); } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java index b3fea11e2..b15c2dc74 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -77,7 +78,7 @@ public class MachineTowerLarge extends BlockDummyable implements ILookOverlay { List text = new ArrayList(); for(int i = 0; i < tower.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase()) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java b/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java index ac1dd989e..f13cc49df 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -74,7 +75,7 @@ public class MachineTowerSmall extends BlockDummyable implements ILookOverlay { List text = new ArrayList(); for(int i = 0; i < tower.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase()) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java b/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java index 02c6d7394..f47e6b6c3 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java @@ -6,6 +6,7 @@ import com.hbm.util.I18nUtil; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -85,16 +86,16 @@ public class MachineTurbineGas extends BlockDummyable implements ILookOverlay { List text = new ArrayList(); if(hitCheck(dir, pos[0], pos[1], pos[2], -1, -1, 0, x, y, z) || hitCheck(dir, pos[0], pos[1], pos[2], 1, -1, 0, x, y, z)) { - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[0].getTankType().getName().toLowerCase())); - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[1].getTankType().getName().toLowerCase())); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[0].getTankType().getName().toLowerCase(Locale.US))); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[1].getTankType().getName().toLowerCase(Locale.US))); } if(hitCheck(dir, pos[0], pos[1], pos[2], -1, 4, 0, x, y, z) || hitCheck(dir, pos[0], pos[1], pos[2], 1, 4, 0, x, y, z)) { - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[2].getTankType().getName().toLowerCase())); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[2].getTankType().getName().toLowerCase(Locale.US))); } if(hitCheck(dir, pos[0], pos[1], pos[2], 0, 5, 1, x, y, z)) { - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[3].getTankType().getName().toLowerCase())); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[3].getTankType().getName().toLowerCase(Locale.US))); } if(hitCheck(dir, pos[0], pos[1], pos[2], 0, -4, 1, x, y, z)) { diff --git a/src/main/java/com/hbm/config/PotionConfig.java b/src/main/java/com/hbm/config/PotionConfig.java index d34c9128c..9cd584ff0 100644 --- a/src/main/java/com/hbm/config/PotionConfig.java +++ b/src/main/java/com/hbm/config/PotionConfig.java @@ -1,5 +1,7 @@ package com.hbm.config; +import java.util.Locale; + import net.minecraftforge.common.config.Configuration; public class PotionConfig { @@ -37,9 +39,9 @@ public class PotionConfig { String s = CommonConfig.createConfigString(config, CATEGORY_POTION, "8.S0_potionSickness", "Valid configs include \"NORMAL\" and \"TERRARIA\", otherwise potion sickness is turned off", "OFF"); - if("normal".equals(s.toLowerCase())) + if("normal".equals(s.toLowerCase(Locale.US))) potionSickness = 1; - if("terraria".equals(s.toLowerCase())) + if("terraria".equals(s.toLowerCase(Locale.US))) potionSickness = 2; } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index 46981be68..5ae727de1 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -1,15 +1,26 @@ package com.hbm.entity.train; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.rail.IRailNTM.TrackGauge; +import com.hbm.inventory.gui.GuiInfoContainer; +import com.hbm.lib.RefStrings; import com.hbm.tileentity.IGUIProvider; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -62,20 +73,12 @@ public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider return speed; } - @Override - public TrackGauge getGauge() { - return TrackGauge.STANDARD; - } - - @Override - public double getLengthSpan() { - return 1.5; - } - - @Override - public Vec3 getRiderSeatPosition() { - return Vec3.createVectorHelper(0.375, 2.25, 0.5); - } + @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } + @Override public double getLengthSpan() { return 1.5; } + @Override public Vec3 getRiderSeatPosition() { return Vec3.createVectorHelper(0.375, 2.25, 0.5); } + @Override public boolean shouldRiderSit() { return false; } + @Override public int getSizeInventory() { return 29; } + @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTram"; } @Override public DummyConfig[] getDummies() { @@ -95,11 +98,6 @@ public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider return true; } - @Override - public boolean shouldRiderSit() { - return false; - } - @Override public Vec3[] getPassengerSeats() { return new Vec3[] { @@ -108,26 +106,112 @@ public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider }; } - @Override - public int getSizeInventory() { - return 27; - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTram"; - } - @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - //return new ContainerTrainCargoTram(player.inventory, (TrainCargoTram)player.worldObj.getEntityByID(x)); - return null; + return new ContainerTrainCargoTram(player.inventory, this); } @Override @SideOnly(Side.CLIENT) public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - //return new GUITrainCargoTram(player.inventory, (TrainCargoTram) player.worldObj.getEntityByID(x)); - return null; + return new GUITrainCargoTram(player.inventory, this); + } + + /* + * ##### ##### # # ##### ##### ### # # ##### #### + * # # # ## # # # # # ## # # # # + * # # # # # # # ##### # # # # ### #### + * # # # # ## # # # # # ## # # # + * ##### ##### # # # # # ### # # ##### # # + */ + public static class ContainerTrainCargoTram extends Container { + private TrainCargoTram train; + public ContainerTrainCargoTram(InventoryPlayer invPlayer, TrainCargoTram train) { + this.train = train; + for(int i = 0; i < 4; i++) { + for(int j = 0; j < 7; j++) { + this.addSlotToContainer(new Slot(train, i * 7 + j, 8 + j * 18, 18 + i * 18)); + } + } + this.addSlotToContainer(new Slot(train, 28, 152, 72)); + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); + } + } + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 180)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex) { + ItemStack stackCopy = null; + Slot slot = (Slot) this.inventorySlots.get(slotIndex); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + stackCopy = stack.copy(); + if(slotIndex < train.getSizeInventory()) { + if(!this.mergeItemStack(stack, train.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(stackCopy.getItem() instanceof IBatteryItem) { + if(!this.mergeItemStack(stack, 28, 29, false)) { + return null; + } + } else { + if(!this.mergeItemStack(stack, 0, 28, false)) { + return null; + } + } + } + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + return stackCopy; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return train.isUseableByPlayer(player); + } + } + + /* + * ##### # # ### + * # # # # + * # ## # # # + * # # # # # + * ##### ##### ### + */ + @SideOnly(Side.CLIENT) + public static class GUITrainCargoTram extends GuiInfoContainer { + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/vehicles/gui_cargo_tram.png"); + private TrainCargoTram train; + public GUITrainCargoTram(InventoryPlayer invPlayer, TrainCargoTram train) { + super(new ContainerTrainCargoTram(invPlayer, train)); + this.train = train; + this.xSize = 176; + this.ySize = 204; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.train.hasCustomInventoryName() ? this.train.getInventoryName() : I18n.format(this.train.getInventoryName()); + this.fontRendererObj.drawString(name, 140 / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float intero, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } } } diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index cc52b005d..d4dd7c272 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -3,6 +3,7 @@ package com.hbm.inventory.fluid; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map.Entry; import org.lwjgl.input.Keyboard; @@ -55,12 +56,12 @@ public class FluidType { public FluidType(String name, int color, int p, int f, int r, EnumSymbol symbol) { this.stringId = name; this.color = color; - this.unlocalized = "hbmfluid." + name.toLowerCase(); + this.unlocalized = "hbmfluid." + name.toLowerCase(Locale.US); this.poison = p; this.flammability = f; this.reactivity = r; this.symbol = symbol; - this.texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/fluids/" + name.toLowerCase() + ".png"); + this.texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/fluids/" + name.toLowerCase(Locale.US) + ".png"); this.id = Fluids.registerSelf(this); } @@ -124,7 +125,7 @@ public class FluidType { return this.unlocalized; } public String getDict(int quantity) { - return "container" + quantity + this.stringId.replace("_", "").toLowerCase(); + return "container" + quantity + this.stringId.replace("_", "").toLowerCase(Locale.US); } public boolean isHot() { diff --git a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java index b9f77897d..6f8ef4a10 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java +++ b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java @@ -2,6 +2,7 @@ package com.hbm.inventory.gui; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; @@ -85,7 +86,7 @@ public class GUIAnvil extends GuiContainer { private void search(String search) { - search = search.toLowerCase(); + search = search.toLowerCase(Locale.US); this.recipes.clear(); @@ -320,7 +321,7 @@ public class GUIAnvil extends GuiContainer { for(AStack stack : recipe.input) { if(stack instanceof ComparableStack) { ItemStack input = ((ComparableStack) stack).toStack(); - list.add(input.getDisplayName().toLowerCase()); + list.add(input.getDisplayName().toLowerCase(Locale.US)); } else if(stack instanceof OreDictStack) { OreDictStack input = (OreDictStack) stack; @@ -328,7 +329,7 @@ public class GUIAnvil extends GuiContainer { if(ores.size() > 0) { for(ItemStack ore : ores) { - list.add(ore.getDisplayName().toLowerCase()); + list.add(ore.getDisplayName().toLowerCase(Locale.US)); } } @@ -336,7 +337,7 @@ public class GUIAnvil extends GuiContainer { } for(AnvilOutput stack : recipe.output) { - list.add(stack.stack.getDisplayName().toLowerCase()); + list.add(stack.stack.getDisplayName().toLowerCase(Locale.US)); } return list; diff --git a/src/main/java/com/hbm/inventory/gui/GUIHadron.java b/src/main/java/com/hbm/inventory/gui/GUIHadron.java index d77a5bb3f..f932ba665 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIHadron.java +++ b/src/main/java/com/hbm/inventory/gui/GUIHadron.java @@ -2,6 +2,7 @@ package com.hbm.inventory.gui; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import org.lwjgl.opengl.GL11; @@ -51,7 +52,7 @@ public class GUIHadron extends GuiInfoContainer { List stats = new ArrayList(); stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("hadron.stats")); - stats.add((hadron.stat_success ? EnumChatFormatting.GREEN : EnumChatFormatting.RED) + I18n.format("hadron." + this.hadron.stat_state.name().toLowerCase())); + stats.add((hadron.stat_success ? EnumChatFormatting.GREEN : EnumChatFormatting.RED) + I18n.format("hadron." + this.hadron.stat_state.name().toLowerCase(Locale.US))); if(this.hadron.state.showCoord) stats.add(EnumChatFormatting.RED + I18nUtil.resolveKey("hadron.stats_coord", hadron.stat_x, hadron.stat_y, hadron.stat_z)); stats.add(EnumChatFormatting.GRAY + I18nUtil.resolveKey("hadron.stats_momentum", String.format("%,d", hadron.stat_charge))); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 41, guiTop + 92, 25, 11, mouseX, mouseY, stats.toArray(new String[0])); @@ -89,7 +90,7 @@ public class GUIHadron extends GuiInfoContainer { this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - String state = I18n.format("hadron." + this.hadron.state.name().toLowerCase()); + String state = I18n.format("hadron." + this.hadron.state.name().toLowerCase(Locale.US)); this.fontRendererObj.drawString(state, this.xSize / 2 - this.fontRendererObj.getStringWidth(state) / 2, 76, this.hadron.state.color); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java index 8d9bda1d3..85be6afb7 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java @@ -3,6 +3,7 @@ package com.hbm.inventory.gui; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Locale; import org.apache.commons.lang3.math.NumberUtils; import org.lwjgl.input.Keyboard; @@ -96,7 +97,7 @@ public class GUIRBMKConsole extends GuiScreen { for(int i = 0; i < 3; i++) { for(int j = 0; j < 2; j++) { int id = i * 2 + j + 1; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 6 + 40 * j, guiTop + 8 + 21 * i, 18, 18, mouseX, mouseY, new String[]{ EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.console." + console.screens[id - 1].type.name().toLowerCase(), id) } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 6 + 40 * j, guiTop + 8 + 21 * i, 18, 18, mouseX, mouseY, new String[]{ EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.console." + console.screens[id - 1].type.name().toLowerCase(Locale.US), id) } ); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 24 + 40 * j, guiTop + 8 + 21 * i, 18, 18, mouseX, mouseY, new String[]{ I18nUtil.resolveKey("rbmk.console.assign", id) } ); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java b/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java index 24a00b973..7a35749db 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java @@ -2,6 +2,7 @@ package com.hbm.inventory.gui; import java.awt.Color; import java.util.Arrays; +import java.util.Locale; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; @@ -166,10 +167,10 @@ public class GUIScreenFluid extends GuiScreen { this.searchArray = new FluidType[9]; int next = 0; - String subs = this.search.getText().toLowerCase(); + String subs = this.search.getText().toLowerCase(Locale.US); for(FluidType type : Fluids.getInNiceOrder()) { - String name = I18nUtil.resolveKey(type.getUnlocalizedName()).toLowerCase(); + String name = I18nUtil.resolveKey(type.getUnlocalizedName()).toLowerCase(Locale.US); if(name.contains(subs) && !type.hasNoID()) { this.searchArray[next] = type; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index 6872d9f9a..4d09369be 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -3,6 +3,7 @@ package com.hbm.inventory.gui; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Locale; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; @@ -122,7 +123,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { return; } - sub = sub.toLowerCase(); + sub = sub.toLowerCase(Locale.US); outer: for(ItemStack stack : allStacks) { @@ -132,7 +133,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { if(o instanceof String) { String text = (String) o; - if(text.toLowerCase().contains(sub)) { + if(text.toLowerCase(Locale.US).contains(sub)) { stacks.add(stack); continue outer; } @@ -142,7 +143,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { if(stack.getItem() == ModItems.fluid_identifier) { FluidType fluid = Fluids.fromID(stack.getItemDamage()); - if(I18nUtil.resolveKey(fluid.getUnlocalizedName()).toLowerCase().contains(sub)) { + if(I18nUtil.resolveKey(fluid.getUnlocalizedName()).toLowerCase(Locale.US).contains(sub)) { stacks.add(stack); } } diff --git a/src/main/java/com/hbm/inventory/material/NTMMaterial.java b/src/main/java/com/hbm/inventory/material/NTMMaterial.java index 35940e7b2..0f953871b 100644 --- a/src/main/java/com/hbm/inventory/material/NTMMaterial.java +++ b/src/main/java/com/hbm/inventory/material/NTMMaterial.java @@ -1,6 +1,7 @@ package com.hbm.inventory.material; import java.util.HashSet; +import java.util.Locale; import java.util.Set; import com.hbm.inventory.OreDictManager.DictFrame; @@ -45,7 +46,7 @@ public class NTMMaterial { } public String getUnlocalizedName() { - return "hbmmat." + this.names[0].toLowerCase(); + return "hbmmat." + this.names[0].toLowerCase(Locale.US); } public NTMMaterial setConversion(NTMMaterial mat, int in, int out) { diff --git a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java index abbdea91a..7b7743f2c 100644 --- a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java @@ -2,6 +2,7 @@ package com.hbm.inventory.recipes; import java.util.HashMap; import java.util.Iterator; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; @@ -60,7 +61,7 @@ public class GasCentrifugeRecipes { } public String getName() { - return I18nUtil.resolveKey("hbmpseudofluid.".concat(this.toString().toLowerCase())); + return I18nUtil.resolveKey("hbmpseudofluid.".concat(this.toString().toLowerCase(Locale.US))); } public boolean getIfHighSpeed() { diff --git a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java index 1186eb481..15f16e04c 100644 --- a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java @@ -2,6 +2,7 @@ package com.hbm.inventory.recipes; import java.io.IOException; import java.util.HashMap; +import java.util.Locale; import java.util.Map.Entry; import static com.hbm.inventory.OreDictManager.*; @@ -151,7 +152,7 @@ public class PressRecipes extends SerializableRecipe { writer.name("input"); this.writeAStack(entry.getKey().getKey(), writer); - writer.name("stamp").value(entry.getKey().getValue().name().toLowerCase()); + writer.name("stamp").value(entry.getKey().getValue().name().toLowerCase(Locale.US)); writer.name("output"); this.writeItemStack(entry.getValue(), writer); } diff --git a/src/main/java/com/hbm/items/ItemEnumMulti.java b/src/main/java/com/hbm/items/ItemEnumMulti.java index f3f81d997..8085625d1 100644 --- a/src/main/java/com/hbm/items/ItemEnumMulti.java +++ b/src/main/java/com/hbm/items/ItemEnumMulti.java @@ -1,6 +1,7 @@ package com.hbm.items; import java.util.List; +import java.util.Locale; import com.hbm.lib.RefStrings; import com.hbm.util.EnumUtil; @@ -54,7 +55,7 @@ public class ItemEnumMulti extends Item { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getIconString() + "." + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getIconString() + "." + num.name().toLowerCase(Locale.US)); } } else { this.itemIcon = reg.registerIcon(this.getIconString()); @@ -91,7 +92,7 @@ public class ItemEnumMulti extends Item { if(multiName) { Enum num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); - return super.getUnlocalizedName() + "." + num.name().toLowerCase(); + return super.getUnlocalizedName() + "." + num.name().toLowerCase(Locale.US); } else { return super.getUnlocalizedName(stack); } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 79043e1e0..d055d6f01 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1031,6 +1031,7 @@ public class ModItems { public static Item can_key; public static Item cart; + public static Item train; public static Item coin_creeper; public static Item coin_radiation; @@ -3456,6 +3457,7 @@ public class ModItems { can_key = new Item().setUnlocalizedName("can_key").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_key"); cart = new ItemModMinecart().setUnlocalizedName("cart"); + train = new ItemTrain().setUnlocalizedName("train"); coin_creeper = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_creeper").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_creeper"); coin_radiation = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_radiation").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_radiation"); @@ -7647,6 +7649,7 @@ public class ModItems { //Minecarts GameRegistry.registerItem(cart, cart.getUnlocalizedName()); + GameRegistry.registerItem(train, train.getUnlocalizedName()); //High Explosive Lenses GameRegistry.registerItem(early_explosive_lenses, early_explosive_lenses.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/food/ItemConserve.java b/src/main/java/com/hbm/items/food/ItemConserve.java index a8a7a5af1..11b2c9bb7 100644 --- a/src/main/java/com/hbm/items/food/ItemConserve.java +++ b/src/main/java/com/hbm/items/food/ItemConserve.java @@ -1,6 +1,7 @@ package com.hbm.items.food; import java.util.List; +import java.util.Locale; import com.hbm.entity.effect.EntityVortex; import com.hbm.items.ItemEnumMulti; @@ -93,14 +94,14 @@ public class ItemConserve extends ItemEnumMulti { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase(Locale.US)); } } @Override public String getUnlocalizedName(ItemStack stack) { Enum num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); - return "item.canned_" + num.name().toLowerCase(); + return "item.canned_" + num.name().toLowerCase(Locale.US); } public static enum EnumFoodType { diff --git a/src/main/java/com/hbm/items/food/ItemCrayon.java b/src/main/java/com/hbm/items/food/ItemCrayon.java index c03282985..f9f7d0760 100644 --- a/src/main/java/com/hbm/items/food/ItemCrayon.java +++ b/src/main/java/com/hbm/items/food/ItemCrayon.java @@ -1,6 +1,7 @@ package com.hbm.items.food; import java.util.List; +import java.util.Locale; import com.hbm.items.machine.ItemChemicalDye.EnumChemDye; import com.hbm.lib.RefStrings; @@ -44,7 +45,7 @@ public class ItemCrayon extends ItemFood { @Override public String getUnlocalizedName(ItemStack stack) { Enum num = EnumUtil.grabEnumSafely(EnumChemDye.class, stack.getItemDamage()); - return super.getUnlocalizedName() + "." + num.name().toLowerCase(); + return super.getUnlocalizedName() + "." + num.name().toLowerCase(Locale.US); } @Override diff --git a/src/main/java/com/hbm/items/food/ItemFlask.java b/src/main/java/com/hbm/items/food/ItemFlask.java index c2d727da0..256fa9eff 100644 --- a/src/main/java/com/hbm/items/food/ItemFlask.java +++ b/src/main/java/com/hbm/items/food/ItemFlask.java @@ -1,5 +1,7 @@ package com.hbm.items.food; +import java.util.Locale; + import com.hbm.extprop.HbmPlayerProps; import com.hbm.items.ItemEnumMulti; @@ -30,7 +32,7 @@ public class ItemFlask extends ItemEnumMulti { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase(Locale.US)); } } diff --git a/src/main/java/com/hbm/items/machine/ItemDrillbit.java b/src/main/java/com/hbm/items/machine/ItemDrillbit.java index b992fd052..7dd8d3bdd 100644 --- a/src/main/java/com/hbm/items/machine/ItemDrillbit.java +++ b/src/main/java/com/hbm/items/machine/ItemDrillbit.java @@ -1,6 +1,7 @@ package com.hbm.items.machine; import java.util.List; +import java.util.Locale; import com.hbm.items.ItemEnumMulti; import com.hbm.util.EnumUtil; @@ -27,14 +28,14 @@ public class ItemDrillbit extends ItemEnumMulti { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase(Locale.US)); } } @Override public String getUnlocalizedName(ItemStack stack) { Enum num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); - return super.getUnlocalizedName() + "_" + num.name().toLowerCase(); + return super.getUnlocalizedName() + "_" + num.name().toLowerCase(Locale.US); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemPistons.java b/src/main/java/com/hbm/items/machine/ItemPistons.java index e47d8a53b..4736b5cdd 100644 --- a/src/main/java/com/hbm/items/machine/ItemPistons.java +++ b/src/main/java/com/hbm/items/machine/ItemPistons.java @@ -1,6 +1,7 @@ package com.hbm.items.machine; import java.util.List; +import java.util.Locale; import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; import com.hbm.items.ItemEnumMulti; @@ -28,14 +29,14 @@ public class ItemPistons extends ItemEnumMulti { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase(Locale.US)); } } @Override public String getUnlocalizedName(ItemStack stack) { Enum num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); - return super.getUnlocalizedName() + "_" + num.name().toLowerCase(); + return super.getUnlocalizedName() + "_" + num.name().toLowerCase(Locale.US); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java index 3856016fa..d2a50f20d 100644 --- a/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java +++ b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java @@ -1,6 +1,7 @@ package com.hbm.items.machine; import java.util.List; +import java.util.Locale; import com.hbm.items.ItemEnumMulti; import com.hbm.util.BobMathUtil; @@ -87,14 +88,14 @@ public class ItemZirnoxRod extends ItemEnumMulti { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase(Locale.US)); } } @Override public String getUnlocalizedName(ItemStack stack) { Enum num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); - return super.getUnlocalizedName() + "_" + num.name().toLowerCase(); + return super.getUnlocalizedName() + "_" + num.name().toLowerCase(Locale.US); } public static enum EnumZirnoxType { diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOre.java b/src/main/java/com/hbm/items/special/ItemBedrockOre.java index 61fc2bd96..55539aa79 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOre.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOre.java @@ -3,6 +3,9 @@ package com.hbm.items.special; import com.hbm.items.ItemEnumMulti; import com.hbm.items.special.ItemByproduct.EnumByproduct; import static com.hbm.items.special.ItemByproduct.EnumByproduct.*; + +import java.util.Locale; + import com.hbm.lib.RefStrings; import com.hbm.util.EnumUtil; @@ -57,7 +60,7 @@ public class ItemBedrockOre extends ItemEnumMulti { public String getItemStackDisplayName(ItemStack stack) { EnumBedrockOre ore = EnumUtil.grabEnumSafely(EnumBedrockOre.class, stack.getItemDamage()); - String oreName = StatCollector.translateToLocal("item.ore." + ore.oreName.toLowerCase()); + String oreName = StatCollector.translateToLocal("item.ore." + ore.oreName.toLowerCase(Locale.US)); return StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".name", oreName); } diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java new file mode 100644 index 000000000..9c5e65062 --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -0,0 +1,55 @@ +package com.hbm.items.special; + +import com.hbm.blocks.rail.IRailNTM; +import com.hbm.entity.train.EntityRailCarBase; +import com.hbm.entity.train.TrainCargoTram; +import com.hbm.items.ItemEnumMulti; +import com.hbm.util.EnumUtil; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemTrain extends ItemEnumMulti { + + public ItemTrain() { + super(EnumTrainType.class, true, true); + } + + public static enum EnumTrainType { + + CARGO_TRAM(TrainCargoTram.class); + + public Class train; + private EnumTrainType(Class train) { + this.train = train; + } + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer entity, World world, int x, int y, int z, int side, float fx, float fy, float fz) { + + Block b = world.getBlock(x, y, z); + + if(b instanceof IRailNTM) { + + EnumTrainType type = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); + EntityRailCarBase train = null; + try { train = type.train.getConstructor(World.class).newInstance(world); } catch(Exception e) { } + + if(train != null && train.getGauge() == ((IRailNTM) b).getGauge(world, x, y, z)) { + if(!world.isRemote) { + train.setPosition(x + fx, y + fy, z + fz); + train.rotationYaw = entity.rotationYaw; + world.spawnEntityInWorld(train); + } + + stack.stackSize--; + return true; + } + } + + return false; + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemModMinecart.java b/src/main/java/com/hbm/items/tool/ItemModMinecart.java index c065c189f..4bc248f8c 100644 --- a/src/main/java/com/hbm/items/tool/ItemModMinecart.java +++ b/src/main/java/com/hbm/items/tool/ItemModMinecart.java @@ -1,6 +1,7 @@ package com.hbm.items.tool; import java.util.List; +import java.util.Locale; import com.hbm.entity.cart.*; import com.hbm.items.ModItems; @@ -103,7 +104,7 @@ public class ItemModMinecart extends Item { @Override public String getUnlocalizedName(ItemStack stack) { EnumMinecart cart = EnumUtil.grabEnumSafely(EnumMinecart.class, stack.getItemDamage()); - return super.getUnlocalizedName() + "." + cart.name().toLowerCase(); + return super.getUnlocalizedName() + "." + cart.name().toLowerCase(Locale.US); } @Override @@ -126,7 +127,7 @@ public class ItemModMinecart extends Item { for(int i = 0; i < EnumCartBase.values().length; i++) { EnumCartBase base = EnumCartBase.values()[i]; - bases[i] = reg.registerIcon(this.getIconString() + "." + base.name().toLowerCase()); + bases[i] = reg.registerIcon(this.getIconString() + "." + base.name().toLowerCase(Locale.US)); } EnumMinecart[] enums = EnumMinecart.values(); @@ -134,7 +135,7 @@ public class ItemModMinecart extends Item { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getIconString() + "_overlay." + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getIconString() + "_overlay." + num.name().toLowerCase(Locale.US)); } } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index e5b006909..85e0694d0 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -3,6 +3,7 @@ package com.hbm.items.tool; import java.util.ArrayList; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Set; import com.google.common.collect.HashMultimap; @@ -90,7 +91,7 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc this.setHarvestLevel("pickaxe", material.getHarvestLevel()); this.setHarvestLevel("shovel", material.getHarvestLevel()); } else { - this.setHarvestLevel(type.toString().toLowerCase(), material.getHarvestLevel()); + this.setHarvestLevel(type.toString().toLowerCase(Locale.US), material.getHarvestLevel()); } } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmo.java b/src/main/java/com/hbm/items/weapon/ItemAmmo.java index 1917cfa1c..f83ea596c 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmo.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmo.java @@ -3,6 +3,7 @@ package com.hbm.items.weapon; import java.util.ArrayList; import java.util.Comparator; import java.util.List; +import java.util.Locale; import java.util.Set; import com.hbm.items.ItemAmmoEnums.AmmoRocket; @@ -108,7 +109,7 @@ public class ItemAmmo extends ItemEnumMulti { public String key = "desc.item.ammo."; private AmmoItemTrait() { - key += this.toString().toLowerCase(); + key += this.toString().toLowerCase(Locale.US); } } diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 81bb45c51..949a92461 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -6,6 +6,7 @@ import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Random; @@ -1310,7 +1311,7 @@ public class ModEventHandler { String[] msg = message.split(" "); - String m = msg[0].substring(1, msg[0].length()).toLowerCase(); + String m = msg[0].substring(1, msg[0].length()).toLowerCase(Locale.US); if("gv".equals(m)) { diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 2af37c069..0c181697b 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -3,6 +3,7 @@ package com.hbm.main; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.Random; import org.lwjgl.input.Keyboard; @@ -446,7 +447,7 @@ public class ModEventHandlerClient { if(invis != null && invis.getAmplifier() > 0) event.setCanceled(true); - if(player.getDisplayName().toLowerCase().equals("martmn")) { + if(player.getDisplayName().toLowerCase(Locale.US).equals("martmn")) { event.setCanceled(true); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java index f44cfb151..4ce54e100 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.machine.rbmk; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Locale; import java.util.Set; import com.hbm.interfaces.IControlReceiver; @@ -389,7 +390,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon short col = this.data.getShort("color"); if(col >= 0 && col < RBMKColor.values().length) - stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.control." + RBMKColor.values()[col].name().toLowerCase())); + stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.control." + RBMKColor.values()[col].name().toLowerCase(Locale.US))); } case CONTROL_AUTO: diff --git a/src/main/java/com/hbm/util/ArmorUtil.java b/src/main/java/com/hbm/util/ArmorUtil.java index 21bba6f78..6ece2e502 100644 --- a/src/main/java/com/hbm/util/ArmorUtil.java +++ b/src/main/java/com/hbm/util/ArmorUtil.java @@ -2,6 +2,7 @@ package com.hbm.util; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.handler.ArmorModHandler; import com.hbm.handler.HazmatRegistry; @@ -241,7 +242,7 @@ public class ArmorUtil { for(String metal : metals) { - if(name.toLowerCase().contains(metal)) + if(name.toLowerCase(Locale.US).contains(metal)) return true; } diff --git a/src/main/resources/assets/hbm/textures/gui/vehicles/gui_cargo_tram.png b/src/main/resources/assets/hbm/textures/gui/vehicles/gui_cargo_tram.png new file mode 100644 index 0000000000000000000000000000000000000000..21f3bf5a2dc2ca8e1dbe76752ba71b54d7401391 GIT binary patch literal 2096 zcmb7FdsNbQ8~=h#LI7ZtN;bM4rhnz@WwkVDO-*z(rW)bd(bYRKz#in*rLdaYAi zI-uN~5@eEV-d&hcymmk=b7W@7jPQ~ob6!x9_oudVTI-y>d;a-ep4;d7KA-3JW9_B- zqRnm10RU*f-IRR*z@RM*n3+OL#EGl%(1M_Q`30Lnl4BNI1OQUwN7)se!5Qrn9q(1F zM2_ES{eXA^-Bz*gWz)t4lb?`0@_9bf^S{FWMpMKitIpf(Z!p&lW)BHv%mn9$7AYw& zU0khg4*mvA@pFn@=L!2(Rb1I@Jjj(JU1CwcsL%yX(V z$pJm13-xrqv5q!!Pw2qjR($+=+WIOXTOPU1^&`Z$yud4)Y1?(r+b>+0%$XgJJ5+0> zwh%mCeQ1K7UywY9)sWhp856#gq@*OueADF@mz>Wm#HPp0T98DBhSQ82_b?J|4A02$ z#EY7*;))6i3Qh?Vw%U4&l*PJ?r#U~e&iEskGP(CN&nEW=sHZtov(L51J~Sq7CF-+< ziZjRSvnwXI-VKDE_^1ok`lF?3K~d2fOkvms1V~uQCvC#?Z)xfqD-GD$xAG^I zW!YCC`d<-~-N2q~10y?Cn>0isfRkcmG6K~=fHOl^rP{ZKD3R8X1F=VEMIY87qK8X0Qs76*V2{D zW)b(BE~TZg6yv{*g9g>9NBnEl0LZ=61~^BZ9f(t*@qvO*d6$V+=Cn;0FlAq{$ip1I z8;#J}bR<`|sqTyHVnL}{@N1x!5i0%}f<;ho0gVH3{)m0Nqjq^j+o&xwN43vs%BQRu z#j|_un(XXsZiREz3P(7fUP%qWQN&T&wTA6e!-Z-g-x1Cf z7}Om-K}OPoYH%Q(LyP!&0gG3_f2hd#{82NBDBKAF> z@&{r~1s5JxZW2ATc=*!6(lh~{ueJu8x_^H`azuoF3~r=J>^^r{!}%g#CbI1SiE3GS zxNJzCyfeG6>7HioC<9zu5B8%9b4PZ8&inFYQgs$edfpA}_D7PP3S&eb5;o_M}biPlJtW)5qvY;a%rxknOt=DA*}O0L1+@KhsNU29U&6x!;uOZ131F3i%MbR z{f23}4Mw-li+g%lx~IO^T^b|HG+!R17IVNF0wqUgv3cDJScarO$KEJU!rU6AX-kGw zGY7@VBsZSBot@ntC1*f4(=wUj$J4gN^Nf@CSG8raYxKqLhTI;?uOB8Y=u{}Q8A zRwupUz;=K>zKha-k>vynt20lOc$4WTev4#Q))@I8^SW5paJtU>@qBQ6ULMIyLR`%) zF$cJa{pr2Ey;y9`&6~LIa2vO{T8m#4M))I6iV@&l$2U8P1LsNr^EH)hUR_q~K-zpO zUnY}1?&}Nj*<7a6m;o;#m&CS>TLkz1PI4C$X@WKBR8U?ju znLkk0$I?u|X0vN*YeRB23}3yIHB6y&Z4IDs43quPWZc9sD&L16OHTHsh&wu{;s~5;*B3oaJ_U9Vjrds47EvoRYE5y}WVGN=3*AlZII-V$8v5BdRRD@Xl zm$!IZoL4Vcy5xK)HJ*w%$%rL%&SyX*cxCTq1q*m5G{Jt@Kk%LSTz_agI^w~J#0SFO z7^A;Wxa@qxqY@ruAC#|=1idPnDZtkorINEngK0!A)P5z`q8*>a_KpUz)V) qOKzF4zpjEmxv5|LrT;_ex1A$hQ)xq)mrsAU=<4T9rBr)GpZp(|onvnR literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/train.cargo_tram.png b/src/main/resources/assets/hbm/textures/items/train.cargo_tram.png new file mode 100644 index 0000000000000000000000000000000000000000..dc08307e90b9818e8af3f49d3b28747f872d6c5e GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf)2Y&*)-ue8y@gQZ;LL+J9$ zcYin9-(Rljv^;KST-xV9AM7uR8Q$ZYGlRXOLoD9qRolxetNB*&*-S58%Y2&qoF(fC z%Wz%eV+;aL8Bq<7>%6-J%cOIzPYhx?aI3uPbP0l+XkK=<-wn literal 0 HcmV?d00001