From 752a8635590adc8821b730f127813b0d6b7f0134 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 6 Jul 2022 23:32:32 +0200 Subject: [PATCH] tooltips for turret buttons, armor mod table, more lang keys better gun smoke effect for atlas --- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../java/com/hbm/crafting/WeaponRecipes.java | 4 +- .../com/hbm/inventory/gui/GUIArmorTable.java | 38 +++++++++++++++++- .../com/hbm/inventory/gui/GUITurretBase.java | 10 ++++- .../inventory/recipes/AssemblerRecipes.java | 2 +- .../com/hbm/items/machine/ItemCassette.java | 6 ++- .../hbm/items/machine/ItemTemplateFolder.java | 2 +- .../com/hbm/items/weapon/ItemAmmoArty.java | 6 +++ .../java/com/hbm/items/weapon/ItemGunBio.java | 22 +++++----- .../item/weapon/ItemRenderBioRevolver.java | 37 +++++++++++------ src/main/resources/assets/hbm/lang/de_DE.lang | 14 ++++++- src/main/resources/assets/hbm/lang/en_US.lang | 14 ++++++- .../gui/machine/gui_armor_modifier.png | Bin 2888 -> 2894 bytes 13 files changed, 126 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index e0a391b02..9e5d42f73 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2187,7 +2187,7 @@ public class ModBlocks { machine_electrolyser = new MachineElectrolyser().setBlockName("machine_electrolyser").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); - machine_autocrafter = new MachineAutocrafter().setBlockName("machine_autocrafter").setCreativeTab(MainRegistry.machineTab); + machine_autocrafter = new MachineAutocrafter().setBlockName("machine_autocrafter").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab); anvil_iron = new NTMAnvil(Material.iron, 1).setBlockName("anvil_iron").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_iron"); anvil_lead = new NTMAnvil(Material.iron, 1).setBlockName("anvil_lead").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_lead"); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 8c0bec46c..57c65a841 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -275,8 +275,10 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 0), new Object[] { "CIC", "CSC", "CCC", 'C', ModItems.cordite, 'I', IRON.block(), 'S', ModItems.hull_small_steel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.ball_dynamite, 'S', new ItemStack(ModItems.ammo_arty, 1, 0) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 2), new Object[] { "TTT", "TST", "TTT", 'T', ModItems.ball_tnt, 'S', new ItemStack(ModItems.ammo_arty, 1, 0) }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 5), new Object[] { " D ", "DSD", " D ", 'D', P_WHITE.ingot(), 'S', new ItemStack(ModItems.ammo_arty, 1, 0) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 5), new Object[] { "D", "S", "D", 'D', P_WHITE.ingot(), 'S', new ItemStack(ModItems.ammo_arty, 1, 0) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 7), new Object[] { "DSD", "SCS", "DSD", 'D', P_WHITE.ingot(), 'S', new ItemStack(ModItems.ammo_arty, 1, 5), 'C', ModBlocks.det_cord }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 3), new Object[] { " P ", "NSN", " P ", 'P', PU239.nugget(), 'N', OreDictManager.getReflector(), 'S', new ItemStack(ModItems.ammo_arty, 1, 0) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_arty, 1, 6), new Object[] { "DSD", "SCS", "DSD", 'D', OreDictManager.getReflector(), 'S', new ItemStack(ModItems.ammo_arty, 1, 3), 'C', ModBlocks.det_cord }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_arty, 1, 4), new Object[] { new ItemStack(ModItems.ammo_arty, 1, 2), ModItems.boy_bullet, ModItems.boy_target, ModItems.boy_shielding, ModItems.circuit_red_copper, ModItems.ducttape }); //DGK Belts diff --git a/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java b/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java index 47304ce6d..3713846e4 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java +++ b/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java @@ -5,16 +5,17 @@ import org.lwjgl.opengl.GL11; import com.hbm.handler.ArmorModHandler; import com.hbm.inventory.container.ContainerArmorTable; import com.hbm.lib.RefStrings; +import com.hbm.util.I18nUtil; -import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; -public class GUIArmorTable extends GuiContainer { +public class GUIArmorTable extends GuiInfoContainer { public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_armor_modifier.png"); public int left; @@ -29,6 +30,35 @@ public class GUIArmorTable extends GuiContainer { guiLeft = (this.width - this.xSize) / 2; guiTop = (this.height - this.ySize) / 2; } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + + String[] unloc = new String[] { + "armorMod.type.helmet", + "armorMod.type.chestplate", + "armorMod.type.leggings", + "armorMod.type.boots", + "armorMod.type.servo", + "armorMod.type.cladding", + "armorMod.type.insert", + "armorMod.type.special", + "armorMod.insertHere" + }; + + for(int i = 0; i < 9; ++i) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + + if(this.isMouseOverSlot(slot, x, y) && !slot.getHasStack()) { + + this.drawCreativeTabHoveringText((i < 8 ? EnumChatFormatting.LIGHT_PURPLE : EnumChatFormatting.YELLOW) + I18nUtil.resolveKey(unloc[i]), x, y); + } + } + } + } protected void drawGuiContainerForegroundLayer(int mX, int mY) { @@ -51,6 +81,10 @@ public class GUIArmorTable extends GuiContainer { this.drawTexturedModalRect(guiLeft + 41, guiTop + 60, 176, 74, 22, 22); else this.drawTexturedModalRect(guiLeft + 41, guiTop + 60, 176, 52, 22, 22); + } else { + + if(System.currentTimeMillis() % 1000 < 500) + this.drawTexturedModalRect(guiLeft + 41, guiTop + 60, 176, 52, 22, 22); } for(int i = 0; i < 8; i++) { diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretBase.java b/src/main/java/com/hbm/inventory/gui/GUITurretBase.java index 2fc4aaf46..55834deb5 100644 --- a/src/main/java/com/hbm/inventory/gui/GUITurretBase.java +++ b/src/main/java/com/hbm/inventory/gui/GUITurretBase.java @@ -11,6 +11,7 @@ import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.turret.TileEntityTurretBaseNT; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; @@ -53,6 +54,13 @@ public abstract class GUITurretBase extends GuiInfoContainer { super.drawScreen(mouseX, mouseY, f); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 45, 16, 52, turret.power, turret.getMaxPower()); + + String on = EnumChatFormatting.GREEN + I18nUtil.resolveKey("turret.on"); + String off = EnumChatFormatting.RED + I18nUtil.resolveKey("turret.off"); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 8, guiTop + 30, 10, 10, mouseX, mouseY, I18nUtil.resolveKeyArray("turret.players", turret.targetPlayers ? on : off)); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 22, guiTop + 30, 10, 10, mouseX, mouseY, I18nUtil.resolveKeyArray("turret.animals", turret.targetAnimals ? on : off)); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 36, guiTop + 30, 10, 10, mouseX, mouseY, I18nUtil.resolveKeyArray("turret.mobs", turret.targetMobs ? on : off)); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 50, guiTop + 30, 10, 10, mouseX, mouseY, I18nUtil.resolveKeyArray("turret.machines", turret.targetMachines ? on : off)); } protected void mouseClicked(int x, int y, int i) { @@ -153,7 +161,7 @@ public abstract class GUITurretBase extends GuiInfoContainer { List names = turret.getWhitelist(); - String n = EnumChatFormatting.ITALIC + "None"; + String n = EnumChatFormatting.ITALIC + I18nUtil.resolveKey("turret.none"); while(this.index >= this.getCount()) this.index--; diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 4674a414f..95b261194 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1252,7 +1252,7 @@ public class AssemblerRecipes { public static void saveTemplateJSON(File dir) { - template = new File(dir.getAbsolutePath() + File.separatorChar + "hbmTemplate.json"); + template = new File(dir.getAbsolutePath() + File.separatorChar + "_hbmAssembler.json"); try { diff --git a/src/main/java/com/hbm/items/machine/ItemCassette.java b/src/main/java/com/hbm/items/machine/ItemCassette.java index 1d129685e..2809ead79 100644 --- a/src/main/java/com/hbm/items/machine/ItemCassette.java +++ b/src/main/java/com/hbm/items/machine/ItemCassette.java @@ -2,6 +2,9 @@ package com.hbm.items.machine; import java.util.List; +import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; @@ -9,6 +12,7 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; @@ -116,7 +120,7 @@ public class ItemCassette extends Item { if(!(stack.getItem() instanceof ItemCassette)) return; - list.add("[CREATED USING TEMPLATE FOLDER]"); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("info.templatefolder", I18nUtil.resolveKey(ModItems.template_folder.getUnlocalizedName() + ".name"))); list.add(""); list.add("Siren sound cassette:"); diff --git a/src/main/java/com/hbm/items/machine/ItemTemplateFolder.java b/src/main/java/com/hbm/items/machine/ItemTemplateFolder.java index 7358740c2..cd5f76f5b 100644 --- a/src/main/java/com/hbm/items/machine/ItemTemplateFolder.java +++ b/src/main/java/com/hbm/items/machine/ItemTemplateFolder.java @@ -25,7 +25,7 @@ public class ItemTemplateFolder extends Item { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - String[] lang = I18nUtil.resolveKeyArray(this.getUnlocalizedName() + ".desc"); + String[] lang = I18nUtil.resolveKeyArray(ModItems.template_folder.getUnlocalizedName() + ".desc"); for(String line : lang) { list.add(line); } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index 8ffd39ae5..3fa4ae903 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -102,10 +102,16 @@ public class ItemAmmoArty extends Item { list.add(r + "Phosphorus splash"); list.add(b + "Does not destroy blocks"); break; + case PHOSPHORUS_MULTI: + list.add(r + "Splits x10"); + break; case MINI_NUKE: list.add(y + "Strength: 20"); list.add(r + "Deals nuclear damage"); list.add(r + "Destroys blocks"); + case MINI_NUKE_MULTI: + list.add(r + "Splits x5"); + break; case NUKE: list.add(r + "☠"); list.add(r + "(that is the best skull and crossbones"); diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBio.java b/src/main/java/com/hbm/items/weapon/ItemGunBio.java index 0db86f702..c3054bca0 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBio.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBio.java @@ -28,7 +28,6 @@ public class ItemGunBio extends ItemGunBase { @Override public void startActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) { - lastShot = System.currentTimeMillis(); } @Override @@ -57,7 +56,7 @@ public class ItemGunBio extends ItemGunBase { } double alpha = (System.currentTimeMillis() - ItemGunBio.lastShot) / 2000D; - alpha = (1 - alpha) * 0.35D; + alpha = (1 - alpha) * 0.5D; if(this.getReloadCycle(stack) > 0) alpha = 0; @@ -71,7 +70,9 @@ public class ItemGunBio extends ItemGunBase { //GunConfiguration config = ((ItemGunBase) stack.getItem()).mainConfig; //return config.animations.get(type); - if(type == AnimType.CYCLE) return new BusAnimation() + if(type == AnimType.CYCLE) { + lastShot = System.currentTimeMillis(); + return new BusAnimation() .addBus("RECOIL", new BusAnimationSequence() .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50)) .addKeyframe(new BusAnimationKeyframe(0, 0, -3, 50)) @@ -85,20 +86,22 @@ public class ItemGunBio extends ItemGunBase { .addBus("DRUM", new BusAnimationSequence() .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 50)) ); + } - if(type == AnimType.RELOAD) return new BusAnimation() - .addBus("LATCH", new BusAnimationSequence() + if(type == AnimType.RELOAD) { + return new BusAnimation() + .addBus("LATCH", new BusAnimationSequence() .addKeyframe(new BusAnimationKeyframe(0, 0, 90, 300)) .addKeyframe(new BusAnimationKeyframe(0, 0, 90, 2000)) .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 150)) ) - .addBus("FRONT", new BusAnimationSequence() + .addBus("FRONT", new BusAnimationSequence() .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) .addKeyframe(new BusAnimationKeyframe(0, 0, 45, 150)) .addKeyframe(new BusAnimationKeyframe(0, 0, 45, 2000)) .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) ) - .addBus("RELOAD_ROT", new BusAnimationSequence() + .addBus("RELOAD_ROT", new BusAnimationSequence() .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) .addKeyframe(new BusAnimationKeyframe(60, 0, 0, 500)) .addKeyframe(new BusAnimationKeyframe(60, 0, 0, 500)) @@ -110,16 +113,17 @@ public class ItemGunBio extends ItemGunBase { .addKeyframe(new BusAnimationKeyframe(-45, 0, 0, 100)) .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) ) - .addBus("RELOAD_MOVE", new BusAnimationSequence() + .addBus("RELOAD_MOVE", new BusAnimationSequence() .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) .addKeyframe(new BusAnimationKeyframe(0, -15, 0, 1000)) .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 450)) ) - .addBus("DRUM_PUSH", new BusAnimationSequence() + .addBus("DRUM_PUSH", new BusAnimationSequence() .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 1600)) .addKeyframe(new BusAnimationKeyframe(0, 0, -5, 0)) .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) ); + } return null; } diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBioRevolver.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBioRevolver.java index 5ed80a6eb..ec65b0ef2 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderBioRevolver.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderBioRevolver.java @@ -34,8 +34,8 @@ public class ItemRenderBioRevolver implements IItemRenderer { public void renderItem(ItemRenderType type, ItemStack item, Object... data) { GL11.glPushMatrix(); - - GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glDisable(GL11.GL_CULL_FACE); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bio_revolver_tex); @@ -48,14 +48,16 @@ public class ItemRenderBioRevolver implements IItemRenderer { GL11.glTranslated(1.0, 0.25, -0.25); GL11.glRotated(80, 0, 1, 0); GL11.glScaled(s0, s0, s0); - double width = 0.3D; + double width = 0.5D; GL11.glPushMatrix(); - GL11.glTranslated(0.0, 2.0, 10.0); + GL11.glTranslated(0.0, 1.75, 10.0); double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); GL11.glTranslated(0, -recoil[2] * 1.5, recoil[2]); + GL11.glShadeModel(GL11.GL_SMOOTH); + if(ItemGunBio.smokeNodes.size() > 1) { Tessellator tess = Tessellator.instance; @@ -67,11 +69,22 @@ public class ItemRenderBioRevolver implements IItemRenderer { double[] past = ItemGunBio.smokeNodes.get(i + 1); tess.setColorRGBA_F(1F, 1F, 1F, (float) node[3]); - tess.addVertex(node[0] - width, node[1], node[2]); + tess.addVertex(node[0], node[1], node[2]); + tess.setColorRGBA_F(1F, 1F, 1F, 0F); tess.addVertex(node[0] + width, node[1], node[2]); - tess.setColorRGBA_F(1F, 1F, 1F, (float) past[3]); + tess.setColorRGBA_F(1F, 1F, 1F, 0F); tess.addVertex(past[0] + width, past[1], past[2]); + tess.setColorRGBA_F(1F, 1F, 1F, (float) past[3]); + tess.addVertex(past[0], past[1], past[2]); + + tess.setColorRGBA_F(1F, 1F, 1F, (float) node[3]); + tess.addVertex(node[0], node[1], node[2]); + tess.setColorRGBA_F(1F, 1F, 1F, 0F); + tess.addVertex(node[0] - width, node[1], node[2]); + tess.setColorRGBA_F(1F, 1F, 1F, 0F); tess.addVertex(past[0] - width, past[1], past[2]); + tess.setColorRGBA_F(1F, 1F, 1F, (float) past[3]); + tess.addVertex(past[0], past[1], past[2]); } GL11.glAlphaFunc(GL11.GL_GREATER, 0F); GL11.glEnable(GL11.GL_BLEND); @@ -93,8 +106,6 @@ public class ItemRenderBioRevolver implements IItemRenderer { GL11.glRotated(reloadRot[0], 1, 0, 0); GL11.glRotated(reloadRot[2], 0, 0, 1); GL11.glRotated(reloadRot[1], 0, 1, 0); - - GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.bio_revolver.renderPart("Grip"); GL11.glPushMatrix(); /// FRONT PUSH /// @@ -130,19 +141,21 @@ public class ItemRenderBioRevolver implements IItemRenderer { case EQUIPPED: - double scale = 0.125D; + double scale = 0.1D; GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(10, 0.0F, 1.0F, 0.0F); GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(4F, -2F, 5F); + GL11.glTranslatef(4F, 1F, 4F); break; case ENTITY: - double s1 = 0.1D; + double s1 = 0.075D; GL11.glScaled(s1, s1, s1); + GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0F, 1F, 0F); break; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index ffdff8f6d..db76a5c7c 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -109,12 +109,13 @@ armorMod.boots=Stiefel armorMod.chestplates=Brustplatten armorMod.helmets=Helme armorMod.leggings=Beinschienen +armorMod.insertHere=Rüstung zum Modifizieren einlegen... armorMod.type.boots=Stiefel armorMod.type.chestplate=Brustplatte armorMod.type.cladding=Beschläge armorMod.type.helmet=Helm armorMod.type.insert=Einlage -armorMod.type.leggins=Beinschienen +armorMod.type.leggings=Beinschienen armorMod.type.servo=Servos armorMod.type.special=Spezial @@ -700,8 +701,10 @@ item.ammo_arty.name=16" Artilleriegranate item.ammo_arty_classic.name=16" Artilleriegranate (Das Factorio-Spezial) item.ammo_arty_he.name=16" Artilleriegranate (HE) item.ammo_arty_mini_nuke.name=16" Mikroatomgranate +item.ammo_arty_mini_nuke_multi.name=16" Mehrfach-Mikroatomgranate item.ammo_arty_nuke.name=16" Atomare Artilleriegranate item.ammo_arty_phosphorus.name=16" Phosphor-Artilleriegranate +item.ammo_arty_phosphorus_multi.name=16" Mehrfach-Phosphor-Artilleriegranate item.ammo_cell.name=Energiezelle item.ammo_container.name=Munitionsbehälter item.ammo_dart.name=Plastikdart (Withernd) @@ -1505,6 +1508,7 @@ item.gun_b92_ammo.name=§9B92-Energiezelle§r item.gun_b93.name=§cB93 Energiemod§r item.gun_bf.name=BEL item.gun_bf_ammo.name=Balefire-Geschoss +item.gun_bio_revolver.name=Atlas item.gun_bolt_action.name=Dream-Repetiergewehr (Original) item.gun_bolt_action_ammo.name=12x74 Brenneke (LEGACY) item.gun_bolt_action_green.name=Dream-Repetiergewehr (Grün) @@ -3813,6 +3817,14 @@ tool.ability.shredder=Auto-Brecher tool.ability.silktouch=Behutsamkeit tool.ability.smelter=Auto-Ofen +turret.animals=Passive anzielen: %s +turret.machines=Maschinen anzielen: %s +turret.mobs=Mobs anzielen: %s +turret.none=Keine +turret.off=AUS +turret.on=AN +turret.players=Spieler anzielen: %s + wavelengths.name.ir=Infrarot wavelengths.name.visible=Sichtbares Licht wavelengths.name.uv=Ultraviolett diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index d51734ff4..4a4a03226 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -153,13 +153,14 @@ armorMod.applicableTo=Applicable To: armorMod.boots=Boots armorMod.chestplates=Chestplates armorMod.helmets=Helmets +armorMod.insertHere=Insert armor to modify... armorMod.leggings=Leggings armorMod.type.boots=Boots armorMod.type.chestplate=Chestplate armorMod.type.cladding=Cladding armorMod.type.helmet=Helmet armorMod.type.insert=Insert -armorMod.type.leggins=Leggings +armorMod.type.leggings=Leggings armorMod.type.servo=Servos armorMod.type.special=Special @@ -914,8 +915,10 @@ item.ammo_arty.name=16" Artillery Shell item.ammo_arty_classic.name=16" Artillery Shell (The Factorio Special) item.ammo_arty_he.name=16" High Explosive Artillery Shell item.ammo_arty_mini_nuke.name=16" Micro Nuclear Artillery Shell +item.ammo_arty_mini_nuke_multi.name=16" Multi Micro Nuclear Artillery Shell item.ammo_arty_nuke.name=16" Nuclear Artillery Shell item.ammo_arty_phosphorus.name=16" Phosphorus Shell +item.ammo_arty_phosphorus_multi.name=16" Multi Phosphorus Shell item.ammo_cell.name=Energy Cell item.ammo_container.name=Ammo Container item.ammo_dart.name=Plastic Dart (Withering) @@ -1757,6 +1760,7 @@ item.gun_b92_ammo.name=§9B92 Energy Cell§r item.gun_b93.name=§cB93 Energy Mod§r item.gun_bf.name=BEL item.gun_bf_ammo.name=Balefire Shell +item.gun_bio_revolver.name=Atlas item.gun_bolt_action.name=Dream Bolt-Action Rifle (Original) item.gun_bolt_action_ammo.name=12x74 Slug (LEGACY) item.gun_bolt_action_green.name=Dream Bolt-Action Rifle (Green) @@ -4226,6 +4230,14 @@ tool.ability.shredder=Auto-Shredder tool.ability.silktouch=Silk Touch tool.ability.smelter=Auto-Smelter +turret.animals=Target Passive: %s +turret.machines=Target Machines: %s +turret.mobs=Target Mobs: %s +turret.none=None +turret.off=OFF +turret.on=ON +turret.players=Target Players: %s + wavelengths.name.ir=Infrared wavelengths.name.visible=Visible Light wavelengths.name.uv=Ultraviolet diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_armor_modifier.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_armor_modifier.png index d0492de58438443f10024d098a88ebaf68f9770b..1a9907bdfa8315994e17e1e138c608b06e4e7d10 100644 GIT binary patch literal 2894 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 oXden$zqIubMC!!%H3H` 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