diff --git a/changelog b/changelog index d3d8a6554..1751d00af 100644 --- a/changelog +++ b/changelog @@ -1,6 +1,14 @@ ## Changed -* Blueprint folders can now be bought on bobmazon (64 for blue recipes, 256 for beige ones) +* Updated ukrainian and chinese localization, including QMAW +* Due to severe issues with ticking order as well as a crash caused by certain tiles that uses threaded packets, Torcherino accelerator torches no longer affect NTM machines +* RBMK control rod colors and auto control rod settings are now copiable +* Murky wings no longer have slowfall, and using shift+space cancels the momentum +* Murky wings are now slow by default and speed up when sprinting +* The arc furnace can now be used with AE2 buses, which was previously not possible due to the unique stacksize limitations ## Fixed -* Fixed the QMAW loader crashing servers - * Oops \ No newline at end of file +* Fixed conveyor grabber dropping items off at an offset when placing them on a conveyor belt due to a client desync +* Fixed occasional crash caused by using the settings tool on the autoloader +* Fixed QMAW not correctly working with other languages +* Fixed QMAW loading breaking entirely due to file encoding +* Fixed PWR fuel rod textures being 18x18 instead of 16x16 \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/BlockDummyable.java b/src/main/java/com/hbm/blocks/BlockDummyable.java index fe9a001ca..5b72660bf 100644 --- a/src/main/java/com/hbm/blocks/BlockDummyable.java +++ b/src/main/java/com/hbm/blocks/BlockDummyable.java @@ -565,6 +565,7 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl @Override public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { int[] pos = findCore(world, x, y, z); + if(pos == null) return; TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); if (tile instanceof ICopiable) ((ICopiable) tile).pasteSettings(nbt, index, world, player, pos[0], pos[1], pos[2]); diff --git a/src/main/java/com/hbm/commands/CommandCustomize.java b/src/main/java/com/hbm/commands/CommandCustomize.java new file mode 100644 index 000000000..a217eb56a --- /dev/null +++ b/src/main/java/com/hbm/commands/CommandCustomize.java @@ -0,0 +1,51 @@ +package com.hbm.commands; + +import com.hbm.items.ICustomizable; + +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; + +public class CommandCustomize extends CommandBase { + + @Override + public String getCommandName() { + return "ntmcustomize"; + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return "/ntmcustomize"; + } + + @Override + public int getRequiredPermissionLevel() { + return 0; + } + + @Override + public boolean canCommandSenderUseCommand(ICommandSender sender) { + return true; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) { + if(!(sender instanceof EntityPlayer)) { + sender.addChatMessage(new ChatComponentText("Customization is only available to players!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + return; + } + + EntityPlayer player = (EntityPlayer) sender; + + if(player.getHeldItem() == null || !(player.getHeldItem().getItem() instanceof ICustomizable)) { + sender.addChatMessage(new ChatComponentText("You have to hold a customizable item to use this command!").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + return; + } + + ICustomizable item = (ICustomizable) player.getHeldItem().getItem(); + item.customize(player, player.getHeldItem(), args); + } +} diff --git a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java index 87c67dfd3..7d67aba78 100644 --- a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java +++ b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java @@ -1,9 +1,8 @@ package com.hbm.config; -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -148,7 +147,7 @@ public class CustomMachineConfigJSON { public static void readConfig(File config) { try { - JsonObject json = gson.fromJson(new FileReader(config), JsonObject.class); + JsonObject json = gson.fromJson(new InputStreamReader(Files.newInputStream(config.toPath()), StandardCharsets.UTF_8), JsonObject.class); JsonArray machines = json.get("machines").getAsJsonArray(); for(int i = 0; i < machines.size(); i++) { @@ -182,32 +181,32 @@ public class CustomMachineConfigJSON { try { JsonArray recipeShape = machineObject.get("recipeShape").getAsJsonArray(); JsonArray recipeParts = machineObject.get("recipeParts").getAsJsonArray(); - + Object[] parts = new Object[recipeShape.size() + recipeParts.size()]; - + for(int j = 0; j < recipeShape.size(); j++) { parts[j] = recipeShape.get(j).getAsString(); } - + for(int j = 0; j < recipeParts.size(); j++) { Object o = null; - + if(j % 2 == 0) { o = recipeParts.get(j).getAsString().charAt(0); //god is dead and we killed him } else { AStack a = SerializableRecipe.readAStack(recipeParts.get(j).getAsJsonArray()); - + if(a instanceof ComparableStack) o = ((ComparableStack) a).toStack(); if(a instanceof OreDictStack) o = ((OreDictStack) a).name; } - + parts[j + recipeShape.size()] = o; } - + ItemStack stack = new ItemStack(ModBlocks.custom_machine, 1, i + 100); stack.stackTagCompound = new NBTTagCompound(); stack.stackTagCompound.setString("machineType", configuration.unlocalizedName); - + CraftingManager.addRecipeAuto(stack, parts); } catch(Exception ex) { MainRegistry.logger.error("Caught exception trying to parse core recipe for custom machine " + configuration.unlocalizedName); diff --git a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java index 3deab1d17..bf9cddaa0 100644 --- a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java @@ -5,6 +5,7 @@ import java.util.Map.Entry; import com.hbm.handler.guncfg.*; +@Deprecated public class BulletConfigSyncingUtil { private static HashMap configSet = new HashMap(); diff --git a/src/main/java/com/hbm/handler/ae2/AE2CompatHandler.java b/src/main/java/com/hbm/handler/ae2/AE2CompatHandler.java index b40571179..968899426 100644 --- a/src/main/java/com/hbm/handler/ae2/AE2CompatHandler.java +++ b/src/main/java/com/hbm/handler/ae2/AE2CompatHandler.java @@ -14,5 +14,6 @@ public class AE2CompatHandler { @Optional.Method(modid = "appliedenergistics2") private static void registerHandler() { AEApi.instance().registries().externalStorage().addExternalStorageInterface(new MSUExternalStorageHandler()); + AEApi.instance().registries().externalStorage().addExternalStorageInterface(new AFLExternalStorageHandler()); } } diff --git a/src/main/java/com/hbm/handler/ae2/AFLExternalStorageHandler.java b/src/main/java/com/hbm/handler/ae2/AFLExternalStorageHandler.java new file mode 100644 index 000000000..37ff769e3 --- /dev/null +++ b/src/main/java/com/hbm/handler/ae2/AFLExternalStorageHandler.java @@ -0,0 +1,34 @@ +package com.hbm.handler.ae2; + +import com.hbm.tileentity.machine.TileEntityMachineArcFurnaceLarge; +import com.hbm.tileentity.TileEntityProxyCombo; +import cpw.mods.fml.common.Optional; + +import appeng.api.networking.security.BaseActionSource; +import appeng.api.storage.IExternalStorageHandler; +import appeng.api.storage.IMEInventory; +import appeng.api.storage.StorageChannel; +import appeng.me.storage.MEMonitorIInventory; +import appeng.util.inv.IMEAdaptor; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +@Optional.InterfaceList({@Optional.Interface(iface = "appeng.api.storage.IExternalStorageHandler", modid = "appliedenergistics2")}) +public class AFLExternalStorageHandler implements IExternalStorageHandler { + + public AFLExternalStorageHandler() {} + + @Override + public boolean canHandle(TileEntity te, ForgeDirection d, StorageChannel channel, BaseActionSource mySrc) { + boolean coreProxy = te instanceof TileEntityProxyCombo && ((TileEntityProxyCombo) te).getTile() instanceof TileEntityMachineArcFurnaceLarge; + return channel == StorageChannel.ITEMS && (te instanceof TileEntityMachineArcFurnaceLarge || coreProxy); + } + + @Override + public IMEInventory getInventory(TileEntity te, ForgeDirection d, StorageChannel channel, BaseActionSource src) { + if (!canHandle(te, d, channel, src)) return null; + if (te instanceof TileEntityProxyCombo) return new MEMonitorIInventory(new IMEAdaptor(new ArcFurnaceLargeMEInventory((TileEntityMachineArcFurnaceLarge) ((TileEntityProxyCombo)te).getTile()), src)) {}; + return new MEMonitorIInventory(new IMEAdaptor(new ArcFurnaceLargeMEInventory((TileEntityMachineArcFurnaceLarge) te), src)) {}; + } + +} diff --git a/src/main/java/com/hbm/handler/ae2/ArcFurnaceLargeMEInventory.java b/src/main/java/com/hbm/handler/ae2/ArcFurnaceLargeMEInventory.java new file mode 100644 index 000000000..5698bebed --- /dev/null +++ b/src/main/java/com/hbm/handler/ae2/ArcFurnaceLargeMEInventory.java @@ -0,0 +1,60 @@ +package com.hbm.handler.ae2; + +import com.hbm.tileentity.machine.TileEntityMachineArcFurnaceLarge; +import com.hbm.tileentity.TileEntityProxyCombo; + +import cpw.mods.fml.common.Optional; + +import appeng.api.AEApi; +import appeng.api.config.Actionable; +import appeng.api.networking.security.BaseActionSource; +import appeng.api.storage.IMEInventory; +import appeng.api.storage.StorageChannel; +import appeng.api.storage.data.IAEItemStack; +import appeng.api.storage.data.IItemList; +import net.minecraft.item.ItemStack; + +@Optional.InterfaceList({@Optional.Interface(iface = "appeng.api.storage.IMEInventory", modid = "appliedenergistics2")}) +public class ArcFurnaceLargeMEInventory implements IMEInventory { + + private TileEntityMachineArcFurnaceLarge afl; + + public ArcFurnaceLargeMEInventory(TileEntityMachineArcFurnaceLarge afl) { + this.afl = afl; + } + + @Override + public IAEItemStack injectItems(IAEItemStack input, Actionable type, BaseActionSource src) { + ItemStack is = input.getItemStack(); + is = afl.distributeInput(is, type == Actionable.MODULATE); + + if(is == null) return null; + return AEApi.instance().storage().createItemStack(is); + } + + @Override + public IAEItemStack extractItems(IAEItemStack request, Actionable mode, BaseActionSource src) { + ItemStack is = request.getItemStack(); + is = afl.collectRequested(is, mode == Actionable.MODULATE); + + if(is == null) return null; + return AEApi.instance().storage().createItemStack(is); + } + + @Override + public IItemList getAvailableItems(IItemList out) { + ItemStack is; + for(int i = 0; i < 25; i++) { + is = afl.getAvailableItemFromSlot(i); + if(is != null) out.add(AEApi.instance().storage().createItemStack(is)); + } + + return out; + } + + @Override + public StorageChannel getChannel() { + return StorageChannel.ITEMS; + } + +} diff --git a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java index d0e8e6bd7..dab6b35f3 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -4,6 +4,7 @@ import com.hbm.handler.BulletConfiguration; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +@Deprecated public class GunEnergyFactory { public static BulletConfiguration getTurbineConfig() { diff --git a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java index 8b5cb54bb..aa33eba4f 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java @@ -23,6 +23,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; +@Deprecated public class GunNPCFactory { public static BulletConfiguration getMaskmanOrb() { diff --git a/src/main/java/com/hbm/handler/imc/IMCBlastFurnace.java b/src/main/java/com/hbm/handler/imc/IMCBlastFurnace.java index 7a99d4349..d553587bf 100644 --- a/src/main/java/com/hbm/handler/imc/IMCBlastFurnace.java +++ b/src/main/java/com/hbm/handler/imc/IMCBlastFurnace.java @@ -14,6 +14,7 @@ import net.minecraft.nbt.NBTTagList; * @author UFFR */ +@Deprecated public class IMCBlastFurnace extends IMCHandler { public static final ArrayList> buffer = new ArrayList<>(); diff --git a/src/main/java/com/hbm/handler/imc/IMCCentrifuge.java b/src/main/java/com/hbm/handler/imc/IMCCentrifuge.java index 24456f70f..8fc5666cb 100644 --- a/src/main/java/com/hbm/handler/imc/IMCCentrifuge.java +++ b/src/main/java/com/hbm/handler/imc/IMCCentrifuge.java @@ -10,6 +10,7 @@ import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +@Deprecated public class IMCCentrifuge extends IMCHandler { public static HashMap buffer = new HashMap(); diff --git a/src/main/java/com/hbm/handler/imc/IMCCrystallizer.java b/src/main/java/com/hbm/handler/imc/IMCCrystallizer.java index 9230bb11c..8ca219536 100644 --- a/src/main/java/com/hbm/handler/imc/IMCCrystallizer.java +++ b/src/main/java/com/hbm/handler/imc/IMCCrystallizer.java @@ -13,6 +13,7 @@ import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +@Deprecated public class IMCCrystallizer extends IMCHandler { public static HashMap, CrystallizerRecipe> buffer = new HashMap(); diff --git a/src/main/java/com/hbm/handler/imc/IMCHandler.java b/src/main/java/com/hbm/handler/imc/IMCHandler.java index 22cd5a386..4aa650742 100644 --- a/src/main/java/com/hbm/handler/imc/IMCHandler.java +++ b/src/main/java/com/hbm/handler/imc/IMCHandler.java @@ -6,6 +6,13 @@ import com.hbm.main.MainRegistry; import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; +/** + * I'm not aware of anyone even using these, and for proper addon mods it's way easier to use direct calls instead of messages. + * Too cumbersome to implement and maintain, especially since the recipe register listeners exist now. Current implementation will break on recipe reload anyway. + * + * @author hbm + */ +@Deprecated public abstract class IMCHandler { private static final HashMap handlers = new HashMap(); diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnaceLarge.java b/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnaceLarge.java index 12318fe1d..05109bac9 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnaceLarge.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineArcFurnaceLarge.java @@ -65,11 +65,12 @@ public class ContainerMachineArcFurnaceLarge extends Container { } else if(rStack.getItem() instanceof ItemMachineUpgrade) { if(!InventoryUtil.mergeItemStack(this.inventorySlots, stack, 4, 5, false)) return null; } else { - if(!InventoryUtil.mergeItemStack(this.inventorySlots, stack, 5, 25, false)) return null; + stack = furnace.distributeInput(stack, true); + if(stack != null && stack.stackSize == rStack.stackSize) return null; } } - if(stack.stackSize == 0) { + if(stack == null || stack.stackSize == 0) { slot.putStack((ItemStack) null); } else { slot.onSlotChanged(); diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index b020867c4..3eb3f8886 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -1,9 +1,8 @@ package com.hbm.inventory.fluid; -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -35,7 +34,7 @@ import net.minecraft.potion.PotionEffect; public class Fluids { public static final Gson gson = new Gson(); - + public static List additionalListeners = new ArrayList(); public static FluidType NONE; @@ -797,7 +796,7 @@ public class Fluids { private static void readCustomFluids(File file) { try { - JsonObject json = gson.fromJson(new FileReader(file), JsonObject.class); + JsonObject json = gson.fromJson(new InputStreamReader(Files.newInputStream(file.toPath()), StandardCharsets.UTF_8), JsonObject.class); for(Entry entry : json.entrySet()) { @@ -879,12 +878,12 @@ public class Fluids { ex.printStackTrace(); } } - + public static void reloadFluids(){ File folder = MainRegistry.configHbmDir; File customTypes = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluidTypes.json"); if(!customTypes.exists()) initDefaultFluids(customTypes); - + for(FluidType type : customFluids){ idMapping.remove(type.getID()); registerOrder.remove(type); @@ -892,7 +891,7 @@ public class Fluids { metaOrder.remove(type); } customFluids.clear(); - + for(FluidType type : foreignFluids){ idMapping.remove(type.getID()); registerOrder.remove(type); @@ -900,7 +899,7 @@ public class Fluids { metaOrder.remove(type); } foreignFluids.clear(); - + readCustomFluids(customTypes); for(FluidType custom : customFluids) metaOrder.add(custom); File config = new File(MainRegistry.configHbmDir.getAbsolutePath() + File.separatorChar + "hbmFluidTraits.json"); @@ -911,7 +910,7 @@ public class Fluids { } else { readTraits(config); } - + for(IFluidRegisterListener listener : additionalListeners) listener.onFluidsLoad(); } private static void registerCalculatedFuel(FluidType type, double base, double combustMult, FuelGrade grade) { diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineAssemblyMachine.java b/src/main/java/com/hbm/inventory/gui/GUIMachineAssemblyMachine.java index d69a8f062..5104850ca 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineAssemblyMachine.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineAssemblyMachine.java @@ -8,6 +8,7 @@ import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.items.machine.ItemBlueprints; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineAssemblyMachine; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.OpenGlHelper; @@ -21,22 +22,22 @@ public class GUIMachineAssemblyMachine extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_assembler.png"); private TileEntityMachineAssemblyMachine assembler; - + public GUIMachineAssemblyMachine(InventoryPlayer invPlayer, TileEntityMachineAssemblyMachine tedf) { super(new ContainerMachineAssemblyMachine(invPlayer, tedf)); assembler = tedf; - + this.xSize = 176; this.ySize = 256; } - + @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); assembler.inputTank.renderTankInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 99, 52, 16); assembler.outputTank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 99, 52, 16); - + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 61, assembler.power, assembler.maxPower); if(guiLeft + 7 <= mouseX && guiLeft + 7 + 18 > mouseX && guiTop + 125 < mouseY && guiTop + 125 + 18 >= mouseY) { @@ -44,32 +45,32 @@ public class GUIMachineAssemblyMachine extends GuiInfoContainer { GenericRecipe recipe = (GenericRecipe) AssemblyMachineRecipes.INSTANCE.recipeNameMap.get(this.assembler.assemblerModule.recipe); this.func_146283_a(recipe.print(), mouseX, mouseY); } else { - this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + "Click to set recipe", mouseX, mouseY); + this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("gui.recipe.setRecipe"), mouseX, mouseY); } } } - + @Override protected void mouseClicked(int x, int y, int button) { super.mouseClicked(x, y, button); - + if(this.checkClick(x, y, 7, 125, 18, 18)) GUIScreenRecipeSelector.openSelector(AssemblyMachineRecipes.INSTANCE, assembler, assembler.assemblerModule.recipe, 0, ItemBlueprints.grabPool(assembler.slots[1]), this); } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.assembler.hasCustomInventoryName() ? this.assembler.getInventoryName() : I18n.format(this.assembler.getInventoryName()); - + this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } - + @Override protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - + int p = (int) (assembler.power * 61 / assembler.maxPower); drawTexturedModalRect(guiLeft + 152, guiTop + 79 - p, 176, 61 - p, 16, p); @@ -77,25 +78,25 @@ public class GUIMachineAssemblyMachine extends GuiInfoContainer { int j = (int) Math.ceil(70 * assembler.assemblerModule.progress); drawTexturedModalRect(guiLeft + 62, guiTop + 126, 176, 61, j, 16); } - + GenericRecipe recipe = AssemblyMachineRecipes.INSTANCE.recipeNameMap.get(assembler.assemblerModule.recipe); - + /// LEFT LED if(assembler.didProcess) { drawTexturedModalRect(guiLeft + 51, guiTop + 121, 195, 0, 3, 6); } else if(recipe != null) { drawTexturedModalRect(guiLeft + 51, guiTop + 121, 192, 0, 3, 6); } - + /// RIGHT LED if(assembler.didProcess) { drawTexturedModalRect(guiLeft + 56, guiTop + 121, 195, 0, 3, 6); } else if(recipe != null && assembler.power >= recipe.power) { drawTexturedModalRect(guiLeft + 56, guiTop + 121, 192, 0, 3, 6); } - + this.renderItem(recipe != null ? recipe.getIcon() : TEMPLATE_FOLDER, 8, 126); - + if(recipe != null && recipe.inputItem != null) { for(int i = 0; i < recipe.inputItem.length; i++) { Slot slot = (Slot) this.inventorySlots.inventorySlots.get(assembler.assemblerModule.inputSlots[i]); @@ -115,7 +116,7 @@ public class GUIMachineAssemblyMachine extends GuiInfoContainer { GL11.glColor4f(1F, 1F, 1F, 1F); GL11.glDisable(GL11.GL_BLEND); } - + assembler.inputTank.renderTank(guiLeft + 8, guiTop + 115, this.zLevel, 52, 16, 1); assembler.outputTank.renderTank(guiLeft + 80, guiTop + 115, this.zLevel, 52, 16, 1); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java index 78a2e619b..50838b3a8 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java @@ -8,6 +8,7 @@ import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.items.machine.ItemBlueprints; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineChemicalPlant; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.OpenGlHelper; @@ -21,15 +22,15 @@ public class GUIMachineChemicalPlant extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_chemplant.png"); private TileEntityMachineChemicalPlant chemplant; - + public GUIMachineChemicalPlant(InventoryPlayer invPlayer, TileEntityMachineChemicalPlant tedf) { super(new ContainerMachineChemicalPlant(invPlayer, tedf)); chemplant = tedf; - + this.xSize = 176; this.ySize = 256; } - + @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); @@ -38,7 +39,7 @@ public class GUIMachineChemicalPlant extends GuiInfoContainer { chemplant.inputTanks[i].renderTankInfo(this, mouseX, mouseY, guiLeft + 8 + i * 18, guiTop + 18, 16, 34); chemplant.outputTanks[i].renderTankInfo(this, mouseX, mouseY, guiLeft + 80 + i * 18, guiTop + 18, 16, 34); } - + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 61, chemplant.power, chemplant.maxPower); if(guiLeft + 7 <= mouseX && guiLeft + 7 + 18 > mouseX && guiTop + 125 < mouseY && guiTop + 125 + 18 >= mouseY) { @@ -46,32 +47,32 @@ public class GUIMachineChemicalPlant extends GuiInfoContainer { GenericRecipe recipe = (GenericRecipe) ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(this.chemplant.chemplantModule.recipe); this.func_146283_a(recipe.print(), mouseX, mouseY); } else { - this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + "Click to set recipe", mouseX, mouseY); + this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("gui.recipe.setRecipe"), mouseX, mouseY); } } } - + @Override protected void mouseClicked(int x, int y, int button) { super.mouseClicked(x, y, button); - + if(this.checkClick(x, y, 7, 125, 18, 18)) GUIScreenRecipeSelector.openSelector(ChemicalPlantRecipes.INSTANCE, chemplant, chemplant.chemplantModule.recipe, 0, ItemBlueprints.grabPool(chemplant.slots[1]), this); } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.chemplant.hasCustomInventoryName() ? this.chemplant.getInventoryName() : I18n.format(this.chemplant.getInventoryName()); - + String name = this.chemplant.hasCustomInventoryName() ? this.chemplant.getInventoryName() : I18nUtil.resolveKey(this.chemplant.getInventoryName()); + this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + this.fontRendererObj.drawString(I18nUtil.resolveKey("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } - + @Override protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - + int p = (int) (chemplant.power * 61 / chemplant.maxPower); drawTexturedModalRect(guiLeft + 152, guiTop + 79 - p, 176, 61 - p, 16, p); @@ -79,25 +80,25 @@ public class GUIMachineChemicalPlant extends GuiInfoContainer { int j = (int) Math.ceil(70 * chemplant.chemplantModule.progress); drawTexturedModalRect(guiLeft + 62, guiTop + 126, 176, 61, j, 16); } - + GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(chemplant.chemplantModule.recipe); - + /// LEFT LED if(chemplant.didProcess) { drawTexturedModalRect(guiLeft + 51, guiTop + 121, 195, 0, 3, 6); } else if(recipe != null) { drawTexturedModalRect(guiLeft + 51, guiTop + 121, 192, 0, 3, 6); } - + /// RIGHT LED if(chemplant.didProcess) { drawTexturedModalRect(guiLeft + 56, guiTop + 121, 195, 0, 3, 6); } else if(recipe != null && chemplant.power >= recipe.power) { drawTexturedModalRect(guiLeft + 56, guiTop + 121, 192, 0, 3, 6); } - + this.renderItem(recipe != null ? recipe.getIcon() : TEMPLATE_FOLDER, 8, 126); - + if(recipe != null && recipe.inputItem != null) { for(int i = 0; i < recipe.inputItem.length; i++) { Slot slot = (Slot) this.inventorySlots.inventorySlots.get(chemplant.chemplantModule.inputSlots[i]); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachinePUREX.java b/src/main/java/com/hbm/inventory/gui/GUIMachinePUREX.java index 3cb1b0108..8d746cf11 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachinePUREX.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachinePUREX.java @@ -8,6 +8,7 @@ import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.items.machine.ItemBlueprints; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachinePUREX; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.OpenGlHelper; @@ -21,15 +22,15 @@ public class GUIMachinePUREX extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_purex.png"); private TileEntityMachinePUREX purex; - + public GUIMachinePUREX(InventoryPlayer invPlayer, TileEntityMachinePUREX tedf) { super(new ContainerMachinePUREX(invPlayer, tedf)); purex = tedf; - + this.xSize = 176; this.ySize = 256; } - + @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); @@ -38,7 +39,7 @@ public class GUIMachinePUREX extends GuiInfoContainer { purex.inputTanks[i].renderTankInfo(this, mouseX, mouseY, guiLeft + 8 + i * 18, guiTop + 18, 16, 52); } purex.outputTanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 36, 16, 52); - + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 61, purex.power, purex.maxPower); if(guiLeft + 7 <= mouseX && guiLeft + 7 + 18 > mouseX && guiTop + 125 < mouseY && guiTop + 125 + 18 >= mouseY) { @@ -46,32 +47,32 @@ public class GUIMachinePUREX extends GuiInfoContainer { GenericRecipe recipe = (GenericRecipe) PUREXRecipes.INSTANCE.recipeNameMap.get(this.purex.purexModule.recipe); this.func_146283_a(recipe.print(), mouseX, mouseY); } else { - this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + "Click to set recipe", mouseX, mouseY); + this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("gui.recipe.setRecipe"), mouseX, mouseY); } } } - + @Override protected void mouseClicked(int x, int y, int button) { super.mouseClicked(x, y, button); - + if(this.checkClick(x, y, 7, 125, 18, 18)) GUIScreenRecipeSelector.openSelector(PUREXRecipes.INSTANCE, purex, purex.purexModule.recipe, 0, ItemBlueprints.grabPool(purex.slots[1]), this); } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.purex.hasCustomInventoryName() ? this.purex.getInventoryName() : I18n.format(this.purex.getInventoryName()); - + this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } - + @Override protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - + int p = (int) (purex.power * 61 / purex.maxPower); drawTexturedModalRect(guiLeft + 152, guiTop + 79 - p, 176, 61 - p, 16, p); @@ -79,25 +80,25 @@ public class GUIMachinePUREX extends GuiInfoContainer { int j = (int) Math.ceil(70 * purex.purexModule.progress); drawTexturedModalRect(guiLeft + 62, guiTop + 126, 176, 61, j, 16); } - + GenericRecipe recipe = PUREXRecipes.INSTANCE.recipeNameMap.get(purex.purexModule.recipe); - + /// LEFT LED if(purex.didProcess) { drawTexturedModalRect(guiLeft + 51, guiTop + 121, 195, 0, 3, 6); } else if(recipe != null) { drawTexturedModalRect(guiLeft + 51, guiTop + 121, 192, 0, 3, 6); } - + /// RIGHT LED if(purex.didProcess) { drawTexturedModalRect(guiLeft + 56, guiTop + 121, 195, 0, 3, 6); } else if(recipe != null && purex.power >= recipe.power) { drawTexturedModalRect(guiLeft + 56, guiTop + 121, 192, 0, 3, 6); } - + this.renderItem(recipe != null ? recipe.getIcon() : TEMPLATE_FOLDER, 8, 126); - + if(recipe != null && recipe.inputItem != null) { for(int i = 0; i < recipe.inputItem.length; i++) { Slot slot = (Slot) this.inventorySlots.inventorySlots.get(purex.purexModule.inputSlots[i]); diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java index 99c37e984..53a0bb7a2 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java @@ -35,20 +35,20 @@ public class GenericRecipe { public boolean customLocalization = false; protected String[] blueprintPools = null; public String autoSwitchGroup = null; - + public GenericRecipe(String name) { this.name = name; } - + public boolean isPooled() { return blueprintPools != null; } public String[] getPools() { return this.blueprintPools; } - + public boolean isPartOfPool(String lookingFor) { if(!isPooled()) return false; for(String pool : blueprintPools) if (pool.equals(lookingFor)) return true; return false; } - + public GenericRecipe setDuration(int duration) { this.duration = duration; return this; } public GenericRecipe setPower(long power) { this.power = power; return this; } public GenericRecipe setup(int duration, long power) { return this.setDuration(duration).setPower(power); } @@ -68,13 +68,13 @@ public class GenericRecipe { public GenericRecipe inputFluidsEx(FluidStack... input) { if(!GeneralConfig.enableExpensiveMode) return this; this.inputFluid = input; return this; } public GenericRecipe outputItems(IOutput... output) { this.outputItem = output; return this; } public GenericRecipe outputFluids(FluidStack... output) { this.outputFluid = output; return this; } - + public GenericRecipe outputItems(ItemStack... output) { this.outputItem = new IOutput[output.length]; for(int i = 0; i < outputItem.length; i++) this.outputItem[i] = new ChanceOutput(output[i]); return this; } - + public GenericRecipe setIconToFirstIngredient() { if(this.inputItem != null) { List stacks = this.inputItem[0].extractForNEI(); @@ -82,9 +82,9 @@ public class GenericRecipe { } return this; } - + public ItemStack getIcon() { - + if(icon == null) { if(outputItem != null) { if(outputItem[0] instanceof ChanceOutput) icon = ((ChanceOutput) outputItem[0]).stack.copy(); @@ -95,15 +95,15 @@ public class GenericRecipe { icon = ItemFluidIcon.make(outputFluid[0]); } } - + if(icon == null) icon = new ItemStack(ModItems.nothing); return icon; } - + public String getInternalName() { return this.name; } - + public String getLocalizedName() { String name = null; if(customLocalization) name = I18nUtil.resolveKey(this.name); @@ -111,28 +111,51 @@ public class GenericRecipe { if(this.nameWrapper != null) name = I18nUtil.resolveKey(this.nameWrapper, name); return name; } - + public List print() { List list = new ArrayList(); list.add(EnumChatFormatting.YELLOW + this.getLocalizedName()); + + // autoswitch group (two lines: label + "Enabled for") if(this.autoSwitchGroup != null) { String[] lines = I18nUtil.resolveKeyArray("autoswitch", I18nUtil.resolveKey(this.autoSwitchGroup)); for(String line : lines) list.add(EnumChatFormatting.GOLD + line); } - if(duration > 0) list.add(EnumChatFormatting.RED + "Duration: " + this.duration / 20D + "s"); - if(power > 0) list.add(EnumChatFormatting.RED + "Consumption: " + BobMathUtil.getShortNumber(power) + "HE/t"); - list.add(EnumChatFormatting.BOLD + "Input:"); + + // duration (seconds) + if(duration > 0) { + double seconds = this.duration / 20D; + list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("gui.recipe.duration") + ": " + seconds + "s"); + } + + // power / consumption + if(power > 0) { + list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("gui.recipe.consumption") + ": " + BobMathUtil.getShortNumber(power) + "HE/t"); + } + + // input label + items + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("gui.recipe.input") + ":"); if(inputItem != null) for(AStack stack : inputItem) { ItemStack display = stack.extractForCyclingDisplay(20); list.add(" " + EnumChatFormatting.GRAY + display.stackSize + "x " + display.getDisplayName()); } - if(inputFluid != null) for(FluidStack fluid : inputFluid) list.add(" " + EnumChatFormatting.BLUE + fluid.fill + "mB " + fluid.type.getLocalizedName() + (fluid.pressure == 0 ? "" : " at " + EnumChatFormatting.RED + fluid.pressure + " PU")); - list.add(EnumChatFormatting.BOLD + "Output:"); - if(outputItem != null) for(IOutput output : outputItem) for(String line : output.getLabel()) list.add(" " + line); - if(outputFluid != null) for(FluidStack fluid : outputFluid) list.add(" " + EnumChatFormatting.BLUE + fluid.fill + "mB " + fluid.type.getLocalizedName() + (fluid.pressure == 0 ? "" : " at " + EnumChatFormatting.RED + fluid.pressure + " PU")); + if (inputFluid != null) for (FluidStack fluid : inputFluid) list.add(" " + EnumChatFormatting.BLUE + fluid.fill + "mB " + fluid.type.getLocalizedName() + (fluid.pressure == 0 ? "" : " " + I18nUtil.resolveKey("gui.recipe.atPressure") + " " + EnumChatFormatting.RED + fluid.pressure + " PU")); + + // output label + items + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("gui.recipe.output") + ":"); + if(outputItem != null) for(IOutput output : outputItem) + for(String line : output.getLabel()) list.add(" " + line); + if(outputFluid != null) for(FluidStack fluid : outputFluid) { + String mB = I18nUtil.resolveKey("gui.recipe.mB"); + String pressurePart = fluid.pressure == 0 ? "" : + " " + I18nUtil.resolveKey("gui.recipe.atPressure") + " " + EnumChatFormatting.RED + fluid.pressure + " PU"; + list.add(" " + EnumChatFormatting.BLUE + fluid.fill + mB + " " + fluid.type.getLocalizedName() + pressurePart); + } + return list; } - + + /** Default impl only matches localized name substring, can be extended to include ingredients as well */ public boolean matchesSearch(String substring) { return getLocalizedName().toLowerCase(Locale.US).contains(substring.toLowerCase(Locale.US)); diff --git a/src/main/java/com/hbm/items/ICustomizable.java b/src/main/java/com/hbm/items/ICustomizable.java new file mode 100644 index 000000000..74b82506f --- /dev/null +++ b/src/main/java/com/hbm/items/ICustomizable.java @@ -0,0 +1,9 @@ +package com.hbm.items; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public interface ICustomizable { + + public void customize(EntityPlayer player, ItemStack stack, String... args); +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 0bd86628a..c195b4eb2 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1477,7 +1477,7 @@ public class ModItems { public static Item gun_aberrator_eott; public static Item gun_double_barrel; public static Item gun_double_barrel_sacred_dragon; - + public static Item gun_n_i_4_n_i; // we GET THERE when we GET THERE public static Item gun_charge_thrower; public static Item ammo_standard; diff --git a/src/main/java/com/hbm/items/armor/WingsMurk.java b/src/main/java/com/hbm/items/armor/WingsMurk.java index daec63319..c76c42fda 100644 --- a/src/main/java/com/hbm/items/armor/WingsMurk.java +++ b/src/main/java/com/hbm/items/armor/WingsMurk.java @@ -51,13 +51,12 @@ public class WingsMurk extends JetpackBase { if(player.fallDistance > 0) player.fallDistance = 0; - if(player.motionY < -0.4D) - player.motionY = -0.4D; - if(this == ModItems.wings_limp) { + + if(player.motionY < -0.4D) + player.motionY = -0.4D; - if(player.isSneaking()) { - + if(player.isSneaking()) { if(player.motionY < -0.08) { double mo = player.motionY * -0.2; @@ -81,10 +80,26 @@ public class WingsMurk extends JetpackBase { if(props.isJetpackActive()) { - if(player.motionY < 0.6D) - player.motionY += 0.2D; - else - player.motionY = 0.8D; + if(player.isSneaking()) { + if(player.motionY < -1) + player.motionY += 0.4D; + else if(player.motionY < -0.1) + player.motionY += 0.2D; + else if(player.motionY < 0) + player.motionY = 0; + else if(player.motionY > 1) + player.motionY -= 0.4D; + else if(player.motionY > 0.1) + player.motionY -= 0.2D; + else if(player.motionY > 0) + player.motionY = 0; + + } else { + if(player.motionY < 0.6D) + player.motionY += 0.2D; + else + player.motionY = 0.8D; + } } else if(props.enableBackpack && !player.isSneaking()) { @@ -100,7 +115,7 @@ public class WingsMurk extends JetpackBase { Vec3 orig = player.getLookVec(); Vec3 look = Vec3.createVectorHelper(orig.xCoord, 0, orig.zCoord).normalize(); - double mod = player.isSneaking() ? 0.25D : 1D; + double mod = player.isSprinting() ? 1D : 0.25D; if(player.moveForward != 0) { player.motionX += look.xCoord * 0.35 * player.moveForward * mod; diff --git a/src/main/java/com/hbm/items/bomb/ItemFleija.java b/src/main/java/com/hbm/items/bomb/ItemFleija.java index d9424f67e..06b8c0d68 100644 --- a/src/main/java/com/hbm/items/bomb/ItemFleija.java +++ b/src/main/java/com/hbm/items/bomb/ItemFleija.java @@ -2,7 +2,9 @@ package com.hbm.items.bomb; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; @@ -12,22 +14,17 @@ import net.minecraft.item.ItemStack; public class ItemFleija extends Item { @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Used in:"); - list.add("F.L.E.I.J.A."); + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + list.add(I18nUtil.resolveKey("item.bomb_part.used_in")); + list.add(ModBlocks.nuke_fleija.getLocalizedName()); super.addInformation(itemstack, player, list, bool); } - @Override - public EnumRarity getRarity(ItemStack p_77613_1_) { - - if(this == ModItems.fleija_propellant) - { - return EnumRarity.rare; - } - - return EnumRarity.common; - } - + @Override + public EnumRarity getRarity(ItemStack itemstack) { + if (this == ModItems.fleija_propellant) { + return EnumRarity.rare; + } + return EnumRarity.common; + } } diff --git a/src/main/java/com/hbm/items/bomb/ItemN2.java b/src/main/java/com/hbm/items/bomb/ItemN2.java index c837fee78..da909b8d3 100644 --- a/src/main/java/com/hbm/items/bomb/ItemN2.java +++ b/src/main/java/com/hbm/items/bomb/ItemN2.java @@ -2,17 +2,18 @@ package com.hbm.items.bomb; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.util.i18n.I18nUtil; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class ItemN2 extends Item { - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Used in:"); - list.add("N² Mine"); - } + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + list.add(I18nUtil.resolveKey("item.bomb_part.used_in")); + list.add(ModBlocks.nuke_n2.getLocalizedName()); + } } diff --git a/src/main/java/com/hbm/items/bomb/ItemSolinium.java b/src/main/java/com/hbm/items/bomb/ItemSolinium.java index a04321ecb..9951a7111 100644 --- a/src/main/java/com/hbm/items/bomb/ItemSolinium.java +++ b/src/main/java/com/hbm/items/bomb/ItemSolinium.java @@ -2,6 +2,9 @@ package com.hbm.items.bomb; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.util.i18n.I18nUtil; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -9,10 +12,9 @@ import net.minecraft.item.ItemStack; public class ItemSolinium extends Item { @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Used in:"); - list.add("Solinium Bomb"); + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + list.add(I18nUtil.resolveKey("item.bomb_part.used_in")); + list.add(ModBlocks.nuke_solinium.getLocalizedName() + " name"); super.addInformation(itemstack, player, list, bool); } } diff --git a/src/main/java/com/hbm/items/food/ItemLemon.java b/src/main/java/com/hbm/items/food/ItemLemon.java index b331b799e..2d211ff2f 100644 --- a/src/main/java/com/hbm/items/food/ItemLemon.java +++ b/src/main/java/com/hbm/items/food/ItemLemon.java @@ -2,6 +2,8 @@ package com.hbm.items.food; import java.util.List; +import com.hbm.util.i18n.I18nUtil; + import com.hbm.handler.threading.PacketThreading; import com.hbm.items.ModItems; import com.hbm.packet.toclient.AuxParticlePacketNT; @@ -29,70 +31,68 @@ public class ItemLemon extends ItemFood { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(this == ModItems.lemon) { - list.add("Eh, good enough."); + list.add(I18nUtil.resolveKey("item.lemon.desc")); } if(this == ModItems.med_ipecac) { - list.add("Bitter juice that will cause your stomach"); - list.add("to forcefully eject its contents."); + String[] lines = I18nUtil.resolveKeyArray("item.med_ipecac.desc"); + for (String line : lines) { + list.add(line); + } } if(this == ModItems.med_ptsd) { - list.add("This isn't even PTSD mediaction, it's just"); - list.add("Ipecac in a different bottle!"); + String[] lines = I18nUtil.resolveKeyArray("item.med_ptsd.desc"); + for (String line : lines) { + list.add(line); + } } if(this == ModItems.med_schizophrenia) { - list.add("Makes the voices go away. Just for a while."); - list.add(""); - list.add("..."); - list.add("Better not take it."); - } - - if(this == ModItems.med_schizophrenia) { - list.add("Makes the voices go away. Just for a while."); - list.add(""); - list.add("..."); - list.add("Better not take it."); + String[] lines = I18nUtil.resolveKeyArray("item.med_schizophrenia.desc"); + for (String line : lines) { + list.add(line); + } } if(this == ModItems.loops) { - list.add("Brøther, may I have some lööps?"); + list.add(I18nUtil.resolveKey("item.loops.desc")); } if(this == ModItems.loop_stew) { - list.add("A very, very healthy breakfast."); + list.add(I18nUtil.resolveKey("item.loop_stew.desc")); } if(this == ModItems.twinkie) { - list.add("Expired 600 years ago!"); + list.add(I18nUtil.resolveKey("item.twinkie.desc")); } if(this == ModItems.pudding) { - list.add("What if he did?"); - list.add("What if he didn't?"); - list.add("What if the world was made of pudding?"); + String[] lines = I18nUtil.resolveKeyArray("item.pudding.desc"); + for (String line : lines) { + list.add(line); + } } if(this == ModItems.ingot_semtex) { - list.add("Semtex H Plastic Explosive"); - list.add("Performant explosive for many applications."); - list.add("Edible"); + String[] lines = I18nUtil.resolveKeyArray("item.ingot_semtex.desc"); + for (String line : lines) { + list.add(line); + } } if(this == ModItems.peas) { - list.add("He accepts your offering."); + list.add(I18nUtil.resolveKey("item.peas.desc")); } if(this == ModItems.quesadilla) { - list.add("That's what a 50 year old yeast infection does to you."); + list.add(I18nUtil.resolveKey("item.cheese_quesadilla.desc")); } } - - @Override + @Override protected void onFoodEaten(ItemStack stack, World world, EntityPlayer player) - { + { if(this == ModItems.med_ipecac || this == ModItems.med_ptsd) { player.addPotionEffect(new PotionEffect(Potion.hunger.id, 50, 49)); diff --git a/src/main/java/com/hbm/items/machine/ItemSatChip.java b/src/main/java/com/hbm/items/machine/ItemSatChip.java index b02dd36fa..164c6540c 100644 --- a/src/main/java/com/hbm/items/machine/ItemSatChip.java +++ b/src/main/java/com/hbm/items/machine/ItemSatChip.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.items.ISatChip; import com.hbm.items.ModItems; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -14,36 +15,37 @@ public class ItemSatChip extends Item implements ISatChip { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Satellite frequency: " + getFreq(itemstack)); - + list.add(I18nUtil.resolveKey("satchip.frequency") + ": " + getFreq(itemstack)); + if(this == ModItems.sat_foeq) - list.add("Gives you an achievement. That's it."); - - if(this == ModItems.sat_gerald) { - list.add("Single use."); - list.add("Requires orbital module."); - list.add("Melter of CPUs, bane of every server owner."); + list.add(I18nUtil.resolveKey("satchip.foeq")); + + if (this == ModItems.sat_gerald) { + String[] lines = I18nUtil.resolveKeyArray("satchip.gerald.desc"); + for (String line : lines) { + list.add(line); + } } - + if(this == ModItems.sat_laser) - list.add("Allows to summon lasers with a 15 second cooldown."); - + list.add(I18nUtil.resolveKey("satchip.laser")); + if(this == ModItems.sat_mapper) - list.add("Displays currently loaded chunks."); - + list.add(I18nUtil.resolveKey("satchip.mapper")); + if(this == ModItems.sat_miner) - list.add("Will deliver ore powders to a cargo landing pad."); - + list.add(I18nUtil.resolveKey("satchip.miner")); + if(this == ModItems.sat_lunar_miner) - list.add("Mines moon turf to deliver it to a cargo landing pad."); - + list.add(I18nUtil.resolveKey("satchip.lunar_miner")); + if(this == ModItems.sat_radar) - list.add("Shows a map of active entities."); - + list.add(I18nUtil.resolveKey("satchip.radar")); + if(this == ModItems.sat_resonator) - list.add("Allows for teleportation with no cooldown."); - + list.add(I18nUtil.resolveKey("satchip.resonator")); + if(this == ModItems.sat_scanner) - list.add("Creates a topdown map of underground ores."); + list.add(I18nUtil.resolveKey("satchip.scanner")); } } diff --git a/src/main/java/com/hbm/items/special/ItemHotDusted.java b/src/main/java/com/hbm/items/special/ItemHotDusted.java index 64cee05ca..0c9f3f86d 100644 --- a/src/main/java/com/hbm/items/special/ItemHotDusted.java +++ b/src/main/java/com/hbm/items/special/ItemHotDusted.java @@ -1,4 +1,5 @@ package com.hbm.items.special; +import com.hbm.util.i18n.I18nUtil; import java.util.List; @@ -6,17 +7,16 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; public class ItemHotDusted extends ItemHot { - public ItemHotDusted(int heat) { super(heat); this.setHasSubtypes(true); } - + @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add("Forged " + stack.getItemDamage() + " time(s)"); + list.add(String.format(I18nUtil.resolveKey("item.hot_dusted.forged"), stack.getItemDamage())); } - + public static int getMaxHeat(ItemStack stack) { return heat - stack.getItemDamage() * 10; } diff --git a/src/main/java/com/hbm/items/special/ItemRag.java b/src/main/java/com/hbm/items/special/ItemRag.java index bb883f6eb..44e606e57 100644 --- a/src/main/java/com/hbm/items/special/ItemRag.java +++ b/src/main/java/com/hbm/items/special/ItemRag.java @@ -2,6 +2,7 @@ package com.hbm.items.special; import java.util.List; +import com.hbm.util.i18n.I18nUtil; import com.hbm.items.ModItems; import net.minecraft.block.material.Material; @@ -15,31 +16,31 @@ public class ItemRag extends Item { @Override public boolean onEntityItemUpdate(EntityItem entityItem) { - + if(entityItem != null && !entityItem.worldObj.isRemote) { - - if(entityItem.worldObj.getBlock((int)Math.floor(entityItem.posX), (int)Math.floor(entityItem.posY), (int)Math.floor(entityItem.posZ)).getMaterial() == Material.water) { + + if (entityItem.worldObj.getBlock((int) Math.floor(entityItem.posX), (int) Math.floor(entityItem.posY), + (int) Math.floor(entityItem.posZ)).getMaterial() == Material.water) { ItemStack stack = entityItem.getEntityItem(); entityItem.setEntityItemStack(new ItemStack(ModItems.rag_damp, stack.stackSize)); return true; } } - return false; } - + @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - stack.stackSize--; player.inventory.addItemStackToInventory(new ItemStack(ModItems.rag_piss)); - return stack; } - + @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Drop into water to make damp cloth."); - list.add("Right-click to urinate on the cloth."); + String[] lines = I18nUtil.resolveKeyArray("item.rag.desc"); + for (String line : lines) { + list.add(line); + } } } diff --git a/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java b/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java index eefbae55d..eda062796 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.items.ModItems; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -25,64 +26,88 @@ public class ItemSwordMeteorite extends ItemSwordAbility { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { super.addInformation(stack, player, list, ext); - if(this == ModItems.meteorite_sword) { - list.add(EnumChatFormatting.ITALIC + "Forged from a fallen star"); - list.add(EnumChatFormatting.ITALIC + "Sharper than most terrestrial blades"); + if (this == ModItems.meteorite_sword) { + String[] lines = I18nUtil.resolveKeyArray("item.meteorite_sword.desc"); + for (String line : lines) { + list.add(EnumChatFormatting.ITALIC + line); + } } - if(this == ModItems.meteorite_sword_seared) { - list.add(EnumChatFormatting.ITALIC + "Fire strengthens the blade"); - list.add(EnumChatFormatting.ITALIC + "Making it even more powerful"); + if (this == ModItems.meteorite_sword_seared) { + String[] lines = I18nUtil.resolveKeyArray("item.meteorite_sword.seared.desc"); + for (String line : lines) { + list.add(EnumChatFormatting.ITALIC + line); + } } - if(this == ModItems.meteorite_sword_reforged) { - list.add(EnumChatFormatting.ITALIC + "The sword has been reforged"); - list.add(EnumChatFormatting.ITALIC + "To rectify past imperfections"); + if (this == ModItems.meteorite_sword_reforged) { + String[] lines = I18nUtil.resolveKeyArray("item.meteorite_sword.reforged.desc"); + for (String line : lines) { + list.add(EnumChatFormatting.ITALIC + line); + } } - if(this == ModItems.meteorite_sword_hardened) { - list.add(EnumChatFormatting.ITALIC + "Extremely high pressure has been used"); - list.add(EnumChatFormatting.ITALIC + "To harden the blade further"); + if (this == ModItems.meteorite_sword_hardened) { + String[] lines = I18nUtil.resolveKeyArray("item.meteorite_sword.hardened.desc"); + for (String line : lines) { + list.add(EnumChatFormatting.ITALIC + line); + } } - if(this == ModItems.meteorite_sword_alloyed) { - list.add(EnumChatFormatting.ITALIC + "Cobalt fills the fissures"); - list.add(EnumChatFormatting.ITALIC + "Strengthening the sword"); + if (this == ModItems.meteorite_sword_alloyed) { + String[] lines = I18nUtil.resolveKeyArray("item.meteorite_sword.alloyed.desc"); + for (String line : lines) { + list.add(EnumChatFormatting.ITALIC + line); + } } - if(this == ModItems.meteorite_sword_machined) { - list.add(EnumChatFormatting.ITALIC + "Advanced machinery was used"); - list.add(EnumChatFormatting.ITALIC + "To refine the blade even more"); + if (this == ModItems.meteorite_sword_machined) { + String[] lines = I18nUtil.resolveKeyArray("item.meteorite_sword.machined.desc"); + for (String line : lines) { + list.add(EnumChatFormatting.ITALIC + line); + } } - if(this == ModItems.meteorite_sword_treated) { - list.add(EnumChatFormatting.ITALIC + "Chemicals have been applied"); - list.add(EnumChatFormatting.ITALIC + "Making the sword more powerful"); + if (this == ModItems.meteorite_sword_treated) { + String[] lines = I18nUtil.resolveKeyArray("item.meteorite_sword.treated.desc"); + for (String line : lines) { + list.add(EnumChatFormatting.ITALIC + line); + } } - if(this == ModItems.meteorite_sword_etched) { - list.add(EnumChatFormatting.ITALIC + "Acids clean the material"); - list.add(EnumChatFormatting.ITALIC + "To make this the perfect sword"); + if (this == ModItems.meteorite_sword_etched) { + String[] lines = I18nUtil.resolveKeyArray("item.meteorite_sword.etched.desc"); + for (String line : lines) { + list.add(EnumChatFormatting.ITALIC + line); + } } - if(this == ModItems.meteorite_sword_bred) { - list.add(EnumChatFormatting.ITALIC + "Immense heat and radiation"); - list.add(EnumChatFormatting.ITALIC + "Compress the material"); + if (this == ModItems.meteorite_sword_bred) { + String[] lines = I18nUtil.resolveKeyArray("item.meteorite_sword.bred.desc"); + for (String line : lines) { + list.add(EnumChatFormatting.ITALIC + line); + } } - if(this == ModItems.meteorite_sword_irradiated) { - list.add(EnumChatFormatting.ITALIC + "The power of the Atom"); - list.add(EnumChatFormatting.ITALIC + "Gives the sword might"); + if (this == ModItems.meteorite_sword_irradiated) { + String[] lines = I18nUtil.resolveKeyArray("item.meteorite_sword.irradiated.desc"); + for (String line : lines) { + list.add(EnumChatFormatting.ITALIC + line); + } } - if(this == ModItems.meteorite_sword_fused) { - list.add(EnumChatFormatting.ITALIC + "This blade has met"); - list.add(EnumChatFormatting.ITALIC + "With the forces of the stars"); + if (this == ModItems.meteorite_sword_fused) { + String[] lines = I18nUtil.resolveKeyArray("item.meteorite_sword.fused.desc"); + for (String line : lines) { + list.add(EnumChatFormatting.ITALIC + line); + } } - if(this == ModItems.meteorite_sword_baleful) { - list.add(EnumChatFormatting.ITALIC + "This sword has met temperatures"); - list.add(EnumChatFormatting.ITALIC + "Far beyond what normal material can endure"); + if (this == ModItems.meteorite_sword_baleful) { + String[] lines = I18nUtil.resolveKeyArray("item.meteorite_sword.baleful.desc"); + for (String line : lines) { + list.add(EnumChatFormatting.ITALIC + line); + } } /* diff --git a/src/main/java/com/hbm/items/weapon/ItemCustomMissile.java b/src/main/java/com/hbm/items/weapon/ItemCustomMissile.java index a0bd103b3..6d428a401 100644 --- a/src/main/java/com/hbm/items/weapon/ItemCustomMissile.java +++ b/src/main/java/com/hbm/items/weapon/ItemCustomMissile.java @@ -6,6 +6,7 @@ import com.hbm.handler.MissileStruct; import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemCustomMissilePart.FuelType; import com.hbm.items.weapon.ItemCustomMissilePart.WarheadType; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -15,35 +16,35 @@ import net.minecraft.util.EnumChatFormatting; public class ItemCustomMissile extends Item { public static ItemStack buildMissile(Item chip, Item warhead, Item fuselage, Item stability, Item thruster) { - + if(stability == null) { return buildMissile(new ItemStack(chip), new ItemStack(warhead), new ItemStack(fuselage), null, new ItemStack(thruster)); } else { return buildMissile(new ItemStack(chip), new ItemStack(warhead), new ItemStack(fuselage), new ItemStack(stability), new ItemStack(thruster)); } } - + public static ItemStack buildMissile(ItemStack chip, ItemStack warhead, ItemStack fuselage, ItemStack stability, ItemStack thruster) { - + ItemStack missile = new ItemStack(ModItems.missile_custom); writeToNBT(missile, "chip", Item.getIdFromItem(chip.getItem())); writeToNBT(missile, "warhead", Item.getIdFromItem(warhead.getItem())); writeToNBT(missile, "fuselage", Item.getIdFromItem(fuselage.getItem())); writeToNBT(missile, "thruster", Item.getIdFromItem(thruster.getItem())); - + if(stability != null) writeToNBT(missile, "stability", Item.getIdFromItem(stability.getItem())); - + return missile; } - + private static void writeToNBT(ItemStack stack, String key, int value) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.stackTagCompound.setInteger(key, value); } - + public static int readFromNBT(ItemStack stack, String key) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); @@ -52,53 +53,63 @@ public class ItemCustomMissile extends Item { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - + if(!stack.hasTagCompound()) return; - + try { ItemCustomMissilePart chip = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "chip")); ItemCustomMissilePart warhead = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "warhead")); ItemCustomMissilePart fuselage = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "fuselage")); ItemCustomMissilePart stability = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "stability")); ItemCustomMissilePart thruster = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "thruster")); - - list.add(EnumChatFormatting.BOLD + "Warhead: " + EnumChatFormatting.GRAY + warhead.getWarhead((WarheadType)warhead.attributes[0])); - list.add(EnumChatFormatting.BOLD + "Strength: " + EnumChatFormatting.GRAY + (Float)warhead.attributes[1]); - list.add(EnumChatFormatting.BOLD + "Fuel Type: " + EnumChatFormatting.GRAY + fuselage.getFuel((FuelType)fuselage.attributes[0])); - list.add(EnumChatFormatting.BOLD + "Fuel amount: " + EnumChatFormatting.GRAY + (Float)fuselage.attributes[1] + "l"); - list.add(EnumChatFormatting.BOLD + "Chip inaccuracy: " + EnumChatFormatting.GRAY + (Float)chip.attributes[0] * 100 + "%"); - + + // warhead name + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("gui.missile.warhead") + ": " + EnumChatFormatting.GRAY + warhead.getWarhead((WarheadType)warhead.attributes[0])); + + // strength + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("gui.missile.strength") + ": " + EnumChatFormatting.GRAY + (Float)warhead.attributes[1]); + + // fuel type & amount + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("gui.missile.fuelType") + ": " + EnumChatFormatting.GRAY + fuselage.getFuel((FuelType)fuselage.attributes[0])); + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("gui.missile.fuelAmount") + ": " + EnumChatFormatting.GRAY + (Float)fuselage.attributes[1] + "l"); + + // chip inaccuracy + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("gui.missile.chipInaccuracy") + ": " + EnumChatFormatting.GRAY + (Float)chip.attributes[0] * 100 + "%"); + + // fin inaccuracy if(stability != null) - list.add(EnumChatFormatting.BOLD + "Fin inaccuracy: " + EnumChatFormatting.GRAY + (Float)stability.attributes[0] * 100 + "%"); + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("gui.missile.finInaccuracy") + ": " + EnumChatFormatting.GRAY + (Float)stability.attributes[0] * 100 + "%"); else - list.add(EnumChatFormatting.BOLD + "Fin inaccuracy: " + EnumChatFormatting.GRAY + "100%"); - - list.add(EnumChatFormatting.BOLD + "Size: " + EnumChatFormatting.GRAY + fuselage.getSize(fuselage.top) + "/" + fuselage.getSize(fuselage.bottom)); - + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("gui.missile.finInaccuracy") + ": " + EnumChatFormatting.GRAY + "100%"); + + // size + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("gui.missile.size") + ": " + EnumChatFormatting.GRAY + fuselage.getSize(fuselage.top) + "/" + fuselage.getSize(fuselage.bottom)); + + // health float health = warhead.health + fuselage.health + thruster.health; if(stability != null) health += stability.health; - - list.add(EnumChatFormatting.BOLD + "Health: " + EnumChatFormatting.GRAY + health + "HP"); - + + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("gui.missile.health") + ": " + EnumChatFormatting.GRAY + health + "HP"); + } catch(Exception ex) { - list.add(EnumChatFormatting.RED + "### I AM ERROR ###"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("error.generic")); } } - + public static MissileStruct getStruct(ItemStack stack) { - + if(stack == null || !(stack.getItem() instanceof ItemCustomMissile)) return null; - + ItemCustomMissilePart warhead = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "warhead")); ItemCustomMissilePart fuselage = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "fuselage")); ItemCustomMissilePart stability = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "stability")); ItemCustomMissilePart thruster = (ItemCustomMissilePart) Item.getItemById(readFromNBT(stack, "thruster")); - + MissileStruct missile = new MissileStruct(warhead, fuselage, stability, thruster); - + return missile; } } diff --git a/src/main/java/com/hbm/items/weapon/ItemCustomMissilePart.java b/src/main/java/com/hbm/items/weapon/ItemCustomMissilePart.java index 26c459982..29b391eaf 100644 --- a/src/main/java/com/hbm/items/weapon/ItemCustomMissilePart.java +++ b/src/main/java/com/hbm/items/weapon/ItemCustomMissilePart.java @@ -8,6 +8,7 @@ import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.items.special.ItemLootCrate; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -15,7 +16,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; public class ItemCustomMissilePart extends Item { - + public PartType type; public PartSize top; public PartSize bottom; @@ -24,37 +25,37 @@ public class ItemCustomMissilePart extends Item { private String title; private String author; private String witty; - + public ItemCustomMissilePart() { this.setMaxStackSize(1); this.setCreativeTab(MainRegistry.missileTab); } - + public static HashMap parts = new HashMap(); - + /** * == Chips == * [0]: inaccuracy - * + * * == Warheads == * [0]: type * [1]: strength/radius/cluster count * [2]: weight - * + * * == Fuselages == * [0]: type * [1]: tank size - * + * * == Stability == * [0]: inaccuracy mod - * + * * == Thrusters === * [0]: type * [1]: consumption * [2]: lift strength */ public Object[] attributes; - + public enum PartType { CHIP, WARHEAD, @@ -62,9 +63,9 @@ public class ItemCustomMissilePart extends Item { FINS, THRUSTER } - + public enum PartSize { - + //for chips ANY, //for missile tips and thrusters @@ -74,9 +75,9 @@ public class ItemCustomMissilePart extends Item { SIZE_15, SIZE_20 } - + public enum WarheadType { - + HE, INC, BUSTER, @@ -89,7 +90,7 @@ public class ItemCustomMissilePart extends Item { TAINT, CLOUD, TURBINE, - + //shit solution but it works. this allows traits to be attached to these empty dummy types, allowing for custom warheads CUSTOM0, CUSTOM1, CUSTOM2, CUSTOM3, CUSTOM4, CUSTOM5, CUSTOM6, CUSTOM7, CUSTOM8, CUSTOM9; @@ -100,44 +101,50 @@ public class ItemCustomMissilePart extends Item { /** Override for the warhead's name in the missile description */ public String labelCustom = null; } - + public enum FuelType { - + KEROSENE, SOLID, HYDROGEN, XENON, BALEFIRE } - + public enum Rarity { - - COMMON(EnumChatFormatting.GRAY + "Common"), - UNCOMMON(EnumChatFormatting.YELLOW + "Uncommon"), - RARE(EnumChatFormatting.AQUA + "Rare"), - EPIC(EnumChatFormatting.LIGHT_PURPLE + "Epic"), - LEGENDARY(EnumChatFormatting.DARK_GREEN + "Legendary"), - SEWS_CLOTHES_AND_SUCKS_HORSE_COCK(EnumChatFormatting.DARK_AQUA + "Strange"); - - String name; - - Rarity(String name) { - this.name = name; + + COMMON("item.missile.part.rarity.common", EnumChatFormatting.GRAY), + UNCOMMON("item.missile.part.rarity.uncommon", EnumChatFormatting.YELLOW), + RARE("item.missile.part.rarity.rare", EnumChatFormatting.AQUA), + EPIC("item.missile.part.rarity.epic", EnumChatFormatting.LIGHT_PURPLE), + LEGENDARY("item.missile.part.rarity.legendary", EnumChatFormatting.DARK_GREEN), + SEWS_CLOTHES_AND_SUCKS_HORSE_COCK("item.missile.part.rarity.strange", EnumChatFormatting.DARK_AQUA); + + private final String key; + private final EnumChatFormatting color; + + Rarity(String key, EnumChatFormatting color) { + this.key = key; + this.color = color; + } + + public String getDisplay() { + return color + I18nUtil.resolveKey(key); } } - + public ItemCustomMissilePart makeChip(float inaccuracy) { - + this.type = PartType.CHIP; this.top = PartSize.ANY; this.bottom = PartSize.ANY; this.attributes = new Object[] { inaccuracy }; - + parts.put(this.hashCode(), this); - + return this; } - + public ItemCustomMissilePart makeWarhead(WarheadType type, float punch, float weight, PartSize size) { this.type = PartType.WARHEAD; @@ -145,12 +152,12 @@ public class ItemCustomMissilePart extends Item { this.bottom = size; this.attributes = new Object[] { type, punch, weight }; setTextureName(RefStrings.MODID + ":mp_warhead"); - + parts.put(this.hashCode(), this); - + return this; } - + public ItemCustomMissilePart makeFuselage(FuelType type, float fuel, PartSize top, PartSize bottom) { this.type = PartType.FUSELAGE; @@ -158,12 +165,12 @@ public class ItemCustomMissilePart extends Item { this.bottom = bottom; attributes = new Object[] { type, fuel }; setTextureName(RefStrings.MODID + ":mp_fuselage"); - + parts.put(this.hashCode(), this); - + return this; } - + public ItemCustomMissilePart makeStability(float inaccuracy, PartSize size) { this.type = PartType.FINS; @@ -171,12 +178,12 @@ public class ItemCustomMissilePart extends Item { this.bottom = size; this.attributes = new Object[] { inaccuracy }; setTextureName(RefStrings.MODID + ":mp_stability"); - + parts.put(this.hashCode(), this); - + return this; } - + public ItemCustomMissilePart makeThruster(FuelType type, float consumption, float lift, PartSize size) { this.type = PartType.THRUSTER; @@ -184,9 +191,9 @@ public class ItemCustomMissilePart extends Item { this.bottom = PartSize.NONE; this.attributes = new Object[] { type, consumption, lift }; setTextureName(RefStrings.MODID + ":mp_thruster"); - + parts.put(this.hashCode(), this); - + return this; } @@ -196,122 +203,122 @@ public class ItemCustomMissilePart extends Item { if(title != null) list.add(EnumChatFormatting.DARK_PURPLE + "\"" + title + "\""); - + try { switch(type) { - case CHIP: - list.add(EnumChatFormatting.BOLD + "Inaccuracy: " + EnumChatFormatting.GRAY + (Float)attributes[0] * 100 + "%"); - break; - case WARHEAD: - list.add(EnumChatFormatting.BOLD + "Size: " + EnumChatFormatting.GRAY + getSize(bottom)); - list.add(EnumChatFormatting.BOLD + "Type: " + EnumChatFormatting.GRAY + getWarhead((WarheadType)attributes[0])); - list.add(EnumChatFormatting.BOLD + "Strength: " + EnumChatFormatting.GRAY + (Float)attributes[1]); - list.add(EnumChatFormatting.BOLD + "Weight: " + EnumChatFormatting.GRAY + (Float)attributes[2] + "t"); - break; - case FUSELAGE: - list.add(EnumChatFormatting.BOLD + "Top size: " + EnumChatFormatting.GRAY + getSize(top)); - list.add(EnumChatFormatting.BOLD + "Bottom size: " + EnumChatFormatting.GRAY + getSize(bottom)); - list.add(EnumChatFormatting.BOLD + "Fuel type: " + EnumChatFormatting.GRAY + getFuel((FuelType)attributes[0])); - list.add(EnumChatFormatting.BOLD + "Fuel amount: " + EnumChatFormatting.GRAY + (Float)attributes[1] + "l"); - break; - case FINS: - list.add(EnumChatFormatting.BOLD + "Size: " + EnumChatFormatting.GRAY + getSize(top)); - list.add(EnumChatFormatting.BOLD + "Inaccuracy: " + EnumChatFormatting.GRAY + (Float)attributes[0] * 100 + "%"); - break; - case THRUSTER: - list.add(EnumChatFormatting.BOLD + "Size: " + EnumChatFormatting.GRAY + getSize(top)); - list.add(EnumChatFormatting.BOLD + "Fuel type: " + EnumChatFormatting.GRAY + getFuel((FuelType)attributes[0])); - list.add(EnumChatFormatting.BOLD + "Fuel consumption: " + EnumChatFormatting.GRAY + (Float)attributes[1] + "l/tick"); - list.add(EnumChatFormatting.BOLD + "Max. payload: " + EnumChatFormatting.GRAY + (Float)attributes[2] + "t"); - break; + case CHIP: + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.inaccuracy") + ": " + EnumChatFormatting.GRAY + (Float)attributes[0] * 100 + "%"); + break; + case WARHEAD: + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.size") + ": " + EnumChatFormatting.GRAY + getSize(bottom)); + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.type") + ": " + EnumChatFormatting.GRAY + getWarhead((WarheadType)attributes[0])); + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.strength") + ": " + EnumChatFormatting.GRAY + (Float)attributes[1]); + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.weight") + ": " + EnumChatFormatting.GRAY + (Float)attributes[2] + "t"); + break; + case FUSELAGE: + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.topSize") + ": " + EnumChatFormatting.GRAY + getSize(top)); + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.bottomSize") + ": " + EnumChatFormatting.GRAY + getSize(bottom)); + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.fuelType") + ": " + EnumChatFormatting.GRAY + getFuel((FuelType)attributes[0])); + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.fuelAmount") + ": " + EnumChatFormatting.GRAY + (Float)attributes[1] + "l"); + break; + case FINS: + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.size") + ": " + EnumChatFormatting.GRAY + getSize(top)); + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.inaccuracy") + ": " + EnumChatFormatting.GRAY + (Float)attributes[0] * 100 + "%"); + break; + case THRUSTER: + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.size") + ": " + EnumChatFormatting.GRAY + getSize(top)); + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.fuelType") + ": " + EnumChatFormatting.GRAY + getFuel((FuelType)attributes[0])); + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.fuelConsumption") + ": " + EnumChatFormatting.GRAY + (Float)attributes[1] + "l/tick"); + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.maxPayload") + ": " + EnumChatFormatting.GRAY + (Float)attributes[2] + "t"); + break; } } catch(Exception ex) { - list.add("### I AM ERROR ###"); + list.add(I18nUtil.resolveKey("error.generic")); } - + if(type != PartType.CHIP) - list.add(EnumChatFormatting.BOLD + "Health: " + EnumChatFormatting.GRAY + health + "HP"); - + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.health") + ": " + EnumChatFormatting.GRAY + health + "HP"); + if(this.rarity != null) - list.add(EnumChatFormatting.BOLD + "Rarity: " + EnumChatFormatting.GRAY + this.rarity.name); + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("item.missile.part.rarity") + ": " + EnumChatFormatting.GRAY + this.rarity.getDisplay()); if(author != null) - list.add(EnumChatFormatting.WHITE + " by " + author); + list.add(EnumChatFormatting.WHITE + " " + I18nUtil.resolveKey("item.missile.part.by") + " " + author); if(witty != null) list.add(EnumChatFormatting.GOLD + " " + EnumChatFormatting.ITALIC + "\"" + witty + "\""); } - + public String getSize(PartSize size) { - + switch(size) { - case ANY: - return "Any"; - case SIZE_10: - return "1.0m"; - case SIZE_15: - return "1.5m"; - case SIZE_20: - return "2.0m"; - default: - return "None"; + case ANY: + return I18nUtil.resolveKey("item.missile.part.size.any"); + case SIZE_10: + return "1.0m"; + case SIZE_15: + return "1.5m"; + case SIZE_20: + return "2.0m"; + default: + return I18nUtil.resolveKey("item.missile.part.size.none"); } } - + public String getWarhead(WarheadType type) { - + if(type.labelCustom != null) return type.labelCustom; - + switch(type) { - case HE: - return EnumChatFormatting.YELLOW + "HE"; - case INC: - return EnumChatFormatting.GOLD + "Incendiary"; - case CLUSTER: - return EnumChatFormatting.GRAY + "Cluster"; - case BUSTER: - return EnumChatFormatting.WHITE + "Bunker Buster"; - case NUCLEAR: - return EnumChatFormatting.DARK_GREEN + "Nuclear"; - case TX: - return EnumChatFormatting.DARK_PURPLE + "Thermonuclear (TX)"; - case N2: - return EnumChatFormatting.RED + "N²"; - case BALEFIRE: - return EnumChatFormatting.GREEN + "BF"; - case SCHRAB: - return EnumChatFormatting.AQUA + "Schrabidium"; - case TAINT: - return EnumChatFormatting.DARK_PURPLE + "Taint"; - case CLOUD: - return EnumChatFormatting.LIGHT_PURPLE + "Cloud"; - case TURBINE: - return (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.RED : EnumChatFormatting.LIGHT_PURPLE) + "Turbine"; - default: - return EnumChatFormatting.BOLD + "N/A"; + case HE: + return EnumChatFormatting.YELLOW + I18nUtil.resolveKey("item.warhead.desc.he"); + case INC: + return EnumChatFormatting.GOLD + I18nUtil.resolveKey("item.warhead.desc.incendiary"); + case CLUSTER: + return EnumChatFormatting.GRAY + I18nUtil.resolveKey("item.warhead.desc.cluster"); + case BUSTER: + return EnumChatFormatting.WHITE + I18nUtil.resolveKey("item.warhead.desc.bunker_buster"); + case NUCLEAR: + return EnumChatFormatting.DARK_GREEN + I18nUtil.resolveKey("item.warhead.desc.nuclear"); + case TX: + return EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("item.warhead.desc.thermonuclear"); + case N2: + return EnumChatFormatting.RED + I18nUtil.resolveKey("item.warhead.desc.n2"); + case BALEFIRE: + return EnumChatFormatting.GREEN + I18nUtil.resolveKey("item.warhead.desc.balefire"); + case SCHRAB: + return EnumChatFormatting.AQUA + I18nUtil.resolveKey("item.warhead.desc.schrabidium"); + case TAINT: + return EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("item.warhead.desc.taint"); + case CLOUD: + return EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKey("item.warhead.desc.cloud"); + case TURBINE: + return (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.RED : EnumChatFormatting.LIGHT_PURPLE) + I18nUtil.resolveKey("item.warhead.desc.turbine"); + default: + return EnumChatFormatting.BOLD + I18nUtil.resolveKey("general.na"); } } - + public String getFuel(FuelType type) { - + switch(type) { - case KEROSENE: - return EnumChatFormatting.LIGHT_PURPLE + "Kerosene / Peroxide"; - case SOLID: - return EnumChatFormatting.GOLD + "Solid Fuel"; - case HYDROGEN: - return EnumChatFormatting.DARK_AQUA + "Hydrogen / Oxygen"; - case XENON: - return EnumChatFormatting.DARK_PURPLE + "Xenon Gas"; - case BALEFIRE: - return EnumChatFormatting.GREEN + "BF Rocket Fuel / Peroxide"; - default: - return EnumChatFormatting.BOLD + "N/A"; + case KEROSENE: + return EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKey("item.missile.fuel.kerosene_peroxide"); // reuse missile fuel keys + case SOLID: + return EnumChatFormatting.GOLD + I18nUtil.resolveKey("item.missile.fuel.solid"); + case HYDROGEN: + return EnumChatFormatting.DARK_AQUA + I18nUtil.resolveKey("item.missile.fuel.ethanol_peroxide"); // closest match + case XENON: + return EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("item.missile.fuel.xenon"); + case BALEFIRE: + return EnumChatFormatting.GREEN + I18nUtil.resolveKey("item.missile.fuel.balefire"); + default: + return EnumChatFormatting.BOLD + I18nUtil.resolveKey("general.na"); } } - + //am i retarded? /* yes */ public ItemCustomMissilePart copy() { - + ItemCustomMissilePart part = new ItemCustomMissilePart(); part.type = this.type; part.top = this.top; @@ -320,33 +327,33 @@ public class ItemCustomMissilePart extends Item { part.attributes = this.attributes; part.health = this.health; part.setTextureName(this.iconString); - + return part; } - + public ItemCustomMissilePart setAuthor(String author) { this.author = author; return this; } - + public ItemCustomMissilePart setTitle(String title) { this.title = title; return this; } - + public ItemCustomMissilePart setWittyText(String witty) { this.witty = witty; return this; } - + public ItemCustomMissilePart setHealth(float health) { this.health = health; return this; } - + public ItemCustomMissilePart setRarity(Rarity rarity) { this.rarity = rarity; - + if(this.type == PartType.FUSELAGE) { if(this.top == PartSize.SIZE_10) ItemLootCrate.list10.add(this); diff --git a/src/main/java/com/hbm/items/weapon/ItemMissile.java b/src/main/java/com/hbm/items/weapon/ItemMissile.java index 692750516..dbd031944 100644 --- a/src/main/java/com/hbm/items/weapon/ItemMissile.java +++ b/src/main/java/com/hbm/items/weapon/ItemMissile.java @@ -3,53 +3,57 @@ package com.hbm.items.weapon; import java.util.List; import com.hbm.items.ItemCustomLore; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; public class ItemMissile extends ItemCustomLore { - + public final MissileFormFactor formFactor; public final MissileTier tier; public final MissileFuel fuel; public int fuelCap; public boolean launchable = true; - + public ItemMissile(MissileFormFactor form, MissileTier tier) { this(form, tier, form.defaultFuel); } - + public ItemMissile(MissileFormFactor form, MissileTier tier, MissileFuel fuel) { this.formFactor = form; this.tier = tier; this.fuel = fuel; this.setFuelCap(this.fuel.defaultCap); } - + public ItemMissile notLaunchable() { this.launchable = false; return this; } - + public ItemMissile setFuelCap(int fuelCap) { this.fuelCap = fuelCap; return this; } - + @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.ITALIC + this.tier.display); - + // Tier localized: missile.tier.tier0, missile.tier.tier1, ... + String tierKey = "item.missile.tier." + this.tier.name().toLowerCase(); + list.add(EnumChatFormatting.ITALIC + I18nUtil.resolveKey(tierKey)); + if(!this.launchable) { - list.add(EnumChatFormatting.RED + "Not launchable!"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("item.missile.desc.notLaunchable")); } else { - list.add("Fuel: " + this.fuel.display); - if(this.fuelCap > 0) list.add("Fuel capacity: " + this.fuelCap + "mB"); + // Fuel localized & colored via enum helper + list.add(I18nUtil.resolveKey("item.missile.desc.fuel") + ": " + this.fuel.getDisplay()); + if(this.fuelCap > 0) list.add(I18nUtil.resolveKey("item.missile.desc.fuelCapacity") + ": " + this.fuelCap + "mB"); super.addInformation(itemstack, player, list, bool); } } - + public enum MissileFormFactor { ABM(MissileFuel.SOLID), MICRO(MissileFuel.SOLID), @@ -58,41 +62,48 @@ public class ItemMissile extends ItemCustomLore { HUGE(MissileFuel.KEROSENE_LOXY), ATLAS(MissileFuel.JETFUEL_LOXY), OTHER(MissileFuel.KEROSENE_PEROXIDE); - + protected MissileFuel defaultFuel; - + private MissileFormFactor(MissileFuel defaultFuel) { this.defaultFuel = defaultFuel; } } - + public enum MissileTier { TIER0("Tier 0"), TIER1("Tier 1"), TIER2("Tier 2"), TIER3("Tier 3"), TIER4("Tier 4"); - + public String display; - + private MissileTier(String display) { this.display = display; } } - + public enum MissileFuel { - SOLID(EnumChatFormatting.GOLD + "Solid Fuel (pre-fueled)", 0), - ETHANOL_PEROXIDE(EnumChatFormatting.AQUA + "Ethanol / Hydrogen Peroxide", 4_000), - KEROSENE_PEROXIDE(EnumChatFormatting.BLUE + "Kerosene / Hydrogen Peroxide", 8_000), - KEROSENE_LOXY(EnumChatFormatting.LIGHT_PURPLE + "Kerosene / Liquid Oxygen", 12_000), - JETFUEL_LOXY(EnumChatFormatting.RED + "Jet Fuel / Liquid Oxygen", 16_000); - - public String display; - public int defaultCap; - - private MissileFuel(String display, int defaultCap) { - this.display = display; + SOLID("item.missile.fuel.solid.prefueled", EnumChatFormatting.GOLD, 0), + ETHANOL_PEROXIDE("item.missile.fuel.ethanol_peroxide", EnumChatFormatting.AQUA, 4_000), + KEROSENE_PEROXIDE("item.missile.fuel.kerosene_peroxide", EnumChatFormatting.BLUE, 8_000), + KEROSENE_LOXY("item.missile.fuel.kerosene_loxy", EnumChatFormatting.LIGHT_PURPLE, 12_000), + JETFUEL_LOXY("item.missile.fuel.jetfuel_loxy", EnumChatFormatting.RED, 16_000); + + private final String key; + public final EnumChatFormatting color; + public final int defaultCap; + + private MissileFuel(String key, EnumChatFormatting color, int defaultCap) { + this.key = key; + this.color = color; this.defaultCap = defaultCap; } + + /** Returns a color localized string for display */ + public String getDisplay() { + return color + I18nUtil.resolveKey(this.key); + } } } diff --git a/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java index 704eb09a6..c43550972 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java +++ b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java @@ -29,6 +29,7 @@ import com.hbm.render.util.RenderScreenOverlay; import com.hbm.sound.AudioWrapper; import com.hbm.util.BobMathUtil; import com.hbm.util.EnumUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -55,10 +56,10 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I public long[] lastShot; /** [0;1] randomized every shot for various rendering applications */ public double shotRand = 0D; - + public static List secrets = new ArrayList(); public List recognizedMods = new ArrayList(); - + public static final DecimalFormatSymbols SYMBOLS_US = new DecimalFormatSymbols(Locale.US); public static final DecimalFormat FORMAT_DMG = new DecimalFormat("#.##", SYMBOLS_US); @@ -68,20 +69,20 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I public static float recoilRebound = 0.25F; public static float offsetVertical = 0; public static float offsetHorizontal = 0; - + public static void setupRecoil(float vertical, float horizontal, float decay, float rebound) { recoilVertical += vertical; recoilHorizontal += horizontal; recoilDecay = decay; recoilRebound = rebound; } - + public static void setupRecoil(float vertical, float horizontal) { setupRecoil(vertical, horizontal, 0.75F, 0.25F); } public static final String O_GUNCONFIG = "O_GUNCONFIG_"; - + public static final String KEY_DRAWN = "drawn"; public static final String KEY_AIMING = "aiming"; public static final String KEY_MODE = "mode_"; @@ -98,28 +99,28 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I public static final String KEY_LOCKEDON = "lockedon"; public static final String KEY_CANCELRELOAD = "cancel"; public static final String KEY_EQUIPPED = "eqipped"; - + public static ConcurrentHashMap loopedSounds = new ConcurrentHashMap(); public static float prevAimingProgress; public static float aimingProgress; - + /** NEVER ACCESS DIRECTLY - USE GETTER */ protected GunConfig[] configs_DNA; - + public Function LAMBDA_NAME_MUTATOR; public WeaponQuality quality; - + public GunConfig getConfig(ItemStack stack, int index) { GunConfig cfg = configs_DNA[index]; if(stack == null) return cfg; return WeaponModManager.eval(cfg, stack, O_GUNCONFIG + index, this, index); } - + public int getConfigCount() { return configs_DNA.length; } - + public ItemGunBaseNT(WeaponQuality quality, GunConfig... cfg) { this.setMaxStackSize(1); this.configs_DNA = cfg; @@ -130,7 +131,7 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I if(quality == WeaponQuality.LEGENDARY || quality == WeaponQuality.SECRET) this.secrets.add(this); this.setTextureName(RefStrings.MODID + ":gun_darter"); } - + public static enum WeaponQuality { A_SIDE, B_SIDE, @@ -148,73 +149,73 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I RELOADING, //forced delay after which a reload action happens, may be canceled (TBI) JAMMED, //forced delay due to jamming } - + public ItemGunBaseNT setNameMutator(Function lambda) { this.LAMBDA_NAME_MUTATOR = lambda; return this; } public String getItemStackDisplayName(ItemStack stack) { - + if(this.LAMBDA_NAME_MUTATOR != null) { String unloc = this.LAMBDA_NAME_MUTATOR.apply(stack); if(unloc != null) return (StatCollector.translateToLocal(unloc + ".name")).trim(); } - + return super.getItemStackDisplayName(stack); } - + @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - + int configs = this.configs_DNA.length; for(int i = 0; i < configs; i++) { GunConfig config = getConfig(stack, i); for(Receiver rec : config.getReceivers(stack)) { IMagazine mag = rec.getMagazine(stack); - list.add("Ammo: " + mag.getIconForHUD(stack, player).getDisplayName() + " " + mag.reportAmmoStateForHUD(stack, player)); + list.add(I18nUtil.resolveKey("gui.weapon.ammo") + ": " + mag.getIconForHUD(stack, player).getDisplayName() + " " + mag.reportAmmoStateForHUD(stack, player)); float dmg = rec.getBaseDamage(stack); - list.add("Base Damage: " + FORMAT_DMG.format(dmg)); + list.add(I18nUtil.resolveKey("gui.weapon.baseDamage") + ": " + FORMAT_DMG.format(dmg)); if(mag.getType(stack, player.inventory) instanceof BulletConfig) { BulletConfig bullet = (BulletConfig) mag.getType(stack, player.inventory); int min = (int) (bullet.projectilesMin * rec.getSplitProjectiles(stack)); int max = (int) (bullet.projectilesMax * rec.getSplitProjectiles(stack)); - list.add("Damage with current ammo: " + FORMAT_DMG.format(dmg * bullet.damageMult) + (min > 1 ? (" x" + (min != max ? (min + "-" + max) : min)) : "")); + list.add(I18nUtil.resolveKey("gui.weapon.damageWithAmmo") + ": " + FORMAT_DMG.format(dmg * bullet.damageMult) + (min > 1 ? (" x" + (min != max ? (min + "-" + max) : min)) : "")); } } - + float maxDura = config.getDurability(stack); if(maxDura > 0) { int dura = MathHelper.clamp_int((int)((maxDura - this.getWear(stack, i)) * 100 / maxDura), 0, 100); - list.add("Condition: " + dura + "%"); + list.add(I18nUtil.resolveKey("gui.weapon.condition") + ": " + dura + "%"); } - + for(ItemStack upgrade : WeaponModManager.getUpgradeItems(stack, i)) { list.add(EnumChatFormatting.YELLOW + upgrade.getDisplayName()); } } - + switch(this.quality) { - case A_SIDE: list.add(EnumChatFormatting.YELLOW + "Standard Arsenal"); break; - case B_SIDE: list.add(EnumChatFormatting.GOLD + "B-Side"); break; - case LEGENDARY: list.add(EnumChatFormatting.RED + "Legendary Weapon"); break; - case SPECIAL: list.add(EnumChatFormatting.AQUA + "Special Weapon"); break; - case UTILITY: list.add(EnumChatFormatting.GREEN + "Utility"); break; - case SECRET: list.add((BobMathUtil.getBlink() ? EnumChatFormatting.DARK_RED : EnumChatFormatting.RED) + "SECRET"); break; - case DEBUG: list.add((BobMathUtil.getBlink() ? EnumChatFormatting.YELLOW : EnumChatFormatting.GOLD) + "DEBUG"); break; + case A_SIDE: list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("gui.weapon.quality.aside")); break; + case B_SIDE: list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("gui.weapon.quality.bside")); break; + case LEGENDARY: list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("gui.weapon.quality.legendary")); break; + case SPECIAL: list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("gui.weapon.quality.special")); break; + case UTILITY: list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("gui.weapon.quality.utility")); break; + case SECRET: list.add((BobMathUtil.getBlink() ? EnumChatFormatting.DARK_RED : EnumChatFormatting.RED) + I18nUtil.resolveKey("gui.weapon.quality.secret")); break; + case DEBUG: list.add((BobMathUtil.getBlink() ? EnumChatFormatting.YELLOW : EnumChatFormatting.GOLD) + I18nUtil.resolveKey("gui.weapon.quality.debug")); break; } - + if(Minecraft.getMinecraft().currentScreen instanceof GUIWeaponTable && !this.recognizedMods.isEmpty()) { - list.add(EnumChatFormatting.RED + "Accepts:"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("gui.weapon.accepts" + ":")); for(ComparableStack comp : this.recognizedMods) list.add(EnumChatFormatting.RED + " " + comp.toStack().getDisplayName()); } } - + @Override public boolean canHandleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind) { return keybind == EnumKeybind.GUN_PRIMARY || keybind == EnumKeybind.GUN_SECONDARY || keybind == EnumKeybind.GUN_TERTIARY || keybind == EnumKeybind.RELOAD; } - + @Override public void handleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean newState) { handleKeybind(player, player.inventory, stack, keybind, newState); @@ -222,13 +223,13 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I public void handleKeybind(EntityLivingBase entity, IInventory inventory, ItemStack stack, EnumKeybind keybind, boolean newState) { if(!GeneralConfig.enableGuns) return; - + int configs = this.configs_DNA.length; - + for(int i = 0; i < configs; i++) { GunConfig config = getConfig(stack, i); LambdaContext ctx = new LambdaContext(config, entity, inventory, i); - + if(keybind == EnumKeybind.GUN_PRIMARY && newState && !getPrimary(stack, i)) { if(config.getPressPrimary(stack) != null) config.getPressPrimary(stack).accept(stack, ctx); this.setPrimary(stack, i, newState); continue; } if(keybind == EnumKeybind.GUN_PRIMARY && !newState && getPrimary(stack, i)) { if(config.getReleasePrimary(stack) != null) config.getReleasePrimary(stack).accept(stack, ctx); this.setPrimary(stack, i, newState); continue; } if(keybind == EnumKeybind.GUN_SECONDARY && newState && !getSecondary(stack, i)) { if(config.getPressSecondary(stack) != null) config.getPressSecondary(stack).accept(stack, ctx); this.setSecondary(stack, i, newState); continue; } @@ -243,7 +244,7 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I @Override public void onEquip(EntityPlayer player, ItemStack stack) { for(int i = 0; i < this.configs_DNA.length; i++) { - if(this.getLastAnim(stack, i) == AnimType.EQUIP && this.getAnimTimer(stack, i) < 5) continue; + if(this.getLastAnim(stack, i) == AnimType.EQUIP && this.getAnimTimer(stack, i) < 5) continue; playAnimation(player, stack, AnimType.EQUIP, i); this.setPrimary(stack, i, false); this.setSecondary(stack, i, false); @@ -251,7 +252,7 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I this.setReloadKey(stack, i, false); } } - + public static void playAnimation(EntityPlayer player, ItemStack stack, AnimType type, int index) { if(player instanceof EntityPlayerMP) { PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(type.ordinal(), 0, index), (EntityPlayerMP) player); @@ -262,7 +263,7 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I @Override public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isHeld) { - + if(!(entity instanceof EntityLivingBase)) return; EntityPlayer player = entity instanceof EntityPlayer ? (EntityPlayer) entity : null; int confNo = this.configs_DNA.length; @@ -272,17 +273,17 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I configs[i] = this.getConfig(stack, i); ctx[i] = new LambdaContext(configs[i], (EntityLivingBase) entity, player != null ? player.inventory : null, i); } - + if(world.isRemote) { - + if(isHeld && player == MainRegistry.proxy.me()) { - + /// DEBUG /// /*Vec3 offset = Vec3.createVectorHelper(-0.2, -0.1, 0.75); offset.rotateAroundX(-entity.rotationPitch / 180F * (float) Math.PI); offset.rotateAroundY(-entity.rotationYaw / 180F * (float) Math.PI); world.spawnParticle("flame", entity.posX + offset.xCoord, entity.posY + entity.getEyeHeight() + offset.yCoord, entity.posZ + offset.zCoord, 0, 0, 0);*/ - + /// AIMING /// prevAimingProgress = aimingProgress; boolean aiming = this.getIsAiming(stack); @@ -290,12 +291,12 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I if(aiming && aimingProgress < 1F) aimingProgress += aimSpeed; if(!aiming && aimingProgress > 0F) aimingProgress -= aimSpeed; aimingProgress = MathHelper.clamp_float(aimingProgress, 0F, 1F); - + /// SMOKE NODES /// for(int i = 0; i < confNo; i++) if(configs[i].getSmokeHandler(stack) != null) { configs[i].getSmokeHandler(stack).accept(stack, ctx[i]); } - + for(int i = 0; i < confNo; i++) { BiConsumer orchestra = configs[i].getOrchestra(stack); if(orchestra != null) orchestra.accept(stack, ctx[i]); @@ -303,18 +304,18 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I } return; } - + /// ON EQUIP /// if(player != null) { boolean wasHeld = this.getIsEquipped(stack); - + if(!wasHeld && isHeld && player != null) { this.onEquip(player, stack); } } - + this.setIsEquipped(stack, isHeld); - + /// RESET WHEN NOT EQUIPPED /// if(!isHeld) { for(int i = 0; i < confNo; i++) { @@ -329,13 +330,13 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I this.setReloadCancel(stack, false); return; } - + for(int i = 0; i < confNo; i++) for(int k = 0; k == 0 || (k < 2 && ArmorTrenchmaster.isTrenchMaster(player) && this.getState(stack, i) == GunState.RELOADING); k++) { BiConsumer orchestra = configs[i].getOrchestra(stack); if(orchestra != null) orchestra.accept(stack, ctx[i]); - + setAnimTimer(stack, i, getAnimTimer(stack, i) + 1); - + /// STTATE MACHINE /// int timer = this.getTimer(stack, i); if(timer > 0) this.setTimer(stack, i, timer - 1); @@ -371,7 +372,7 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I public static void setLastAnim(ItemStack stack, int index, AnimType value) { setValueInt(stack, KEY_LASTANIM + index, value.ordinal()); } public static int getAnimTimer(ItemStack stack, int index) { return getValueInt(stack, KEY_ANIMTIMER + index); } public static void setAnimTimer(ItemStack stack, int index, int value) { setValueInt(stack, KEY_ANIMTIMER + index, value); } - + // BUTTON STATES // public static boolean getPrimary(ItemStack stack, int index) { return getValueBool(stack, KEY_PRIMARY + index); } public static void setPrimary(ItemStack stack, int index, boolean value) { setValueBool(stack, KEY_PRIMARY + index, value); } @@ -387,28 +388,28 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I // EQUIPPED // public static boolean getIsEquipped(ItemStack stack) { return getValueBool(stack, KEY_EQUIPPED); } public static void setIsEquipped(ItemStack stack, boolean value) { setValueBool(stack, KEY_EQUIPPED, value); } - - + + /// UTIL /// public static int getValueInt(ItemStack stack, String name) { if(stack.hasTagCompound()) return stack.getTagCompound().getInteger(name); return 0; } public static void setValueInt(ItemStack stack, String name, int value) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.getTagCompound().setInteger(name, value); } - + public static float getValueFloat(ItemStack stack, String name) { if(stack.hasTagCompound()) return stack.getTagCompound().getFloat(name); return 0; } public static void setValueFloat(ItemStack stack, String name, float value) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.getTagCompound().setFloat(name, value); } - + public static byte getValueByte(ItemStack stack, String name) { if(stack.hasTagCompound()) return stack.getTagCompound().getByte(name); return 0; } public static void setValueByte(ItemStack stack, String name, byte value) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.getTagCompound().setByte(name, value); } - + public static boolean getValueBool(ItemStack stack, String name) { if(stack.hasTagCompound()) return stack.getTagCompound().getBoolean(name); return false; } public static void setValueBool(ItemStack stack, String name, boolean value) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.getTagCompound().setBoolean(name, value); } - + /** Wrapper for extra context used in most Consumer lambdas which are part of the guncfg */ public static class LambdaContext { public final GunConfig config; public final EntityLivingBase entity; public final IInventory inventory; public final int configIndex; - + public LambdaContext(GunConfig config, EntityLivingBase player, IInventory inventory, int configIndex) { this.config = config; this.entity = player; @@ -425,42 +426,42 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I @Override @SideOnly(Side.CLIENT) public void renderHUD(Pre event, ElementType type, EntityPlayer player, ItemStack stack) { - + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); - + if(type == ElementType.CROSSHAIRS) { event.setCanceled(true); GunConfig config = gun.getConfig(stack, 0); if(config.getHideCrosshair(stack) && aimingProgress >= 1F) return; RenderScreenOverlay.renderCustomCrosshairs(event.resolution, Minecraft.getMinecraft().ingameGUI, config.getCrosshair(stack)); } - + int confNo = this.configs_DNA.length; - + for(int i = 0; i < confNo; i++) { IHUDComponent[] components = gun.getConfig(stack, i).getHUDComponents(stack); - + if(components != null) for(IHUDComponent component : components) { int bottomOffset = 0; component.renderHUDComponent(event, type, player, stack, bottomOffset, i); bottomOffset += component.getComponentHeight(player, stack); } } - + Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); } - + /*@Override public boolean getShareTag() { return false; }*/ // nbt sync dupe fix, didn't work - + public static class SmokeNode { - + public double forward = 0D; public double side = 0D; public double lift = 0D; public double alpha; public double width = 1D; - + public SmokeNode(double alpha) { this.alpha = alpha; } } } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 0db237afe..9f5366d6c 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -665,6 +665,7 @@ public class MainRegistry { event.registerServerCommand(new CommandPacketInfo()); event.registerServerCommand(new CommandReloadServer()); event.registerServerCommand(new CommandLocate()); + event.registerServerCommand(new CommandCustomize()); ArcFurnaceRecipes.registerFurnaceSmeltables(); // because we have to wait for other mods to take their merry ass time to register recipes } diff --git a/src/main/java/com/hbm/qmaw/GuiQMAW.java b/src/main/java/com/hbm/qmaw/GuiQMAW.java index c59834957..e98d4e476 100644 --- a/src/main/java/com/hbm/qmaw/GuiQMAW.java +++ b/src/main/java/com/hbm/qmaw/GuiQMAW.java @@ -23,7 +23,7 @@ import net.minecraft.util.ResourceLocation; public class GuiQMAW extends GuiScreen { protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_wiki.png"); - + public String title; public String qmawID; public ItemStack icon; @@ -31,51 +31,51 @@ public class GuiQMAW extends GuiScreen { /** History for returning via button */ public List back = new ArrayList(); public List forward = new ArrayList(); - + protected int xSize = 340; protected int ySize = 224; protected int guiLeft; protected int guiTop; - + protected boolean isDragging = false; protected int scrollProgress = 0; protected int lastClickX = 0; protected int lastClickY = 0; - + public static final String EN_US = "en_US"; - + public GuiQMAW(QuickManualAndWiki qmaw) { qmawID = qmaw.name; parseQMAW(qmaw); } - + protected void parseQMAW(QuickManualAndWiki qmaw) { LanguageManager lang = Minecraft.getMinecraft().getLanguageManager(); - - this.title = qmaw.title.get(lang.getCurrentLanguage()); + + this.title = qmaw.title.get(lang.getCurrentLanguage().getLanguageCode()); if(title == null) this.title = qmaw.title.get(EN_US); if(title == null) this.title = "Missing Localization!"; - + this.icon = qmaw.icon; - - String toParse = qmaw.contents.get(lang.getCurrentLanguage()); + + String toParse = qmaw.contents.get(lang.getCurrentLanguage().getLanguageCode()); if(toParse == null) toParse = qmaw.contents.get(EN_US); if(toParse == null) toParse = "Missing Localization!"; toParse = "" + toParse; // strings are reference types, no? - + int maxLineLength = xSize - 29; String prevToParse = "" + toParse; int maxIterations = 1000; int currentLineWidth = 0; - + while(!toParse.isEmpty() && maxIterations > 0) { if(this.lines.isEmpty()) this.lines.add(new ArrayList()); List currentLine = this.lines.get(this.lines.size() - 1); - + toParse = toParse.trim(); - + maxIterations--; - + if(toParse.startsWith("
")) { toParse = toParse.substring(4); currentLine = new ArrayList(); @@ -83,25 +83,25 @@ public class GuiQMAW extends GuiScreen { currentLineWidth = 0; continue; } - + // handle links if(toParse.startsWith("[[")) { int end = toParse.indexOf("]]"); if(end != -1) { String link = toParse.substring(2, end); toParse = toParse.substring(end + 2); - + int pipe = link.indexOf("|"); QComponentLink linkComponent; - + String suffix = toParse.startsWith(" ") ? " " : ""; - + if(pipe == -1) { linkComponent = new QComponentLink(link, link + suffix); } else { linkComponent = new QComponentLink(link.substring(pipe + 1, link.length()), link.substring(0, pipe) + suffix); } - + // append to current line int width = linkComponent.getWidth(); if(width + currentLineWidth <= maxLineLength) { @@ -119,21 +119,21 @@ public class GuiQMAW extends GuiScreen { continue; } } - + // handle standard text int delimit = toParse.length(); - + int spaceIndex = toParse.indexOf(" "); if(spaceIndex != -1) delimit = Math.min(delimit, spaceIndex); int linkIndex = toParse.indexOf("[["); if(linkIndex != -1) delimit = Math.min(delimit, linkIndex); int brIndex = toParse.indexOf("
"); if(brIndex != -1) delimit = Math.min(delimit, brIndex); - + if(delimit > 0) { QComponentText textComponent = new QComponentText(toParse.substring(0, delimit) + (spaceIndex == delimit ? " " : "")); toParse = toParse.substring(delimit); - + // append to current line int width = textComponent.getWidth(); if(width + currentLineWidth <= maxLineLength) { @@ -150,7 +150,7 @@ public class GuiQMAW extends GuiScreen { prevToParse = "" + toParse; continue; } - + if(toParse.equals(prevToParse)) break; prevToParse = "" + toParse; } @@ -166,7 +166,7 @@ public class GuiQMAW extends GuiScreen { @Override protected void mouseClicked(int x, int y, int key) { super.mouseClicked(x, y, key); - + if(key == 0) { this.lastClickX = x; this.lastClickY = y; @@ -175,10 +175,10 @@ public class GuiQMAW extends GuiScreen { if(guiLeft + 3 <= x && guiLeft + 3 + 18 > x && guiTop + 3 < y && guiTop + 3 + 18 >= y) back(); if(guiLeft + 21 <= x && guiLeft + 21 + 18 > x && guiTop + 3 < y && guiTop + 3 + 18 >= y) forward(); } - + public void back() { if(this.back.isEmpty()) return; - + String prev = back.get(back.size() - 1); QuickManualAndWiki qmaw = QMAWLoader.qmaw.get(prev); @@ -192,10 +192,10 @@ public class GuiQMAW extends GuiScreen { FMLCommonHandler.instance().showGuiScreen(screen); } } - + public void forward() { if(this.forward.isEmpty()) return; - + String next = forward.get(forward.size() - 1); QuickManualAndWiki qmaw = QMAWLoader.qmaw.get(next); @@ -209,7 +209,7 @@ public class GuiQMAW extends GuiScreen { FMLCommonHandler.instance().showGuiScreen(screen); } } - + public int getSliderPosition() { double progress = (double) scrollProgress / (double) (lines.size() - 1); return 25 + (int) (progress * 180); @@ -217,38 +217,38 @@ public class GuiQMAW extends GuiScreen { @Override public void drawScreen(int mouseX, int mouseY, float f) { - + if(Mouse.isButtonDown(0) && guiLeft + xSize - 15 <= mouseX && guiLeft + xSize - 15 + 12 > mouseX && guiTop + 25 < mouseY && guiTop + 25 + 191 >= mouseY) { isDragging = true; } - + if(!Mouse.isButtonDown(0)) isDragging = false; - + if(isDragging) { int min = guiTop + 25 + 8; int max = guiTop + 25 + 191 - 8; int span = max - min; - + double progress = MathHelper.clamp_double((double) (mouseY - min) / span, 0D, 1D); this.scrollProgress = MathHelper.clamp_int((int) Math.round((lines.size() - 1) * progress), 0, lines.size() - 1); } - + handleScroll(); //this.drawRect(0, 0, this.width, this.height, 0x80919191); this.drawRect(0, 0, this.width, this.height, 0xe0000000); - + this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); GL11.glDisable(GL11.GL_LIGHTING); this.drawGuiContainerForegroundLayer(mouseX, mouseY); GL11.glEnable(GL11.GL_LIGHTING); - + this.lastClickX = 0; this.lastClickY = 0; } - + protected void handleScroll() { - + if(!Mouse.isButtonDown(0) && !Mouse.isButtonDown(1) && Mouse.next()) { int scroll = Mouse.getEventDWheel(); if(scroll > 0 && this.scrollProgress > 0) this.scrollProgress--; @@ -257,10 +257,10 @@ public class GuiQMAW extends GuiScreen { } private void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { - + int x = 43; int y = 4; - + if(this.icon != null) { GL11.glPushMatrix(); GL11.glEnable(GL11.GL_DEPTH_TEST); @@ -273,13 +273,13 @@ public class GuiQMAW extends GuiScreen { RenderHelper.disableStandardItemLighting(); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glPopMatrix(); - + x += 18; y += (16 - this.fontRendererObj.FONT_HEIGHT) / 2; } - + y += 1; - + this.fontRendererObj.drawString(title, guiLeft + x, guiTop + y, 0xFFFFFF); } @@ -292,30 +292,30 @@ public class GuiQMAW extends GuiScreen { if(!back.isEmpty()) drawTexturedModalRect(guiLeft + 3, guiTop + 3, 204, 0, 18, 18); if(!forward.isEmpty()) drawTexturedModalRect(guiLeft + 21, guiTop + 3, 222, 0, 18, 18); - + // scroll bar drawTexturedModalRect(guiLeft + xSize - 15, guiTop + getSliderPosition(), 192, 0, 12, 16); - + int x = guiLeft + 7; int y = guiTop + 30; int lineNum = 0; - + for(List line : lines) { lineNum++; - + if(lineNum <= this.scrollProgress) continue; - + int maxHeight = 0; int inset = 0; - + for(ManualElement element : line) { maxHeight = Math.max(maxHeight, element.getHeight()); } - + if(y + maxHeight > guiTop + 219) break; - + if(line.isEmpty()) y += this.fontRendererObj.FONT_HEIGHT; - + for(ManualElement element : line) { int elementX = x + inset; int elementY = y + (maxHeight - element.getHeight()) / 2; @@ -325,7 +325,7 @@ public class GuiQMAW extends GuiScreen { element.onClick(this); inset += element.getWidth(); } - + y += maxHeight + 2; } } @@ -335,7 +335,7 @@ public class GuiQMAW extends GuiScreen { if(keyCode == Keyboard.KEY_LEFT) back(); if(keyCode == Keyboard.KEY_RIGHT) forward(); - + if(keyCode == 1 || keyCode == this.mc.gameSettings.keyBindInventory.getKeyCode()) { this.mc.displayGuiScreen((GuiScreen) null); this.mc.setIngameFocus(); diff --git a/src/main/java/com/hbm/qmaw/QMAWLoader.java b/src/main/java/com/hbm/qmaw/QMAWLoader.java index b84cf594e..6e4aeec31 100644 --- a/src/main/java/com/hbm/qmaw/QMAWLoader.java +++ b/src/main/java/com/hbm/qmaw/QMAWLoader.java @@ -1,9 +1,8 @@ package com.hbm.qmaw; -import java.io.File; -import java.io.FileReader; -import java.io.InputStream; -import java.io.InputStreamReader; +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; @@ -47,7 +46,7 @@ public class QMAWLoader implements IResourceManagerReloadListener { init(); MainRegistry.logger.info("[QMAW] Loaded " + qmaw.size() + " manual entries! (" + (System.currentTimeMillis() - timestamp) + "ms)"); } - + /** For the like 2 people who might consider making an NTM addon and want to include manual pages. Requires the mod's actual JAR file as the parameter. */ public static void registerModFileURL(File file) { registeredModFiles.add(file); @@ -62,14 +61,14 @@ public class QMAWLoader implements IResourceManagerReloadListener { // exclude .class in the case of a dev env MainRegistry.logger.info("[QMAW] Current running file: " + path); if(!path.endsWith(".class")) registerModFileURL(new File(path)); // i am going to shit myself*/ // deactivated because it likely doesn't even fucking work - + // registering of the mod file now happens in the MainRegistry during preinit - + qmaw.clear(); triggers.clear(); agonyEngine(); } - + /** "digital equivalent to holywater" yielded few results on google, if only i had the answer i would drown this entire class in it

* This affront to god can load QMAW definition files from four different sources:
* * Any mod's jar that has registered itself to include QMAW files
@@ -78,12 +77,12 @@ public class QMAWLoader implements IResourceManagerReloadListener { * * Folder-based resource packs * */ public static void agonyEngine() { - + for(File modFile : registeredModFiles) { logJarAttempt(modFile.getName()); dissectZip(modFile); } - + File devEnvManualFolder = new File(Minecraft.getMinecraft().mcDataDir.getAbsolutePath().replace("/eclipse/.".replace('/', File.separatorChar), "") + "/src/main/resources/assets/hbm/manual".replace('/', File.separatorChar)); if(devEnvManualFolder.exists() && devEnvManualFolder.isDirectory()) { MainRegistry.logger.info("[QMAW] Exploring " + devEnvManualFolder.getAbsolutePath()); @@ -91,17 +90,17 @@ public class QMAWLoader implements IResourceManagerReloadListener { } ResourcePackRepository repo = Minecraft.getMinecraft().getResourcePackRepository(); - + for(Object o : repo.getRepositoryEntries()) { ResourcePackRepository.Entry entry = (ResourcePackRepository.Entry) o; IResourcePack pack = entry.getResourcePack(); logPackAttempt(pack.getPackName()); - + if(pack instanceof FileResourcePack) { dissectZip(((FileResourcePack) pack).resourcePackFile); } - + if(pack instanceof FolderResourcePack) { dissectFolder(((FolderResourcePack) pack).resourcePackFile); } @@ -111,27 +110,27 @@ public class QMAWLoader implements IResourceManagerReloadListener { public static void logJarAttempt(String name) { MainRegistry.logger.info("[QMAW] Dissecting jar " + name); } public static void logPackAttempt(String name) { MainRegistry.logger.info("[QMAW] Dissecting resource " + name); } public static void logFoundManual(String name) { MainRegistry.logger.info("[QMAW] Found manual " + name); } - + /** You put your white gloves on, you get your hand in there, and then you iterate OVER THE ENTIRE FUCKING ZIP until we find things we deem usable */ public static void dissectZip(File zipFile) { - + if(zipFile == null) { MainRegistry.logger.info("[QMAW] Pack file does not exist!"); return; } - + ZipFile zip = null; - + try { zip = new ZipFile(zipFile); Enumeration enumerator = zip.entries(); - + while(enumerator.hasMoreElements()) { ZipEntry entry = enumerator.nextElement(); String name = entry.getName(); if(name.startsWith("assets/hbm/manual/") && name.endsWith(".json")) { InputStream fileStream = zip.getInputStream(entry); - InputStreamReader reader = new InputStreamReader(fileStream); + InputStreamReader reader = new InputStreamReader(fileStream, StandardCharsets.UTF_8); try { JsonObject obj = (JsonObject) parser.parse(reader); String manName = name.replace("assets/hbm/manual/", ""); @@ -143,7 +142,7 @@ public class QMAWLoader implements IResourceManagerReloadListener { } } } - + } catch(Exception ex) { MainRegistry.logger.info("[QMAW] Error dissecting zip " + zipFile.getName() + ": " + ex); } finally { @@ -152,13 +151,13 @@ public class QMAWLoader implements IResourceManagerReloadListener { } catch(Exception ex) { } } } - + /** Opens a resource pack folder, skips to the manual folder, then tries to dissect that */ public static void dissectFolder(File folder) { File manualFolder = new File(folder, "/assets/hbm/manual"); if(manualFolder.exists() && manualFolder.isDirectory()) dissectManualFolder(manualFolder); } - + /** Anal bleeding */ public static void dissectManualFolder(File folder) { @@ -167,7 +166,8 @@ public class QMAWLoader implements IResourceManagerReloadListener { String name = file.getName(); if(file.isFile() && name.endsWith(".json")) { try { - FileReader reader = new FileReader(file); + //FileReader reader = new FileReader(file); + InputStreamReader reader = new InputStreamReader(Files.newInputStream(file.toPath()), StandardCharsets.UTF_8); JsonObject obj = (JsonObject) parser.parse(reader); registerJson(name, obj); logFoundManual(name); @@ -179,35 +179,35 @@ public class QMAWLoader implements IResourceManagerReloadListener { } } } - + /** Extracts all the info from a json file's main object to add a QMAW to the system. Very barebones, only handles name, icon and the localized text. */ public static void registerJson(String file, JsonObject json) { - + String name = json.get("name").getAsString(); - + if(QMAWLoader.qmaw.containsKey(name)) { MainRegistry.logger.info("[QMAW] Skipping existing entry " + file); return; } - + QuickManualAndWiki qmaw = new QuickManualAndWiki(name); - + if(json.has("icon")) { qmaw.setIcon(SerializableRecipe.readItemStack(json.get("icon").getAsJsonArray())); } - + JsonObject title = json.get("title").getAsJsonObject(); for(Entry part : title.entrySet()) { qmaw.addTitle(part.getKey(), part.getValue().getAsString()); } - + JsonObject content = json.get("content").getAsJsonObject(); for(Entry part : content.entrySet()) { qmaw.addLang(part.getKey(), part.getValue().getAsString()); } - + JsonArray triggers = json.get("trigger").getAsJsonArray(); - + for(JsonElement element : triggers) { ItemStack trigger = SerializableRecipe.readItemStack(element.getAsJsonArray()); // items get renamed and removed all the time, so we add some more debug goodness for those cases @@ -217,7 +217,7 @@ public class QMAWLoader implements IResourceManagerReloadListener { QMAWLoader.triggers.put(new ComparableStack(trigger).makeSingular(), qmaw); } } - + if(!qmaw.contents.isEmpty()) { QMAWLoader.qmaw.put(name, qmaw); } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 63bc3640e..250305afe 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -54,8 +54,9 @@ import com.hbm.tileentity.machine.rbmk.*; import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.network.*; import com.hbm.tileentity.turret.*; -import cpw.mods.fml.common.Loader; +import com.hbm.util.Compat; +import cpw.mods.fml.common.Loader; import net.minecraft.tileentity.TileEntity; public class TileMappings { @@ -480,5 +481,12 @@ public class TileMappings { if(IConfigurableMachine.class.isAssignableFrom(clazz)) { configurables.add((Class) clazz); } + + /** + * Causes problems with most machines where two independently acting tiles work together (TU machines, RBMKs, fluid transfer) + * Also breaks due to some sort of buffer leak in the threaded packets, if a boiler is involved (which uses a ByteBuf instead of the usual serializing) it crashes + * Ticking order of Torcherinos is AAA BBB CCC instead of ABC ABC ABC which can lead to some horrifying behavior + */ + Compat.blacklistAccelerator(clazz); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java index 6c9be1f71..6968f8b1a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java @@ -29,6 +29,7 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CrucibleUtil; +import com.hbm.util.ItemStackUtil; import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.i18n.I18nUtil; @@ -400,6 +401,111 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl liquids.add(matStack.copy()); } + //Returns what is unused, or null if used up + public ItemStack distributeInput(ItemStack is, boolean modulate) { + if(is.stackSize == 0) return null; + ItemStack split; + + //Slots 0,1,2 + if(is.getItem() == ModItems.arc_electrode) { + for(int i = 0; i < 3; i++) { + if(slots[i] == null) { + split = is.splitStack(1); + if(modulate) this.setInventorySlotContents(i, split); + } + if (is.stackSize == 0) return null; + } + //Don't tell me you're gonna add an arc furnace recipe smelting electrodes + return is; + } + + //Slots 5-24 + ArcFurnaceRecipe recipe = ArcFurnaceRecipes.getOutput(is, this.liquidMode); + if(recipe != null) { + int maxStackSize = this.liquidMode ? 64 : recipe.solidOutput.getMaxStackSize() / recipe.solidOutput.stackSize; + maxStackSize = Math.min(maxStackSize, Math.min(is.getMaxStackSize(), getMaxInputSize())); + + //Scan + for(int i = 5; i < 25; i++){ + if(slots[i] == null) { + if(is.stackSize > maxStackSize) { + split = is.splitStack(maxStackSize); + if(modulate) slots[i] = split; + } else { + if(modulate) slots[i] = is; + return null; + } + } else if(ItemStackUtil.areStacksCompatible(is, slots[i]) && slots[i].stackSize < maxStackSize) { + if(is.stackSize > maxStackSize - slots[i].stackSize) { + is.splitStack(maxStackSize - slots[i].stackSize); + if(modulate) slots[i].stackSize = maxStackSize; + } else { + if(modulate) slots[i].stackSize += is.stackSize; + return null; + } + } + } + } + return is; + } + + //Returns requested ItemStack + public ItemStack collectRequested(ItemStack is, boolean modulate) { + int req = is.stackSize; + if(req == 0) return null; + + //Slots 0,1,2 + if(is.getItem() != ModItems.arc_electrode) { + for(int i = 0; i < 3; i++) { + if(slots[i] == null) continue; + if(ItemStackUtil.areStacksCompatible(is, slots[i])) { + if(req > slots[i].stackSize) { + req -= slots[i].stackSize; + if(modulate) slots[i] = null; + } else if(req < slots[i].stackSize) { + if(modulate) slots[i].stackSize -= req; + return is; + } else { + if(modulate) slots[i] = null; + return is; + } + } + } + } + + //Slots 5-24 + if(ArcFurnaceRecipes.getOutput(is, this.liquidMode) == null) { + for(int i = 5; i < 25; i++) { + if(slots[i] == null) continue; + if(ItemStackUtil.areStacksCompatible(is, slots[i])) { + if(req > slots[i].stackSize) { + req -= slots[i].stackSize; + if(modulate) slots[i] = null; + } else if(req < slots[i].stackSize) { + if(modulate) slots[i].stackSize -= req; + return is; + } else { + if(modulate) slots[i] = null; + return is; + } + } + } + } + + is.stackSize -= req; + if(is.stackSize == 0) return null; + return is; + } + + //Return ItemStack in slot, null if unavailable + public ItemStack getAvailableItemFromSlot(int slot) { + if(slots[slot] == null) return null; + if(slot < 3 && slots[slot].getItem() == ModItems.arc_electrode) return null; + else if(slot > 4 && ArcFurnaceRecipes.getOutput(slots[slot], this.liquidMode) != null) return null; + else if(slot == 3 || slot == 4) return null; + else return slots[slot]; + } + public static int getStackAmount(List stack) { int amount = 0; for(MaterialStack mat : stack) amount += mat.amount; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java index 219838228..94e666af3 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java @@ -156,7 +156,7 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase { * Moves heat to neighboring parts, if possible, in a relatively fair manner */ private void moveHeat() { - + boolean reasim = RBMKDials.getReasimBoilers(worldObj); List rec = new ArrayList<>(); @@ -344,6 +344,7 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase { exceptions.add("id"); exceptions.add("muffled"); + //Keep the title unlocalized is cool. String title = "Dump of Ordered Data Diagnostic (DODD)"; mc.fontRenderer.drawString(title, pX + 1, pZ - 19, 0x006000); mc.fontRenderer.drawString(title, pX, pZ - 20, 0x00FF00); @@ -359,8 +360,15 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase { if(exceptions.contains(key)) continue; - - mc.fontRenderer.drawString(key + ": " + flush.getTag(key), pX, pZ, 0xFFFFFF); + String value = flush.getTag(key).toString(); + //No...’d‘ doesn't refer to "day" and ‘s’ doesn't refer to "second". Meaningless. + if (!value.isEmpty()) { + char lastChar = value.charAt(value.length() - 1); + if (lastChar == 'd' || lastChar == 's' || lastChar == 'b') { + value = value.substring(0, value.length() - 1); + } + } + mc.fontRenderer.drawString(I18nUtil.resolveKey("tile.rbmk.dodd." + key) + ": " + value, pX, pZ, 0xFFFFFF); pZ += 10; } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java index 5c1837c71..c587fc355 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java @@ -1,10 +1,12 @@ package com.hbm.tileentity.machine.rbmk; import com.hbm.interfaces.IControlReceiver; +import com.hbm.interfaces.ICopiable; import com.hbm.inventory.container.ContainerRBMKControlAuto; import com.hbm.inventory.gui.GUIRBMKControlAuto; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlManual.RBMKColor; +import com.hbm.util.EnumUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -16,7 +18,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityRBMKControlAuto extends TileEntityRBMKControl implements IControlReceiver { +public class TileEntityRBMKControlAuto extends TileEntityRBMKControl implements IControlReceiver, ICopiable { public RBMKFunction function = RBMKFunction.LINEAR; public double levelLower; @@ -164,4 +166,24 @@ public class TileEntityRBMKControlAuto extends TileEntityRBMKControl implements public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRBMKControlAuto(player.inventory, this); } + + @Override + public NBTTagCompound getSettings(World world, int x, int y, int z) { + NBTTagCompound data = new NBTTagCompound(); + data.setDouble("levelLower", levelLower); + data.setDouble("levelUpper", levelUpper); + data.setDouble("heatLower", heatLower); + data.setDouble("heatUpper", heatUpper); + data.setInteger("function", function.ordinal()); + return data; + } + + @Override + public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + if(nbt.hasKey("levelLower")) levelLower = nbt.getDouble("levelLower"); + if(nbt.hasKey("levelUpper")) levelLower = nbt.getDouble("levelUpper"); + if(nbt.hasKey("heatLower")) levelLower = nbt.getDouble("heatLower"); + if(nbt.hasKey("heatUpper")) levelLower = nbt.getDouble("heatUpper"); + if(nbt.hasKey("function")) function = EnumUtil.grabEnumSafely(RBMKFunction.class, nbt.getInteger("function")); + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java index b34f99a5e..721ef2af6 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java @@ -2,9 +2,11 @@ package com.hbm.tileentity.machine.rbmk; import com.hbm.blocks.machine.rbmk.RBMKControl; import com.hbm.interfaces.IControlReceiver; +import com.hbm.interfaces.ICopiable; import com.hbm.inventory.container.ContainerRBMKControl; import com.hbm.inventory.gui.GUIRBMKControl; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; +import com.hbm.util.EnumUtil; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; @@ -20,7 +22,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityRBMKControlManual extends TileEntityRBMKControl implements IControlReceiver { +public class TileEntityRBMKControlManual extends TileEntityRBMKControl implements IControlReceiver, ICopiable { public RBMKColor color; public double startingLevel; @@ -177,5 +179,17 @@ public class TileEntityRBMKControlManual extends TileEntityRBMKControl implement @SideOnly(Side.CLIENT) public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRBMKControl(player.inventory, this); - } + } + + @Override + public NBTTagCompound getSettings(World world, int x, int y, int z) { + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("color", color.ordinal()); + return data; + } + + @Override + public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) { + if(nbt.hasKey("color")) color = EnumUtil.grabEnumSafely(RBMKColor.class, nbt.getInteger("color")); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 92b5ecfe2..8dc07b42d 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -264,8 +264,10 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM ItemRBMKRod rod = ((ItemRBMKRod)slots[0].getItem()); BufferUtil.writeString(buf, ItemRBMKRod.getYield(slots[0]) + " / " + rod.yield + " (" + (ItemRBMKRod.getEnrichment(slots[0]) * 100) + "%)"); BufferUtil.writeString(buf, ItemRBMKRod.getPoison(slots[0]) + "%"); - BufferUtil.writeString(buf, ItemRBMKRod.getCoreHeat(slots[0]) + " / " + ItemRBMKRod.getHullHeat(slots[0]) + " / " + rod.meltingPoint); - } + //Heat is too long! Reduce it to 6 numbers is enough. + BufferUtil.writeString(buf, String.format("%.6f", ItemRBMKRod.getCoreHeat(slots[0])) + + " / " + String.format("%.6f", ItemRBMKRod.getHullHeat(slots[0])) + + " / " + String.format("%.2f", rod.meltingPoint)); } } @Override diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java index 61d9df4de..976201ba5 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java @@ -107,7 +107,11 @@ public class TileEntityCraneGrabber extends TileEntityCraneBase implements IGUIP Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + outputSide.offsetX * 0.55, yCoord + 0.5 + outputSide.offsetY * 0.55, zCoord + 0.5 + outputSide.offsetZ * 0.55); Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, pos); - item.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); + EntityMovingItem newItem = new EntityMovingItem(worldObj); + newItem.setItemStack(item.getItemStack().copy()); + newItem.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); + item.setDead(); + worldObj.spawnEntityInWorld(newItem); break; } diff --git a/src/main/java/com/hbm/util/Compat.java b/src/main/java/com/hbm/util/Compat.java index db59a6026..138b109ed 100644 --- a/src/main/java/com/hbm/util/Compat.java +++ b/src/main/java/com/hbm/util/Compat.java @@ -9,6 +9,7 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.main.MainRegistry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.event.FMLInterModComms; import cpw.mods.fml.common.eventhandler.EventBus; import cpw.mods.fml.common.eventhandler.IEventListener; import cpw.mods.fml.relauncher.ReflectionHelper; @@ -37,6 +38,7 @@ public class Compat { public static final String MOD_TC = "tc"; public static final String MOD_EIDS = "endlessids"; public static final String MOD_ANG = "angelica"; + public static final String MOD_TOR = "Torcherino"; public static Item tryLoadItem(String domain, String name) { return (Item) Item.itemRegistry.getObject(getReg(domain, name)); @@ -259,4 +261,8 @@ public class Compat { if(!world.getChunkProvider().chunkExists(x >> 4, z >> 4)) return null; return world.getTileEntity(x, y, z); } + + public static void blacklistAccelerator(Class clazz) { + FMLInterModComms.sendMessage("Torcherino", "blacklist-tile", clazz.getName()); + } } diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 1ce70f12f..031fb9df9 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1230,6 +1230,8 @@ entity.hbm.entity_bullet.name=Bullet entity.hbm.entity_rocket.name=Rocket entity.hbm.entity_schrabnel.name=Schrabnel +error.generic=### I AM ERROR ### + excavator.crusher=Toggle Crusher excavator.drill=Toggle Drill excavator.silktouch=Toggle Silk Touch @@ -1259,6 +1261,28 @@ geiger.playerRes=Player resistance: geiger.title=GEIGER COUNTER geiger.title.dosimeter=DOSIMETER +general.na=N/A + +gui.recipe.duration=Duration +gui.recipe.consumption=Consumption +gui.recipe.input=Input +gui.recipe.output=Output +gui.recipe.atPressure=at +gui.recipe.setRecipe=Click to set recipe + +gui.weapon.ammo=Ammo +gui.weapon.baseDamage=Base Damage +gui.weapon.damageWithAmmo=Damage with current ammo +gui.weapon.condition=Condition +gui.weapon.accepts=Accepts +gui.weapon.quality.aside=Standard Arsenal +gui.weapon.quality.bside=B-Side +gui.weapon.quality.legendary=Legendary Weapon +gui.weapon.quality.special=Special Weapon +gui.weapon.quality.utility=Utility +gui.weapon.quality.secret=SECRET +gui.weapon.quality.debug=DEBUG + gun.make.ARMALITE=Armalite gun.make.AUTO_ORDINANCE=Auto-Ordnance Corporation gun.make.BAE=BAE Systems plc @@ -2193,6 +2217,7 @@ item.bolt_spike.name=Railroad Spike item.bolt_spike.desc=Radiates a threatening aura, somehow item.boltgun.name=Pneumatic Rivet Gun item.bomb_caller.name=Airstrike Designator +item.bomb_part.used_in=Used in: item.bomb_waffle.name=Waffle of Mass Destruction item.book_guide.name=Guide Book item.book_of_.name=The Book of Boxcars @@ -2374,6 +2399,7 @@ item.centrifuge_tower.name=Centrifuge Tower item.chainsaw.name=Chainsaw item.cheese.name=Cheese item.cheese_quesadilla.name=Cheese Quesadilla +item.cheese_quesadilla.desc=That's what a 50 year old yeast infection does to you. item.chemical_dye.black.name=Chemical Dye (Black) item.chemical_dye.blue.name=Chemical Dye (Blue) item.chemical_dye.brown.name=Chemical Dye (Brown) @@ -3031,6 +3057,7 @@ item.hev_legs.name=HEV Mark IV Leggings item.holotape_damaged.name=Damaged Holotape item.holotape_image.name=Holotape item.horseshoe_magnet.name=Horseshoe Magnet +item.hot_dusted.forged=Forged %s time(s) item.hull_big_aluminium.name=Big Aluminium Shell item.hull_big_steel.name=Big Steel Shell item.hull_big_titanium.name=Big Titanium Shell @@ -3150,6 +3177,7 @@ item.ingot_schrabidium_fuel.name=Ingot of Schrabidium Fuel item.ingot_schraranium.name=Schraranium Ingot item.ingot_schraranium.desc=Made from uranium in a schrabidium transmutator item.ingot_semtex.name=Bar of Semtex +item.ingot_semtex.desc=Semtex H Plastic Explosive$Performant explosive for many applications.$Edible item.ingot_silicon.name=Silicon Boule item.ingot_smore.name=S'more Ingot item.ingot_solinium.name=Solinium Ingot @@ -3240,6 +3268,7 @@ item.launch_code_piece.name=Silo Launch Code Piece item.launch_key.name=Silo Launch Key item.lead_gavel.name=Leaden Gavel item.lemon.name="Lemon" +item.lemon.desc=Eh, good enough. item.letter.name=Express Mail item.levitation_unit.name=Gravity Manipulator item.lignite.name=Lignite @@ -3252,7 +3281,9 @@ item.liquidator_plate.name=Liquidator Suit Chestplate item.lithium.name=Lithium Cube item.lodestone.name=Lodestone item.loop_stew.name=IT Breakfast +item.loop_stew.desc=A very, very healthy breakfast. item.loops.name=Lööps +item.loops.desc=Brøther, may I have some lööps? item.loot_10.name=Size 10 Missile Loot Crate item.loot_15.name=Size 15 Missile Loot Crate item.loot_misc.name=General Missile Loot Crate @@ -3279,8 +3310,11 @@ item.mechanism_rifle_2.name=Advanced Rifle Mechanism item.mechanism_special.name=High-Tech Weapon Mechanism item.med_bag.name=First Aid Kit item.med_ipecac.name=Ipecac Syrup +item.med_ipecac.desс=Bitter juice that will cause your stomach$to forcefully eject its contents. item.med_ptsd.name=PTSD Medication +item.med_ptsd.desc=This isn't even PTSD medication, it's just$Ipecac in a different bottle! item.med_schiziphrenia.name=Schizophrenia Medication +item.med_schizophrenia.desc=Makes the voices go away. Just for a while.$...$Better not take it. item.medal_liquidator.name=Liquidator Medal item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator item.memespoon.name=§eMarket Gardener @@ -3291,17 +3325,29 @@ item.mese_pickaxe.name=Mese Pickaxe item.meteor_charm.name=Meteor Charm item.meteor_remote.name=Meteorite Remote item.meteorite_sword.name=Meteorite Sword +item.meteorite_sword.desc=Forged from a fallen star$Sharper than most terrestrial blades item.meteorite_sword_seared.name=Meteorite Sword (Seared) +item.meteorite_sword.seared.desc=Fire strengthens the blade$Making it even more powerful item.meteorite_sword_reforged.name=Meteorite Sword (Reforged) +item.meteorite_sword.reforged.desc=The sword has been reforged$To rectify past imperfections item.meteorite_sword_hardened.name=Meteorite Sword (Hardened) +item.meteorite_sword.hardened.desc=Extremely high pressure has been used$To harden the blade further item.meteorite_sword_alloyed.name=Meteorite Sword (Alloyed) +item.meteorite_sword.alloyed.desc=Cobalt fills the fissures$Strengthening the sword item.meteorite_sword_machined.name=Meteorite Sword (Machined) +item.meteorite_sword.machined.desc=Advanced machinery was used$To refine the blade even more item.meteorite_sword_treated.name=Meteorite Sword (Treated) +item.meteorite_sword.treated.desc=Chemicals have been applied$Making the sword more powerful item.meteorite_sword_etched.name=Meteorite Sword (Etched) +item.meteorite_sword.etched.desc=Acids clean the material$To make this the perfect sword item.meteorite_sword_bred.name=Meteorite Sword (Bred) +item.meteorite_sword.bred.desc=Immense heat and radiation$Compress the material item.meteorite_sword_irradiated.name=Meteorite Sword (Irradiated) +item.meteorite_sword.irradiated.desc=The power of the Atom$Gives the sword might item.meteorite_sword_fused.name=Meteorite Sword (Fused) +item.meteorite_sword.fused.desc=This blade has met$With the forces of the stars item.meteorite_sword_baleful.name=Meteorite Sword (Baleful) +item.meteorite_sword.baleful.desc=This sword has met temperatures$Far beyond what normal material can endure item.mike_cooling_unit.name=Deuterium Cooling Unit item.mike_core.name=Uranium Coated Deuterium Tank item.mike_deut.name=Deuterium Tank @@ -3320,6 +3366,17 @@ item.missile_cluster.name=Cluster Missile item.missile_cluster_strong.name=Strong Cluster Missile item.missile_custom.name=Custom Missile item.missile_decoy.name=Decoy Missile +item.missile.desc.warhead=Warhead +item.missile.desc.strength=Strength +item.missile.desc.fuelType=Fuel Type +item.missile.desc.fuelAmount=Fuel amount +item.missile.desc.chipInaccuracy=Chip inaccuracy +item.missile.desc.finInaccuracy=Fin inaccuracy +item.missile.desc.size=Size +item.missile.desc.health=Health +item.missile.desc.fuel=Fuel +item.missile.desc.fuelCapacity=Fuel capacity +item.missile.desc.notLaunchable=Not launchable! item.missile_doomsday.name=Doomsday Missile item.missile_doomsday_rusted.name=Damaged Doomsday Missile item.missile_drill.name=The Concrete Cracker @@ -3327,6 +3384,14 @@ item.missile_emp.name=EMP Missile item.missile_emp_strong.name=Strong EMP Missile item.missile_endo.name=Endothermic Missile item.missile_exo.name=Exothermic Missile +item.missile.fuel.balefire=BF Rocket Fuel +item.missile.fuel.jetfuel_loxy=Jet Fuel / Liquid Oxygen +item.missile.fuel.ethanol_peroxide=Ethanol / Hydrogen Peroxide +item.missile.fuel.kerosene_loxy=Kerosene / Liquid Oxygen +item.missile.fuel.kerosene_peroxide=Kerosene / Hydrogen Peroxide +item.missile.fuel.solid=Solid Fuel +item.missile.fuel.solid.prefueled=Solid Fuel (pre-fueled) +item.missile.fuel.xenon=Xenon item.missile_generic.name=High Explosive Missile item.missile_incendiary.name=Incendiary Missile item.missile_incendiary_strong.name=Strong Incendiary Missile @@ -3335,6 +3400,28 @@ item.missile_kit.name=Missile Kit item.missile_micro.name=Micro-Nuclear Missile item.missile_nuclear.name=Nuclear Missile item.missile_nuclear_cluster.name=Thermonuclear Missile +item.missile.part.bottomSize=Bottom size +item.missile.part.by=by +item.missile.part.fuelAmount=Fuel amount +item.missile.part.fuelConsumption=Fuel consumption +item.missile.part.fuelType=Fuel type +item.missile.part.health=Health +item.missile.part.inaccuracy=Inaccuracy +item.missile.part.maxPayload=Max. payload +item.missile.part.rarity=Rarity +item.missile.part.rarity.common=Common +item.missile.part.rarity.epic=Epic +item.missile.part.rarity.legendary=Legendary +item.missile.part.rarity.rare=Rare +item.missile.part.rarity.strange=Strange +item.missile.part.rarity.uncommon=Uncommon +item.missile.part.size=Size +item.missile.part.size.any=Any +item.missile.part.size.none=None +item.missile.part.strength=Strength +item.missile.part.topSize=Top size +item.missile.part.type=Type +item.missile.part.weight=Weight item.missile_rain.name=Bomblet Rain item.missile_schrabidium.name=Schrabidium Missile item.missile_shuttle.name=Reliant Robin Space Shuttle @@ -3344,8 +3431,14 @@ item.missile_soyuz_lander.desc=Doubles as a crappy lander! item.missile_stealth.name=Stealth Missile item.missile_strong.name=Strong HE Missile item.missile_taint.name=Taint-Tipped Missile +item.missile.tier.tier0=Tier 0 +item.missile.tier.tier1=Tier 1 +item.missile.tier.tier2=Tier 2 +item.missile.tier.tier3=Tier 3 +item.missile.tier.tier4=Tier 4 item.missile_volcano.name=Tectonic Missile item.missile_volcano.desc=Using the power of nuclear explosives, we can summon a volcano! + item.mold_base.name=Blank Foundry Mold item.mold.name=Foundry Mold item.morning_glory.name=Morning Glory @@ -3702,6 +3795,7 @@ item.particle_strange.name=Strange Quark Capsule item.particle_tachyon.name=Tachyon Capsule item.parts_legendary.name=Legendary Parts item.peas.name=Peas +item.peas.desc=He accepts your offering. item.pedestal_steel.name=Steel Pedestal item.pellet_advanced.name=Advanced Watz Performance Improver item.pellet_antimatter.name=Antimatter Cluster @@ -3968,6 +4062,7 @@ item.primer_buckshot.name=Buckshot Primer (x12) item.protection_charm.name=Charm of Protection item.prototype_kit.name=Prototype Kit item.pudding.name=Pudding +item.pudding.desc=What if he did?$What if he didn't?$What if the world was made of pudding? item.pwr_fuel.bfb_am_mix.name=Fuel Grade Americium PWR BFB Rod item.pwr_fuel.bfb_pu241.name=Plutonium-241 PWR BFB Rod item.pwr_fuel.hea242.name=HEA-242 PWR Fuel Rod @@ -4022,6 +4117,7 @@ item.radaway_strong.name=Strong RadAway item.radx.name=Rad-X item.radx.desc=Increases radiation resistance by 0.2 (37%%) for 3 minutes item.rag.name=Cloth +item.rag.desc=Drop into water to make damp cloth.$Right-click to urinate on the cloth. item.rag_damp.name=Damp Cloth item.rag_piss.name=Piss-Soaked Rag item.rangefinder.name=Rangefinder @@ -4545,6 +4641,7 @@ item.turret_rocket_ammo.name=Rocket Turret 2x4 Ammunition item.turret_spitfire_ammo.name=AA-Shell item.turret_tau_ammo.name=Tau Turret Uranium Ammo item.twinkie.name=Twinkie +item.twinkie.desc=Expired 600 years ago! item.ullapool_caber.name=Ullapool Caber item.undefined.name=Undefined item.upgrade_5g.name=5G Radiation Emitter Upgrade @@ -4589,6 +4686,18 @@ item.wand_d.name=Debug Wand item.wand_k.name=Construction Wand item.wand_s.name=Structure Wand item.structure_custommachine.name=Custom Machine Structure Output Wand +item.warhead.desc.he=HE +item.warhead.desc.incendiary=Incendiary +item.warhead.desc.cluster=Cluster +item.warhead.desc.bunker_buster=Bunker Buster +item.warhead.desc.nuclear=Nuclear +item.warhead.desc.thermonuclear=Thermonuclear (TX) +item.warhead.desc.n2=N² +item.warhead.desc.balefire=BF +item.warhead.desc.schrabidium=Schrabidium +item.warhead.desc.taint=Taint +item.warhead.desc.cloud=Cloud +item.warhead.desc.turbine=Turbine item.warhead_buster_large.name=Large Bunker Buster Warhead item.warhead_buster_medium.name=Medium Bunker Buster Warhead item.warhead_buster_small.name=Small Bunker Buster Warhead @@ -4838,6 +4947,17 @@ rbmk.screen.rod=Control: %s rbmk.screen.temp=Temp: %s rbmk.screen.xenon=Xenon: %s +satchip.frequency=Satellite frequency +satchip.foeq=Gives you an achievement. That's it. +satchip.gerald.desc=Single use.$Requires orbital module.$Melter of CPUs, bane of every server owner. +satchip.laser=Allows to summon lasers with a 15 second cooldown. +satchip.mapper=Displays currently loaded chunks. +satchip.miner=Will deliver ore powders to a cargo landing pad. +satchip.lunar_miner=Mines moon turf to deliver it to a cargo landing pad. +satchip.radar=Shows a map of active entities. +satchip.resonator=Allows for teleportation with no cooldown. +satchip.scanner=Creates a topdown map of underground ores. + shape.barrelHeavy=Heavy Barrel shape.barrelLight=Light Barrel shape.billet=Billet @@ -5932,6 +6052,53 @@ tile.rbmk_steam_inlet.desc=Inserts water into RBMK columns if ReaSim boilers are tile.rbmk_steam_outlet.name=RBMK ReaSim Steam Outlet tile.rbmk_steam_outlet.desc=Extracts super dense steam from RBMK columns if ReaSim boilers are enabled$Connects to RBMK columns sideways tile.rbmk_storage.name=RBMK Storage Column +tile.rbmk.dodd.heat=Column Heat +tile.rbmk.dodd.reasimWater=ReaSim Water +tile.rbmk.dodd.reasimSteam=ReaSim Steam +tile.rbmk.dodd.level=Level +tile.rbmk.dodd.targetLevel=Target Level +tile.rbmk.dodd.startingLevel=Starting Level +tile.rbmk.dodd.mult=Mult +tile.rbmk.dodd.color=Color +tile.rbmk.dodd.levelLower=Level Lower +tile.rbmk.dodd.levelUpper=Level Upper +tile.rbmk.dodd.heatLower=Heat Lower +tile.rbmk.dodd.heatUpper=Heat Upper +tile.rbmk.dodd.function=Function +tile.rbmk.dodd.fluxSlow=Flux Slow +tile.rbmk.dodd.fluxFast=Flux Fast +tile.rbmk.dodd.hasRod=Has Rod +tile.rbmk.dodd.progress=Progress +tile.rbmk.dodd.gas=Gas +tile.rbmk.dodd.cooled=Cooled +tile.rbmk.dodd.burned=Burned +tile.rbmk.dodd.feed=Feed +tile.rbmk.dodd.steam=Steam +tile.rbmk.dodd.cryo=Cryo +tile.rbmk.dodd.fuel=Fuel +tile.rbmk.dodd.f_heat=Fuel Heat +tile.rbmk.dodd.f_xenon=Fuel Xenon +tile.rbmk.dodd.f_yield=Fuel Yield +tile.rbmk.dodd.feed_type=Feed Type(ID) +tile.rbmk.dodd.steam_type=Steam Type(ID) +tile.rbmk.dodd.cryo_type=Cryo Type(ID) +tile.rbmk.dodd.gas_type=Gas Type(ID) +tile.rbmk.dodd.fuel_type=Fuel Type(ID) +tile.rbmk.dodd.feed_p=Feed Pressure +tile.rbmk.dodd.steam_p=Steam Pressure +tile.rbmk.dodd.cryo_p=Cryo Pressure +tile.rbmk.dodd.gas_p=Gas Pressure +tile.rbmk.dodd.fuel_p=Fuel Pressure +tile.rbmk.dodd.feed_max=Feed Max Amount +tile.rbmk.dodd.steam_max=Steam Max Amount +tile.rbmk.dodd.cryo_max=Cryo Max Amount +tile.rbmk.dodd.gas_max=Gas Max Amount +tile.rbmk.dodd.fuel_max=Fuel Max Amount +tile.rbmk.dodd.feed_amt=Feed Amount +tile.rbmk.dodd.steam_amt=Steam Amount +tile.rbmk.dodd.cryo_amt=Cryo Amount +tile.rbmk.dodd.gas_amt=Gas Amount +tile.rbmk.dodd.fuel_amt=Fuel Amount tile.reactor_computer.name=Reactor Control tile.reactor_conductor.name=Reactor Boiler tile.reactor_control.name=Control Rods diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index cf1ef26da..68cd5e606 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -14,7 +14,7 @@ achievement.bossCreeper.desc='Здесь есть ядерные криперы? achievement.bossCreeper=Бомба на четырёх ногах achievement.bossMaskman.desc=Врезать большому мальчику. achievement.bossMeltdown.desc=Скорее ужасно, чем отлично, но я приму то, что могу получить. -achievement.bossMaskman=6 месяцев срочной службы, и всё что я получил это паршивая футболка +achievement.bossMaskman=6 месяцев срочной службы, и всё, что я получил, это паршивая футболка achievement.bossMeltdown=3.6 рентген achievement.bossWorm.desc=Просто маленький металический червь. achievement.bossWorm=Разборка Баллс-О-Трон @@ -148,7 +148,7 @@ armor.explosionImmune=Не может получить никакого урон armor.fasterReload=Быстрая перезарядка armor.fastFall=Быстрое падение armor.fireproof=Огнеупорность -armor.fullSetBonus=Бонусы Полного Набора брони: +armor.fullSetBonus=Бонусы полного набора брони: armor.geigerHUD=Встроенный HUD счётчика Гейгера armor.geigerSound=Звуковой Счётчик Гейгера armor.glider=Присесть, чтобы спланировать @@ -274,7 +274,7 @@ book.starter.cover=Руководство промышленника$по вос book.starter.title1=Вступление book.starter.page1=Если вы читаете это, то весьма вероятно, что общество, так или иначе, полностью рухнуло. Правительства, страны и власть - это концепция прошлого, вместе со всеми удобствами цивилизованной жизни. Таким образом, это руководство расскажет вам,как изменить это, воссоздав индустрию и технологии прошлого для улучшения вашей собственной жизни. book.starter.title2=Уголь и горчичный газ -book.starter.page2=Хотя невозможно предсказать фактическое состояние мира в постапокалиптическое время, вполне вероятно, что война и промышленность в её нынешнем виде, возможно, ещё не закончились. Чтобы защитить свои собственные лёгкие, эффективный и дешевый способ - помочиться на какую-нибудь тряпку, чтобы сделать §lтраншейную маску§r, чтобы защитить вас от угольной пыли или горчичного газа, если вы когда-нибудь столкнетесь с ними. +book.starter.page2=Хотя невозможно предсказать фактическое состояние мира в постапокалиптическое время, вполне вероятно, что война и промышленность в её нынешнем виде, возможно, ещё не закончились. Чтобы защитить свои собственные лёгкие, эффективный и дешёвый способ - помочиться на какую-нибудь тряпку, чтобы сделать §lтраншейную маску§r, чтобы защитить вас от угольной пыли или горчичного газа, если вы когда-нибудь столкнетесь с ними. book.starter.title3=Наковальни и прессы book.starter.page3=Квинтэссенцией для начала вашего промышленного возрождения являются §lнаковальня§r и §lпресс§r. Наковальня позволит вам вручную создавать ранние механизмы, такие как сборочная машина, в то время как пресс позволит вам изготавливать пластины, провода и схемы, которые вы не можете сделать с помощью наковальни. book.starter.title4=Шаблоны @@ -299,7 +299,7 @@ book.starter.title12=Радиация book.starter.page12a=§oОстальная часть этой книги будет посвящена вопросам, связанным с §oрадиацией. Для вашей безопасности и безопасности других людей я дам вам §oсоветы о том, как смягчить воздействие и справиться с ней. book.starter.page12b=Достаточное воздействие радиации может привести и приведет к телесным повреждениям. Первый шаг - это внешняя защита; обязательно ограничьте свое воздействие и наденьте защитное снаряжение, например §lЗащитный костюм§r, или прикрепить §lОбшивку§r к вашей одежде или броне; вы также можете принять §lРад-X§r чтобы ограничить получаемую дозу. Спасибо современной медицине, вторым шагом может быть удаление, если это необходимо; например, §l"Обеззараживатель §lигрока"§r будет медленно уменьшать излучение, поглощённое вашим телом. §lАнтирадин§r может быть использован как профилактика при облучении, быстро и эффективно устраняя повреждения, причиненные вашему организму ионизирующим излучением. book.starter.title13=Обогащение урана -book.starter.page13=Существует несколько простых вариантов топлива для ядерного реактора; например, топливо из §lПриродного урана§r или §lТория§r. Однако, если вы ищете что-то более мощное, вы можете настроить каскад обогащения из двух §lГазовых центрифуг§r для производства §lУранового топлива§r с остатками §lУрана-238§r. Для этого вам придется превратить природный уран в §lЙеллоукейк§r, а затем в §lГексафторид §lурана§r. +book.starter.page13=Существует несколько простых вариантов топлива для ядерного реактора; например, топливо из §lПриродного урана§r или §lТория§r. Однако, если вы ищете что-то более мощное, вы можете настроить каскад обогащения из двух §lГазовых центрифуг§r для производства §lУранового топлива§r с остатками §lУрана-238§r. Для этого вам придется превратить природный уран в §lжёлтый кек§r, а затем в §lГексафторид §lурана§r. book.starter.title14=Чикагская поленница book.starter.page14=В качестве альтернативы вы можете получить §lРеакторный плутоний§r, более мощное топливо, из природного урана, используя §lЧикагскую поленницу§r. Укладывая графитовые блоки и сверля их, вы можете вставить топливные стержни для размножения в плутоний и стержни источников нейтронов, такие как §lРадий-Бериллий§r, чтобы начать реакцию. Обязательно протестируйте свои конструкции; для предотвращения перегрева может потребоваться разделение или ограничение количества блоков. book.starter.title15=ЦИРНОКС РГО @@ -355,7 +355,7 @@ book_lore.book_iodine.name=Заметка book_lore.book_iodine.author=Дейв book_lore.book_iodine.page.0=Лады, вы не поверите, но старик Везэрвэйн наконец объявился через две недели после своего ухода и, что ещё более впечатляюще, он раскололся на тему своих занятий в каньоне: book_lore.book_iodine.page.1=Похоже, дебилы из НИОКР обнаружили соединение, в основном неорганическое, очень схожее с токсином, но вникните: умирающие клетки воспроизводят и выделяют его во внешнюю среду, создавая чрезвычайно заразный аэрозоль. -book_lore.book_iodine.page.2=Оно как вирус, но не вирус. Состав странный, его можно замешать в любой бутылке, но лишь в нужном порядке. Док сказал, что первый реактив это просто измельченные кристаллы иода, идущие в ячейку %d. +book_lore.book_iodine.page.2=Оно как вирус, но не вирус. Состав странный, его можно замешать в любой бутылке, но лишь в нужном порядке. Док сказал, что первый реактив это просто измельчённые кристаллы иода, идущие в ячейку %d. book_lore.book_phosphorous.name=Заметка book_lore.book_phosphorous.author=Дейв @@ -447,7 +447,7 @@ book_lore.bf_bomb_5.page.0=Я просто... не могу с этим спра book_lore.bf_bomb_5.page.1=Мы только что получили ещё одну порцию чистого жар-огня, а он нашел необходимое электрооборудование и источник энергии, чтобы проверить свое предположение. Я не знаю, что стало причиной (было ли запущено оборудование? Он начал слишком рано?), но оно свершилось мучительно медленно, book_lore.bf_bomb_5.page.2=когда зелёный свет поглотил стол, батарею и доктора Мелфина, стоящего всего в метре от него. Даже когда стол превратился в лужу кипящего металла на полу, он не загорелся. Я не знаю, что я увидел в его глазах... $$ Ужас или трепет, book_lore.bf_bomb_5.page.3=может из-за того, что он ещё жив? Чем бы ни был наш "чудо" материал, его это не волновало. В следующий момент он исчез в яркой вспышке света. Он испарился? сгорел? аннигилирован? Отошлите меня хоть в грёбаный ад, я больше ничего не знаю! -book_lore.bf_bomb_5.page.4=Меня тошнит от главного исследователя. Он звиздел, что мы могли бы быть более осторожными, продолжать просто кружить вокруг, какую-то ещё подымающую мораль чепуху. Этот тупой урод никогда не поймет, что играя с огнем, можно обжечься. $ Я не стал заморачиваться с +book_lore.bf_bomb_5.page.4=Меня тошнит от главного исследователя. Он звиздел, что мы могли бы быть более осторожными, продолжать просто кружить вокруг, какую-то ещё подымающую мораль чепуху. Этот тупой урод никогда не поймет, что, играя с огнем, можно обжечься. $ Я не стал заморачиваться с book_lore.bf_bomb_5.page.5=увольнением, просто забрал свои шмотки и побежал к холмам. В любом случае, неважно; учитывая отсутствие звонков и грибовидное облако, поднявшееся над моим (теперь уже бывшим) местом работы, они взорвали всё либо перешли в полное распоряжение военных. book_lore.bf_bomb_5.page.6=Есть важное различие между диссекцией и ВИВИСЕКЦИЕЙ, что они явно упустили из виду. Они могут рассекать металлы или атомы сколько угодно, но вторгаться внутрь, вивисекцировать саму реальность – это значит лишь порождать новых докторов Мелфинов. Кто знает! book_lore.bf_bomb_5.page.7=В конце-концов, правительство стремится превратить эту херню в бомбы, может, мы увидим ещё пару войн, ещё пару миллионов людей, встретивших судьбу хуже смерти. Они не могут прятать это вечно. $ $ Меня это не волнует. Теперь не волнует. Боже, пожалуйста, позволь мне вернуться @@ -584,7 +584,7 @@ chem.ethanol=Этанол chem.biogas=Биогаз chem.biofuel=Переэтерификация биотоплива chem.reoil=Регенерированное масло -chem.gasoline=Бензин +chem.gasoline=Газолин chem.tarsand=Битум из битумозного песка chem.meatprocessing=Переработка мяса глифидов chem.birkeland=Азотная кислота из воздуха @@ -630,7 +630,7 @@ chem.FC_DIESEL_KEROSENE=Крекинг дизеля chem.FC_GAS_PETROLEUM=Крекинг попутного газа chem.FC_I_NAPHTHA=Крекинг промышленного масла chem.FC_KEROSENE_PETROLEUM=Крекинг керосина -chem.FP_HEAVYOIL=Переработка тяжелой нефти +chem.FP_HEAVYOIL=Переработка тяжёлой нефти chem.FP_LIGHTOIL=Переработка лёгкой нефти chem.FP_NAPHTHA=Переработка нафты chem.FP_SMEAR=Переработка промышленного масла @@ -696,7 +696,7 @@ chem.VIT_GAS=Остекловывание газообразных ядерны chem.VIT_LIQUID=Остекловывание жидких ядерных отходов chem.XENON=Ксеноновый цикл Линде chem.XENON_OXY=Улучшенный ксеноновый цикл Линде -chem.YELLOWCAKE=Производство йеллоукейка +chem.YELLOWCAKE=Производство жёлтого кека commands.satellite.no_active_satellites=Нет активных спутников! commands.satellite.no_satellite=Спутник не найден! @@ -770,7 +770,7 @@ container.generator=Ядерный реактор container.hadron=Ускоритель частиц container.heaterFirebox=Топка container.heaterHeatex=Теплообменник -container.heaterOilburner=Жидкостный бойлер +container.heaterOilburner=Жидкостный котёл container.heaterOven=Нагревательная печь container.hydrotreater=Гидроочиститель container.iGenerator=Промышленный генератор @@ -849,7 +849,7 @@ container.pumpjack=Станок-качалка container.radGen=Радиационный двигатель container.radar=Радар container.radiobox=FM передатчик -container.radiolysis=РИТЭГ и Камера Радиолиза +container.radiolysis=РИТЭГ и камера радиолиза container.radiorec=FM радио container.rbmkAutoloader=Автозагрузчик стержней РБМК container.rbmkBoiler=Паровой канал РБМК @@ -869,7 +869,7 @@ container.reix=Мэйнфрейм Rei-X container.rttyController=Контроллер редстоун-радио container.rtg=РИТЭГ-генератор container.rtgFurnace=РИТЭГ-печь -container.rttyReader=Редстоун-радио ридер +container.rttyReader=Редстоун-радио считыватель container.rttyCounter=Редстоун-радио счётчик предметов container.rttyLogic=Редстоун-радио логический приёмник container.rttyReceiver=Редстоун-радио приёмник @@ -910,7 +910,7 @@ copytool.invertFilter=Инвертированный фильтр copytool.orientation=Ориентация copytool.pattern0=Красная сторона copytool.pattern1=Оранжевая сторона -copytool.pattern2=Желтая сторона +copytool.pattern2=Жёлтая сторона copytool.pattern3=Зелёная сторона copytool.pattern4=Синяя сторона copytool.pattern5=Фиолетовая сторона @@ -923,7 +923,7 @@ crucible.cdalloy=Производство кадмиевой стали crucible.cmb=Производство стали Альянса crucible.ferro=Производство ферроуранового сплава crucible.hematite=Переплавка гематита в железо -crucible.hss=Производство высокоскоростной стали +crucible.hss=Производство быстрорежущей стали crucible.malachite=Переплавка малахита в медь crucible.magtung=Производство намагниченного вольфрама crucible.redcopper=Производство красной меди @@ -952,7 +952,7 @@ death.attack.amsCore=%1$s испарился в огне сингулярнос death.attack.asbestos=%1$s теперь имеет право на финансовую компенсацию. death.attack.bang=%1$s превратился в рагу. death.attack.blackhole=%1$s превратился в спагетти. -death.attack.blacklung=%1$s умер от болезни черных лёгких. +death.attack.blacklung=%1$s умер от болезни чёрных лёгких. death.attack.blender=%1$s стал фаршем. death.attack.boat=%1$s был пришиблен лодкой. death.attack.boil=%1$s был заживо сварен %2$s. @@ -1227,6 +1227,8 @@ entity.hbm.entity_bullet.name=Пуля entity.hbm.entity_rocket.name=Ракета entity.hbm.entity_schrabnel.name=Шрапнель +error.generic=### Я ОШИБКА ### + excavator.crusher=Включить измельчитель excavator.drill=Включить бур excavator.silktouch=Включить шёлковое касание @@ -1256,6 +1258,28 @@ geiger.playerRes=Защищённость игрока: geiger.title=СЧЁТЧИК ГЕЙГЕРА geiger.title.dosimeter=ДОЗИМЕТР +general.na=Н/Д + +gui.recipe.duration=Длительность +gui.recipe.consumption=Потребление +gui.recipe.input=Вход +gui.recipe.output=Выход +gui.recipe.atPressure=при давлении в +gui.recipe.setRecipe=Нажмите, чтобы выбрать рецепт + +gui.weapon.ammo=Боеприпасы +gui.weapon.baseDamage=Базовый урон +gui.weapon.damageWithAmmo=Урон с текущими боеприпасами +gui.weapon.condition=Состояние +gui.weapon.accepts=Принимает +gui.weapon.quality.aside=Стандартный арсенал +gui.weapon.quality.bside=Би-Сайд +gui.weapon.quality.legendary=Легендарное оружие +gui.weapon.quality.special=Специальное оружие +gui.weapon.quality.utility=Утилитарное +gui.weapon.quality.secret=СЕКРЕТНОЕ +gui.weapon.quality.debug=ОТЛАДКА + gun.make.ARMALITE=Armalite gun.make.AUTO_ORDINANCE=Корпорация Авто-Орденс gun.make.BAE=БАЕ Системс @@ -1473,6 +1497,7 @@ hbmfluid.coalgas=Угольный газ hbmfluid.coalgas_leaded=Этилированный угольный газ hbmfluid.coaloil=Фотоген hbmfluid.colloid=Коллоидный раствор +hbmfluid.concrete=Жидкий бетон hbmfluid.coolant=Хладагент hbmfluid.coolant_hot=Горячий хладагент hbmfluid.crackoil=Крекированная нефть @@ -1497,7 +1522,7 @@ hbmfluid.gasoline=Газолин hbmfluid.gasoline_leaded=Этилированный газолин hbmfluid.heatingoil=Мазут hbmfluid.heatingoil_vacuum=Тяжёлый мазут -hbmfluid.heavyoil=Тяжелая нефть +hbmfluid.heavyoil=Тяжёлая нефть hbmfluid.heavyoil_vacuum=Вакуумная тяжёлая нефть hbmfluid.heavywater=Тяжёлая вода hbmfluid.heavywater_hot=Горячая тяжёлая вода @@ -1523,8 +1548,8 @@ hbmfluid.lpg=Сжиженный попутный газ (СПГ) hbmfluid.lubricant=Машинная смазка hbmfluid.lye=Щёлок hbmfluid.mercury=Ртуть -hbmfluid.mug=Пиво "Mug Root" -hbmfluid.mug_hot=Горячее пиво "Mug Root" +hbmfluid.mug=Квас "Царские Припасы" +hbmfluid.mug_hot=Горячий квас "Царские Припасы" hbmfluid.mustardgas=Иприт hbmfluid.naphtha=Нафта hbmfluid.naphtha_coker=Коксовая нафта @@ -1540,9 +1565,9 @@ hbmfluid.oil_ds=Десульфуризованная неочищенная не hbmfluid.oxygen=Жидкий кислород hbmfluid.oxyhydrogen=Гремучий газ hbmfluid.pain=Пандемониум(III)Раствор танталита -hbmfluid.perfluoromethyl=Перфторометил -hbmfluid.perfluoromethyl_cold=Холодный перфторометил -hbmfluid.perfluoromethyl_hot=Горячий перфторометил +hbmfluid.perfluoromethyl=Перфторометан +hbmfluid.perfluoromethyl_cold=Холодный перфторометан +hbmfluid.perfluoromethyl_hot=Горячий перфторометан hbmfluid.peroxide=Пероксид водорода hbmfluid.petroil=Бензин hbmfluid.petroil_leaded=Этилированный бензин @@ -1585,7 +1610,7 @@ hbmfluid.sunfloweroil=Подсолнечное масло hbmfluid.superhotsteam=Перегретый пар hbmfluid.syngas=Синтгаз hbmfluid.thorium_salt=Жидкая ториевая соль -hbmfluid.thorium_salt_depleted=Обедненная жидкая ториевая соль +hbmfluid.thorium_salt_depleted=Обеднённая жидкая ториевая соль hbmfluid.thorium_salt_hot=Горячая жидкая ториевая соль hbmfluid.tritium=Тритий hbmfluid.uf6=Гексафторид урана @@ -1645,7 +1670,7 @@ hbmmat.cryolite=Криолит hbmmat.desh=Деш hbmmat.diamond=Алмаз hbmmat.dineutronium=Динейтроний -hbmmat.durasteel=Высокоскоростная сталь +hbmmat.durasteel=Быстрорежущая сталь hbmmat.emerald=Изумруд hbmmat.euphemium=Эвфемий hbmmat.ferrouranium=Ферроуран @@ -1659,7 +1684,7 @@ hbmmat.graphene=Графен hbmmat.graphite=Графит hbmmat.gunmetal=Пушечная бронза hbmmat.hematite=Гематит -hbmmat.iron=Железа +hbmmat.iron=Железо hbmmat.lanthanum=Лантан hbmmat.lapis=Лазурит hbmmat.lead=Свинец @@ -1895,7 +1920,7 @@ item.ammo_bag_infinite.name=Бесконечная сумка для боепр item.ammo_arty_phosphorus_multi.name=Фосфорный 16-дюймовый мульти-снаряд item.ammo_cell.name=Энерго-патроны item.ammo_coilgun.name=Вольфрамовый шар для гаусс-пушки -item.ammo_coilgun_du.name=Ферроураниевый шар для гаусс-пушки +item.ammo_coilgun_du.name=Ферроурановый шар для гаусс-пушки item.ammo_coilgun_rubber.name=Резиновый шар для гаусс-пушки item.ammo_container.name=Контейнер с боеприпасами item.ammo_dart.name=Пластиковый дротик (Иссущающий) @@ -1983,10 +2008,10 @@ item.ammo_standard.bmg50_fmj.name=.50 BMG патрон (Цельнометалл item.ammo_standard.bmg50_sm.name=.50 BMG патрон (Звёздный Металл) item.ammo_standard.bmg50_jhp.name=.50 BMG патрон (Экспансивный+) item.ammo_standard.bmg50_sp.name=.50 BMG патрон (Экспансивный) -item.ammo_standard.capacitor.name=Конденсатор (Стандартный) -item.ammo_standard.capacitor_ir.name=Конденсатор (Низкая длина волны) -item.ammo_standard.capacitor_overcharge.name=Конденсатор (Перезаряженный) -item.ammo_standard.coil_ferrouranium.name=Ферроураниевый шарик гаусс-пушки +item.ammo_standard.capacitor.name=Оружейный конденсатор (Стандартный) +item.ammo_standard.capacitor_ir.name=Оружейный конденсатор (Коротковолновой) +item.ammo_standard.capacitor_overcharge.name=Оружейный конденсатор (Перегруженный) +item.ammo_standard.coil_ferrouranium.name=Ферроурановый шарик гаусс-пушки item.ammo_standard.coil_tungsten.name=Вольфрамовый шарик гаусс-пушки item.ammo_standard.ct_hook.name=Крюк-кошка item.ammo_standard.ct_mortar.name=Разрывной снаряд @@ -2105,16 +2130,16 @@ item.ams_muzzle.desc=...он испускает штуковину с энерг item.analysis_tool.name=Анализатор item.analyzer.name=Анализатор item.anchor_remote.name=Устройство вызова -item.apple_euphemium.name=Эвфемиевое Яблоко +item.apple_euphemium.name=Эвфемиевое яблоко item.apple_lead.name=Свинцовое яблоко -item.apple_schrabidium.name=Шрабидиевое Яблоко +item.apple_schrabidium.name=Шрабидиевое яблоко item.arc_electrode.name=Графитовый электрод item.arc_electrode.desh.name=Деш-электрод item.arc_electrode.graphite.name=Графитовый электрод item.arc_electrode.lanthanium.name=Лантановый электрод item.arc_electrode.saturnite.name=Сатурнитовый электрод item.arc_electrode_burnt.name=Расплавленный электрод -item.arc_electrode_burnt.desh.name=Расплавленный Деш-электрод +item.arc_electrode_burnt.desh.name=Расплавленный деш-электрод item.arc_electrode_burnt.graphite.name=Расплавленный графитовый электрод item.arc_electrode_burnt.lanthanium.name=Расплавленный лантановый электрод item.arc_electrode_burnt.saturnite.name=Расплавленный сатурнитовый электрод @@ -2198,8 +2223,8 @@ item.battery_spark.name=Спарк-батарея item.battery_spark_cell_100.name=Спарк-Магический массив хранения энергии item.battery_spark_cell_1000.name=Спарк-Магическая масс-энергетическая пустота item.battery_spark_cell_10000.name=Устойчивый пространственно-временной спарк-кристалл -item.battery_spark_cell_25.name=Спарк-Магический аккумулятор -item.battery_spark_cell_2500.name=Спарк-Магическое море Дирака +item.battery_spark_cell_25.name=Спарк-магический аккумулятор +item.battery_spark_cell_2500.name=Спарк-магическое море Дирака item.battery_spark_cell_6.name=Спарк-энергоячейка item.battery_spark_cell_power.name=Абсурдный физический спарк-блок накопления энергии item.battery_steam.name=Паровой бак для хранения энергии @@ -2209,13 +2234,13 @@ item.battery_su_l.name=Большая одноразовая батарейка item.battery_trixite.name=Безымянная спарк-батарея item.bdcl.name=BDCL item.bedrock_ore.grade.base.name=Бедроковая руда (%s) -item.bedrock_ore.grade.base_roasted.name=Обожженная бедроковая руда (%s) +item.bedrock_ore.grade.base_roasted.name=Обожжённая бедроковая руда (%s) item.bedrock_ore.grade.base_washed.name=Промытая бедроковая руда (%s) item.bedrock_ore.grade.primary.name=Бедроковая руда (%s), первичная фракция -item.bedrock_ore.grade.primary_roasted.name=Бедроковая руда (%s), обожженная первичная фракция +item.bedrock_ore.grade.primary_roasted.name=Бедроковая руда (%s), обожжённая первичная фракция item.bedrock_ore.grade.primary_sulfuric.name=Бедроковая руда (%s), серная первичная фракция item.bedrock_ore.grade.primary_nosulfuric.name=Бедроковая руда (%s), отделённая серная первичная фракция -item.bedrock_ore.grade.primary_solvent.name=Бедроковая руда (%s), растворенная первичная фракция +item.bedrock_ore.grade.primary_solvent.name=Бедроковая руда (%s), растворённая первичная фракция item.bedrock_ore.grade.primary_nosolvent.name=Бедроковая руда (%s), отделённая растворенная первичная фракция item.bedrock_ore.grade.primary_rad.name=Бедроковая руда (%s), очищенная первичная фракция item.bedrock_ore.grade.primary_norad.name=Бедроковая руда (%s), отделённая очищенная первичная фракция @@ -2223,15 +2248,15 @@ item.bedrock_ore.grade.primary_first.name=Бедроковая руда (%s), п item.bedrock_ore.grade.primary_second.name=Бедроковая руда (%s), первичная фракция, малый вес item.bedrock_ore.grade.crumbs.name=Куски бедроковой руды (%s) item.bedrock_ore.grade.sulfuric_byproduct.name=Бедроковая руда (%s), серная побочка -item.bedrock_ore.grade.sulfuric_roasted.name=Бедроковая руда (%s), обожженная серная побочка +item.bedrock_ore.grade.sulfuric_roasted.name=Бедроковая руда (%s), обожжённая серная побочка item.bedrock_ore.grade.sulfuric_arc.name=Бедроковая руда (%s), переплавленная серная побочка item.bedrock_ore.grade.sulfuric_washed.name=Бедроковая руда (%s), промытая серная побочка -item.bedrock_ore.grade.solvent_byproduct.name=Бедроковая руда (%s), растворенная побочка -item.bedrock_ore.grade.solvent_roasted.name=Бедроковая руда (%s), обожженная растворенная побочка +item.bedrock_ore.grade.solvent_byproduct.name=Бедроковая руда (%s), растворённая побочка +item.bedrock_ore.grade.solvent_roasted.name=Бедроковая руда (%s), обожжённая растворенная побочка item.bedrock_ore.grade.solvent_arc.name=Бедроковая руда (%s), переплавленная растворенная побочка item.bedrock_ore.grade.solvent_washed.name=Бедроковая руда (%s), промытая растворенная побочка item.bedrock_ore.grade.rad_byproduct.name=Бедроковая руда (%s), очищенная побочка -item.bedrock_ore.grade.rad_roasted.name=Бедроковая руда (%s), обожженная очищенная побочка +item.bedrock_ore.grade.rad_roasted.name=Бедроковая руда (%s), обожжённая очищенная побочка item.bedrock_ore.grade.rad_arc.name=Бедроковая руда (%s), переплавленная очищенная побочка item.bedrock_ore.grade.rad_washed.name=Бедроковая руда (%s), промытая очищенная побочка item.bedrock_ore.trait.arc=§6Дуговая плавка @@ -2243,7 +2268,7 @@ item.bedrock_ore.trait.sulfuric=§6Обработанный серной кис item.bedrock_ore.trait.washed=§bПромытый в окислителе водой item.bedrock_ore.type.actinide.name=Актинидная item.bedrock_ore.type.crystal.name=Кристаллическая -item.bedrock_ore.type.heavy.name=Тяжелая металлическая +item.bedrock_ore.type.heavy.name=Тяжёлая металлическая item.bedrock_ore.type.light.name=Лёгкая металлическая item.bedrock_ore.type.nonmetal.name=Неметаллическая item.bedrock_ore.type.rare.name=Редкоземельная @@ -2266,7 +2291,7 @@ item.billet_bismuth.name=Заготовка висмута item.billet_co60.name=Заготовка кобальта-60 item.billet_cobalt.name=Заготовка кобальта item.billet_flashlead.name=Заготовка флэшлида -item.billet_flashlead.desc=Решетка распадается, вызывая реакции аннигиляции антивещества и материи, вызывая высвобождение$пионов, распадающихся на мюоны, катализирующих слияние$ядер, создавая новый элемент.$Пожалуйста, постарайся не отставать. +item.billet_flashlead.desc=Решётка распадается, вызывая реакции аннигиляции антивещества и материи, вызывая высвобождение$пионов, распадающихся на мюоны, катализирующих слияние$ядер, создавая новый элемент.$Пожалуйста, постарайся не отставать. item.billet_gh336.name=Заготовка гиорсия-336 item.billet_gh336.desc=Коллега Сиборгиума. item.billet_hes.name=Заготовка высокообогащённого шрабидиевого топлива @@ -2277,18 +2302,18 @@ item.billet_neptunium.name=Заготовка нептуния item.billet_neptunium_fuel.name=Заготовка нептуниевого топлива item.billet_nuclear_waste.name=Заготовка ядерных отходов item.billet_pb209.name=Заготовка свинца-209 -item.billet_po210be.name=Заготовка Полоний-210-Бериллия +item.billet_po210be.name=Заготовка полоний-210-бериллия item.billet_polonium.name=Заготовка полония-210 item.billet_pu_mix.name=Заготовка плутония реакторного качества item.billet_pu238.name=Заготовка плутония-238 -item.billet_pu238be.name=Заготовка Плутоний-210-Бериллия +item.billet_pu238be.name=Заготовка плутоний-238-бериллия item.billet_pu239.name=Заготовка плутония-239 item.billet_pu240.name=Заготовка плутония-240 item.billet_pu241.name=Заготовка плутония-241 item.billet_plutonium.name=Заготовка плутония item.billet_plutonium_fuel.name=Заготовка плутониевого топлива item.billet_ra226.name=Заготовка радия-226 -item.billet_ra226be.name=Заготовка Радий-226-Бериллия +item.billet_ra226be.name=Заготовка радий-226-бериллия item.billet_schrabidium.name=Заготовка шрабидия item.billet_schrabidium_fuel.name=Заготовка шрабидиевого топлива item.billet_silicon.name=Кремниевая пластина @@ -2332,6 +2357,7 @@ item.blades_desh.name=Деш-лезвия измельчителя item.blades_steel.name=Стальные лезвия измельчителя item.blades_titanium.name=Титановые лезвия измельчителя item.blowtorch.name=Паяльная лампа +item.blueprint_folder.name=Буклет чертежей item.blueprints.name=Чертежи item.board_copper.name=Медная панель item.boat_rubber.name=Резиновая лодка @@ -2342,11 +2368,12 @@ item.bobmazon_materials.name=Бобмазон: Материалы item.bobmazon_tools.name=Бобмазон: Предметы item.bobmazon_weapons.name=Бобмазон: Оружие и взрывчатка item.boltntm.name=Стержень (%s) -item.bolt_compound.name=Укрепленный вал турбины +item.bolt_compound.name=Укреплённый вал турбины item.bolt_spike.name=Железнодорожный гвоздь item.bolt_spike.desc=Излучает угрожающую ауру, как-то item.boltgun.name=Пневматический заклепочник item.bomb_caller.name=Устройство для обозначения авиаудара +item.bomb_part.used_in=Используется в: item.bomb_waffle.name=Вафля массового поражения item.book_guide.name=Руководство item.book_of_.name=Книга Вагонов @@ -2388,9 +2415,9 @@ item.can_breen.name=Личный резерв др.Брина item.can_creature.name=Энергетический напиток "Существо" item.can_empty.name=Пустая банка item.can_key.name=Винтовой ключ -item.can_luna.name=Черная Меза Луна - Темная Кола +item.can_luna.name=Чёрная Меза луна - Тёмная кола item.can_mrsugar.name=Безалкогольный напиток 'Доктор Сахар' -item.can_mug.name=MUG Root Beer +item.can_mug.name=Квас "Царские Припасы" item.can_overcharge.name=Перезарядка Delirium XT item.can_redbomb.name=Энергетический напиток "Красная Бомба" item.can_smart.name=Энергетический напиток “Смарт” @@ -2407,7 +2434,7 @@ item.canister_full.name=Канистра: item.canister_gasoline.name=Канистра с этилированным бензином (LEGACY) item.canister_gasoline.desc=свинец - это друг$впусти друга в свой кровоток$*достаёт пистолет* живо. item.canister_heatingoil.name=Канистра с мазутом (LEGACY) -item.canister_heavyoil.name=Канистра с тяжелой нефтью (LEGACY) +item.canister_heavyoil.name=Канистра с тяжёлой нефтью (LEGACY) item.canister_kerosene.name=Канистра с керосином (LEGACY) item.canister_lightoil.name=Канистра с лёгкой нефтью (LEGACY) item.canister_napalm.name=Напалм Б @@ -2424,7 +2451,7 @@ item.canned_bark.name=Консервы вяленой сосновой коры item.canned_bark.desc=Очень хрустящие! item.canned_beef.name=Консервированная говядина item.canned_beef.desc=Несколько веков назад для этого умерла корова. -item.canned_bhole.name=Консервированная черная дыра +item.canned_bhole.name=Консервированная чёрная дыра item.canned_bhole.desc=Сингулярность это ням ням в моём там там item.canned_cheese.name=Консервированный плавленый сыр item.canned_cheese.desc=Это сыр? Это резиновый цемент? Кто знает. Кого волнует. @@ -2452,8 +2479,8 @@ item.canned_napalm.name=Консервированный напалм item.canned_napalm.desc=Люблю запах старых мемов по утрам. item.canned_oil.name=Консервированное моторное масло item.canned_oil.desc=Заставляет мотор работать, почему не может и людей? -item.canned_pashtet.name=Паштет -item.canned_pashtet.desc=услуги перевода недоступны! +item.canned_pashtet.name=Pate +item.canned_pashtet.desc=Translation services are not available! item.canned_pizza.name=Консервированная пицца item.canned_pizza.desc=Преступление против человечества. item.canned_recursion.name=Консервированная рекурсия @@ -2528,7 +2555,8 @@ item.centrifuge_tower.name=Башня центрифуги item.chainsaw.name=Бензопила item.cheese.name=Сыр item.cheese_quesadilla.name=Сырная кесадилья -item.chemical_dye.black.name=Химический краситель (Черный) +item.cheese_quesadilla.desc=Вот что делает с вами 50-летняя дрожжевая инфекция. +item.chemical_dye.black.name=Химический краситель (Чёрный) item.chemical_dye.blue.name=Химический краситель (Синий) item.chemical_dye.brown.name=Химический краситель (Коричневый) item.chemical_dye.cyan.name=Химический краситель (Голубой) @@ -2555,12 +2583,12 @@ item.chocolate.name=Фирменный радиевый шоколад item.chocolate.desc=Радиевый шоколад? Почти уверен, что это просто мет. item.chocolate_milk.name=Шоколадное молоко item.chopper.name=Вертолёт-охотник -item.chopper_blades.name=Лопасти Вертолёта-охотника +item.chopper_blades.name=Лопасти вертолёта-охотника item.chopper_gun.name=Огневая установка -item.chopper_head.name=Кабина Вертолета-охотника -item.chopper_tail.name=Хвост Вертолёта-охотника -item.chopper_torso.name=Корпус Вертолёта-охотника -item.chopper_wing.name=Крыло Вертолета-охотника +item.chopper_head.name=Кабина вертолёта-охотника +item.chopper_tail.name=Хвост вертолёта-охотника +item.chopper_torso.name=Корпус вертолёта-охотника +item.chopper_wing.name=Крыло вертолёта-охотника item.chunk_ore.malachite.name=Кусок малахита item.chunk_ore.rare.name=Кусок редкоземельной руды item.chunk_ore.moonstone.name=Лунный камень @@ -2730,7 +2758,7 @@ item.cordite.name=Кордит item.cotton_candy.name=Радиоактивная сахарная вата item.crackpipe.name=Оздоровительная трубка item.crate_caller.name=Запросчик поставки припасов -item.crayon.black.name=Черный мелок +item.crayon.black.name=Чёрный мелок item.crayon.blue.name=Синий мелок item.crayon.brown.name=Коричневый мелок item.crayon.cyan.name=Голубой мелок @@ -2853,8 +2881,8 @@ item.drillbit_desh.name=Деш-головка бура item.drillbit_desh_diamond.name=Деш-головка бура (с алмазным напылением) item.drillbit_ferro.name=Головка бура из ферроурана item.drillbit_ferro_diamond.name=Головка бура из ферроурана (с алмазным напылением) -item.drillbit_hss.name=Головка бура из высокоскоростной стали -item.drillbit_hss_diamond.name=Головка бура из высокоскоростной стали (с алмазным напылением) +item.drillbit_hss.name=Головка бура из быстрорежущей стали +item.drillbit_hss_diamond.name=Головка бура из быстрорежущей стали (с алмазным напылением) item.drillbit_steel.name=Головка бура из стали item.drillbit_steel_diamond.name=Головка бура из стали (с алмазным напылением) item.drillbit_tcalloy.name=Головка бура из технециевой стали @@ -2922,11 +2950,11 @@ item.fau_helmet.name=Фау-шлем item.fau_legs.name=Фау-поножи item.fau_plate.name=Фау-нагрудник item.filter_coal.name=Фильтр с активированным углём -item.fins_big_steel.name=Большие стальные ребра решетки +item.fins_big_steel.name=Большие стальные рёбра решётки item.fins_flat.name=Плоский стальной кожух -item.fins_quad_titanium.name=Маленькие титановые ребра -item.fins_small_steel.name=Малые стальные ребра решетки -item.fins_tri_steel.name=Большие стальные ребра +item.fins_quad_titanium.name=Маленькие титановые рёбра +item.fins_small_steel.name=Малые стальные рёбра решётки +item.fins_tri_steel.name=Большие стальные рёбра item.five_htp.name=Таблетки энтерамина item.five_htp.desc=Убирает все DRX, Стабильность на 10 минут item.flame_conspiracy.name=Конспирологическая теория @@ -2936,7 +2964,7 @@ item.flame_opinion.desc=Что ж, мне это нравится... item.flame_politics.name=Политическая тема item.flame_politics.desc=Дональд Дак построит стену! item.flame_pony.name=Картинка цветной лошади -item.flame_pony.desc=Желтая лошадь побеждает синюю лошадь, это доказанный факт! +item.flame_pony.desc=Жёлтая лошадь побеждает синюю лошадь, это доказанный факт! item.flask_infusion.shield.name=Эликсир защиты item.fleija_core.name=Заряд Ф.Л.Е.И из урана 235 item.fleija_igniter.name=Импульсный воспламенитель @@ -3022,7 +3050,7 @@ item.gem_volcanic.name=Вулканический самоцвет item.generator_front.name=Перед генератора item.generator_steel.name=Корпус генератора item.glitch.name=Глюк -item.glowing_stew.name=Тушеные светящиеся грибы +item.glowing_stew.name=Тушёные светящиеся грибы item.glyphid_meat.name=Мясо глифидов item.glyphid_meat_grilled.name=Жареное мясо глифидов item.goggles.name=Защитные очки @@ -3086,7 +3114,7 @@ item.gun_autoshotgun_sexy.name=Секси item.gun_autoshotgun_shredder.name=Шреддер item.gun_avenger.name=CZ57 “Авенджер” item.gun_b92.name=§9Энергетический бластер B92§r -item.gun_b92_ammo.name=§9Энергетический Элемент B92§r +item.gun_b92_ammo.name=§9Энергетический элемент B92§r item.gun_b93.name=§cМодифицированный бластер B93§r item.gun_benelli.name=Benelli Autoshotgun item.gun_bf.name=BEL @@ -3249,7 +3277,7 @@ item.gun_uzi_saturnite.name=Сатурнитовый Узи item.gun_uzi_saturnite_silencer.name=Сатурнитовый Узи с глушителем item.gun_uzi_silencer.name=IMI Узи с глушителем item.gun_xvl1456.name=Прототип Тау-пушки XVL1456 -item.gun_xvl1456_ammo.name=Ящик с Обедненным Ураном-235 +item.gun_xvl1456_ammo.name=Ящик с обеднённым ураном-235 item.gun_zomg.name=ZOMG-пушка item.hand_drill.name=Ручная дрель item.hand_drill_desh.name=Ручная дрель из деша @@ -3288,6 +3316,7 @@ item.hev_legs.name=Поножи H.E.V Модели IV item.holotape_damaged.name=Повреждённый голодиск item.holotape_image.name=Голодиск item.horseshoe_magnet.name=Магнит-подкова +item.hot_dusted.forged=Выковано %s раз(а) item.hull_big_aluminium.name=Большая алюминиевая оболочка item.hull_big_steel.name=Большая стальная оболочка item.hull_big_titanium.name=Большая титановая оболочка @@ -3295,7 +3324,7 @@ item.hull_small_aluminium.name=Небольшая алюминиевая обо item.hull_small_aluminium.desc=Может быть вставлен в просверленный графит item.hull_small_steel.name=Небольшая стальная оболочка item.icf_pellet.name=Топливная пеллета ICF -item.icf_pellet_depleted.name=Обедненная топливная пеллета ICF +item.icf_pellet_depleted.name=Обеднённая топливная пеллета ICF item.icf_pellet_empty.name=Пустая топливная пеллета ICF item.igniter.name=Зажигатель item.igniter.desc=(Щёлкните правой кнопкой мыши по Прототипу)$Это зелёная металлическая ручка с $ярко-красной кнопкой и маленькой крышкой.$Внизу выгравированы инициалы N.E.$. Кем бы ни был N.E., у него был отличный вкус в оттенках зелёного. @@ -3343,13 +3372,13 @@ item.ingot_copper.name=Слиток промышленной меди item.ingot_daffergon.name=Даффергоновый слиток item.ingot_desh.name=Слиток деш item.ingot_dineutronium.name=Динейтрониевый слиток -item.ingot_dura_steel.name=Слиток высокоскоростной стали +item.ingot_dura_steel.name=Слиток быстрорежущей стали item.ingot_electronium.name=Электрониевый слиток item.ingot_euphemium.name=Эвфемиевый слиток item.ingot_euphemium.desc=Совершенно особый и в то же время странный элемент. -item.ingot_ferrouranium.name=Ферроураниевый слиток +item.ingot_ferrouranium.name=Ферроурановый слиток item.ingot_fiberglass.name=Стекловолокно -item.ingot_fiberglass.desc=С высоким содержанием волокна, с высоким содержанием стекла. Все, что нужно организму. +item.ingot_fiberglass.desc=С высоким содержанием волокна, с высоким содержанием стекла. Всё, что необходимо организму. item.ingot_firebrick.name=Шамотный кирпич item.ingot_gh336.name=Слиток гиорсия-336 item.ingot_gh336.desc=Коллега Сиборгиума. @@ -3407,6 +3436,7 @@ item.ingot_schrabidium_fuel.name=Слиток шрабидиевого топл item.ingot_schraranium.name=Шрараниевый слиток item.ingot_schraranium.desc=Делается из урана в шрабидиевом трансмутаторе item.ingot_semtex.name=Семтекс +item.ingot_semtex.desc=Пластиковая взрывчатка Семтекс H$Эффективное взрывчатое вещество для многих применений.$Съедобно item.ingot_silicon.name=Кремниевый брусок item.ingot_smore.name=Слиток с'мора item.ingot_solinium.name=Солиниевый слиток @@ -3451,8 +3481,8 @@ item.insert_yharonite.name=Яронитовая пластина item.item_expensive.bronze_tubes.name=Бронзовые конструкционные элементы item.item_expensive.circuit.name=Обширная печатная плата item.item_expensive.computer.name=Мейнфрейм -item.item_expensive.ferro_plating.name=Армированные ферроураниевые панели -item.item_expensive.heavy_frame.name=Тяжелый каркас +item.item_expensive.ferro_plating.name=Армированные ферроурановые панели +item.item_expensive.heavy_frame.name=Тяжёлый каркас item.item_expensive.lead_plating.name=Радиационно-стойкое покрытие item.item_expensive.steel_plating.name=Стальная обшивка с болтовым соединением item.item_secret.aberrator.name=Часть Аберратора @@ -3501,6 +3531,7 @@ item.launch_code_piece.name=Кусок кода запуска item.launch_key.name=Ключ запуска item.lead_gavel.name=Свинцовый молоток item.lemon.name="Лимон" +item.lemon.desc=Ну, вроде нормально. item.letter.name=Экспресс-почта item.levitation_unit.name=Гравитационный манипулятор item.lignite.name=Бурый уголь @@ -3513,10 +3544,12 @@ item.liquidator_plate.name=Нагрудник костюма Ликвидато item.lithium.name=Куб лития item.lodestone.name=Магнетит item.loop_stew.name=Завтрак IT-шника +item.loop_stew.desc=Очень, очень полезный завтрак. item.loops.name=Пəтли -item.loot_10.name=Ящик с запчастями от Ракеты 10-го размера -item.loot_15.name=Ящик с запчастями от Ракеты 15-го размера -item.loot_misc.name=Общий ящик с запчастями от Ракеты +item.loops.desc=Брø, можно мне немного пəтлей? +item.loot_10.name=Ящик с запчастями от ракеты 10-го размера +item.loot_15.name=Ящик с запчастями от ракеты 15-го размера +item.loot_misc.name=Общий ящик с запчастями от ракеты item.magnet_circular.name=Плоский магнит item.magnet_dee.name=Ди-магниты item.magnetron.name=Магнетрон @@ -3540,8 +3573,11 @@ item.mechanism_rifle_2.name=Усовершенствованный винтов item.mechanism_special.name=Механизм высокотехнологичного оружия item.med_bag.name=Аптечка первой помощи item.med_ipecac.name=Сироп из рвотного корня +item.med_ipecac.desс=Горький сок, который заставит ваш желудок$с силой извергнуть свое содержимое. item.med_ptsd.name=Лечение ПТСР +item.med_ptsd.desc=Это даже не лекарство от ПТСР,$это просто рвотный корень в другой банке! item.med_schiziphrenia.name=Лекарство от шизофрении +item.med_schizophrenia.desc=Заставляет голоса исчезнуть. На некоторое время.$...$Лучше не принимать. item.medal_liquidator.name=Медаль Ликвидатора item.meltdown_tool.name=Аппликатор мгновенного расплавления Дятлова item.memespoon.name=§eЗемлекоп @@ -3551,18 +3587,29 @@ item.mese_axe.name=Месе топор item.mese_pickaxe.name=Месе кирка item.meteor_charm.name=Талисман от метеоритов item.meteor_remote.name=Устройство для вызова метеоритов -item.meteorite_sword.name=Метеоритовый меч -item.meteorite_sword_seared.name=Метеоритовый меч (Опаленный) +item.meteorite_sword.desc=Выкован из павшей звезды$Острее, чем большинство земных лезвий +item.meteorite_sword_seared.name=Метеоритовый меч (Опалённый) +item.meteorite_sword.seared.desc=Огонь укрепляет клинок,$Делая его даже ещё мощнее item.meteorite_sword_reforged.name=Метеоритовый меч (Перекованный) +item.meteorite_sword.reforged.desc=Меч был перекован,$Чтобы искоренить прошлые недостатки item.meteorite_sword_hardened.name=Метеоритовый меч (Закалённый) +item.meteorite_sword.hardened.desc=Экстремально высокое давление использовано,$Чтобы закаливать этот меч дальше item.meteorite_sword_alloyed.name=Метеоритовый меч (Легированный) +item.meteorite_sword.alloyed.desc=Кобальт заполняет трещины,$Упрочняя меч item.meteorite_sword_machined.name=Метеоритовый меч (Механически обработанный) +item.meteorite_sword.machined.desc=Было использовано передовое оборудование,$Чтобы ещё больше усовершенствовать лезвие item.meteorite_sword_treated.name=Метеоритовый меч (Обработанный) +item.meteorite_sword.treated.desc=Были применены химикаты,$Делающие меч мощнее item.meteorite_sword_etched.name=Метеоритовый меч (Гравированный) +item.meteorite_sword.etched.desc=Кислоты очищают материал,$Чтобы получить этот идеальный меч item.meteorite_sword_bred.name=Метеоритовый меч (Разведённый) +item.meteorite_sword.bred.desc=Огромные количества тепла и радиации$Сжимают материал item.meteorite_sword_irradiated.name=Метеоритовый меч (Облучённый) +item.meteorite_sword.irradiated.desc=Сила Атома$Придает мечу мощи item.meteorite_sword_fused.name=Метеоритовый меч (Сплавленный) +item.meteorite_sword.fused.desc=Этот клинок встретился$С силами звёзд item.meteorite_sword_baleful.name=Метеоритовый меч (Зловещий) +item.meteorite_sword.baleful.desc=Этот меч встретил температуры$Гораздо большие, чем обычный материал может выдержать item.mike_cooling_unit.name=Блок охлаждения дейтерия item.mike_core.name=Дейтериевый бак с урановым покрытием item.mike_deut.name=Дейтериевый бак @@ -3572,7 +3619,7 @@ item.mirror_tool.linked=Позиция выравнивания установл item.mirror_tool.desc=Щелкните правой кнопкой мыши по бойлеру, чтобы запомнить его положение.$Нажмите на зеркала, чтобы повернуть их в сторону бойлера item.missile_anti_ballistic.name=Антибаллистическая ракета item.missile_assembly.name=Сборка малой ракеты -item.missile_bhole.name=Ракета "Черная Дыра" +item.missile_bhole.name=Ракета "Чёрная Дыра" item.missile_burst.name=Запасная ракета item.missile_buster.name=Противобункерная ракета item.missile_buster_strong.name=Улучшенная противобункерная ракета @@ -3581,6 +3628,17 @@ item.missile_cluster.name=Кластерная ракета item.missile_cluster_strong.name=Мощная кластерная ракета item.missile_custom.name=Пользовательская Ракета item.missile_decoy.name=Ракета-приманка +item.missile.desc.warhead=Боеголовка +item.missile.desc.strength=Сила +item.missile.desc.fuelType=Тип топлива +item.missile.desc.fuelAmount=Количество топлива +item.missile.desc.chipInaccuracy=Неточность чипа +item.missile.desc.finInaccuracy=Неточность стабилизаторов +item.missile.desc.size=Размер +item.missile.desc.health=Здоровье +item.missile.desc.fuel=Топливо +item.missile.desc.fuelCapacity=Вместимость топлива +item.missile.desc.notLaunchable=Не запускаемо! item.missile_doomsday.name=Ракета Судного Дня item.missile_doomsday_rusted.name=Повреждённая ракета Судного Дня item.missile_drill.name=Крушитель бетона @@ -3588,6 +3646,14 @@ item.missile_emp.name=ЭМИ-ракета item.missile_emp_strong.name=Мощная ЭМИ-ракета item.missile_endo.name=Эндотермическая ракета item.missile_exo.name=Экзотермическая ракета +item.missile.fuel.balefire=Ракетное жар-топливо +item.missile.fuel.jetfuel_loxy=Авиационное топливо / Жидкий кислород +item.missile.fuel.ethanol_peroxide=Этанол / Пероксид водорода +item.missile.fuel.kerosene_loxy=Керосин / Жидкий кислород +item.missile.fuel.kerosene_peroxide=Керосин / Пероксид водорода +item.missile.fuel.solid=Твёрдое топливо +item.missile.fuel.solid.prefueled=Твёрдое топливо (предзаправлено) +item.missile.fuel.xenon=Ксенон item.missile_generic.name=Фугасная ракета item.missile_incendiary.name=Зажигательная ракета item.missile_incendiary_strong.name=Мощная зажигательная ракета @@ -3596,6 +3662,28 @@ item.missile_kit.name=Ракетный набор item.missile_micro.name=Микро-ядерная ракета item.missile_nuclear.name=Ядерная ракета item.missile_nuclear_cluster.name=Термоядерная ракета +item.missile.part.bottomSize=Нижний размер +item.missile.part.by=Автор - +item.missile.part.fuelAmount=Количество топлива +item.missile.part.fuelConsumption=Потребление топлива +item.missile.part.fuelType=Тип топлива +item.missile.part.health=Здоровье +item.missile.part.inaccuracy=Неточность +item.missile.part.maxPayload=Максимальная полезная нагрузка +item.missile.part.rarity=Редкость +item.missile.part.rarity.common=Обычная +item.missile.part.rarity.epic=Эпическая +item.missile.part.rarity.legendary=Легендарная +item.missile.part.rarity.rare=Редкая +item.missile.part.rarity.strange=Странная +item.missile.part.rarity.uncommon=Необычная +item.missile.part.size=Размер +item.missile.part.size.any=Любой +item.missile.part.size.none=Нет +item.missile.part.strength=Сила +item.missile.part.topSize=Верхний размер +item.missile.part.type=Тип +item.missile.part.weight=Вес item.missile_rain.name=Бомбовый дождь item.missile_schrabidium.name=Шрабидиевая ракета item.missile_shuttle.name=Космический шаттл Reliant Robin @@ -3605,8 +3693,14 @@ item.missile_soyuz_lander.desc=А также паршивый посадочны item.missile_stealth.name=Стелс-ракета item.missile_strong.name=Мощная фугасная ракета item.missile_taint.name=Зараженная ракета +item.missile.tier.tier0=Уровень 0 +item.missile.tier.tier1=Уровень 1 +item.missile.tier.tier2=Уровень 2 +item.missile.tier.tier3=Уровень 3 +item.missile.tier.tier4=Уровень 4 item.missile_volcano.name=Тектоническая ракета item.missile_volcano.desc=Используя силу ядерной взрывчатки, мы можем вызвать вулкан! + item.mold_base.name=Пустая литейная форма item.mold.name=Литейная форма item.morning_glory.name=Фиалковый вьюнок @@ -3912,7 +4006,7 @@ item.paa_boots.name="Старые добрые ботинки" из PaA item.paa_legs.name=Укреплённые поножи из PaA item.paa_plate.name=Защищающая грудная пластина из PaA item.padlock.name=Замок -item.padlock_reinforced.name=Защищенный замок +item.padlock_reinforced.name=Защищённый замок item.padlock_rusty.name=Ржавый замок item.padlock_unbreakable.name=Несокрушимый замок item.pads_rubber.name=Резиновые прокладки @@ -3943,7 +4037,7 @@ item.part_lithium.name=Коробка литиевой пыли item.part_mechanism.name=Оружейный механизм (%s) item.part_plutonium.name=Коробка плутониевой пыли item.part_receiver_heavy.name=Тяжёлый ресивер (%s) -item.part_receiver_light.name=Лёгкий ресивер(%s) +item.part_receiver_light.name=Лёгкий ресивер (%s) item.part_stock.name=Приклад (%s) item.particle_aelectron.name=Капсула с Позитроном item.particle_amat.name=Капсула с Антиматерией @@ -3963,6 +4057,7 @@ item.particle_strange.name=Капсула со Странным кварком item.particle_tachyon.name=Капсула с тахионом item.parts_legendary.name=Легендарные запчасти item.peas.name=Горошек +item.peas.desc=Он принимает твое приношение. item.pedestal_steel.name=Стальная стойка item.pellet_advanced.name=Улучшитель производительности Ватцз item.pellet_antimatter.name=Кластер антиматерии @@ -3993,7 +4088,7 @@ item.pellet_rtg_actinium.desc=Сияние голубого света и бет item.pellet_rtg_americium.name=РИТЭГ-пеллета из америция-241 item.pellet_rtg_americium.desc=Редкий и надежный, старый добрый Америций! item.pellet_rtg_berkelium.name=РИТЭГ-пеллета из берклия-248 -item.pellet_rtg_berkelium.desc= +item.pellet_rtg_berkelium.desc=Экзотический источник альфа-излучения, служит дольше, чем америций! item.pellet_rtg_cobalt.name=РИТЭГ-пеллета из кобальта-60 item.pellet_rtg_cobalt.desc=Не лучший для РИТЭГ энергии, но хорош для гамма-радиации! item.pellet_rtg_depleted.bismuth.name=Распавшаяся РИТЭГ-пеллета висмута @@ -4013,15 +4108,15 @@ item.pellet_rtg_strontium.desc=Известен штату Калифорния. item.pellet_rtg_radium.name=РИТЭГ-пеллета из радия-226 item.pellet_rtg_radium.desc=Отличная стартовая пеллета, полученная из натурального радия! item.pellet_rtg_weak.name=Слабая урановая РИТЭГ-топливная пеллета -item.pellet_rtg_weak.desc=Более дешевая и слабая пеллета, теперь с большим количеством U238! +item.pellet_rtg_weak.desc=Более дешёвая и слабая пеллета, теперь с большим количеством U238! item.pellet_schrabidium.name=Чистая шрабидиевая Ватцз-пеллета item.photo_panel.name=Фотоэлектрическая панель item.pile_rod_boron.name=Контрольный стержень "Чикагской поленницы" item.pile_rod_boron.desc=§9[Поглотитель нейтронов]$§eПКМ, чтобы переключить item.pile_rod_detector.name=Регулирующий и детектирующий стержень "Чикагской поленницы" -item.pile_rod_detector.desc=§9[Детектор/поглотитель нейтронов]$§eПКМ дефьюзером чтобы увеличить/уменьшить лимит нейтронов$§eПКМ отвёрткой без шифта чтобы проверить поток +item.pile_rod_detector.desc=§9[Детектор/поглотитель нейтронов]$§eПКМ дефьюзером, чтобы увеличить/уменьшить лимит нейтронов$§eПКМ отвёрткой без шифта, чтобы проверить поток item.pile_rod_lithium.name=Литиевая ячейка "Чикагской поленницы" -item.pile_rod_lithium.desc=§a[Топливо-размножитель]$§eПКМ ручной дрелью чтобы проверить ядро ячейки +item.pile_rod_lithium.desc=§a[Топливо-размножитель]$§eПКМ ручной дрелью, чтобы проверить ядро ячейки item.pile_rod_plutonium.name=Плутониевый стержень "Чикагской поленницы" item.pile_rod_plutonium.desc=§d[Источник нейтронов] item.pile_rod_pu239.name=Урановый стержень-размножитель "Чикагской поленницы" @@ -4029,7 +4124,7 @@ item.pile_rod_pu239.desc=§a[Активное топливо]$§eбогатое item.pile_rod_source.name=Радий-226-Бериллевый источник нейтронов "Чикагской поленницы" item.pile_rod_source.desc=§d[Источник нейтронов] item.pile_rod_uranium.name=Урановый стержень "Чикагской поленницы" -item.pile_rod_uranium.desc=§a[Активное топливо]$§eПКМ ручной дрелью чтобы взять образец ядра стержня +item.pile_rod_uranium.desc=§a[Активное топливо]$§eПКМ ручной дрелью, чтобы взять образец ядра стержня item.pill_iodine.name=Таблетка иода item.pill_iodine.desc=Убирает негативные эффекты item.pill_herbal.name=Травяная паста @@ -4042,7 +4137,7 @@ item.pipes_steel.name=Стальные трубы item.pipes_steel.desc=Раскрафт был исключен из-за уклонения от уплаты налогов item.piston_selenium.name=Поршень двигателя внутреннего сгорания item.piston_set_desh.name=Набор деш-поршней -item.piston_set_dura.name=Набор поршней из высокоскоростной стали +item.piston_set_dura.name=Набор поршней из быстрорежущей стали item.piston_set_starmetal.name=Набор поршней из звёздного металла item.piston_set_steel.name=Набор стальных поршней item.plan_c.name=План С @@ -4067,7 +4162,7 @@ item.plate_copper.name=Медная пластина item.plate_dalekanium.name=Злой металл item.plate_desh.name=Составная пластина из деш item.plate_dineutronium.name=Составная пластина из динейтрония -item.plate_dura_steel.name=Пластина высокоскоростной стали +item.plate_dura_steel.name=Пластина быстрорежущей стали item.plate_euphemium.name=Составная пластина из эвфемия item.plate_fuel_mox.name=МОКС-топливная пластина item.plate_fuel_pu238be.name=Плутоний-238-Бериллевая топливная пластина @@ -4131,8 +4226,8 @@ item.powder_coal_tiny.name=Кучка угольного порошка item.powder_cobalt.name=Кобальтовый порошок item.powder_cobalt_tiny.name=Кучка кобальтового порошка item.powder_coltan.name=Очищенный танталит -item.powder_coltan_ore.name=Измельченный Колтан -item.powder_combine_steel.name=Измельченная сталь Альянса +item.powder_coltan_ore.name=Измельчённый колтан +item.powder_combine_steel.name=Измельчённая сталь Альянса item.powder_copper.name=Медный порошок item.powder_cs137.name=Порошок цезия-137 item.powder_cs137_tiny.name=Кучка порошка цезия-137 @@ -4142,10 +4237,10 @@ item.powder_desh_mix.name=Смесь деш item.powder_desh_ready.name=ГотоваяДеш™ смесь item.powder_diamond.name=Алмазный порошок item.powder_dineutronium.name=Динейтрониевый порошок -item.powder_dura_steel.name=Измельченная высокоскоростная сталь +item.powder_dura_steel.name=Измельчённая быстрорежущая сталь item.powder_emerald.name=Изумрудный порошок item.powder_euphemium.name=Эвфемиевый порошок -item.powder_euphemium.desc=Измельченный розовый.$На вкус как клубника. +item.powder_euphemium.desc=Измельчённая розовость.$На вкус как клубника. item.powder_fertilizer.name=Промышленное удобрение item.powder_fire.name=Красный фосфор item.powder_fire.desc=Используется в многоцелевых бомбах:$Зажигательные бомбы - это весело! @@ -4165,8 +4260,8 @@ item.powder_lignite.name=Порошок бурого угля item.powder_limestone.name=Известняковый порошок item.powder_lithium.name=Литиевый порошок item.powder_lithium_tiny.name=Кучка литиевого порошка -item.powder_magic.name=Измельченное зачарование -item.powder_magnetized_tungsten.name=Измельченный намагниченный вольфрам +item.powder_magic.name=Измельчённое зачарование +item.powder_magnetized_tungsten.name=Измельчённый намагниченный вольфрам item.powder_meteorite.name=Метеоритный порошок item.powder_meteorite_tiny.name=Кучка метеоритного порошка item.powder_molysite.name=Молизит @@ -4180,7 +4275,7 @@ item.powder_paleogenite.name=Порошок палеогенита item.powder_paleogenite_tiny.name=Кучка палеогенитового порошка item.powder_plutonium.name=Плутониевый порошок item.powder_poison.name=Ядовитый порошок -item.powder_poison.desc=Используется в многоцелевых бомбах:$Внимание: Ядовито! +item.powder_poison.desc=Используется в многоцелевых бомбах:$Внимание: ядовито! item.powder_polonium.name=Порошок полония-210 item.powder_polymer.name=Полимерный порошок item.powder_power.name=Энерго-порошок @@ -4215,9 +4310,9 @@ item.powder_verticium.name=Вертициевый порошок item.powder_weidanium.name=Вейдановый порошок item.powder_xe135.name=Порошок ксенона-135 item.powder_xe135_tiny.name=Кучка порошка ксенона-135 -item.powder_yellowcake.name=Йеллоукейк +item.powder_yellowcake.name=Жёлтый кек item.powder_zirconium.name=Циркониевый порошок -item.power_net_tool.name=Анализатор энергосети +item.power_net_tool.name=Анализатор электросети item.pipette.name=Пипетка item.pipette_boron.name=Борная пипетка item.pipette_laboratory.name=Лабораторная пипетка @@ -4229,6 +4324,7 @@ item.primer_buckshot.name=Картечные Капсюли (x12) item.protection_charm.name=Талисман защиты item.prototype_kit.name=Комплект Прототипа item.pudding.name=Пудинг +item.pudding.desc=Что, если бы он сделал?$WЧто, если бы он не сделал?$Что, если бы если мир был сделан из пуддинга? item.pwr_fuel.bfb_am_mix.name=Стержень ВВЭР ЦБР с реакторным америцием item.pwr_fuel.bfb_pu241.name=Стержень ВВЭР ЦБР с плутонием-241 item.pwr_fuel.hea242.name=Топливный стержень ВВЭР с высокообогащённым америцием-242 @@ -4244,21 +4340,21 @@ item.pwr_fuel.men.name=Топливный стержень ВВЭР со сре item.pwr_fuel.mep.name=Топливный стержень ВВЭР со среднеобогащённым плутонием item.pwr_fuel.meu.name=Топливный стержень ВВЭР со среднеобогащённым ураном item.pwr_fuel.mox.name=Топливный стержень ВВЭР с МОКС-топливом -item.pwr_fuel_depleted.bfb_am_mix.name=Обедненный стержень ВВЭР ЦБР с реакторным америцием -item.pwr_fuel_depleted.bfb_pu241.name=Обедненный стержень ВВЭР ЦБР с плутонием-241 -item.pwr_fuel_depleted.hea242.name=Обедненный топливный стержень ВВЭР с высокообогащённым америцием-242 -item.pwr_fuel_depleted.hen237.name=Обедненный топливный стержень ВВЭР с высокообогащённым нептунием-237 -item.pwr_fuel_depleted.hep239.name=Обедненный топливный стержень ВВЭР с высокообогащённым плутонием-239 -item.pwr_fuel_depleted.hep241.name=Обедненный топливный стержень ВВЭР с высокообогащённым плутонием-241 -item.pwr_fuel_depleted.hes326.name=Обедненный топливный стержень ВВЭР с высокообогащённым шрабидием-326 -item.pwr_fuel_depleted.hes327.name=Обедненный топливный стержень ВВЭР с высокообогащённым шрабидием-327 -item.pwr_fuel_depleted.heu233.name=Обедненный топливный стержень ВВЭР с высокообогащённым ураном-233 -item.pwr_fuel_depleted.heu235.name=Обедненный топливный стержень ВВЭР с высокообогащённым ураном-235 -item.pwr_fuel_depleted.mea.name=Обедненный топливный стержень ВВЭР со среднеобогащённым америцием -item.pwr_fuel_depleted.men.name=Обедненный топливный стержень ВВЭР со среднеобогащённым нептунием -item.pwr_fuel_depleted.mep.name=Обедненный топливный стержень ВВЭР со среднеобогащённым плутонием -item.pwr_fuel_depleted.meu.name=Обедненный топливный стержень ВВЭР со среднеобогащённым ураном -item.pwr_fuel_depleted.mox.name=Обедненный топливный стержень ВВЭР с МОКС-топливом +item.pwr_fuel_depleted.bfb_am_mix.name=Обеднённый стержень ВВЭР ЦБР с реакторным америцием +item.pwr_fuel_depleted.bfb_pu241.name=Обеднённый стержень ВВЭР ЦБР с плутонием-241 +item.pwr_fuel_depleted.hea242.name=Обеднённый топливный стержень ВВЭР с высокообогащённым америцием-242 +item.pwr_fuel_depleted.hen237.name=Обеднённый топливный стержень ВВЭР с высокообогащённым нептунием-237 +item.pwr_fuel_depleted.hep239.name=Обеднённый топливный стержень ВВЭР с высокообогащённым плутонием-239 +item.pwr_fuel_depleted.hep241.name=Обеднённый топливный стержень ВВЭР с высокообогащённым плутонием-241 +item.pwr_fuel_depleted.hes326.name=Обеднённый топливный стержень ВВЭР с высокообогащённым шрабидием-326 +item.pwr_fuel_depleted.hes327.name=Обеднённый топливный стержень ВВЭР с высокообогащённым шрабидием-327 +item.pwr_fuel_depleted.heu233.name=Обеднённый топливный стержень ВВЭР с высокообогащённым ураном-233 +item.pwr_fuel_depleted.heu235.name=Обеднённый топливный стержень ВВЭР с высокообогащённым ураном-235 +item.pwr_fuel_depleted.mea.name=Обеднённый топливный стержень ВВЭР со среднеобогащённым америцием +item.pwr_fuel_depleted.men.name=Обеднённый топливный стержень ВВЭР со среднеобогащённым нептунием +item.pwr_fuel_depleted.mep.name=Обеднённый топливный стержень ВВЭР со среднеобогащённым плутонием +item.pwr_fuel_depleted.meu.name=Обеднённый топливный стержень ВВЭР со среднеобогащённым ураном +item.pwr_fuel_depleted.mox.name=Обеднённый топливный стержень ВВЭР с МОКС-топливом item.pwr_fuel_hot.bfb_am_mix.name=Горячий стержень ВВЭР ЦБР с реакторным америцием item.pwr_fuel_hot.bfb_pu241.name=Горячий стержень ВВЭР ЦБР с плутонием-241 item.pwr_fuel_hot.hea242.name=Горячий стержень ВВЭР с высокообогащённым америцием-242 @@ -4282,12 +4378,13 @@ item.radaway_strong.name=Усиленный антирадин item.radx.name=Рад-X item.radx.desc=Increases radiation resistance by 0.2 (37%) for 3 minutes item.rag.name=Тряпка +item.rag.desc=Бросьте в воду, чтобы намочить.$Нажмите правой кнопкой мыши, чтобы помочиться на тряпку. item.rag_damp.name=Влажная тряпка item.rag_piss.name=Пропитанная мочой тряпка -item.rangefinder.name=Дальнометр +item.rangefinder.name=Дальномер item.rbmk_fuel_balefire.name=Жар-топливный стержень РБМК item.rbmk_fuel_balefire_gold.name=Флэшголд-топливный стержень РБМК -item.rbmk_fuel_drx.name=§cДигамма топливный стержень РБМК§r +item.rbmk_fuel_drx.name=§cДигамма-топливный стержень РБМК§r item.rbmk_fuel_empty.name=Пустой топливный стержень РБМК item.rbmk_fuel_flashlead.name=Флэшлид-топливный стержень РБМК item.rbmk_fuel_hea241.name=Высокообогащённый америциевый-241 топливный стержень РБМК @@ -4321,7 +4418,7 @@ item.rbmk_lid.name=Покрывающая панель РБМК item.rbmk_lid_glass.name=Стеклянная покрывающая панель РБМК item.rbmk_pellet_balefire.name=Жар-топливная пеллета item.rbmk_pellet_balefire_gold.name=Флэшголд-топливная пеллета -item.rbmk_pellet_drx.name=§cДигамма топливная пеллета§r +item.rbmk_pellet_drx.name=§cДигамма-топливная пеллета§r item.rbmk_pellet_flashlead.name=Флэшлид-топливная пеллета item.rbmk_pellet_hea241.name=Высокообогащённая америциевая-241 топливная пеллета item.rbmk_pellet_hea242.name=Высокообогащённая америциевая-242 топливная пеллета @@ -4581,11 +4678,12 @@ item.sat_head_scanner.name=Сканер M700 item.sat_interface.name=Интерфейс спутникового управления item.sat_laser.name=Орбитальный Луч Смерти item.sat_lunar_miner.name=Модуль для добычи лунного грунта -item.sat_mapper.name=Спутник для Картографирования Поверхности +item.sat_mapper.name=Спутник для картографирования поверхности item.sat_miner.name=Модуль для добычи астероидов -item.sat_radar.name=Спутник с Радиолокационным Зондированием +item.sat_radar.name=Спутник с радиолокационным зондированием item.sat_resonator.name=Спутник с Зен-Резонатором item.sat_scanner.name=Спутник с модулем глубинно-ресурсного сканирования + item.sawblade.name=Лезвие пилорамы item.schnitzel_vegan.name=Вегетарианский шницель item.schrabidium_axe.name=Шрабидиевый топор @@ -4621,9 +4719,9 @@ item.settings_tool.name=Устройство настройки item.shackles.name=Оковы item.shellntm.name=Оболочка (%s) item.shimmer_axe.name=Отлитый топор -item.shimmer_axe_head.name=Тяжелое лезвие топора +item.shimmer_axe_head.name=Тяжёлое лезвие топора item.shimmer_handle.name=Усиленная полимерная ручка -item.shimmer_head.name=Тяжелая головка молота +item.shimmer_head.name=Тяжёлая головка молота item.shimmer_sledge.name=Отлитая кувалда item.singularity.name=Сингулярность item.singularity_counter_resonant.name=Заключённая контр-резонансная сингулярность @@ -4643,10 +4741,10 @@ item.solid_fuel_bf.name=Твердое топливо (Жар-пламя) item.solid_fuel_presto.name=Топливное полено item.solid_fuel_presto_bf.name=Топливное полено (Жар-пламя) item.solid_fuel_presto_triplet.name=Сжатые топливные поленья -item.solid_fuel_presto_triplet_bf.name=Сжатые топливные полена (Жар-пламя) +item.solid_fuel_presto_triplet_bf.name=Сжатые топливные поленья (Жар-пламя) item.solinium_core.name=Полустабильный солиниевый заряд item.solinium_igniter.name=Солиниевый импульсный воспламенитель -item.solinium_kit.name=Солиниевый комплект +item.solinium_kit.name=Комплект Синего Ополаскивателя item.solinium_propellant.name=Солиниевый сжимающий заряд item.sopsign.name=Боевой топор из знака С ОП item.spawn_duck.name=Золотое яйцо @@ -4801,7 +4899,7 @@ item.tsar_kit.name=Комплект Царь Бомбы item.turbine_titanium.name=Титановая паровая турбина item.turbine_tungsten.name=Усиленные лопасти турбовентилятора item.turret_biometry.name=Карта телелинка -item.turret_cheapo_ammo.name=Дешевые турельные боеприпасы 6x24 +item.turret_cheapo_ammo.name=Дешёвые турельные боеприпасы 6x24 item.turret_chip.name=Турельный чип искусственного интеллекта item.turret_control.name=Турельный контроллер item.turret_cwis_ammo.name=Барабан 20-мм патронов @@ -4812,6 +4910,7 @@ item.turret_rocket_ammo.name=Боекомплект ракетной турел item.turret_spitfire_ammo.name=AA-Снаряд item.turret_tau_ammo.name=Урановые боеприпасы Тау-турели item.twinkie.name=Твинки +item.twinkie.desc=Испортилось 600 лет назад! item.ullapool_caber.name=Аллапульское бревно item.undefined.name=Undefined item.upgrade_5g.name=Улучшение "5G излучение" @@ -4856,6 +4955,18 @@ item.wand_d.name=Отладочная палочка item.wand_k.name=Строительная палочка item.wand_s.name=Структурная палочка item.structure_custommachine.name=Жезл обозначения кастомных машин +item.warhead.desc.he=HE +item.warhead.desc.incendiary=Зажигательная +item.warhead.desc.cluster=Кассетная +item.warhead.desc.bunker_buster=Разрушитель бункеров +item.warhead.desc.nuclear=Ядерная +item.warhead.desc.thermonuclear=Термоядерная (TX) +item.warhead.desc.n2=N² +item.warhead.desc.balefire=Жар-ядерная +item.warhead.desc.schrabidium=Шрабидиевая +item.warhead.desc.taint=Порча +item.warhead.desc.cloud=Облако +item.warhead.desc.turbine=Турбина item.warhead_buster_large.name=Большая бункерная боеголовка item.warhead_buster_medium.name=Средняя бункерная боеголовка item.warhead_buster_small.name=Малая бункерная боеголовка @@ -4874,8 +4985,8 @@ item.warhead_nuclear.name=Ядерная боеголовка item.warhead_thermo_endo.name=Эндотермическая боеголовка item.warhead_thermo_exo.name=Экзотермическая боеголовка item.warhead_volcano.name=Тектоническая боеголовка -item.waste_mox.name=Обедненное МОКС-топливо -item.waste_natural_uranium.name=Обедненное природное урановое топливо +item.waste_mox.name=Обеднённое МОКС-топливо +item.waste_natural_uranium.name=Обеднённое природное урановое топливо item.waste_plate_mox.name=Обеднённая МОКС-топливная пластина item.waste_plate_pu238be.name=Обеднённая плутоний-238-бериллевая топливная пластина item.waste_plate_pu239.name=Обеднённая высокообогащённая плутониевая-239 топливная пластина @@ -4883,17 +4994,17 @@ item.waste_plate_ra226be.name=Обеднённая радий-226-берилле item.waste_plate_sa326.name=Обеднённая высокообогащённая шрабидий-326 топливная пластина item.waste_plate_u233.name=Обеднённая высокообогащённая уран-233 топливная пластина item.waste_plate_u235.name=Обеднённая высокообогащённая уран-235 топливная пластина -item.waste_plutonium.name=Обедненное плутониевое топливо -item.waste_schrabidium.name=Обедненное шрабидиевое топливо -item.waste_thorium.name=Обедненное ториевое топливо -item.waste_u235.name=Обедненное уран-235 топливо -item.waste_u233.name=Обедненное уран-233 топливо -item.waste_uranium.name=Обедненное урановое топливо -item.waste_zfb_mox.name=Обедненное ЦТС МОКС-топливо +item.waste_plutonium.name=Обеднённое плутониевое топливо +item.waste_schrabidium.name=Обеднённое шрабидиевое топливо +item.waste_thorium.name=Обеднённое ториевое топливо +item.waste_u235.name=Обеднённое уран-235 топливо +item.waste_u233.name=Обеднённое уран-233 топливо +item.waste_uranium.name=Обеднённое урановое топливо +item.waste_zfb_mox.name=Обеднённое ЦТС МОКС-топливо item.watch.name=Сломанные карманные часы item.watch.desc=Маленькие синие карманные часы.$На стекле есть несколько трещин,$и несколько осколков отсутствуют.$Перестали тикать в 2:34. item.watz_pellet.boron.name=Поглощающая Ватцз-пеллета из бора -item.watz_pellet.du.name=Поглощающая Ватцз-пеллета из обедненного урана +item.watz_pellet.du.name=Поглощающая Ватцз-пеллета из обеднённого урана item.watz_pellet.hes.name=Ватцз-пеллета из высокообогащённого шрабидия item.watz_pellet.lead.name=Поглощающая Ватцз-пеллета из свинца item.watz_pellet.les.name=Ватцз-пеллета из низкообогащённого шрабидия @@ -4904,18 +5015,18 @@ item.watz_pellet.nqd.name=Ватцз-пеллета из обогащённог item.watz_pellet.nqr.name=Ватцз-пеллета из наквадрии item.watz_pellet.hen.name=Ватцз-пеллета из высокообогащённого нептуния item.watz_pellet.schrabidium.name=Ватцз-пеллета из чистого шрабидия -item.watz_pellet_depleted.boron.name=Поглощающая Ватцз-пеллета из бора (Обедненная) -item.watz_pellet_depleted.du.name=Поглощающая Ватцз-пеллета из обедненного урана (Обедненная) -item.watz_pellet_depleted.hes.name=Ватцз-пеллета из высокообогащённого шрабидия (Обедненная) -item.watz_pellet_depleted.lead.name=Поглощающая Ватцз-пеллета из свинца (Обедненная) -item.watz_pellet_depleted.les.name=Ватцз-пеллета из низкообогащённого шрабидия (Обедненная) -item.watz_pellet_depleted.mes.name=Ватцз-пеллета из среднеобогащённого шрабидия (Обедненная) -item.watz_pellet_depleted.mep.name=Ватцз-пеллета из среднеобогащённого плутония (Обедненная) -item.watz_pellet_depleted.meu.name=Ватцз-пеллета из среднеобогащённого урана (Обедненная) -item.watz_pellet_depleted.nqd.name=Ватцз-пеллета из обогащённого наквадаха (Обедненная) -item.watz_pellet_depleted.nqr.name=Ватцз-пеллета из наквадрии (Обедненная) -item.watz_pellet_depleted.hen.name=Ватцз-пеллета из высокообогащённого нептуния (Обедненная) -item.watz_pellet_depleted.schrabidium.name=Ватцз-пеллета из чистого шрабидия (Обедненная) +item.watz_pellet_depleted.boron.name=Поглощающая Ватцз-пеллета из бора (Обеднённая) +item.watz_pellet_depleted.du.name=Поглощающая Ватцз-пеллета из обеднённого урана (Обеднённая) +item.watz_pellet_depleted.hes.name=Ватцз-пеллета из высокообогащённого шрабидия (Обеднённая) +item.watz_pellet_depleted.lead.name=Поглощающая Ватцз-пеллета из свинца (Обеднённая) +item.watz_pellet_depleted.les.name=Ватцз-пеллета из низкообогащённого шрабидия (Обеднённая) +item.watz_pellet_depleted.mes.name=Ватцз-пеллета из среднеобогащённого шрабидия (Обеднённая) +item.watz_pellet_depleted.mep.name=Ватцз-пеллета из среднеобогащённого плутония (Обеднённая) +item.watz_pellet_depleted.meu.name=Ватцз-пеллета из среднеобогащённого урана (Обеднённая) +item.watz_pellet_depleted.nqd.name=Ватцз-пеллета из обогащённого наквадаха (Обеднённая) +item.watz_pellet_depleted.nqr.name=Ватцз-пеллета из наквадрии (Обеднённая) +item.watz_pellet_depleted.hen.name=Ватцз-пеллета из высокообогащённого нептуния (Обеднённая) +item.watz_pellet_depleted.schrabidium.name=Ватцз-пеллета из чистого шрабидия (Обёдненная) item.weapon_bat.name=Любимица Ричарда item.weapon_bat_nail.name=Клише item.weapon_golf_club.name=Клюшка русского бандита @@ -4933,9 +5044,9 @@ item.weapon_mod_generic.bronze_damage.name=Оптимизированный бр item.weapon_mod_generic.bronze_dura.name=Высокопрочные запчасти из бронзы item.weapon_mod_generic.desh_damage.name=Оптимизированный деш ресивер item.weapon_mod_generic.desh_dura.name=Высокопрочные запчасти из деша -item.weapon_mod_generic.dura_damage.name=Оптимизированный высокоскоростной ресивер -item.weapon_mod_generic.dura_dura.name=Высокопрочные запчасти из высокоскоростной стали -item.weapon_mod_generic.ferro_damage.name=Оптимизированный ферроураниевый ресивер +item.weapon_mod_generic.dura_damage.name=Оптимизированный ресивер из быстрорежущей стали +item.weapon_mod_generic.dura_dura.name=Высокопрочные запчасти из быстрорежущей стали +item.weapon_mod_generic.ferro_damage.name=Оптимизированный ферроурановый ресивер item.weapon_mod_generic.ferro_dura.name=Высокопрочные запчасти из ферроурана item.weapon_mod_generic.iron_damage.name=Оптимизированный железный ресивер item.weapon_mod_generic.iron_dura.name=Высокопрочные запчасти из железа @@ -4994,7 +5105,7 @@ item.wood_gavel.name=Деревянный молоток item.wrench.name=Газовый ключ item.wrench_archineer.name=Гаечный ключ инженера item.wrench_flipped.name=Лезвие на гаечном ключе -item.xanax.name=Препарат "НАКСА" против дигаммы +item.xanax.name=Препарат "НАКСА" против Дигаммы item.xanax.desc=Снимает 500mDRX item.zirconium_legs.name=Циркониевые штаны @@ -5019,7 +5130,7 @@ pa.pause_unloaded=Приостановлен pa.pause_unloaded.desc=Частица вошла$в незагруженный чанк. Операция$была приостановлена$до тех пор пока частица и источник частиц$не будут загружены. #The particle has entered an$unloaded chunk. The operation has$been suspended, until both the$particle and the particle source$are loaded. pa.crash_defocus=Расфокус! -pa.crash_defocus.desc=Частица потеряла фокус.$Убедитесь что ускоритель имеет достаточное количество квадрупольных магнитов. +pa.crash_defocus.desc=Частица потеряла фокус.$Убедитесь, что ускоритель имеет достаточное количество квадрупольных магнитов. pa.crash_derail=Сход с рельсов! pa.crash_derail.desc=Частица вышла за пределы ускорителя.$Убедитесь что никакие части не отсутствуют,$и что диполи настроены правильно. pa.crash_cannot_enter=Отклонено! @@ -5068,7 +5179,7 @@ radar.target.custom1015=Ракета 10/15 размера radar.target.custom15=Ракета 15 размера radar.target.custom1520=Ракета 15/20 размера radar.target.custom20=Ракета 20 размера -radar.target.doomsday=Ракета судного дня +radar.target.doomsday=Ракета Судного Дня radar.target.shuttle=Космический шаттл Reliant Robin radar.target.tier0=Ракета 0-го уровня radar.target.tier1=Ракета 1-го уровня @@ -5104,7 +5215,18 @@ rbmk.screen.rod=Управ: %s rbmk.screen.temp=Темп: %s rbmk.screen.xenon=Ксенон: %s -shape.barrelHeavy=Тяжелый ствол +satchip.frequency=Частота спутника +satchip.foeq=Даёт тебе достижение. Это всё. +satchip.gerald.desc=Одноразовый.$Требует орбитальный модуль.$Плавитель процессоров, проклятие администраторов серверов. +satchip.laser=Позволяет вызывать лазеры с перезарядкой 15 секунд.. +satchip.mapper=Отображает загруженные в данный момент чанки. +satchip.miner=Доставит рудный порошок на грузовую посадочную площадку. +satchip.lunar_miner=Добывает лунный грунт, чтобы доставить его на грузовую посадочную площадку. +satchip.radar=Показывает карту активных сущностей. +satchip.resonator=Позволяет телепортироваться без перезарядки. +satchip.scanner=Создает карту подземных руд сверху вниз. + +shape.barrelHeavy=Тяжёлый ствол shape.barrelLight=Лёгкий ствол shape.billet=Заготовка shape.blade=Лопасть @@ -5154,7 +5276,7 @@ tile.anvil_bismuth.name=Висмутовая наковальня tile.anvil_bismuth_bronze.name=Наковальня из висмутовой бронзы tile.anvil_desh.name=Деш-наковальня tile.anvil_dnt.name=Динейтрониевая наковальня -tile.anvil_ferrouranium.name=Ферроураниевая наковальня +tile.anvil_ferrouranium.name=Ферроурановая наковальня tile.anvil_iron.name=Железная наковальня tile.anvil_lead.name=Свинцовая наковальня tile.anvil_meteorite.name=Метеоритовая наковальня @@ -5217,9 +5339,9 @@ tile.block_copper.name=Медный блок tile.block_corium.name=Кориум tile.block_corium_cobble.name=Буриум tile.block_daffergon.name=Даффергоновый блок -tile.block_desh.name=Укрепленный блок деш +tile.block_desh.name=Укреплённый блок деш tile.block_dineutronium.name=Блок динейтрония -tile.block_dura_steel.name=Укрепленный блок высокоскоростной стали +tile.block_dura_steel.name=Укреплённый блок быстрорежущей стали tile.block_electrical_scrap.name=Блок отходов электроники tile.block_euphemium.name=Блок эвфемия tile.block_euphemium_cluster.name=Эвфемиево-вытравленный кластер шрабидия @@ -5249,7 +5371,7 @@ tile.block_meteor_treasure.name=Блок метеоритных сокровищ tile.block_mox_fuel.name=Блок МОКС топлива tile.block_neptunium.name=Нептуниевый блок tile.block_niter.name=Блок селитры -tile.block_niter_reinforced.name=Укрепленный блок селитры +tile.block_niter_reinforced.name=Укреплённый блок селитры tile.block_niobium.name=Блок ниобия tile.block_plutonium.name=Плутониевый блок tile.block_plutonium_fuel.name=Блок плутониевого топлива @@ -5297,7 +5419,7 @@ tile.block_waste_painted.name=Покрашенный блок ядерных о tile.block_waste_vitrified.name=Блок остеклованных ядерных отходов tile.block_weidanium.name=Вейданиевый блок tile.block_white_phosphorus.name=Блок белого фосфора -tile.block_yellowcake.name=Блок йеллоукейка +tile.block_yellowcake.name=Блок жёлтого кека tile.block_zirconium.name=Блок циркония tile.boat.name=Лодка tile.bobblehead.name=Болванчик @@ -5393,8 +5515,8 @@ tile.cm_circuit.schrabidium.name=Блок микросхем 5-го уровня tile.cm_engine.bismuth.name=Моторный блок из висмута tile.cm_engine.desh.name=Моторный блок из деша tile.cm_engine.standard.name=Моторный блок -tile.cm_flux.name=Приемник нейтронного потока -tile.cm_heat.name=Теплоприемник +tile.cm_flux.name=Приёмник нейтронного потока +tile.cm_heat.name=Теплоприёмник tile.cm_port.alloy.name=Люк из продвинутого сплава tile.cm_port.desh.name=Люк из деша tile.cm_port.steel.name=Люк из стали @@ -5418,7 +5540,7 @@ tile.concrete_brick_slab.brick_concrete_broken.name=Плита из разруш tile.concrete_brick_slab.brick_concrete_cracked.name=Плита из потресканных бетонных кирпичей tile.concrete_brick_slab.brick_concrete_mossy.name=Плита из замшелых бетонных кирпичей tile.concrete_brick_slab.brick_ducrete.name=Плита из дюкретовых кирпичей -tile.concrete_colored.black.name=Черный бетон +tile.concrete_colored.black.name=Чёрный бетон tile.concrete_colored.blue.name=Синий бетон tile.concrete_colored.brown.name=Коричневый бетон tile.concrete_colored.cyan.name=Бирюзовый бетон @@ -5471,19 +5593,19 @@ tile.corium_block.name=Кориум tile.crane_boxer.name=Конвейерный упаковщик tile.crane_boxer.desc=Загружает настраиваемое количество стопок в ящики, которые перемещаются по конвейерным лентам$Правый клик отверткой для установки входной стороны$Шифтовый клик отверткой для установки выходной стороны$Кликните дважды для установки противоположной стороны tile.crane_extractor.name=Конвейерный извлекатель -tile.crane_extractor.desc=Забирает предметы из инвентаря и помещает их на конвейерные ленты$Имеет до 9 слотов фильтрации с черным и белым списком$Правый клик отверткой для установки выходной стороны$Shift-клик отверткой для установки входной стороны$Кликните дважды для установки противоположной стороны +tile.crane_extractor.desc=Забирает предметы из инвентаря и помещает их на конвейерные ленты$Имеет до 9 слотов фильтрации с чёрным и белым списком$Правый клик отверткой для установки выходной стороны$Shift-клик отверткой для установки входной стороны$Кликните дважды для установки противоположной стороны tile.crane_grabber.name=Конвейерный сборщик -tile.crane_grabber.desc=Принимает предметы с проходящих конвейеров и помещает их в контейнеры$Принимает предметы только с ближайшей дорожки$Имеет до 9 слотов фильтрации с черным и белым списком$Правый клик отверткой для установки стороны входа$Сменный клик отверткой для установки стороны выхода$Кликните дважды для установки противоположной стороны +tile.crane_grabber.desc=Принимает предметы с проходящих конвейеров и помещает их в контейнеры$Принимает предметы только с ближайшей дорожки$Имеет до 9 слотов фильтрации с чёрным и белым списком$Правый клик отверткой для установки стороны входа$Сменный клик отверткой для установки стороны выхода$Кликните дважды для установки противоположной стороны tile.crane_inserter.name=Конвейерный вставщик tile.crane_inserter.desc=Принимает предметы с конвейеров и помещает их в контейнеры$Правый щелчок отверткой для установки входной стороны$Shift-щелчок отверткой для установки выходной стороны$Кликните дважды для установки противоположной стороны tile.crane_partitioner.name=Вставщик окислителя tile.crane_partitioner.desc=Принимает и сохраняет до девяти входов рудного окислителя$и освобождает их, если они соответствуют требуемому размеру входа.$Неправильные предметы также сохраняются и должны быть извлечены из стороны. tile.crane_router.name=Конвейерный сортировщик -tile.crane_router.desc=Сортирует элемент на основе заданных критериев$Стороны могут быть определены как черный список, белый список или подстановочный знак$Стороны подстановочного знака выбираются только в том случае, если ни один другой фильтр не подходит +tile.crane_router.desc=Сортирует элемент на основе заданных критериев$Стороны могут быть определены как чёрный список, белый список или подстановочный знак$Стороны подстановочного знака выбираются только в том случае, если ни один другой фильтр не подходит tile.crane_splitter.name=Конвейерный разделитель tile.crane_splitter.desc=Разделяет предметы и равномерно укладывает их на две конвейерные ленты$Сама является конвейерной лентой, поэтому может напрямую входить в вставщик или сортировщик$Соотношение можно настроить с помощью отвертки tile.crane_unboxer.name=Конвейерный распаковщик -tile.crane_unboxer.desc=Прием коробок и извлечение их содержимого$Правый щелчок отверткой для установки выходной стороны$Shift-щелчок отверткой для установки входной стороны$Дважды щелкните для установки противоположной стороны +tile.crane_unboxer.desc=Приём коробок и извлечение их содержимого$Правый щелчок отверткой для установки выходной стороны$Shift-щелчок отверткой для установки входной стороны$Дважды щелкните для установки противоположной стороны tile.crashed_bomb.name=Неразорвавшаяся бомба tile.crate.name=Ящик снабжения tile.crate_ammo.name=Ящик из звёздного металла @@ -5499,7 +5621,7 @@ tile.crate_supply.name=Ящик с припасами tile.crate_template.name=Сборочный ящик tile.crate_tungsten.name=Вольфрамовый ящик tile.crate_weapon.name=Ящик с оружием -tile.crystal_hardened.name=Закаленный темный кристалл +tile.crystal_hardened.name=Закаленный тёмный кристалл tile.crystal_pulsar.name=Пульсирующий кристалл tile.crystal_virus.name=Тёмный кристалл tile.deco_aluminium.name=Алюминиевый декоративный блок @@ -5595,14 +5717,14 @@ tile.factory_titanium_furnace.name=Люк доступа базовой фабр tile.factory_titanium_hull.name=Корпус базовой фабрики tile.fallout.name=Радиоактивный осадок tile.fan.name=Вентилятор -tile.fan.desc=Активируется редстоуном$Толкает существ до 10 блоков$ПКМ отвёрткой чтобы повернуть$ПКМ ручным сверлом чтобы переключить режим +tile.fan.desc=Активируется редстоуном$Толкает существ до 10 блоков$ПКМ отвёрткой, чтобы повернуть$ПКМ ручной дрелью, чтобы переключить режим tile.fan.falloffOn=Сила вентилятора уменьшается с расстоянием tile.fan.falloffOff=Постоянная сила вентилорая tile.fence_metal.name=Проволочная сетка tile.fence_metal_post.name=Столб проволочной сетки tile.field_disturber.name=Подавитель высокоэнергитических полей tile.filing_cabinet.green.name=Пыльный картотечный шкафчик -tile.filing_cabinet.steel.name=Стальной карточеный шкафчик +tile.filing_cabinet.steel.name=Стальной картотечный шкафчик tile.fire_digamma.name=Затяжная Дигамма tile.fire_door.name=Пожарная дверь tile.fireworks.name=Батарея фейерверков @@ -5685,8 +5807,8 @@ tile.glyphid_spawner.name=Спавнер улья глифидов tile.gneiss_brick.name=Сланцевые кирпичи tile.gneiss_chiseled.name=Высеченный сланец tile.gneiss_tile.name=Сланцевая плитка -tile.gravel_diamond.name=Измельченные алмазы -tile.gravel_obsidian.name=Измельченный обсидиан +tile.gravel_diamond.name=Измельчённые алмазы +tile.gravel_obsidian.name=Измельчённый обсидиан tile.hadron_access.name=Терминал доступа ускорителя частиц tile.hadron_analysis.name=Стенка камеры ускорителя частиц tile.hadron_analysis_glass.name=Окно камеры ускорителя частиц @@ -5720,7 +5842,7 @@ tile.heater_firebox.name=Топка tile.heater_firebox.desc=Производит тепло, сжигая твёрдое топливо. tile.heater_heatex.name=Теплообменный нагреватель tile.heater_heatex.desc=Выделяет тепло из горячих жидкостей. -tile.heater_oilburner.name=Жидкостный бойлер +tile.heater_oilburner.name=Жидкостный котёл tile.heater_oilburner.desc=Производит тепло, сжигая жидкое топливо.$Может быть настроено с помощью отвертки. tile.heater_oven.name=Нагревательная печь tile.heater_oven.desc=Производит тепло, сжигая твёрдое топливо.$Принимает тепло снизу с 50%% эффективностью. @@ -5787,7 +5909,7 @@ tile.machine_assemfac.name=Сборочный завод tile.machine_assembly_machine.name=Сборочная машина tile.machine_autocrafter.name=Автоматический верстак tile.machine_autosaw.name=Автоматическая пила -tile.machine_autosaw.desc=Срубает ближайшие растения, пересаживает деревья$Принимает:$-Древесное масло$-Этанол$-Рыбное масло$-Тяжелую нефть +tile.machine_autosaw.desc=Срубает ближайшие растения, пересаживает деревья$Принимает:$-Древесное масло$-Этанол$-Рыбное масло$-Тяжёлую нефть tile.machine_autosaw.suspended=Приостановлена tile.machine_bat9000.name=Охереть-большая цистерна 9000 tile.machine_battery.name=Энергохранилище @@ -5821,7 +5943,7 @@ tile.machine_controller.name=Блок удалённого доступа к р tile.machine_converter_he_rf.name=Конвертер энергии HE в RF tile.machine_converter_rf_he.name=Конвертер энергии RF в HE tile.machine_conveyor_press.name=Конвейерный пресс -tile.machine_conveyor_press.desc=Лента двигается слево-направо$ПКМ чтобы установить штамп$ПКМ отвёрткой чтобы снять штамп +tile.machine_conveyor_press.desc=Лента двигается слева направо$ПКМ, чтобы установить штамп$ПКМ отвёрткой, чтобы снять штамп tile.machine_crucible.name=Плавильня tile.machine_crystallizer.name=Рудный окислитель tile.machine_cyclotron.name=Циклотрон @@ -6018,7 +6140,7 @@ tile.ore_gneiss_lithium.name=Сланцевая литиевая руда tile.ore_gneiss_rare.name=Сланцевая редкоземельная руда tile.ore_gneiss_schrabidium.name=Сланцевая шрабидиевая руда tile.ore_gneiss_uranium.name=Сланцевая урановая руда -tile.ore_gneiss_uranium_scorched.name=Обожённая сланцевая урановая руда +tile.ore_gneiss_uranium_scorched.name=Обожжённая сланцевая урановая руда tile.ore_lead.name=Свинцовая руда tile.ore_lignite.name=Бурый уголь tile.ore_meteor.aluminium.name=Метеоритная алюминиевая руда @@ -6045,7 +6167,7 @@ tile.ore_nether_smoldering.name=Тлеющий адский камень tile.ore_nether_sulfur.name=Адская серная руда tile.ore_nether_tungsten.name=Адская вольфрамовая руда tile.ore_nether_uranium.name=Адская урановая руда -tile.ore_nether_uranium_scorched.name=Обожённая адская урановая руда +tile.ore_nether_uranium_scorched.name=Обожжённая адская урановая руда tile.ore_niter.name=Селитровая руда tile.ore_oil.name=Нефтяной карман tile.ore_oil_empty.name=Пустой нефтяной карман @@ -6058,16 +6180,16 @@ tile.ore_sellafield_diamond.name=Селлафитовая алмазная ру tile.ore_sellafield_emerald.name=Селлафитовая изумрудная руда tile.ore_sellafield_radgem.name=Селлафитовый радиоактивный самоцвет tile.ore_sellafield_schrabidium.name=Селлафитовая шрабидиевая руда -tile.ore_sellafield_uranium_scorched.name=Обожженная селлафитовая урановая руда +tile.ore_sellafield_uranium_scorched.name=Обожжённая селлафитовая урановая руда tile.ore_sulfur.name=Серная руда -tile.ore_tektite_osmiridium.name=Перемешанный с осмиридием Тектит +tile.ore_tektite_osmiridium.name=Перемешанный с осмиридием тектит tile.ore_thorium.name=Ториевая руда tile.ore_tikite.name=Трикситовая руда tile.ore_titanium.name=Титановая руда tile.ore_tungsten.name=Вольфрамовая руда tile.ore_unobtainium.name=Брайтбленд tile.ore_uranium.name=Урановая руда -tile.ore_uranium_scorched.name=Обожженная урановая руда +tile.ore_uranium_scorched.name=Обожжённая урановая руда tile.ore_verticium.name=Долларовый Зелёный минерал tile.ore_volcano.name=Геотермальный источник tile.ore_weidanium.name=Вейдитит @@ -6082,7 +6204,7 @@ tile.pa_quadrupole.desc=Требует охлаждения!$Уменьшает tile.pa_rfc.name=Радиочастотный резонатор tile.pa_rfc.desc=Требует охлаждения!$Ускоряет частицы на 100 единиц,$и увеличивает расфокус на 100 единиц.$Частица столкнется при достижении расфокуса в 1000 единиц. tile.pa_source.name=Источник частиц -tile.pa_source.desc=Требует охлаждения!$Использует два предмета чтобы создать частицу. +tile.pa_source.desc=Требует охлаждения!$Использует два предмета, чтобы создать частицу. tile.part_emitter.name=Декоративный источник частиц tile.pedestal.name=Пьедестал tile.pink_barrel.name=Керосиновая бочка @@ -6118,7 +6240,7 @@ tile.pribris_burning.name=Горящие обломки РБМК tile.pribris_digamma.name=Почерневшие обломки РБМК tile.pribris_radiating.name=Тлеющие обломки РБМК tile.pump_electric.name=Электрический насос для грунтовых вод -tile.pump_electric.desc=Использует электричество для выкачивания грунтовых вод$Выкачывает до 10,000мБ/тик$Должно быть размещено ниже Y:70 +tile.pump_electric.desc=Использует электричество для выкачивания грунтовых вод$Выкачивает до 10,000мБ/тик$Должно быть размещено ниже Y:70 tile.pump_steam.name=Паровой насос для грунтовых вод tile.pump_steam.desc=Использует пар для выкачивания грунтовых вод$Выкачывает до 1000мБ/тик$Должно быть размещено ниже Y:70 tile.pwr_block.name=Водо-водяной энергетический реактор (ВВЭР) @@ -6151,7 +6273,7 @@ tile.radio_torch_counter.name=Редстоун-радио счётчик пре tile.radio_torch_counter.desc=Ставится на плоские поверхности или совместимые компараторные блоки$Сигнал зависит от количества нужных предметов tile.radio_torch_logic.name=Редстоун-радио логический приёмник tile.radio_torch_logic.desc=Размещается на плоских поверхностях или совместимых с компаратором блоках$Сопоставляет сигналы красного камня с условиями, оцениваемыми в заданном порядке$Числовые или строковые входы сравниваются с константой -tile.radio_torch_reader.name=Редстоун-радио ридер +tile.radio_torch_reader.name=Редстоун-радио считыватель tile.radio_torch_reader.desc=Считывает значения из подключенных блоков,$а затем отправляет их с указанной частотой tile.radio_torch_receiver.name=Редстоун-радио приёмник tile.radio_torch_receiver.desc=Ставится на плоские поверхности или совместимые компараторные блоки @@ -6198,6 +6320,53 @@ tile.rbmk_steam_inlet.desc=Подает воду в колонны RBMK, есл tile.rbmk_steam_outlet.name=Порт вывода пара РБМК РеаСим tile.rbmk_steam_outlet.desc=Извлекает перегретый пар из колонн РБМК, если включены ReaSim бойлеры$Подключается к колоннам RBMK сбоку tile.rbmk_storage.name=Колонна-хранилище РБМК +tile.rbmk.dodd.heat=Температура колонны +tile.rbmk.dodd.reasimWater=Вода РеаСим +tile.rbmk.dodd.reasimSteam=Пар РеаСим +tile.rbmk.dodd.level=Уровень +tile.rbmk.dodd.targetLevel=Целевой уровень +tile.rbmk.dodd.startingLevel=Начальный уровень +tile.rbmk.dodd.mult=Мульт. +tile.rbmk.dodd.color=Цвет +tile.rbmk.dodd.levelLower=Уровень ниже +tile.rbmk.dodd.levelUpper=Уровень выше +tile.rbmk.dodd.heatLower=Температура ниже +tile.rbmk.dodd.heatUpper=Температура выше +tile.rbmk.dodd.function=Функция +tile.rbmk.dodd.fluxSlow=Медленный поток +tile.rbmk.dodd.fluxFast=Быстрый поток +tile.rbmk.dodd.hasRod=Имеет стержень +tile.rbmk.dodd.progress=Прогресс +tile.rbmk.dodd.gas=Газ +tile.rbmk.dodd.cooled=Охлажденный +tile.rbmk.dodd.burned=Сожженный +tile.rbmk.dodd.feed=Питание +tile.rbmk.dodd.steam=Пар +tile.rbmk.dodd.cryo=Крио +tile.rbmk.dodd.fuel=Топливо +tile.rbmk.dodd.f_heat=Температура топлива +tile.rbmk.dodd.f_xenon=Отравление ксеноном +tile.rbmk.dodd.f_yield=Выход топлива +tile.rbmk.dodd.feed_type=Тип питания(ID) +tile.rbmk.dodd.steam_type=Тип пара(ID) +tile.rbmk.dodd.cryo_type=Тип крио(ID) +tile.rbmk.dodd.gas_type=Тип газа(ID) +tile.rbmk.dodd.fuel_type=Тип топлива(ID) +tile.rbmk.dodd.feed_p=Давление +tile.rbmk.dodd.steam_p=Давление пара +tile.rbmk.dodd.cryo_p=Давление крио +tile.rbmk.dodd.gas_p=Давление газа +tile.rbmk.dodd.fuel_p=Давление топлива +tile.rbmk.dodd.feed_max=Максимальное количество питания +tile.rbmk.dodd.steam_max=Максимальное количество пара +tile.rbmk.dodd.cryo_max=Максимальное количество крио +tile.rbmk.dodd.gas_max=Максимальное количество газа +tile.rbmk.dodd.fuel_max=Максимальное количество топлива +tile.rbmk.dodd.feed_amt=Количество питания +tile.rbmk.dodd.steam_amt=Количество пара +tile.rbmk.dodd.cryo_amt=Количество крио +tile.rbmk.dodd.gas_amt=Количество газа +tile.rbmk.dodd.fuel_amt=Количество топлива tile.reactor_computer.name=Контроллер реактора tile.reactor_conductor.name=Бойлер реактора tile.reactor_control.name=Регулирующие стержни @@ -6311,7 +6480,7 @@ tile.stones_slab.lightstone.2.name=Плита из светлокаменног tile.struct_icf_core.name=Ядро инерциального термоядерного реактора (ICF) tile.struct_iter_core.name=Ядро термоядерного реактора tile.struct_launcher.name=Блок-компонент пусковой площадки -tile.struct_launcher_core.name=Compact Launch Pad Core Component +tile.struct_launcher_core.name=Ядро компактной пусковой площадки tile.struct_launcher_core_large.name=Ядро большой пусковой площадки tile.struct_plasma_core.name=Ядро нагревателя плазмы tile.struct_scaffold.name=Подмосток пусковой площадки @@ -6340,7 +6509,7 @@ tile.turret_chekhov.name=Крупнокалиберная пулеметная tile.turret_cwis.name=”Фэленкс” Mk-15 CIWS tile.turret_flamer.name=Турель с огнемётом tile.turret_friendly.name=Турель Гатлинга "Мистер Дружелюбный" -tile.turret_fritz.name=Тяжелая огнеметная турель "Фриц" +tile.turret_fritz.name=Тяжёлая огнеметная турель "Фриц" tile.turret_heavy.name=Турель с тяжёлым пулемётом tile.turret_himars.name=Ракетная артиллерийская турель "Генри" tile.turret_howard.name=Двойная турель Гатлинга CIWS "Говард" @@ -6407,7 +6576,7 @@ tile.sliding_seal_door.name=Раздвижная герметичная двер trait.asbestos=Содержит асбест trait.blinding=Ослепление trait.coal=Угольная пыль -trait.digamma=Дигамма радиация +trait.digamma=Дигамма-радиация trait.drop=Опасно выкидывать trait.explosive=Воспламеняющийся / Взрывоопасный trait.furnace=Даёт %s операций в ядерной печи @@ -6455,8 +6624,8 @@ trait.rbmx.xenon=Свинцовое отравление: %s trait.rbmx.xenonBurn=Функция разрушения свинца: %s trait.rbmx.xenonGen=Функция создания свинца: %s -trait.tile.cluster=Выпадает только тогда, когда разрушен игроком -trait.tile.depth=Может быть разрушен только взрывом +trait.tile.cluster=Выпадает только тогда, когда добыт игроком +trait.tile.depth=Может быть добыт только взрывом tool.ability.centrifuge=Авто-центрифуга tool.ability.crystallizer=Авто-кристаллизатор @@ -6466,7 +6635,7 @@ tool.ability.hammer_flat=Плоская зона действия tool.ability.luck=Удача tool.ability.mercury=Ртутное касание tool.ability.midas=Прикосновение Мидаса -tool.ability.recursion=Жилковый Майнер +tool.ability.recursion=Жилковый майнер tool.ability.shredder=Авто-измельчитель tool.ability.silktouch=Шёлковое касание tool.ability.smelter=Авто-плавка @@ -6538,3 +6707,5 @@ desc.gui.upgrade.power= * §1Энергосбережение§r: Стакает desc.gui.upgrade.speed= * §4Скорость§r: Стакается до 3-х уровней tile.oc_cable_paintable.name=Окрашиваемый сетевой кабель + +// Last updated 26.08.2025 by Bufka2011, MrKimkimora and TactiCOOLHimZa // diff --git a/src/main/resources/assets/hbm/lang/uk_UA.lang b/src/main/resources/assets/hbm/lang/uk_UA.lang index 623aa6faa..0c9a59171 100644 --- a/src/main/resources/assets/hbm/lang/uk_UA.lang +++ b/src/main/resources/assets/hbm/lang/uk_UA.lang @@ -184,6 +184,14 @@ armorMod.type.leggings=Наголінники armorMod.type.servo=Сервоприводи armorMod.type.special=Спеціальне +autoswitch=Частина групи автоматичного перемикання "%s"$Рецепт змінюється залежно від першого інгредієнта +autoswitch.plate=Переробка паливних пластин +autoswitch.plates=Металеві пластини +autoswitch.pwr=Переробка палива ВВЕР +autoswitch.schrab=Екстракція шрабідіуму +autoswitch.watz=Переробка Ватцз гранул +autoswitch.zirnox=Переробка ЦИРНОКС палива + battery.mode.buffer=Буферний режим battery.mode.input=Зарядка battery.mode.off=Вимкнено @@ -697,6 +705,10 @@ commands.satellite.satellite_descended=Супутник успішно спус commands.satellite.satellite_orbited=Супутник запущено. commands.satellite.should_be_run_as_player=Цю команду має виконати гравець! +commands.locate.no_match=Немає споруд з такою назвою! +commands.locate.none_found=Поруч не знайдено жодних споруд! +commands.locate.success.coordinates=Структуру %s знайдено на %d, %d + container.ammoBag=Сумка для боєприпасів container.amsBase=AMS Base (Deco) container.amsEmitter=AMS Emitter (Deco) @@ -794,6 +806,7 @@ container.machineLargeTurbine=Промислова парова турбіна container.machineLiquefactor=Скраплювач container.machineMixer=Промисловий змішувач container.machineOreSlopper=Переробник корінної руди +container.machinePUREX=PUREX container.machinePyroOven=Піролізна піч container.machineRefinery=Нафтопереробний завод container.machineRotaryFurnace=Роторна піч @@ -841,6 +854,7 @@ container.radar=Радар container.radiobox=FM-передавач container.radiolysis=РІТЕГ та радіолізна камера container.radiorec=FM радіо +container.rbmkAutoloader=Автозавантажувач РБМК container.rbmkBoiler=Паровий канал РБМК container.rbmkControl=Регулюючий стрижень РБМК container.rbmkControlAuto=Автоматичний регулюючий стрижень РБМК @@ -853,6 +867,7 @@ container.reactorBreeding=Реактор-розмножувач container.reactorControl=Блок дистанційного керування реактором container.reactorLarge=Великий ядерний реактор container.reactorResearch=Дослідницький реактор +container.rebar=Постановщик арматури container.reix=Rei-X Mainframe container.rtg=РІТЕГ container.rtgFurnace=РІТЕГ піч @@ -1461,6 +1476,7 @@ hbmfluid.coalgas=Вугільний бензин hbmfluid.coalgas_leaded=Етильований вугільний бензин hbmfluid.coaloil=Скраплене вугілля hbmfluid.colloid=Колоїд +hbmfluid.concrete=Рідкий бетон hbmfluid.coolant=Охолоджувальна рідина hbmfluid.coolant_hot=Гаряча охолоджувальна рідина hbmfluid.crackoil=Крекінгова нафта @@ -2108,7 +2124,7 @@ item.billet_nuclear_waste.name=Заготовка ядерних відході item.billet_pb209.name=Заготовка свинцю-209 item.billet_po210be.name=Заготовка полоній-210 берилію item.billet_polonium.name=Заготовка полонію-210 -item.billet_pu_mix.name=Заготовка реакторного полонію +item.billet_pu_mix.name=Заготовка реакторного плутонію item.billet_pu238.name=Заготовка плутонію-238 item.billet_pu238be.name=Заготовка плутоній-238 берилію item.billet_pu239.name=Заготовка плутонію-239 @@ -2161,6 +2177,7 @@ item.blades_desh.name=Деш леза подрібнювача item.blades_steel.name=Стальні леза подрібнювача item.blades_titanium.name=Титанові леза подрібнювача item.blowtorch.name=Паяльна лампа +item.blueprint_folder.name=Буклет з кресленнями item.blueprints.name=Креслення item.board_copper.name=Мідна панель item.boat_rubber.name=Гумовий човен @@ -2772,7 +2789,7 @@ item.fleija_igniter.name=Імпульсний запальник item.fleija_kit.name=Комплект F.L.E.I.J.A. item.fleija_propellant.name=Шрабідієвий заряд item.fluid_barrel_empty.name=Порожня бочка для рідини -item.fluid_barrel_full.name=Бочка для рідини: +item.fluid_barrel_full.name=Бочка для рідини: %s item.fluid_barrel_infinite.name=Нескінченна бочка для рідини item.fluid_duct.name=Трубопровід: item.fluid_identifier.name=Ідентифікатор рідини @@ -2783,10 +2800,12 @@ item.fluid_identifier.usage2=трубопроводів в діапазоні 64 item.fluid_identifier_multi.name=Мульти ідентифікатор рідини item.fluid_identifier_multi.info=Універсальний ідентифікатор рідини для: item.fluid_identifier_multi.info2=Другий тип: +item.fluid_pack_empty.name=Великий контейнер для рідини +item.fluid_pack_full.name=Упаковано %s item.fluid_tank_empty.name=Порожній універсальний резервуар для рідини -item.fluid_tank_full.name=Універсальний резервуар для рідини: +item.fluid_tank_full.name=Універсальний резервуар для рідини: %s item.fluid_tank_lead_empty.name=Порожній резервуар для небезпечних матеріалів -item.fluid_tank_lead_full.name=Резервуар для небезпечних матеріалів: +item.fluid_tank_lead_full.name=Резервуар для небезпечних матеріалів: %s item.fluorite.name=Флюорит item.flywheel_beryllium.name=Берилієвий маховик item.fmn.name=Таблетка флунітразепаму @@ -2907,6 +2926,7 @@ item.gun_amat.name=Антиматерієва гвинтівка item.gun_amat_penance.name=Покаяння item.gun_amat_subtlety.name=Витонченість item.gun_autoshotgun.name=Автоматичний дробовик +item.gun_autoshotgun_heretic.name=Єретик item.gun_autoshotgun_sexy.name=Сексі item.gun_autoshotgun_shredder.name=Шредер item.gun_b92.name=§9B92 Енергетичний пістолет§r @@ -3171,6 +3191,13 @@ item.insert_polonium.name=Полонієва вставка item.insert_steel.name=Важка сталева вставка item.insert_xsapi.name=Твердосплавна протикульна броневставка item.insert_yharonite.name=Яронітова вставка +item.item_expensive.bronze_tubes.name=Бронзові структурні елементи +item.item_expensive.circuit.name=Розширена друкована плата +item.item_expensive.computer.name=Мейнфрейм +item.item_expensive.ferro_plating.name=Армовані фероуранові панелі +item.item_expensive.heavy_frame.name=Важкий каркас +item.item_expensive.lead_plating.name=Радіаційно-стійке покриття +item.item_expensive.steel_plating.name=Болтове сталеве покриття item.item_secret.aberrator.name=Частина Абератора item.item_secret.canister.name=Композит SB-26 item.item_secret.controller.name=Пропрієтарний блок керування @@ -4069,6 +4096,7 @@ item.rbmk_tool.set=РБМК підключено! item.reacher.name=Вольфрамовий ухват item.reactor_core.name=Активна зона реактора розмножувача item.reactor_sensor.name=Дистанційний датчик реактора +item.rebar_placer.name=Встановлювач арматури item.record.glass.desc=? ? ? item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core item.record.ss.desc=Valve - Sector Sweep @@ -4753,6 +4781,11 @@ potion.hbm_stability=Стабільність potion.hbm_taint=Отруєння порчею potion.hbm_telekinesis=! ! ! +purex.recycle=Переробка %s +purex.schrab=Екстракція шрабідіуму з %s + +qmaw.tab=[ Натисніть %s для допомоги ] + radar.clearMap=Очистити карту radar.detectMissiles=Виявляти ракети radar.detectPlayers=Виявляти гравців @@ -5143,6 +5176,7 @@ tile.concrete_colored_ext.pink.name=Бетон "Вибір будівельни tile.concrete_colored_ext.purple.name=Бетон "Вибір будівельника" - Таємничий фіолетовий tile.concrete_colored_ext.sand.name=Бетон "Вибір будівельника" - Буря в пустелі tile.concrete_pillar.name=Армована залізобетонна колона +tile.concrete_rebar.name=Залізобетон tile.concrete_slab.asphalt.name=Плита з асфальту tile.concrete_slab.concrete.name=Плита з бетонної плитки tile.concrete_slab.concrete_asbestos.name=Плита з азбестобетону @@ -5315,12 +5349,12 @@ tile.floodlight.name=Потужний прожектор tile.fluid_duct.name=Універсальний рідинний трубопровід (Застаріло) tile.fluid_duct_box.name=Універсальний рідинний трубопровід (Boxduct) tile.fluid_duct_exhaust.name=Вихлопна труба -tile.fluid_duct_paintable_block_exhaust.name=Вихлопна труба з покриттям +tile.fluid_duct_paintable_block_exhaust.name=Вихлопна труба, яку можна пофарбувати tile.fluid_duct_gauge.name=Вимірювальна труба tile.fluid_duct_gauge.desc=Труба, що показує, скільки рідини$переміщується в мережі за один тік.$Розділені мережі, з'єднані бочками$або цистернами, вважаються однією спільною мережею. tile.fluid_duct_neo.name=Універсальний рідинний трубопровід -tile.fluid_duct_paintable.name=Універсальний рідинний трубопровід з покриттям -tile.fluid_duct_solid.name=Універсальний рідинний трубопровід з покриттям (Застаріло) +tile.fluid_duct_paintable.name=Універсальний рідинний трубопровід, який можна пофарбувати +tile.fluid_duct_solid.name=Універсальний рідинний трубопровід, який можна пофарбувати (Застаріло) tile.fluid_pump.name=Насос регулювання потоку tile.fluid_switch.name=Редстоун рідинний клапан tile.fluid_valve.name=Рідинний клапан @@ -5580,6 +5614,8 @@ tile.machine_powerrtg.name=Полоній-теннессинова ізотоп tile.machine_press.name=Твердопаливний прес tile.machine_puf6_tank.name=Цистерна гексафториду плутонію tile.machine_pumpjack.name=Верстат-гойдалка +tile.machine_purex.name=PUREX +tile.machine_purex.desc=Машина для переробки багатьох видів ядерного палива.$Для більшості рецептів потрібен гас та азотна кислота. tile.machine_pyrooven.name=Піролізна піч tile.machine_radar.name=Радар tile.machine_radar_large.name=Великий радар @@ -5870,6 +5906,7 @@ tile.rail_large_switch_flipped.name=Стандартний залізнични tile.rail_narrow.name=Вузькоколійні рейки tile.rail_wood.name=Дерев'яні рейки tile.rbmk_absorber.name=Борний поглинач нейтронів РБМК +tile.rbmk_autoloader.name=Автозавантажувач РБМК tile.rbmk_blank.name=Структурна колона РБМК tile.rbmk_boiler.name=Паровий канал РБМК tile.rbmk_console.name=Консоль РБМК @@ -5901,12 +5938,13 @@ tile.reactor_ejector.name=Reactor Waste Ejector tile.reactor_element.name=Reactor Chamber tile.reactor_hatch.name=Reactor Access Hatch tile.reactor_inserter.name=Reactor Fuel Inserter +tile.rebar.name=Арматура tile.red_barrel.name=Вибухова бочка tile.red_cable.name=Червономідний кабель tile.red_cable_classic.name=Червономідний кабель (Класичний) tile.red_cable_gauge.name=Датчик потужності tile.red_cable_gauge.desc=Кабель, який показує, скільки енергії$переміщується в мережі за один тік.$Розділені мережі, з’єднані блоками$накопичення енергії, вважаються однією спільною мережею. -tile.red_cable_paintable.name=Червономідний кабель, який можна фарбувати +tile.red_cable_paintable.name=Червономідний кабель, який можна пофарбувати tile.red_connector.name=Конектор електропередач tile.red_pylon.name=Опора лінії електропередач tile.red_pylon_large.name=Велика опора лінії електропередач @@ -6232,4 +6270,4 @@ desc.gui.upgrade.overdrive= * §7Перевантаження§r: Складає desc.gui.upgrade.power= * §1Енергозбереження§r: Складається до 3 рівнів desc.gui.upgrade.speed= * §4Швидкість§r: Складається до 3 рівнів -tile.oc_cable_paintable.name=Мережевий кабель, який можна фарбувати \ No newline at end of file +tile.oc_cable_paintable.name=Мережевий кабель, який можна пофарбувати \ No newline at end of file diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index c220e14b9..70b5f5ef4 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -2120,7 +2120,7 @@ item.canned_napalm.name=凝固汽油罐头 item.canned_napalm.desc=我喜欢早上闻着老梗的味道! item.canned_oil.name=机油罐头 item.canned_oil.desc=它既然能让发动机运转的更流畅,那为什么不能用在人类身上? -item.canned_pashtet.name=牛排罐头 +item.canned_pashtet.name=俄式肝酱罐头 item.canned_pashtet.desc=翻译服务不可用блядь! item.canned_pizza.name=意大利香肠比萨罐头 item.canned_pizza.desc=反人类罪 @@ -5566,6 +5566,53 @@ tile.rbmk_steam_inlet.desc=当启用ReaSim锅炉时向反应堆内输入水$从 tile.rbmk_steam_outlet.name=RBMK ReaSim蒸汽出口 tile.rbmk_steam_outlet.desc=当启用ReaSim锅炉时从反应堆内输出超热蒸汽$从侧面连接至反应堆结构 tile.rbmk_storage.name=RBMK燃料棒存储棒 +tile.rbmk.dodd.heat=温度 +tile.rbmk.dodd.reasimWater=ReaSim给水量 +tile.rbmk.dodd.reasimSteam=ReaSim蒸汽量 +tile.rbmk.dodd.level=控制棒深度 +tile.rbmk.dodd.targetLevel=目标深度 +tile.rbmk.dodd.startingLevel=起始深度 +tile.rbmk.dodd.mult=倍数 +tile.rbmk.dodd.color=颜色 +tile.rbmk.dodd.levelLower=深度下限 +tile.rbmk.dodd.levelUpper=深度上限 +tile.rbmk.dodd.heatLower=温度下限 +tile.rbmk.dodd.heatUpper=温度上限 +tile.rbmk.dodd.function=函数类型 +tile.rbmk.dodd.fluxSlow=慢中子计数 +tile.rbmk.dodd.fluxFast=快中子计数 +tile.rbmk.dodd.hasRod=是否有燃料棒 +tile.rbmk.dodd.progress=进度 +tile.rbmk.dodd.cooled=冷却中 +tile.rbmk.dodd.burned=燃烧中 +tile.rbmk.dodd.f_heat=燃料棒温度 +tile.rbmk.dodd.f_xenon=氙中毒指数 +tile.rbmk.dodd.f_yield=耐久 +tile.rbmk.dodd.gas=气体 +tile.rbmk.dodd.feed=工质储量 +tile.rbmk.dodd.steam=蒸汽储量 +tile.rbmk.dodd.cryo=凝胶储量 +tile.rbmk.dodd.fuel=燃料储量 +tile.rbmk.dodd.feed_type=工质种类(ID) +tile.rbmk.dodd.steam_type=蒸汽种类(ID) +tile.rbmk.dodd.cryo_type=凝胶种类(ID) +tile.rbmk.dodd.gas_type=气体种类(ID) +tile.rbmk.dodd.fuel_type=燃料种类(ID) +tile.rbmk.dodd.feed_p=工质压力 +tile.rbmk.dodd.steam_p=蒸汽压力 +tile.rbmk.dodd.cryo_p=凝胶压力 +tile.rbmk.dodd.gas_p=气体压力 +tile.rbmk.dodd.fuel_p=燃料压力 +tile.rbmk.dodd.feed_max=工质最大储量 +tile.rbmk.dodd.steam_max=蒸汽最大储量 +tile.rbmk.dodd.cryo_max=凝胶最大储量 +tile.rbmk.dodd.gas_max=气体最大储量 +tile.rbmk.dodd.fuel_max=燃料最大储量 +tile.rbmk.dodd.feed_amt=工质储量 +tile.rbmk.dodd.steam_amt=蒸汽储量 +tile.rbmk.dodd.cryo_amt=凝胶储量 +tile.rbmk.dodd.gas_amt=气体储量 +tile.rbmk.dodd.fuel_amt=燃料储量 tile.reactor_computer.name=反应堆控制器 tile.reactor_conductor.name=反应堆锅炉 tile.reactor_control.name=控制棒 @@ -6138,3 +6185,6 @@ purex.schrab=从 %s 中萃取Sa326 tile.machine_purex.name=钚铀还原提取设备(PUREX) tile.machine_purex.desc=可用于多种核燃料的再处理机器。$大多数配方需要用到硝酸和煤油。 qmaw.tab=[按 %s 键获取帮助] +commands.locate.no_match=没有具有此名称的结构! +commands.locate.none_found=未在附近找到结构! +commands.locate.success.coordinates=在 %2$d, %3$d 处找到结构 %1$s diff --git a/src/main/resources/assets/hbm/manual/material/alloy.json b/src/main/resources/assets/hbm/manual/material/alloy.json index 03ef80a7a..fc37bc84e 100644 --- a/src/main/resources/assets/hbm/manual/material/alloy.json +++ b/src/main/resources/assets/hbm/manual/material/alloy.json @@ -1,13 +1,17 @@ { "name": "Advanced Alloy", "icon": ["hbm:item.ingot_advanced_alloy", 1, 0], - "trigger": [["hbm:item.ingot_advanced_alloy"], ["hbm:item.powder_advanced_alloy"], ["hbm:item.plate_advanced_alloy"]], - "title": { - "en_US": "Advanced Alloy", - "ru_ru": "Продвинутый сплав" - }, + "trigger": [["hbm:item.ingot_advanced_alloy"], ["hbm:item.powder_advanced_alloy"], ["hbm:item.plate_advanced_alloy"]], + "title": { + "en_US": "Advanced Alloy", + "uk_UA": "Удосконалений сплав", + "zh_CN": "高级合金", + "ru_RU": "Продвинутый сплав" + }, "content": { "en_US": "Made in a [[blast furnace|Blast Furnace]] from [[steel|Steel]] and [[Minecraft grade copper|Minecraft Grade Copper]]. Makes better-than-diamond gear. Also used in some high-powered magnets for the [[fusion reactor|Fusion Reactor]] and the [[exposure chamber|Exposure Chamber]].", - "ru_RU": "Изготовлено в [[доменной печи|Blast Furnace]] из [[стали|Steel]] и [[красной меди|Minecraft Grade Copper]]. Из него делают инструменты, превосходящие алмазные. Также используется в некоторых мощных магнитах для [[термоядерного реактора|Fusion Reactor]] и [[камеры облучения|Exposure Chamber]]." + "uk_UA": "Виготовлено в [[доменній печі|Blast Furnace]] зі [[сталі|Steel]] та [[червоної міді|Minecraft Grade Copper]]. З нього робиться спорядження краще за алмазне. Також використовується в деяких потужних магнітах для [[термоядерного реактору|Fusion Reactor]] та [[камери опромінювання|Exposure Chamber]].", + "ru_RU": "Изготовлено в [[доменной печи|Blast Furnace]] из [[стали|Steel]] и [[красной меди|Minecraft Grade Copper]]. Из него делают инструменты, превосходящие алмазные. Также используется в некоторых мощных магнитах для [[термоядерного реактора|Fusion Reactor]] и [[камеры облучения|Exposure Chamber]].", + "zh_CN": "在[[高炉|Blast Furnace]]中使用[[钢|Steel]]和[[紫铜|Minecraft Grade Copper]]制成。其制成的工具比钻石更加优质。同时也能用于制作[[聚变反应堆|Fusion Reactor]]和[[辐照舱|Exposure Chamber]]的高能磁铁。" } } diff --git a/src/main/resources/assets/hbm/manual/material/aluminium.json b/src/main/resources/assets/hbm/manual/material/aluminium.json index 8bdf151bc..8a8af90d9 100644 --- a/src/main/resources/assets/hbm/manual/material/aluminium.json +++ b/src/main/resources/assets/hbm/manual/material/aluminium.json @@ -1,13 +1,17 @@ { "name": "Aluminium", "icon": ["hbm:item.ingot_aluminium", 1, 0], - "trigger": [["hbm:item.ingot_aluminium"], ["hbm:item.plate_aluminium"], ["hbm:item.powder_aluminium"]], - "title": { - "en_US": "Aluminium", - "ru_RU": "Алюминий" - }, + "trigger": [["hbm:item.ingot_aluminium"], ["hbm:item.plate_aluminium"], ["hbm:item.powder_aluminium"]], + "title": { + "en_US": "Aluminium", + "uk_UA": "Алюміній", + "ru_RU": "Алюминий", + "zh_CN": "铝" + }, "content": { "en_US": "Common, lightweight metal. Available early on from smelting cryolite ('aluminium-bearing ore') in a [[combination oven|Combination Oven]]. Can be made later by processing [[bauxite|Bauxite]], and [[electrolyzing|Electrolysis Machine]] the resulting alumina solution.

Used in piping, general fluid handling, as part of [[gunmetal|Gunmetal]] and missile fuselages.", - "ru_RU": "Обычный, легкий металл. Доступен на ранних этапах от плавки криолита ('алюминиевая руда') в [[коксовой печи|Combination Oven]]. Позже может быть получен путём обработки [[боксита|Bauxite]] и [[электролиза|Electrolysis Machine]] полученного раствора глинозёма.

Используется в трубах, общем обращении с жидкостями, как часть [[оружейного металла|Gunmetal]] и фюзеляжей ракет." + "uk_UA": "Звичайний, легкий метал. Доступний на ранніх стадіях шляхом плавлення кріоліту ('алюмінієвої руди') у [[коксовій печі|Combination Oven]]. Може бути отриманий пізніше шляхом обробки [[бокситів|Bauxite]], та [[електролізу|Electrolysis Machine]] отриманого розчину оксиду алюмінію.

Використовується в трубопроводах, загальній роботі з рідинами, як компонент [[гарматної бронзи|Gunmetal]] та фюзеляжів ракет.", + "ru_RU": "Распространённый легкий металл. Доступен на ранних этапах от плавки криолита ('алюминиевая руда') в [[коксовой печи|Combination Oven]]. Позже может быть получен путём обработки [[боксита|Bauxite]] и [[электролиза|Electrolysis Machine]] полученного раствора глинозёма.

Используется в трубах, общем обращении с жидкостями, как часть [[оружейного металла|Gunmetal]] и фюзеляжей ракет.", + "zh_CN": "常见的轻质金属,在早期可使用[[复式炼焦炉|Combination Oven]]冶炼冰晶石(含铝矿石)来得到铝。后期可通过加工[[铝土矿|Bauxite]],后使用[[电解机|Electrolysis Machine]]处理氧化铝溶液得到。

用于制作管道,一般流体储存,制作[[炮铜|Gunmetal]]和导弹弹体。" } } diff --git a/src/main/resources/assets/hbm/manual/material/arsenic.json b/src/main/resources/assets/hbm/manual/material/arsenic.json index d54f92d25..eee027fb1 100644 --- a/src/main/resources/assets/hbm/manual/material/arsenic.json +++ b/src/main/resources/assets/hbm/manual/material/arsenic.json @@ -1,13 +1,17 @@ { "name": "Arsenic", "icon": ["hbm:item.ingot_arsenic", 1, 0], - "trigger": [["hbm:item.ingot_arsenic"], ["hbm:item.nugget_arsenic"]], - "title": { - "en_US": "Arsenic", - "ru_RU": "Мышьяк" - }, + "trigger": [["hbm:item.ingot_arsenic"], ["hbm:item.nugget_arsenic"]], + "title": { + "en_US": "Arsenic", + "uk_UA": "Миш'як", + "ru_RU": "Мышьяк", + "zh_CN": "砷" + }, "content": { "en_US": "Obtainable by treating oily scraps with [[high-performance solvent|High-Performance Solvent]] in an [[acidizer|Ore Acidizer]]. Oily scraps can be created by [[shredding|Shredder]] polluted blocks created by the [[fracking tower|Hydraulic Fracking Tower]]. Primarily used as [[arsenic bronze|Arsenic Bronze]].", - "ru_RU": "Получается путём обработки нефтяных отходов [[высокоэффективным растворителем|High-Performance Solvent]] в [[рудном окислитиле|Ore Acidizer]]. Нефтяные отходы можно создать [[измельчением|Shredder]] загрязненных блоков, созданных [[башней гидроразрыва|Hydraulic Fracking Tower]]. В основном используется как [[мышьяковая бронза|Arsenic Bronze]]." + "uk_UA": "Отримується шляхом обробки нафтових відходів [[високоефективним розчинником|High-Performance Solvent]] в [[рудному окислювачі|Ore Acidizer]]. Нафтові відходи утворюються [[подрібненням|Shredder]] забруднених блоків, утворених [[вежею гідророзриву|Hydraulic Fracking Tower]]. В основному використовується як [[миш'якова бронза|Arsenic Bronze]].", + "ru_RU": "Получается путём обработки нефтяных отходов [[высокоэффективным растворителем|High-Performance Solvent]] в [[рудном окислитиле|Ore Acidizer]]. Нефтяные отходы можно создать [[измельчением|Shredder]] загрязненных блоков, созданных [[башней гидроразрыва|Hydraulic Fracking Tower]]. В основном используется как [[мышьяковая бронза|Arsenic Bronze]].", + "zh_CN": "可通过在[[酸化机|Ore Acidizer]]中使用[[高性能溶剂|High-Performance Solvent]]处理油性废料获得。油性废料可在[[粉碎机|Shredder]]中粉碎[[水力压裂塔|Hydraulic Fracking Tower]]产生的污染方块获得。主要用于制作[[砷青铜|Arsenic Bronze]]。" } } diff --git a/src/main/resources/assets/hbm/manual/material/arsenic_bronze.json b/src/main/resources/assets/hbm/manual/material/arsenic_bronze.json index d53db5d12..eaec58dcb 100644 --- a/src/main/resources/assets/hbm/manual/material/arsenic_bronze.json +++ b/src/main/resources/assets/hbm/manual/material/arsenic_bronze.json @@ -1,13 +1,17 @@ { "name": "Arsenic Bronze", "icon": ["hbm:item.ingot_arsenic_bronze", 1, 0], - "trigger": [["hbm:item.ingot_arsenic_bronze"]], - "title": { - "en_US": "Arsenic Bronze", - "ru_RU": "Мышьяковая бронза" - }, + "trigger": [["hbm:item.ingot_arsenic_bronze"]], + "title": { + "en_US": "Arsenic Bronze", + "uk_UA": "Миш'якова бронза", + "ru_RU": "Мышьяковая бронза", + "zh_CN": "砷青铜" + }, "content": { "en_US": "Derivative of [[arsenic|Arsenic]] made in the [[crucible|Crucible]], therefore available only after building an [[RBMK]] due to requiring [[high-performance solvent|High-Performance Solvent]].

Fully interchangeable with [[bismuth bronze|Bismuth Bronze]].", - "ru_RU": "Производное от [[мышьяка|Arsenic]], изготовленное в [[плавильне|Crucible]], поэтому доступно только после постройки [[РБМК|RBMK]] из-за требования [[высокоэффективного растворителя|High-Performance Solvent]].

Полностью взаимозаменяемо с [[висмутовой бронзой|Bismuth Bronze]]." + "uk_UA": "Похідна від [[миш'яку|Arsenic]], виготовлена в [[ливарні|Crucible]], доступна лише після будівництва [[РБМК|RBMK]] через необхідність у [[високоефективному розчиннику|High-Performance Solvent]].

Повністю взаємозамінна з [[вісмутовою бронзою|Bismuth Bronze]].", + "ru_RU": "Производное от [[мышьяка|Arsenic]], изготовленное в [[плавильне|Crucible]], поэтому доступно только после постройки [[РБМК|RBMK]] из-за требования [[высокоэффективного растворителя|High-Performance Solvent]].

Полностью взаимозаменяемо с [[висмутовой бронзой|Bismuth Bronze]].", + "zh_CN": "使用[[砷|Arsenic]]在[[坩埚|Crucible]]中制作的衍生物,只能在建造[[RBMK]]之后获得,因为提取砷需要用到[[高性能溶剂|High-Performance Solvent]]。

和[[铋青铜|Bismuth Bronze]]完全通用。" } } diff --git a/src/main/resources/assets/hbm/manual/material/bakelite.json b/src/main/resources/assets/hbm/manual/material/bakelite.json index d5d232149..2d7a05db9 100644 --- a/src/main/resources/assets/hbm/manual/material/bakelite.json +++ b/src/main/resources/assets/hbm/manual/material/bakelite.json @@ -1,13 +1,17 @@ { "name": "Bakelite", "icon": ["hbm:item.ingot_bakelite", 1, 0], - "trigger": [["hbm:item.ingot_bakelite"], ["hbm:item.powder_bakelite"]], - "title": { - "en_US": "Bakelite", - "ru_RU": "Бакелит" - }, + "trigger": [["hbm:item.ingot_bakelite"], ["hbm:item.powder_bakelite"]], + "title": { + "en_US": "Bakelite", + "uk_UA": "Карболіт", + "ru_RU": "Бакелит", + "zh_CN": "电木" + }, "content": { "en_US": "Alternative to [[polymer|Polymer]] made from [[aromatic hydrocarbons|Aromatic Hydrocarbons]] derived from [[cracked oil products|Catalytic Cracking Tower]]. Completely interchangeable in all recipes.", - "ru_RU": "Альтернатива [[полимеру|Polymer]], изготовленная из [[ароматических углеводородов|Aromatic Hydrocarbons]], полученных из [[продуктов крекинга нефти|Catalytic Cracking Tower]]. Полностью взаимозаменяема во всех рецептах." + "uk_UA": "Карболіт (радянська назва бакеліту) — альтернатива [[полімеру|Polymer]], виготовлений з [[ароматичних вуглеводнів|Aromatic Hydrocarbons]], отриманих з [[продуктів крекінгу нафти|Catalytic Cracking Tower]]. Повністю взаємозамінний у всіх рецептах.", + "ru_RU": "Альтернатива [[полимеру|Polymer]], изготовленная из [[ароматических углеводородов|Aromatic Hydrocarbons]], полученных из [[продуктов крекинга нефти|Catalytic Cracking Tower]]. Полностью взаимозаменяема во всех рецептах.", + "zh_CN": "[[聚合物|Polymer]]的替代品,使用处理[[裂化油|Catalytic Cracking Tower]]得到的产品之一[[芳香烃|Aromatic Hydrocarbons]]制作。在所有配方中与聚合物完全通用。" } } diff --git a/src/main/resources/assets/hbm/manual/material/bismuth.json b/src/main/resources/assets/hbm/manual/material/bismuth.json index 9b3105586..40d513ca7 100644 --- a/src/main/resources/assets/hbm/manual/material/bismuth.json +++ b/src/main/resources/assets/hbm/manual/material/bismuth.json @@ -1,13 +1,17 @@ { "name": "Bismuth", "icon": ["hbm:item.ingot_bismuth", 1, 0], - "trigger": [["hbm:item.ingot_bismuth"], ["hbm:item.billet_bismuth"], ["hbm:item.nugget_bismuth"], ["hbm:item.powder_bismuth"]], - "title": { - "en_US": "Bismuth", - "ru_RU": "Висмут" - }, + "trigger": [["hbm:item.ingot_bismuth"], ["hbm:item.billet_bismuth"], ["hbm:item.nugget_bismuth"], ["hbm:item.powder_bismuth"]], + "title": { + "en_US": "Bismuth", + "uk_UA": "Вісмут", + "ru_RU": "Висмут", + "zh_CN": "铋" + }, "content": { "en_US": "Heavy metal, intially derived from reprocessing spent [[RBMK]] fuel in the [[SILEX]], can also be made from later stage bedrock ore processing using [[high-performance solvent|High-Performance Solvent]]. Primarily used as [[bismuth bronze|Bismuth Bronze]].", - "ru_RU": "Тяжелый металл, первоначально получаемый из переработки отработанного топлива [[РБМК|RBMK]] в [[SILEX]], также может быть получен из поздних стадий обработки бедроковой руды с использованием [[высокоэффективного растворителя|High-Performance Solvent]]. В основном используется в виде [[висмутовай бронзы|Bismuth Bronze]]." + "uk_UA": "Важкий метал, початково який можна отримати у результаті переробки відпрацьованого палива [[РБМК|RBMK]] в [[SILEX]], також може бути отриманий на пізнішій стадії переробки корінної руди з використанням [[високоефективного розчинника|High-Performance Solvent]]. Переважно використовуюється як [[вісмутова бронза|Bismuth Bronze]].", + "ru_RU": "Тяжёлый металл, первоначально получаемый из переработки отработанного топлива [[РБМК|RBMK]] в [[SILEX]], также может быть получен в поздние стадии обработки бедроковой руды с использованием [[высокоэффективного растворителя|High-Performance Solvent]]. В основном используется в виде [[висмутовой бронзы|Bismuth Bronze]].", + "zh_CN": "一种重金属,最初可使用[[SILEX]]回收枯竭的[[RBMK]]燃料获取,之后也可在基岩矿石处理的后期步骤中,使用[[高性能溶剂|Hing-Performance Solvent]]处理矿石获取。主要用于制作[[铋青铜|Bismuth Bronze]]。" } } diff --git a/src/main/resources/assets/hbm/manual/material/bismuth_bronze.json b/src/main/resources/assets/hbm/manual/material/bismuth_bronze.json index 07167ba3d..a2d5eb72d 100644 --- a/src/main/resources/assets/hbm/manual/material/bismuth_bronze.json +++ b/src/main/resources/assets/hbm/manual/material/bismuth_bronze.json @@ -1,13 +1,17 @@ { "name": "Bismuth Bronze", "icon": ["hbm:item.ingot_bismuth_bronze", 1, 0], - "trigger": [["hbm:item.ingot_bismuth_bronze"]], - "title": { - "en_US": "Bismuth Bronze", - "ru_RU": "Висмутовая бронза" - }, + "trigger": [["hbm:item.ingot_bismuth_bronze"]], + "title": { + "en_US": "Bismuth Bronze", + "uk_UA": "Вісмутова бронза", + "ru_RU": "Висмутовая бронза", + "zh_CN": "铋青铜" + }, "content": { "en_US": "Derivative of [[bismuth|Bismuth]] made in the [[crucible|Crucible]], therefore available only after building an [[RBMK]].

Fully interchangeable with [[arsenic bronze|Arsenic Bronze]].", - "ru_RU": "Производное от [[висмута|Bismuth]], изготовленное в [[плавильне|Crucible]], поэтому доступно только после постройки [[РБМК|RBMK]].

Полностью взаимозаменяемо с [[мышьяковой бронзой|Arsenic Bronze]]." + "uk_UA": "Похідна від [[вісмуту|Bismuth]], виготовлена в [[ливарні|Crucible]], доступна лише після будівництва [[РБМК|RBMK]]br>
Повністю взаємозамінна з [[миш'яковою бронзою|Arsenic Bronze]].", + "ru_RU": "Производное от [[висмута|Bismuth]], изготовленное в [[плавильне|Crucible]], поэтому доступно только после постройки [[РБМК|RBMK]].

Полностью взаимозаменяема с [[мышьяковой бронзой|Arsenic Bronze]].", + "zh_CN": "使用[[铋|Bismuth]]在[[坩埚|Crucible]]中制作的衍生物,只能在建造[[RBMK]]之后获得。

和[[砷青铜|Arsenic Bronze]]完全通用。" } } diff --git a/src/main/resources/assets/hbm/manual/material/bscco.json b/src/main/resources/assets/hbm/manual/material/bscco.json index a341b55af..562b4789d 100644 --- a/src/main/resources/assets/hbm/manual/material/bscco.json +++ b/src/main/resources/assets/hbm/manual/material/bscco.json @@ -1,13 +1,17 @@ { "name": "BSCCO", "icon": ["hbm:item.ingot_bscco", 1, 0], - "trigger": [["hbm:item.ingot_bscco"], ["hbm:item.wire_dense", 1, 48]], - "title": { - "en_US": "BSCCO", - "ru_RU": "BSCCO" - }, + "trigger": [["hbm:item.ingot_bscco"], ["hbm:item.wire_dense", 1, 48]], + "title": { + "en_US": "BSCCO", + "uk_UA": "Вісмут стронцій кальцій мідь оксид (BSCCO)", + "ru_RU": "BSCCO", + "zh_CN": "BSCCO超导体" + }, "content": { "en_US": "Powerful superconductor, used in high tier circuits and coils for the [[particle accelerator|Particle Accelerator]]. Requires [[bismuth|Bismuth]], and is therefore only obtainable after building an [[RBMK]].", - "ru_RU": "Мощный сверхпроводник, используемый в высокоуровневых цепях и катушках для [[ускорителя частиц|Particle Accelerator]]. Требует [[висмута|Bismuth]], и поэтому доступен только после постройки [[РБМК|RBMK]]." + "uk_UA": "Потужний надпровідник, що використовується у високоякісних платах та котушках для [[прискорювача часток|Particle Accelerator]]. Потребує [[вісмут|Bismuth]], і тому доступний лише після побудови [[РБМК|RBMK]].", + "ru_RU": "Мощный сверхпроводник, используемый в высокоуровневых цепях и катушках для [[ускорителя частиц|Particle Accelerator]]. Требует [[висмут|Bismuth]], и поэтому доступен только после постройки [[РБМК|RBMK]].", + "zh_CN": "强力的超导体,用于制作高等级的电路及用于[[粒子加速器|Particle Accelerator]]的线圈。需要[[铋|Bismuth]]制作,因此只能在建造[[RBMK]]后获得。" } } diff --git a/src/main/resources/assets/hbm/manual/material/cadmium.json b/src/main/resources/assets/hbm/manual/material/cadmium.json index 0de201080..10b34e06e 100644 --- a/src/main/resources/assets/hbm/manual/material/cadmium.json +++ b/src/main/resources/assets/hbm/manual/material/cadmium.json @@ -1,13 +1,17 @@ { "name": "Cadmium", "icon": ["hbm:item.ingot_cadmium", 1, 0], - "trigger": [["hbm:item.ingot_cadmium"], ["hbm:item.powder_cadmium"]], - "title": { - "en_US": "Cadmium", - "ru_RU": "Кадмий" - }, + "trigger": [["hbm:item.ingot_cadmium"], ["hbm:item.powder_cadmium"]], + "title": { + "en_US": "Cadmium", + "uk_UA": "Кадмій", + "ru_RU": "Кадмий", + "zh_CN": "镉" + }, "content": { "en_US": "Made by treating mustard willow leaves with [[high-performance solvent|High-Performance Solvent]]. Used in [[PVC]], a lategame alternate recipe for [[rubber|Rubber]] and for [[cadmium steel|Cadmium Steel]], which acts as a [[technetium steel|Technetium Steel]] substitute.", - "ru_RU": "Изготовлен путём обработки листьев горчичной ивы [[высокоэффективным растворителем|High-Performance Solvent]]. Используется в [[ПВХ|PVC]], позднеигровом альтернативном рецепте для [[резины|Rubber]] и для [[кадмиевой стали|Cadmium Steel]], которая действует как замена [[технециевой стали|Technetium Steel]]." + "uk_UA": "Виготовляється шляхом обробки листя гірчичної верби [[високоефективним розчинником|High-Performance Solvent]]. Використовується у [[полівінілхлориді|PVC]], пізньому альтернативному рецепті для [[гуми|Rubber]] та для [[кадмієвої сталі|Cadmium Steel]], яка виступає як замінник [[технецієвої сталі|Technetium Steel]].", + "ru_RU": "Изготовлен путём обработки листьев горчичной ивы [[высокоэффективным растворителем|High-Performance Solvent]]. Используется в [[ПВХ|PVC]], позднеигровом альтернативном рецепте для [[резины|Rubber]] и для [[кадмиевой стали|Cadmium Steel]], которая действует как замена [[технециевой стали|Technetium Steel]].", + "zh_CN": "使用[[高性能溶剂|High-Performance Solvent]]处理芥子柳叶获取。用于制作[[PVC]],也可用于游戏后期的[[橡胶|Rubber]]替代配方,以及制作[[锝钢|Technetium Steel]]的替代品[[镉钢|Cadmium Steel]]。" } } diff --git a/src/main/resources/assets/hbm/manual/material/cadmium_steel.json b/src/main/resources/assets/hbm/manual/material/cadmium_steel.json index 48ce8d495..776a3dc5e 100644 --- a/src/main/resources/assets/hbm/manual/material/cadmium_steel.json +++ b/src/main/resources/assets/hbm/manual/material/cadmium_steel.json @@ -1,13 +1,17 @@ { "name": "Cadmium Steel", "icon": ["hbm:item.ingot_cdalloy", 1, 0], - "trigger": [["hbm:item.ingot_cdalloy"]], - "title": { - "en_US": "Cadmium Steel", - "ru_RU": "Кадмиевая сталь" - }, + "trigger": [["hbm:item.ingot_cdalloy"]], + "title": { + "en_US": "Cadmium Steel", + "uk_UA": "Кадмієва сталь", + "ru_RU": "Кадмиевая сталь", + "zh_CN": "镉钢" + }, "content": { "en_US": "Corrosion-resistant alloy, made from [[steel|Steel]] and [[cadmium|Cadmium]]. Alternative to [[technetium steel|Technetium Steel]] in most recipes.", - "ru_RU": "Коррозионно-стойкий сплав, изготовленный из [[стали|Steel]] и [[кадмия|Cadmium]]. Альтернатива [[технециевой стали|Technetium Steel]] в большинстве рецептов." + "uk_UA": "Корозійностійкий сплав, виготовлений зі [[сталі|Steel]] та [[кадмію|Cadmium]]. Альтернатива [[технецієвій сталі|Technetium Steel]] в більшості рецептів.", + "ru_RU": "Коррозионно-стойкий сплав, изготовленный из [[стали|Steel]] и [[кадмия|Cadmium]]. Альтернатива [[технециевой стали|Technetium Steel]] в большинстве рецептов.", + "zh_CN": "由[[钢|Steel]]和[[镉|Cadmium]]制成的耐腐蚀合金,可在大部分配方中替代[[锝钢|Technetium Steel]]。" } } diff --git a/src/main/resources/assets/hbm/manual/material/cinnabar.json b/src/main/resources/assets/hbm/manual/material/cinnabar.json index bb721bf6f..75596122a 100644 --- a/src/main/resources/assets/hbm/manual/material/cinnabar.json +++ b/src/main/resources/assets/hbm/manual/material/cinnabar.json @@ -1,13 +1,17 @@ { "name": "Cinnabar", "icon": ["hbm:item.cinnebar", 1, 0], - "trigger": [["hbm:item.cinnebar"]], - "title": { - "en_US": "Cinnabar", - "ru_RU": "Киноварь" - }, + "trigger": [["hbm:item.cinnebar"]], + "title": { + "en_US": "Cinnabar", + "uk_UA": "Кіновар", + "ru_RU": "Киноварь", + "zh_CN": "朱砂" + }, "content": { "en_US": "Rare ore. Can be [[acidized|Ore Acidizer]] into 375mB worth of [[mercury|Mercury]] drops, or [[combination smelted|Combination Oven]] into 100mB of mercury and some sulfur. Mainly exists as an early means to get mercury for [[desh|Desh]] production.", - "ru_RU": "Редкая руда. Может быть [[обработана кислотой|Ore Acidizer]] в 375 мБ капель [[ртути|Mercury]] или [[переплавлена в коксовой печи|Combination Oven]] в 100 мБ ртути и немного серы. В основном используется как ранний способ получения ртути для производства [[деша|Desh]]." + "uk_UA": "Рідкісна руда. Може бути [[окислена|Ore Acidizer]] в 375mB [[ртуті|Mercury]] (3 краплі ртуті), або виплавлена у [[коксовій печі|Combination Oven]] в 100mB ртуті та трохи сірки. Здебільшого використовується як ранній спосіб отримання ртуті для виробництва [[деш|Desh]].", + "ru_RU": "Редкая руда. Может быть [[обработана кислотой|Ore Acidizer]] в 375 мБ капель [[ртути|Mercury]] или [[переплавлена в коксовой печи|Combination Oven]] в 100 мБ ртути и немного серы. В основном используется как ранний способ получения ртути для производства [[деш|Desh]].", + "zh_CN": "稀有矿物,可[[酸化|Ore Acidizer]]为相当于375mB流体的[[水银|Mercury]]液滴,也可[[炼焦|Combination Oven]]为100mB水银和一个硫粉。其主要作为获取生产[[Desh]]需要的水银的早期手段。" } } diff --git a/src/main/resources/assets/hbm/manual/material/coke.json b/src/main/resources/assets/hbm/manual/material/coke.json index 234ab7588..d5ff23cef 100644 --- a/src/main/resources/assets/hbm/manual/material/coke.json +++ b/src/main/resources/assets/hbm/manual/material/coke.json @@ -1,13 +1,17 @@ { "name": "Coke", "icon": ["hbm:item.coke", 1, 0], - "trigger": [["hbm:item.coke", 1, 32767]], - "title": { - "en_US": "Coke", - "ru_RU": "Кокс" - }, + "trigger": [["hbm:item.coke", 1, 32767]], + "title": { + "en_US": "Coke", + "uk_UA": "Кокс", + "ru_RU": "Кокс", + "zh_CN": "焦炭" + }, "content": { "en_US": "High-purity carbon, has twice the burn value of coal. Can be pressed into [[graphite|Graphite]], used in various [[steel|Steel]] recipes or as a source of carbon for the [[crucible|Crucible]].

Coal coke can be made by smelting coal briquettes, or combination smelting coal in its various forms.

Lignite coke is made from the much cheaper and less powerful lignite in much the same way, despite this it has the same characteristics.

Petroleum coke is made either from non-coal tars in a [[combination oven|Combination Oven]], or by coking various types of oil in a [[coker|Coking Unit]].", - "ru_RU": "Высокочистый углерод, имеет вдвое большую энергию сгорания, чем уголь. Может быть спрессован в [[графит|Graphite]], используется в различных рецептах [[стали|Steel]] или как источник углерода для [[плавильни|Crucible]].

Угольный кокс можно получить путём переплавки угольных брикетов или комбинированной переплавки угля в различных формах.

Бурый кокс изготавливается из более дешёвого и менее мощного бурого угля тем же способом, но обладает теми же характеристиками.

Нефтяной кокс производится либо из неугольных смол в [[коксовой печи|Combination Oven]], либо путём коксования различных видов масла в [[коксовой установке|Coking Unit]]." + "uk_UA": "Високочистий вуглець, має вдвічі вищу горючість, ніж вугілля. Може бути зпресований у [[графіт|Graphite]], використовується у різних рецептах [[сталі|Steel]] або як джерело вуглецю для [[ливарні|Crucible]].

Вугільний кокс можна виготовляти шляхом обсмаження вугільних брикетів або коксування вугілля в різних його формах.

Буровугільний кокс виготовляється з набагато дешевшого та менш потужного бурого вугілля майже таким самим способом, незважаючи на це, він має ті ж характеристики.

Нафтовий кокс виготовляється або з невугільних смол у [[коксовій печі|Combination Oven]], або шляхом коксування різних видів нафтопродуктів у [[коксовій установці|Coking Unit]].", + "ru_RU": "Высокочистый углерод, имеет вдвое большую энергию сгорания, чем уголь. Может быть спрессован в [[графит|Graphite]], используется в различных рецептах [[стали|Steel]] или как источник углерода для [[плавильни|Crucible]].

Угольный кокс можно получить путём переплавки угольных брикетов или комбинированной переплавки угля в различных формах.

Бурый кокс изготавливается из более дешёвого и менее мощного бурого угля тем же способом, но обладает теми же характеристиками.

Нефтяной кокс производится либо из неугольных смол в [[коксовой печи|Combination Oven]], либо путём коксования различных видов масла в [[коксовой установке|Coking Unit]].", + "zh_CN": "高纯度的碳,其热值为煤炭的两倍。可被锻压为[[石墨|Graphite]],也可用于多种炼[[钢|Steel]]配方或作为[[坩埚|Crucible]]中碳的来源。

煤焦炭可通过在熔炉中烧炼煤球获取,或在复式炼焦炉中炼焦各种形式的煤炭获取。

褐煤焦炭可以以更廉价且品质更低的褐煤为原料,通过相同的方式获取, 尽管其特性与煤焦炭完全相同。

石油焦炭可通过在[[复式炼焦炉|Combination Oven]]中炼焦焦油(煤焦油除外)获取,也可通过在[[焦化装置|Coking Unit]]中焦化多种油获取。" } } diff --git a/src/main/resources/assets/hbm/manual/material/copper.json b/src/main/resources/assets/hbm/manual/material/copper.json index e8e155732..bbcc0eabe 100644 --- a/src/main/resources/assets/hbm/manual/material/copper.json +++ b/src/main/resources/assets/hbm/manual/material/copper.json @@ -1,13 +1,17 @@ { "name": "Copper", "icon": ["hbm:item.ingot_copper", 1, 0], - "trigger": [["hbm:item.ingot_copper"], ["hbm:item.plate_copper"], ["hbm:item.powder_copper"]], - "title": { - "en_US": "Copper", - "ru_RU": "Медь" - }, + "trigger": [["hbm:item.ingot_copper"], ["hbm:item.plate_copper"], ["hbm:item.powder_copper"]], + "title": { + "en_US": "Copper", + "uk_UA": "Мідь", + "ru_RU": "Медь", + "zh_CN": "铜" + }, "content": { "en_US": "Common resource. In its raw form, mostly used as a structural material, and in things that handle high temperatures (as a heat conductor). Strongly used in various alloyed forms.

[[Minecraft grade copper|Minecraft Grade Copper]] is an alloy made from redstone that is used in almost all electrical things.

[[Advanced alloy|Advanced Alloy]] is a powerful early tool material which surpasses diamond.

[[Gunmetal]] is a vital component of many guns, as well as casings for ammunition.

[[Bismuth bronze|Bismuth Bronze]] and [[arsenic bronze|Arsenic Bronze]] are post-[[RBMK]] materials used in many late-game machines.

[[BSCCO]] is a [[bismuth|Bismuth]]-derived super conductor needed for high-tier quantum circuits and [[particle accelerator|Particle Accelerator]] coils.", - "ru_RU": "Обычный ресурс. В чистом виде в основном используется как конструкционный материал и в вещах, работающих с высокими температурами (как теплопроводник). Широко применяется в различных сплавах.

[[Красная медь|Minecraft Grade Copper]] — это сплав, изготовленный из красного камня, используемый почти во всех электрических устройствах.

[[Продвинутый сплав|Advanced Alloy]] — мощный материал для ранних инструментов, превосходящий алмаз.

[[Оружейный металл|Gunmetal]] — важный компонент многих видов оружия, а также гильз для боеприпасов.

[[Висмутовая бронза|Bismuth Bronze]] и [[мышьяковая бронза|Arsenic Bronze]] — материалы, доступные после [[РБМК|RBMK]], используемые во многих машинах поздней игры.

[[BSCCO]] — сверхпроводник, производный от [[висмута|Bismuth]], необходимый для квантовых схем высокого уровня и катушек [[ускорителя частиц|Particle Accelerator]]." + "uk_UA": "Поширений ресурс. У сирому вигляді здебільшого використовується як конструкційний матеріал, а також у речах, що витримують високі температури (такі як теплопропровідники). Активно використовується в різних сплавах.

[[Червона мідь|Minecraft Grade Copper]] — це сплав, виготовлений з редстоуну, який використовується майже у всіх електричних пристроях.

[[Удосконалений сплав|Advanced Alloy]] — це потужний ранній інструментальний матеріал, який перевершує алмаз.

[[Гарматна бронза|Gunmetal]] — це важливий компонент багатьох видів зброї, а також гільз для боєприпасів.

[[Вісмутова бронза|Bismuth Bronze]] та [[миш'якова бронза|Arsenic Bronze]] — це пост-[[РБМК|RBMK]] матеріали що використовуються в багатьох машинах пізньої версії гри.

[[BSCCO]] — це надпровідник, похідний від [[вісмуту|Bismuth]] необхідний для високорівневих квантових схем та котушок [[прискорювача часток|Particle Accelerator]].", + "ru_RU": "Распространённый ресурс. В чистом виде в основном используется как конструкционный материал и в вещах, работающих с высокими температурами (как теплопроводник). Широко применяется в различных сплавах.

[[Красная медь|Minecraft Grade Copper]] — это сплав, изготовленный из красного камня, используемый почти во всех электрических устройствах.

[[Продвинутый сплав|Advanced Alloy]] — мощный материал для ранних инструментов, превосходящий алмаз.

[[Оружейный металл|Gunmetal]] — важный компонент многих видов оружия, а также гильз для боеприпасов.

[[Висмутовая бронза|Bismuth Bronze]] и [[мышьяковая бронза|Arsenic Bronze]] — материалы, доступные после [[РБМК|RBMK]], используемые во многих машинах поздней игры.

[[BSCCO]] — сверхпроводник, производный от [[висмута|Bismuth]], необходимый для высокоуровневых квантовых схем и катушек [[ускорителя частиц|Particle Accelerator]].", + "zh_CN": "常见资源。纯铜主要用作结构材料,或在能够承受高温的设备中使用(作热导体); 铜的多种合金用途极广。

[[紫铜|Minecraft Grade Copper]]是红石和铜的合金,几乎所有电力设备都使用紫铜。

[[高级合金|Advanced Alloy]]是前期强力的装备材料,其性能优于钻石。

[[炮铜|Gunmetal]]是制作多种枪炮必不可少的材料,同时也用于制造弹壳。

[[铋青铜|Bismuth Bronze]]和[[砷青铜|Arsenic Bronze]]是 [[RBMK]] 后的材料,用于制作多种后期机器。

[[BSCCO]]是一种由铋衍生的超导体,高等级的量子电路和[[粒子加速器|Particle Accelerator]]线圈都需要BSCCO超导体制作。" } } diff --git a/src/main/resources/assets/hbm/manual/material/desh.json b/src/main/resources/assets/hbm/manual/material/desh.json index a34e741c7..1b21e5ce7 100644 --- a/src/main/resources/assets/hbm/manual/material/desh.json +++ b/src/main/resources/assets/hbm/manual/material/desh.json @@ -1,13 +1,17 @@ { "name": "Desh", "icon": ["hbm:item.ingot_desh", 1, 0], - "trigger": [["hbm:item.ingot_desh"], ["hbm:item.powder_desh"]], - "title": { - "en_US": "Desh", - "ru_RU": "Деш" - }, + "trigger": [["hbm:item.ingot_desh"], ["hbm:item.powder_desh"]], + "title": { + "en_US": "Desh", + "uk_UA": "Деш", + "ru_RU": "Деш", + "zh_CN": "Desh" + }, "content": { "en_US": "High-strength working alloy made in a [[chemical plant|Chemical Plant]]. Requires [[light oil|Light oil]] from basic [[oil|Crude Oil]] refining, [[mercury|Mercury]], a byproduct of [[centrifuging|Centrifuge]] redstone ore and desh blend, which is just [[shredded|Shredder]] rare earth ore chunks.

Used in a variety of things, especially tools and weapons. Desh tools are slow and only iron tier, but are the first available ones to be unbreakable and offer many tool abilities.", - "ru_RU": "Высокопрочный рабочий сплав, изготовленный на [[химической установке|Chemical Plant]]. Требует [[легкой нефти|Light oil]] из базовой переработки [[нефти|Crude Oil]], [[ртути|Mercury]], побочного продукта [[центрифугирования|Centrifuge]] красной руды, и смеси деша, которая представляет собой просто [[измельчённые|Shredder]] куски редкоземельной руды.

Используется в различных вещах, особенно в инструментах и оружии. Инструменты из деша медленные и соответствуют железному уровню, но являются первыми доступными неломающимися инструментами с множеством способностей." + "uk_UA": "Високоміцний робочий сплав, виготовлений на [[хімічному заводі|Chemical Plant]]. Потребує [[легку нафту|Light oil]] з базової переробки [[нафти|Crude Oil]], [[ртуть|Mercury]], побічний продукт [[[центрифугування|Centrifuge]] редстоунової руди та деш суміш, яка є просто [[подрібненими|Shredder]] шматками рідкоземельної руди.

Використовується в різних речах, особливо в інструментах та зброї. Деш інструменти повільні та відповідають лише залізному тіру, але є першими доступними незламними інструментами з багатьма режимами роботи.", + "ru_RU": "Высокопрочный рабочий сплав, изготовленный на [[химической установке|Chemical Plant]]. Требует [[лёгкую нефть|Light oil]] из базовой переработки [[нефти|Crude Oil]], [[ртуть|Mercury]], побочный продукт [[центрифугирования|Centrifuge]] красной руды, и смесь деш, которая представляет собой просто [[измельчённые|Shredder]] куски редкоземельной руды.

Используется в различных вещах, особенно в инструментах и оружии. Инструменты из деш медленные и соответствуют железному уровню, но являются первыми доступными неломающимися инструментами с множеством способностей.", + "zh_CN": "在[[化工厂|Chemical Plant]]中制成的高强度工作合金,需要基础[[原油|Crude Oil]]精炼的产物[[轻油|Light Oil]]、[[离心|Centrifuge]]红石矿石得到的副产物[[水银|Mercury]]以及[[粉碎|Shredder]]稀土矿石块得到的Desh混合物制作。

用于制作多种物品,特别是工具和武器。Desh制工具挖掘速度较慢且挖掘等级 只相当于铁制工具,但其是最早可获得的无法破坏的工具之一,而且具有多个工具 能力。" } } diff --git a/src/main/resources/assets/hbm/manual/material/ferrouranium.json b/src/main/resources/assets/hbm/manual/material/ferrouranium.json index 687434042..3efb82964 100644 --- a/src/main/resources/assets/hbm/manual/material/ferrouranium.json +++ b/src/main/resources/assets/hbm/manual/material/ferrouranium.json @@ -1,13 +1,17 @@ { "name": "Ferrouranium", "icon": ["hbm:item.ingot_ferrouranium", 1, 0], - "trigger": [["hbm:item.ingot_ferrouranium"]], - "title": { - "en_US": "Ferrouranium", - "ru_RU": "Ферроуран" - }, + "trigger": [["hbm:item.ingot_ferrouranium"]], + "title": { + "en_US": "Ferrouranium", + "uk_UA": "Фероуран", + "ru_RU": "Ферроуран", + "zh_CN": "铀铁合金" + }, "content": { "en_US": "Alloy of [[steel|Steel]] and [[uranium-238|Uranium-238]] made in the [[crucible|Crucible]]. Mainly used in ducrete, weapon parts and high-explosive ammunition.", - "ru_RU": "Сплав из [[стали|Steel]] и [[урана-238|Uranium-238]], изготовленный в [[тигле|Crucible]]. В основном используется в дюкрете, деталях оружий и взрывных боеприпасах." + "uk_UA": "Сплав [[сталі|Steel]] та [[урану-238|Uranium-238]], виготовлений у [[ливарні|Crucible]]. В основному використовується в уранобетоні, деталях зброї та вибухових боєприпасах.", + "ru_RU": "Сплав из [[стали|Steel]] и [[урана-238|Uranium-238]], изготовленный в [[плавильне|Crucible]]. В основном используется в дюкрете, деталях оружия и взрывных боеприпасах.", + "zh_CN": "[[钢|Steel]]与[[铀-238|Uranium-238]]的合金,在坩埚中制成。 主要用于制作贫铀混凝土、武器部件和高爆弹药。" } } diff --git a/src/main/resources/assets/hbm/manual/material/graphite.json b/src/main/resources/assets/hbm/manual/material/graphite.json index 1876c53fa..eb0be35b5 100644 --- a/src/main/resources/assets/hbm/manual/material/graphite.json +++ b/src/main/resources/assets/hbm/manual/material/graphite.json @@ -1,13 +1,17 @@ { "name": "Graphite", "icon": ["hbm:item.ingot_graphite", 1, 0], - "trigger": [["hbm:item.ingot_graphite"]], - "title": { - "en_US": "Graphite", - "ru_RU": "Графит" - }, + "trigger": [["hbm:item.ingot_graphite"]], + "title": { + "en_US": "Graphite", + "uk_UA": "Графіт", + "ru_RU": "Графит", + "zh_CN": "石墨" + }, "content": { "en_US": "Made from pressing coke. Used in nuclear reactors, graphite electrodes for the [[electric arc furnace|Electric Arc Furnace]] or as a source for carbon in various [[crucible|Crucible]] recipes.", - "ru_RU": "Изготавливается путём прессования кокса. Используется в ядерных реакторах, графитовых электродах для [[электродуговой печи|Electric Arc Furnace]] или как источник углерода в различных рецептах для [[плавильни|Crucible]]." + "uk_UA": "Виготовляється пресуванням коксу. Використовується в ядерних реакторах, графітових електродах для [[електричної дугової печі|Electric Arc Furnace]] або як джерело вуглецю в різних рецептах [[ливарні|Crucible]].", + "ru_RU": "Изготавливается путём прессования кокса. Используется в ядерных реакторах, графитовых электродах для [[электродуговой печи|Electric Arc Furnace]] или как источник углерода в различных рецептах для [[плавильни|Crucible]].", + "zh_CN": "通过锻压焦炭获取。用于核反应堆、[[电弧炉|Electric Arc Furnace]]电极,也可作为部分[[坩埚|Crucible]]配方中碳的来源。" } } diff --git a/src/main/resources/assets/hbm/manual/material/gunmetal.json b/src/main/resources/assets/hbm/manual/material/gunmetal.json index f5d89a0b1..78ac96aaa 100644 --- a/src/main/resources/assets/hbm/manual/material/gunmetal.json +++ b/src/main/resources/assets/hbm/manual/material/gunmetal.json @@ -1,13 +1,17 @@ { "name": "Gunmetal", "icon": ["hbm:item.ingot_gunmetal", 1, 0], - "trigger": [["hbm:item.ingot_gunmetal"], ["hbm:item.plate_gunmetal"]], - "title": { - "en_US": "Gunmetal", - "ru_RU": "Оружейный металл" - }, + "trigger": [["hbm:item.ingot_gunmetal"], ["hbm:item.plate_gunmetal"]], + "title": { + "en_US": "Gunmetal", + "uk_UA": "Гарматна бронза", + "ru_RU": "Оружейный металл", + "zh_CN": "炮铜" + }, "content": { "en_US": "Alloy of [[aluminium|Aluminium]] and [[copper|Copper]]. Can be made in an anvil, or more efficiently in a [[rotary furnace|Rotary Furnace]]. Used mainly for weapon parts, as well as casings for most ammunition.", - "ru_RU": "Сплав из [[алюминия|Aluminium]] и [[меди|Copper]]. Может быть изготовлен на наковальне или более эффективно в [[роторной печи|Rotary Furnace]]. В основном используется для деталей оружия, а также для гильз большинства боеприпасов." + "uk_UA": "Сплав [[алюмінію|Aluminium]] та [[міді|Copper]]. Може бути виготовлений на ковадлі або, що ефективніше, у [[роторній печі|Rotary Furnace]]. Використовується переважно для деталей зброї, а також для гільз більшості боєприпасів.", + "ru_RU": "Сплав из [[алюминия|Aluminium]] и [[меди|Copper]]. Может быть изготовлен на наковальне или более эффективно в [[роторной печи|Rotary Furnace]]. В основном используется для деталей оружия, а также для гильз большинства боеприпасов.", + "zh_CN": "[[铝|Aluminium]]和[[铜|Copper]]的合金。可在砧中制作,也可在[[回转炉|Rotary Furnace]]中更高效地制作。主要用于制作武器部件,也用于制作大部分弹壳。" } } diff --git a/src/main/resources/assets/hbm/manual/material/hss.json b/src/main/resources/assets/hbm/manual/material/hss.json index 26380d6c5..5e31bd555 100644 --- a/src/main/resources/assets/hbm/manual/material/hss.json +++ b/src/main/resources/assets/hbm/manual/material/hss.json @@ -1,13 +1,17 @@ { "name": "High-Speed Steel", "icon": ["hbm:item.ingot_dura_steel", 1, 0], - "trigger": [["hbm:item.ingot_dura_steel"], ["hbm:item.powder_dura_steel"], ["hbm:item.plate_dura_steel"]], - "title": { - "en_US": "High-Speed Steel", - "ru_RU": "Высокоскоростная сталь" - }, + "trigger": [["hbm:item.ingot_dura_steel"], ["hbm:item.powder_dura_steel"], ["hbm:item.plate_dura_steel"]], + "title": { + "en_US": "High-Speed Steel", + "uk_UA": "Швидкорізальна сталь", + "ru_RU": "Высокоскоростная сталь", + "zh_CN": "高速钢" + }, "content": { "en_US": "Alloy made from [[steel|Steel]], [[tungsten|Tungsten]] and [[cobalt|Cobalt]] in a [[curcible|Crucible]]. Created as liquid metal, needs to be cast into ingot or plate shape before being usable.", - "ru_RU": "Сплав из [[стали|Steel]], [[вольфрама|Tungsten]] и [[кобальта|Cobalt]], изготовленный в [[плавильне|Crucible]]. Создается в виде жидкого металла, требует отливки в форму слитка или пластины перед использованием." + "uk_UA": "Сплав зі [[сталі|Steel]], [[вольфраму|Tungsten]] та [[кобальту|Cobalt]], виготовлений в [[ливарні|Crucible]]. Створюється у вигляді рідкого металу, перед використанням його необхідно відлити у форму зливка або пластини.

Використовується для виготовлення різального обладнання що працює на великих швидкостях.", + "ru_RU": "Сплав из [[стали|Steel]], [[вольфрама|Tungsten]] и [[кобальта|Cobalt]], изготовленный в [[плавильне|Crucible]]. Создается в виде жидкого металла, требует отливки в форму слитка или пластины перед использованием.", + "zh_CN": "[[钢|Steel]、[[钨|Tungsten]]、[[钴|Cobalt]]的合金,在[[坩埚|Crucible]]中制成。制造出的高速钢为熔融状态, 在使用前需要将其铸造成锭或板的形式。" } } diff --git a/src/main/resources/assets/hbm/manual/material/latex.json b/src/main/resources/assets/hbm/manual/material/latex.json index b5795bd32..a00bcfee7 100644 --- a/src/main/resources/assets/hbm/manual/material/latex.json +++ b/src/main/resources/assets/hbm/manual/material/latex.json @@ -1,13 +1,17 @@ { "name": "Latex", "icon": ["hbm:item.ingot_biorubber", 1, 0], - "trigger": [["hbm:item.ingot_biorubber"], ["hbm:item.ball_resin"]], - "title": { - "en_US": "Latex", - "ru_RU": "Латекс" - }, + "trigger": [["hbm:item.ingot_biorubber"], ["hbm:item.ball_resin"]], + "title": { + "en_US": "Latex", + "uk_UA": "Латекс", + "ru_RU": "Латекс", + "zh_CN": "乳胶" + }, "content": { "en_US": "Natural form of rubber, obtainable from dandelions or by pressing jungle wood. Can be replaced in all recipes by [[rubber|Rubber]], but not vice versa.", - "ru_RU": "Натуральная форма резины, добывается из одуванчиков или путём прессования древесины джунглей. Может быть заменена во всех рецептах на [[резину|Rubber]], но не наоборот." + "uk_UA": "Натуральна форма гуми, яку можна отримати з кульбаб або пресуванням тропічного дерева. У всіх рецептах може бути замінена на [[гуму|Rubber]], але не навпаки.", + "ru_RU": "Натуральная форма резины, добывается из одуванчиков или путём прессования древесины джунглей. Может быть заменена во всех рецептах на [[резину|Rubber]], но не наоборот.", + "zh_CN": "橡胶的天然形态,可用蒲公英合成获得或锻压丛林木获得。可在所有配方中被[[橡胶|Rubber]]替代,反之则不行。" } } diff --git a/src/main/resources/assets/hbm/manual/material/lead.json b/src/main/resources/assets/hbm/manual/material/lead.json index b4d919e1a..629b2d00a 100644 --- a/src/main/resources/assets/hbm/manual/material/lead.json +++ b/src/main/resources/assets/hbm/manual/material/lead.json @@ -1,13 +1,17 @@ { "name": "Lead", "icon": ["hbm:item.ingot_lead", 1, 0], - "trigger": [["hbm:item.ingot_lead"], ["hbm:item.nugget_lead"], ["hbm:item.powder_lead"]], - "title": { - "en_US": "Lead", - "ru_RU": "Свинец" - }, + "trigger": [["hbm:item.ingot_lead"], ["hbm:item.nugget_lead"], ["hbm:item.powder_lead"]], + "title": { + "en_US": "Lead", + "uk_UA": "Свинець", + "ru_RU": "Свинец", + "zh_CN": "铅" + }, "content": { "en_US": "Common resource. Mainly used for things that involve radiation, as well as ammunition, and as solder for many circuits.", - "ru_RU": "Обычный ресурс. В основном используется для вещей, связанных с радиацией, а также для боеприпасов и в качестве припоя для многих схем." + "uk_UA": "Поширений ресурс. В основному використовується для речей, пов'язаних з радіацією, та для боєприпасів, а також як припій для багатьох схем.", + "ru_RU": "Распространённый ресурс. В основном используется для вещей, связанных с радиацией, а также для боеприпасов и в качестве припоя для многих схем.", + "zh_CN": "常见资源,主要用于涉及辐射的设备,也用于制作弹药,以及用作电路板的焊料。" } } diff --git a/src/main/resources/assets/hbm/manual/material/mingrade.json b/src/main/resources/assets/hbm/manual/material/mingrade.json index fe1732da5..92137c7f0 100644 --- a/src/main/resources/assets/hbm/manual/material/mingrade.json +++ b/src/main/resources/assets/hbm/manual/material/mingrade.json @@ -1,13 +1,17 @@ { "name": "Minecraft Grade Copper", "icon": ["hbm:item.ingot_red_copper", 1, 0], - "trigger": [["hbm:item.ingot_red_copper"], ["hbm:item.powder_red_copper"]], - "title": { - "en_US": "Minecraft Grade Copper (Red Copper)", - "ru_RU": "Медь Minecraft (Красная медь)" - }, + "trigger": [["hbm:item.ingot_red_copper"], ["hbm:item.powder_red_copper"]], + "title": { + "en_US": "Minecraft Grade Copper (Red Copper)", + "uk_UA": "Червона мідь (aka Minecraft Grade Copper)", + "ru_RU": "Красная медь", + "zh_CN": "紫铜" + }, "content": { "en_US": "Alloy made from copper and redstone in equal parts using the [[blast furnace|Blast Furnace]]. Used in almost all things electric, commonly in wire form.", - "ru_RU": "Сплав, изготовленный из меди и красного камня в равных частях в [[доменной печи|Blast Furnace]]. Используется почти во всех электрических устройствах, обычно в виде проводов." + "uk_UA": "Сплав, виготовлений з [[міді|Copper]] та редстоуну в рівному співвідношенні в [[доменній печі|Blast Furnace]]. Використовується майже у всій електриці, зазвичай у вигляді дроту.", + "ru_RU": "Сплав, изготовленный из меди и красного камня в равных частях в [[доменной печи|Blast Furnace]]. Используется почти во всех электрических устройствах, обычно в виде проводов.", + "zh_CN": "等量的铜和红石在[[高炉|Blast Furnace]]中制作的合金。 主要以线的形式用于几乎所有电力设备。" } } diff --git a/src/main/resources/assets/hbm/manual/material/neptunium.json b/src/main/resources/assets/hbm/manual/material/neptunium.json index a68c7adb9..0e3b80a58 100644 --- a/src/main/resources/assets/hbm/manual/material/neptunium.json +++ b/src/main/resources/assets/hbm/manual/material/neptunium.json @@ -1,13 +1,17 @@ { "name": "Neptunium", "icon": ["hbm:item.ingot_neptunium", 1, 0], - "trigger": [["hbm:item.ingot_neptunium"], ["hbm:item.billet_neptunium"], ["hbm:item.nugget_neptunium"], ["hbm:item.powder_neptunium"]], - "title": { - "en_US": "Neptunium", - "ru_RU": "Нептуний" - }, + "trigger": [["hbm:item.ingot_neptunium"], ["hbm:item.billet_neptunium"], ["hbm:item.nugget_neptunium"], ["hbm:item.powder_neptunium"]], + "title": { + "en_US": "Neptunium", + "uk_UA": "Нептуній-237", + "ru_RU": "Нептуний", + "zh_CN": "镎" + }, "content": { "en_US": "Fissile isotope, usually found in spent [[uranium-235|Uranium-235]] fuel. Mostly used for nuclear reactors, either pure as high enriched neptunium fuel, or combined with [[uranium-238|Uranium-238]] as medium enriched neptunium fuel. Usable in the [[PWR]] and [[RBMK]].", - "ru_RU": "Делящийся изотоп, обычно содержится в отработанном топливе [[урана-235|Uranium-235]]. В основном используется для ядерных реакторов, либо в чистом виде как высокообогащённое нептуниевое топливо, либо в сочетании с [[ураном-238|Uranium-238]] как среднеобогащённое нептуниевое топливо. Применяется в [[ВВЭР|PWR]] и [[РБМК|RBMK]]." + "uk_UA": "Ізотоп здатний до розщеплення, зазвичай міститься у відпрацьованому паливі [[урану-235|Uranium-235]]. Здебільшого використовується для ядерних реакторів у чистому вигляді як високозбагачене нептунієве паливо або в поєднанні з [[ураном-238|Uranium-238]] як середньозбагачене нептунієве паливо. Використовується в [[ВВЕР|PWR]] та [[РБМК|RBMK]].", + "ru_RU": "Делящийся изотоп, обычно содержится в отработанном топливе из [[урана-235|Uranium-235]]. В основном используется для ядерных реакторов, либо в чистом виде как высокообогащённое нептуниевое топливо, либо в сочетании с [[ураном-238|Uranium-238]] как среднеобогащённое нептуниевое топливо. Применяется в [[ВВЭР|PWR]] и [[РБМК|RBMK]].", + "zh_CN": "一种易裂变同位素,主要存在于枯竭的[[铀-235|Uranium-235]]燃料中。 主要用于核反应堆,纯净的镎既可直接用作高浓缩度镎燃料,也可和[[铀-238|Uranium-238]]混合为中浓缩度镎燃料。可用于[[PWR]]和[[RBMK]]。" } } diff --git a/src/main/resources/assets/hbm/manual/material/plutonium-238.json b/src/main/resources/assets/hbm/manual/material/plutonium-238.json index d770353f4..9d2330fdf 100644 --- a/src/main/resources/assets/hbm/manual/material/plutonium-238.json +++ b/src/main/resources/assets/hbm/manual/material/plutonium-238.json @@ -1,13 +1,17 @@ { "name": "Plutonium-238", "icon": ["hbm:item.billet_pu238", 1, 0], - "trigger": [["hbm:item.ingot_pu238"], ["hbm:item.billet_pu238"], ["hbm:item.nugget_pu238"]], - "title": { - "en_US": "Plutonium-238", - "ru_RU": "Плутоний-238" - }, + "trigger": [["hbm:item.ingot_pu238"], ["hbm:item.billet_pu238"], ["hbm:item.nugget_pu238"]], + "title": { + "en_US": "Plutonium-238", + "uk_UA": "Плутоній-238", + "ru_RU": "Плутоний-238", + "zh_CN": "钚-238" + }, "content": { "en_US": "Radioisotope, used mainly in [[RTGs|RTG]]. Derived from [[plutonium|Plutonium]] hexafluoride, or from various nuclear fuels, mainly ones using [[uranium-235|Uranium-235]]. Usable with [[beryllium|Beryllium]] as Pu238Be neutron sources in [[RBMKs|RBMK]].

Moderately radioactive, very hot.", - "ru_RU": "Радиоизотоп, в основном используется в [[РТГ|RTG]]. Получается из гексафторида [[плутония|Plutonium]] или из различных ядерных топлив, преимущественно использующих [[уран-235|Uranium-235]]. Используется с [[бериллием|Beryllium]] в нейтронных источниках Плутоний-210-Бериллий для [[РБМК|RBMK]].

Умеренно радиоактивен, очень горячий." + "uk_UA": "Радіоізотоп, що використовується переважно в [[РІТЕГ|RTG]]. Отримується з гексафториду [[плутонію|Plutonium]], або з різного ядерного палива, переважно того, що використовує [[уран-235|Uranium-235]]. Використовується з [[берилієм|Beryllium]] як Плутоній-238 берилієве джерело нейтронів в [[РБМК|RBMK]].

Помірно радіоактивний, дуже гарячий.", + "ru_RU": "Радиоизотоп, в основном используется в [[РИТЭГ|RTG]]. Получается из гексафторида [[плутония|Plutonium]] или из различных ядерных топлив, преимущественно использующих [[уран-235|Uranium-235]]. Используется с [[бериллием|Beryllium]] в нейтронных источниках плутоний-210-бериллевых источниках для [[РБМК|RBMK]].

Умеренно радиоактивен, очень горячий.", + "zh_CN": "放射性同位素,主要用于[[RTG]]。可从六氟化[[钚|Plutonium]]中提取,也可从一些核燃料(主要是含[[铀-235|Uranium-235]]的种类)中分离得到。可与[[铍|Beryllium]]混合制成钚-238-铍中子源,用于[[RBMK]]反应堆。

放射性中等,高温。" } } diff --git a/src/main/resources/assets/hbm/manual/material/plutonium-239.json b/src/main/resources/assets/hbm/manual/material/plutonium-239.json index f64b725f8..1a80f4cbc 100644 --- a/src/main/resources/assets/hbm/manual/material/plutonium-239.json +++ b/src/main/resources/assets/hbm/manual/material/plutonium-239.json @@ -1,13 +1,17 @@ { "name": "Plutonium-239", "icon": ["hbm:item.billet_pu239", 1, 0], - "trigger": [["hbm:item.ingot_pu239"], ["hbm:item.billet_pu239"], ["hbm:item.nugget_pu239"]], - "title": { - "en_US": "Plutonium-239", - "ru_RU": "Плутоний-239" - }, + "trigger": [["hbm:item.ingot_pu239"], ["hbm:item.billet_pu239"], ["hbm:item.nugget_pu239"]], + "title": { + "en_US": "Plutonium-239", + "uk_UA": "Плутоній-239", + "ru_RU": "Плутоний-239", + "zh_CN": "钚-239" + }, "content": { "en_US": "Primary fissile isotope of [[plutonium|Plutonium]]. Can be extracted from many spent fuels that use [[uranium-238|Uranium-238]] or directly from [[reactor-grade plutonium|Reactor-Grade Plutonium]]. Usable in high enriched fuels for various reactors, mixed with other isotopes for lower enriched fuels, or as fissile material in many nuclear bombs.

Moderately radioactive.", - "ru_RU": "Основной делящийся изотоп [[плутония|Plutonium]]. Может быть извлечен из многих отработанных топлив, использующих [[уран-238|Uranium-238]], или непосредственно из [[реакторного плутония|Reactor-Grade Plutonium]]. Используется в высокообогащённых топливах для различных реакторов, в смеси с другими изотопами для менее обогащённых топлив или как делящийся материал во многих ядерных бомбах.

Умеренно радиоактивен." + "uk_UA": "Перший здатний до поділу ізотоп [[плутонію|Plutonium]]. Може бути отриманий з багатьох видів відпрацьованого палива, що використовують [[уран-238|Uranium-238]] бо безпосередньо з [[реакторного плутонію|Reactor-Grade Plutonium]]. Використовується у високозбагаченому паливі для різних реакторів, змішується з іншими ізотопами для низькозбагаченого палива або як заряд у багатьох ядерних бомбах.

Помірно радіоактивний.", + "ru_RU": "Основной делящийся изотоп [[плутония|Plutonium]]. Может быть извлечен из многих отработанных топлив, использующих [[уран-238|Uranium-238]], или непосредственно из [[реакторного плутония|Reactor-Grade Plutonium]]. Используется в высокообогащённом топливе для различных реакторов, в смеси с другими изотопами для менее обогащённых топлив или как делящийся материал во многих ядерных бомбах.

Умеренно радиоактивен.", + "zh_CN": "[[钚|Plutonium]]主要的易裂变同位素,可从多种使用[[铀-238|Uranium-238]]的核燃料中提取,或直接从[[反应堆级钚|Reactor-Grade Plutonium]]中分离得到。可在多种反应堆中用作高浓缩度燃料,也可与其他同位素混合制成 浓缩度较低的燃料,还可在多种核弹中用作裂变材料。

放射性中等。" } } diff --git a/src/main/resources/assets/hbm/manual/material/plutonium-240.json b/src/main/resources/assets/hbm/manual/material/plutonium-240.json index 859bfd7c0..1406f170a 100644 --- a/src/main/resources/assets/hbm/manual/material/plutonium-240.json +++ b/src/main/resources/assets/hbm/manual/material/plutonium-240.json @@ -1,13 +1,17 @@ { "name": "Plutonium-240", "icon": ["hbm:item.billet_pu240", 1, 0], - "trigger": [["hbm:item.ingot_pu240"], ["hbm:item.billet_pu240"], ["hbm:item.nugget_pu240"]], - "title": { - "en_US": "Plutonium-240", - "ru_RU": "Плутоний-240" - }, + "trigger": [["hbm:item.ingot_pu240"], ["hbm:item.billet_pu240"], ["hbm:item.nugget_pu240"]], + "title": { + "en_US": "Plutonium-240", + "uk_UA": "Плутоній-240", + "ru_RU": "Плутоний-240", + "zh_CN": "钚-240" + }, "content": { - "en_US": "Non-fissile isotope found in [[plutonium|Plutonium]] and [[reactor-grade plutonium|Reactor-Grade-Plutonium]]. Only useful when manually making reactor-grade plutonium from [[plutonium-239|Plutonium-239]] or inspecialized [[zirconium|Zirconium]] fast breeder rods for making [[plutonium-241|Plutonium-241]] in the [[RBMK]].", - "ru_RU": "Неделимый изотоп, содержащийся в [[плутонии|Plutonium]] и [[реакторном плутонии|Reactor-Grade-Plutonium]]. Полезен только при ручном создании реакторного плутония из [[плутония-239|Plutonium-239]] или в специализированных [[циркониевых|Zirconium]] стержнях быстрого размножения для производства [[плутония-241|Plutonium-241]] в [[РБМК|RBMK]]." + "en_US": "Non-fissile isotope found in [[plutonium|Plutonium]] and [[reactor-grade plutonium|Reactor-Grade-Plutonium]]. Only useful when manually making reactor-grade plutonium from [[plutonium-239|Plutonium-239]] or in specialized [[zirconium|Zirconium]] fast breeder rods for making [[plutonium-241|Plutonium-241]] in the [[RBMK]].", + "uk_UA": "Не здатний до поділу ізотоп, що міститься в [[плутонії|Plutonium]] та [[реакторному плутонії|Reactor-Grade-Plutonium]]. Корисний лише при ручному виготовленні реакторного плутонію з [[плутонію-239|Plutonium-239]] або у спеціалізованих [[цирконієвих|Zirconium]] швидких розмножувачах для виготовлення [[плутонію-241|Plutonium-241]] в [[РБМК|RBMK]].", + "ru_RU": "Неделимый изотоп, содержащийся в [[плутонии|Plutonium]] и [[реакторном плутонии|Reactor-Grade-Plutonium]]. Полезен только при ручном создании реакторного плутония из [[плутония-239|Plutonium-239]] или в специализированных [[циркониевых|Zirconium]] стержнях быстрого размножения для производства [[плутония-241|Plutonium-241]] в [[РБМК|RBMK]].", + "zh_CN": "[[钚|Plutonium]]和[[反应堆级钚|Reactor-Grade Plutonium]]中存在的不易裂变同位素。仅有的用途是手动与[[钚-239|Plutonium-239]]混合为反应堆级钚,或与[[锆|Zirconium]]一同制成专用于增殖的ZFB燃料棒,以在[[RBMK]]中生产[[钚-241|Plutonium-241]]。" } } diff --git a/src/main/resources/assets/hbm/manual/material/plutonium-241.json b/src/main/resources/assets/hbm/manual/material/plutonium-241.json index 096b8864c..58afa6faa 100644 --- a/src/main/resources/assets/hbm/manual/material/plutonium-241.json +++ b/src/main/resources/assets/hbm/manual/material/plutonium-241.json @@ -1,13 +1,17 @@ { "name": "Plutonium-241", "icon": ["hbm:item.billet_pu241", 1, 0], - "trigger": [["hbm:item.ingot_pu241"], ["hbm:item.billet_pu241"], ["hbm:item.nugget_pu241"]], - "title": { - "en_US": "Plutonium-241", - "ru_RU": "Плутоний-241" - }, + "trigger": [["hbm:item.ingot_pu241"], ["hbm:item.billet_pu241"], ["hbm:item.nugget_pu241"]], + "title": { + "en_US": "Plutonium-241", + "uk_UA": "Плутоній-241", + "ru_RU": "Плутоний-241", + "zh_CN": "钚-241" + }, "content": { "en_US": "Secondary fissile isotope of [[plutonium|Plutonium]]. Can be recovered from [[plutonium-240|Plutonium-240]]-rich spent [[RBMK]] fuels, as well as certain types of [[zirconium|Zirconium]] fast breefer fuels. Only used in specialized breeding fuels and as high enriched fuel, which is more powerful than its [[plutonium-239|Plutonium-239]] counterpart. Plutonium-241 in RBMKs yields [[americium-241|Americium-241]] and [[americium-242|Americium-242]] when reprocessed.

Highly radioactive.", - "ru_RU": "Вторичный делящийся изотоп [[плутония|Plutonium]]. Может быть извлечен из отработанных топлив [[РБМК|RBMK]], богатых [[плутонием-240|Plutonium-240]], а также из определенных типов [[циркониевых|Zirconium]] топлив быстрого размножения. Используется только в специализированных топливных стержнях для размножения и как высокообогащённое топливо, которое мощнее, чем его аналог [[плутоний-239|Plutonium-239]]. Плутоний-241 в РБМК при переработке дает [[америций-241|Americium-241]] и [[америций-242|Americium-242]].

Сильно радиоактивен." + "uk_UA": "Другий здатний до поділу ізотоп [[плутонію|Plutonium]]. Може бути відновлений з відпрацьованого палива [[РБМК|RBMK]], багатого на [[плутоній-240|Plutonium-240]], а також з деяких видів [[цирконієвих|Zirconium]] швидких розмножувачів. Використовується лише в спеціальних паливних розмножувачах та як високозбагачене паливо, яке є потужнішим за свій аналог [[плутонію-239|Plutonium-239]]. Плутоній-241 в РБМК утворює [[америцій-241|Americium-241]] та [[америцій-242|Americium-242]] після переробки.

Високорадіоактивний.", + "ru_RU": "Вторичный делящийся изотоп [[плутония|Plutonium]]. Может быть извлечен из отработанного топлива [[РБМК|RBMK]], богатого [[плутонием-240|Plutonium-240]], а также из определённых видов [[циркониевого|Zirconium]] топлива быстрого размножения. Используется только в специализированных топливных стержнях для размножения и как высокообогащённое топливо, которое мощнее, чем его аналог [[плутоний-239|Plutonium-239]]. Плутоний-241 в РБМК при переработке дает [[америций-241|Americium-241]] и [[америций-242|Americium-242]].

Сильно радиоактивен.", + "zh_CN": "[[钚|Plutonium]]次要的易裂变同位素,可从枯竭的富含[[钚-240|Plutonium-240]]的[[RBMK]]燃料及特定种类的[[锆|Zirconium]]快速增殖燃料(ZFB)中提取。 仅用于专用的增殖燃料,或用作比相应的[[钚-239|Plutonium-239]]燃料更强力的高浓缩度燃料。再处理用于RBMK的钚-241燃料时 可以得到[[镅-241|Americium-241]]和[[镅-242|Americium-242]]。

放射性较强。" } } diff --git a/src/main/resources/assets/hbm/manual/material/plutonium-rg.json b/src/main/resources/assets/hbm/manual/material/plutonium-rg.json index c5cb2f1a4..0876eab04 100644 --- a/src/main/resources/assets/hbm/manual/material/plutonium-rg.json +++ b/src/main/resources/assets/hbm/manual/material/plutonium-rg.json @@ -1,13 +1,17 @@ { "name": "Reactor-Grade Plutonium", "icon": ["hbm:item.billet_pu_mix", 1, 0], - "trigger": [["hbm:item.ingot_pu_mix"], ["hbm:item.billet_pu_mix"], ["hbm:item.nugget_pu_mix"]], - "title": { - "en_US": "Reactor-Grade Plutonium", - "ru_RU": "Плутоний реакторного качества" - }, + "trigger": [["hbm:item.ingot_pu_mix"], ["hbm:item.billet_pu_mix"], ["hbm:item.nugget_pu_mix"]], + "title": { + "en_US": "Reactor-Grade Plutonium", + "uk_UA": "Реакторний плутоній", + "ru_RU": "Плутоний реакторного качества", + "zh_CN": "反应堆级钚" + }, "content": { "en_US": "Mixture of [[plutonium-239|Plutonium-239]] and [[plutonium-240|Plutonium-240]]. Common result of reprocessing many [[uranium|Uranium]]-based fuels, as well as by breeding uranium in the [[Chicago Pile]]. Usable in many reactors as medium enriched plutonium fuel.

Moderately radioactive.", - "ru_RU": "Смесь [[плутония-239|Plutonium-239]] и [[плутония-240|Plutonium-240]]. Обычный результат переработки многих топлив на основе [[урана|Uranium]], а также при размножении урана в [[Чикагской полленице|Chicago Pile]]. Используется во многих реакторах как среднеобогащённое плутониевое топливо.

Умеренно радиоактивен." + "uk_UA": "Суміш [[плутонію-239|Plutonium-239]] та [[плутонію-240|Plutonium-240]]. Поширений результат переробки багатьох видів палива на основі [[урану|Uranium]], а також розмноження урану в [[Чиказькій дровітні|Chicago Pile]]. Використовується в багатьох реакторах як середньозбагачене плутонієве паливо.

Помірно радіоактивний.", + "ru_RU": "Смесь [[плутония-239|Plutonium-239]] и [[плутония-240|Plutonium-240]]. Обычный результат переработки многих топлив на основе [[урана|Uranium]], а также при размножении урана в [[Чикагской полленице|Chicago Pile]]. Используется во многих реакторах как среднеобогащённое плутониевое топливо.

Умеренно радиоактивен.", + "zh_CN": "[[钚-239|Plutonium-239]]和[[钚-240|Plutonium-240]]的混合物。是再处理多种[[铀|Uranium]]基燃料的常见产物,也是在[[芝加哥反应堆|Chicago Pile]]中增殖铀的常见产物。可在多种反应堆中用作中浓缩度燃料。

放射性中等。" } } diff --git a/src/main/resources/assets/hbm/manual/material/plutonium.json b/src/main/resources/assets/hbm/manual/material/plutonium.json index 719c14800..a3e0bdd3f 100644 --- a/src/main/resources/assets/hbm/manual/material/plutonium.json +++ b/src/main/resources/assets/hbm/manual/material/plutonium.json @@ -1,13 +1,17 @@ { "name": "Plutonium", "icon": ["hbm:item.ingot_plutonium", 1, 0], - "trigger": [["hbm:item.ingot_plutonium"], ["hbm:item.billet_plutonium"], ["hbm:item.nugget_plutonium"], ["hbm:item.powder_plutonium"]], - "title": { - "en_US": "Plutonium", - "ru_RU": "Плутоний" - }, + "trigger": [["hbm:item.ingot_plutonium"], ["hbm:item.billet_plutonium"], ["hbm:item.nugget_plutonium"], ["hbm:item.powder_plutonium"]], + "title": { + "en_US": "Plutonium", + "uk_UA": "Плутоній", + "ru_RU": "Плутоний", + "zh_CN": "钚" + }, "content": { "en_US": "Rare form of impure plutonium, composed of plutonium-238, 239 and 240. Plutonium in ore form is disabled by default. May be processed in a [[gas centrifuge|Gas Centrifuge]] in hexafluoride form, or used for certain [[cyclotron|Cyclotron]] recipes.

Moderately radioactive.

See also:
[[Plutonium-238]]
[[Plutonium-239]]
[[Plutonium-240]]
[[Plutonium-241]]", - "ru_RU": "Редкая форма нечистого плутония, состоящая из плутония-238, 239 и 240. Плутоний в рудной форме по умолчанию отключен. Может быть переработан в [[газовой центрифуге|Gas Centrifuge]] в форме гексафторида или использован для определенных рецептов [[циклотрона|Cyclotron]].

Умеренно радиоактивен.

См. также:
[[Плутоний-238|Plutonium-238]]
[[Плутоний-239|Plutonium-239]]
[[Плутоний-240|Plutonium-240]]
[[Плутоний-241|Plutonium-241]]" + "uk_UA": "Рідкісна форма природнього плутонію, що складається з плутонію-238, 239 та 240. Плутоній у формі руди вимкнено за замовчуванням. Може бути перероблений в [[газовій центріфузі|Gas Centrifuge]] у формі гексафториду, або використовуватися для певних рецептів [[циклотрона|Cyclotron]].

Помірно радіоактивний.

Див. також:
[[Плутоній-238|Plutonium-238]]
[[Плутоній-239|Plutonium-239]]
[[Плутоній-240|Plutonium-240]]
[[Плутоній-241|Plutonium-241]]", + "ru_RU": "Редкая форма природного плутония, состоящая из плутония-238, 239 и 240. Плутоний в рудной форме по умолчанию отключен. Может быть переработан в [[газовой центрифуге|Gas Centrifuge]] в форме гексафторида или использован для определённых рецептов [[циклотрона|Cyclotron]].

Умеренно радиоактивен.

См. также:
[[Плутоний-238|Plutonium-238]]
[[Плутоний-239|Plutonium-239]]
[[Плутоний-240|Plutonium-240]]
[[Плутоний-241|Plutonium-241]]", + "zh_CN": "不纯钚的稀有形式,由钚-238、钚-239、钚-240组成。 钚的矿石形式默认禁用。钚可以以六氟化钚的形式在[[气体离心机|Gas Centrifuge]]中处理,也用于某些[[回旋加速器|Cyclotron]]配方。

放射性中等。

另见:
[[钚-238|Plutonium-238]]
[[钚-239|Plutonium-239]]
[[钚-240|Plutonium-240]]
[[钚-241|Plutonium-241]]" } } diff --git a/src/main/resources/assets/hbm/manual/material/polonium.json b/src/main/resources/assets/hbm/manual/material/polonium.json index c36e74218..5c3dd0e46 100644 --- a/src/main/resources/assets/hbm/manual/material/polonium.json +++ b/src/main/resources/assets/hbm/manual/material/polonium.json @@ -1,13 +1,17 @@ { "name": "Polonium-210", "icon": ["hbm:item.billet_polonium", 1, 0], - "trigger": [["hbm:item.ingot_polonium"], ["hbm:item.billet_polonium"], ["hbm:item.nugget_polonium"]], - "title": { - "en_US": "Polonium-210", - "ru_RU": "Полоний-210" - }, + "trigger": [["hbm:item.ingot_polonium"], ["hbm:item.billet_polonium"], ["hbm:item.nugget_polonium"]], + "title": { + "en_US": "Polonium-210", + "uk_UA": "Полоній-210", + "ru_RU": "Полоний-210", + "zh_CN": "钋-210" + }, "content": { "en_US": "Radioisotope derived from reprocessing [[radium-226|Radium-226]] neutron sources. Usable for [[RTGs|RTG]], or with [[beryllium|Beryllium]] in Po210Be neutron sources for [[RBMKs|RBMK]].

Highly radioactive, very hot.", - "ru_RU": "Радиоизотоп, получаемый из переработки нейтронных источников [[радия-226|Radium-226]]. Используется для [[РТГ|RTG]] или с [[бериллием|Beryllium]] в нейтронных источниках Полоний-210-бериллий для [[РБМК|RBMK]].

Сильно радиоактивен, очень горячий." + "uk_UA": "Радіоізотоп, отриманий в результаті переробки [[радій-226|Radium-226]]берилієвих джерел нейтронів. Використовується для [[РІТЕГ|RTG]] або з [[берилієм|Beryllium]] у полоній-210 берилієвих джерелах нейтронів для [[РБМК|RBMK]].

Високорадіоактивний, дуже гарячий.", + "ru_RU": "Радиоизотоп, получаемый переработкой нейтронных источников [[радия-226|Radium-226]]. Используется для [[РИТЭГ|RTG]] или с [[бериллием|Beryllium]] в полоний-210-бериллиевых источниках нейтронов для [[РБМК|RBMK]].

Сильно радиоактивен, очень горячий.", + "zh_CN": "再处理[[镭-226|Radium-226]]中子源时得到的放射性同位素。可用于[[RTG]],也可与[[铍|Beryllium]]混合为钋-210-铍中子源,用于[[RBMK]]。

放射性强,高温。" } } diff --git a/src/main/resources/assets/hbm/manual/material/polymer.json b/src/main/resources/assets/hbm/manual/material/polymer.json index 9c540925b..c0f38ff48 100644 --- a/src/main/resources/assets/hbm/manual/material/polymer.json +++ b/src/main/resources/assets/hbm/manual/material/polymer.json @@ -1,13 +1,17 @@ { "name": "Polymer", "icon": ["hbm:item.ingot_polymer", 1, 0], - "trigger": [["hbm:item.ingot_polymer"], ["hbm:item.powder_polymer"]], - "title": { - "en_US": "Polymer", - "ru_RU": "Полимер" - }, + "trigger": [["hbm:item.ingot_polymer"], ["hbm:item.powder_polymer"]], + "title": { + "en_US": "Polymer", + "uk_UA": "Полімер", + "ru_RU": "Полимер", + "zh_CN": "聚合物" + }, "content": { "en_US": "Polymer ('Teflon') is the first available type of plastic. Requires [[petroleum gas|Petroleum Gas]] and therefore [[oil processing|Crude Oil]].

Fully interchangable with [[Bakelite]], which becomes available after [[oil cracking|Catalytic Cracking Tower]].", - "ru_RU": "Полимер ('Тефлон') — первый доступный тип пластика. Требует [[нефтяного газа|Petroleum Gas]] и, следовательно, [[переработки нефти|Crude Oil]].

Полностью взаимозаменяем с [[бакелитом|Bakelite]], который становится доступным после [[крекинга нефти|Catalytic Cracking Tower]]." + "uk_UA": "Полімер ('Тефлон') – це перший доступний тип пластику. потребує [[нафтовий газ|Petroleum Gas]], а отже, [[переробку нафти|Crude Oil]].

Повністю взаємозамінний з [[карболітом|Bakelite]], який стає доступним після [[крекінгу нафти|Catalytic Cracking Tower]].", + "ru_RU": "Полимер ('Тефлон') — первый доступный тип пластика. Требует [[нефтяного газа|Petroleum Gas]] и, следовательно, [[переработки нефти|Crude Oil]].

Полностью взаимозаменяем с [[бакелитом|Bakelite]], который становится доступным после [[крекинга нефти|Catalytic Cracking Tower]].", + "zh_CN": "聚合物(“特氟龙”)是第一种可获取的塑料。需要[[石油气|Petroleum Gas]]制作,因此需要 [[原油处理|Crude Oil]]。和[[电木|Bakelite]]完全通用,后者在获得[[催化裂化塔|Catalytic Cracking Tower]]后才可制作。" } } diff --git a/src/main/resources/assets/hbm/manual/material/radium.json b/src/main/resources/assets/hbm/manual/material/radium.json index 331d37adc..cd3e8a006 100644 --- a/src/main/resources/assets/hbm/manual/material/radium.json +++ b/src/main/resources/assets/hbm/manual/material/radium.json @@ -1,13 +1,17 @@ { "name": "Radium-226", "icon": ["hbm:item.billet_ra226", 1, 0], - "trigger": [["hbm:item.ingot_ra226"], ["hbm:item.billet_ra226"], ["hbm:item.nugget_ra226"], ["hbm:item.powder_ra226"]], - "title": { - "en_US": "Radium-226", - "ru_RU": "Радий-226" - }, + "trigger": [["hbm:item.ingot_ra226"], ["hbm:item.billet_ra226"], ["hbm:item.nugget_ra226"], ["hbm:item.powder_ra226"]], + "title": { + "en_US": "Radium-226", + "uk_UA": "Радій-226", + "ru_RU": "Радий-226", + "zh_CN": "镭-226" + }, "content": { "en_US": "Rare radioactive material found in [[uranium|Uranium]] and [[thorium|Thorium-232]] ores, may be extracted using a [[centrifuge|Centrifuge]]. Used with [[beryllium|Beryllium]] in Ra226Be neutron sources, which are vital for kickstarting the [[Chicago Pile]], [[PWR]], [[research reactor|Research Reactor]] and [[RBMK]]. The first available neutron source, and often times the cheapest.

Moderately radioactive.", - "ru_RU": "Редкий радиоактивный материал, содержащийся в рудах [[урана|Uranium]] и [[тория-232|Thorium-232]], может быть извлечён с помощью [[центрифуги|Centrifuge]]. Используется с [[бериллием|Beryllium]] в нейтронных источниках Радий-226-бериллий, которые необходимы для запуска [[Чикагской поленницы|Chicago Pile]], [[ВВЭР|PWR]], [[исследовательского реактора|Research Reactor]] и [[РБМК|RBMK]]. Первый доступный нейтронный источник, часто самый дешевый.

Умеренно радиоактивен." + "uk_UA": "Рідкісний радіоактивний матеріал, що міститься в [[уранових|Uranium]] та [[торієвих|Thorium-232]] рудах, можна отримати за допомогою [[центрифуги|Centrifuge]]. Використовується разом з [[берилієм|Beryllium]] у радій-226 берилієвих джерелах нейтронів, які необхідні для запуску [[Чиказької дровітні|Chicago Pile]], [[ВВЕР|PWR]], [[дослідницького реактора|Research Reactor]] та [[РБМК|RBMK]]. Перше доступне джерело нейтронів і часто найдешевше.

Помірно радіоактивний.", + "ru_RU": "Редкий радиоактивный материал, содержащийся в рудах [[урана|Uranium]] и [[тория-232|Thorium-232]], может быть извлечён с помощью [[центрифуги|Centrifuge]]. Используется с [[бериллием|Beryllium]] в нейтронных источниках радий-226-бериллий, которые необходимы для запуска [[Чикагской поленницы|Chicago Pile]], [[ВВЭР|PWR]], [[исследовательского реактора|Research Reactor]] и [[РБМК|RBMK]]. Первый доступный нейтронный источник, часто самый дешевый.

Умеренно радиоактивен.", + "zh_CN": "稀有的放射性物质,存在于[[铀|Uranium]]矿石和[[钍|Thorium]]矿石中,可通过[[离心机|Centrifuge]]提取。可与[[铍|Beryllium]]混合得到启动[[芝加哥反应堆|Chicago Pile]]、[[RBMK]]、[[PWR]]、[[研究型反应堆|]]必须的镭-226-铍中子源。是最早可获得的中子放射源,而且通常也是最便宜的。

放射性中等。" } } diff --git a/src/main/resources/assets/hbm/manual/material/rubber.json b/src/main/resources/assets/hbm/manual/material/rubber.json index e317d6752..41be5fcee 100644 --- a/src/main/resources/assets/hbm/manual/material/rubber.json +++ b/src/main/resources/assets/hbm/manual/material/rubber.json @@ -1,13 +1,17 @@ { "name": "Rubber", "icon": ["hbm:item.ingot_rubber", 1, 0], - "trigger": [["hbm:item.ingot_rubber"]], - "title": { - "en_US": "Rubber", - "ru_RU": "Резина" - }, + "trigger": [["hbm:item.ingot_rubber"]], + "title": { + "en_US": "Rubber", + "uk_UA": "Гума", + "ru_RU": "Резина", + "zh_CN": "橡胶" + }, "content": { "en_US": "Oil product, derived from [[unsaturated hydrocabons|Unsaturated Hydrocarbons]] and [[sulfur|Sulfur]]. Requires at least a [[cracking tower|Catalytic Cracking Tower]] to make. Can replace [[latex|Latex]] in every recipe.", - "ru_RU": "Продукт переработки нефти, получаемый из [[ненасыщенных углеводородов|Unsaturated Hydrocarbons]] и [[серы|Sulfur]]. Требует как минимум [[башню крекинга|Catalytic Cracking Tower]] для производства. Может заменить [[латекс|Latex]] во всех рецептах." + "uk_UA": "Нафтопродукт, отриманий з [[ненасичених вуглеводнів|Unsaturated Hydrocarbons]] та [[сірки|Sulfur]]. Для виробництва потрібна щонайменше [[вежа каталітичного крекінгу|Catalytic Cracking Tower]]. Може замінити [[латекс|Latex]] у всіх рецептах.", + "ru_RU": "Нефтепродукт, получаемый из [[непредельных углеводородов|Unsaturated Hydrocarbons]] и [[серы|Sulfur]]. Требует как минимум [[башню крекинга|Catalytic Cracking Tower]] для производства. Может заменить [[латекс|Latex]] во всех рецептах.", + "zh_CN": "一种石化产品,衍生自[[不饱和烃|Unsaturated Hydrocarbons]]和[[硫|Sulfur]]。至少需要一台[[催化裂化塔|Catalytic Cracking Tower]]才能制作。可在所有配方中替代[[乳胶|Latex]]。" } } diff --git a/src/main/resources/assets/hbm/manual/material/silicon.json b/src/main/resources/assets/hbm/manual/material/silicon.json index 67951240c..53f20d37e 100644 --- a/src/main/resources/assets/hbm/manual/material/silicon.json +++ b/src/main/resources/assets/hbm/manual/material/silicon.json @@ -1,13 +1,17 @@ { "name": "Silicon", "icon": ["hbm:item.billet_silicon", 1, 0], - "trigger": [["hbm:item.ingot_silicon"], ["hbm:item.billet_silicon"], ["hbm:item.nugget_silicon"]], - "title": { - "en_US": "Silicon", - "ru_RU": "Кремний" - }, + "trigger": [["hbm:item.ingot_silicon"], ["hbm:item.billet_silicon"], ["hbm:item.nugget_silicon"]], + "title": { + "en_US": "Silicon", + "uk_UA": "Кремній", + "ru_RU": "Кремний", + "zh_CN": "硅" + }, "content": { "en_US": "Important material for producing integrated circuits, and any electronics more sophisticated than an analog circuit. Created in an [[electric arc furnace|Electric Arc Furnace]] using things that contain silicon dioxide, like regular sand, nether quartz, fiberglass, flint or [[asbestos|Asbestos]]. Used primarily as wafers (i.e. billets) which are [[pressed|Burner Press]] using a circuit stamp, and then crafted into different types of microchips. Due to requiring an arc furnace, silicon is available after obtaining [[polymer|Polymer]], requiring [[oil|Crude Oil]] processing.", - "ru_RU": "Важный материал для производства интегральных схем и любой электроники, более сложной, чем аналоговые схемы. Производится в [[электродуговой печи|Electric Arc Furnace]] из материалов, содержащих диоксид кремния, таких как обычный песок, незер-кварц, стекловолокно, кремень или [[асбест|Asbestos]]. В основном используется в виде пластин (т.е. заготовок), которые [[прессуются|Burner Press]] с использованием штампа для схем, а затем превращаются в различные типы микросхем. Из-за необходимости в дуговой печи кремний доступен после получения [[полимера|Polymer]], что требует переработки [[нефти|Crude Oil]]." + "uk_UA": "Важливий матеріал для виробництва інтегральних плат та будь-якої електроніки, складнішої за аналогову плату. Виготовляється в [[електричній дуговій печі|Electric Arc Furnace]] використанням матеріалів, що містять діоксид кремнію, наприклад звичайного піску, пекельного кварцу, скловолокна, кременю або [[азбесту|Asbestos]]. Використовується переважно як пластини (тобто заготовки) які [[пресуються|Burner Press]] за допомогою штампа схеми, а потім перетворюються на різні типи мікрочіпів. Через необхідність у дуговій печі, кремній стає доступний після отримання [[полімеру|Polymer]], що вимагає переробки [[нафти|Crude Oil]].", + "ru_RU": "Важный материал для производства интегральных схем и любой электроники, более сложной, чем аналоговые схемы. Производится в [[электродуговой печи|Electric Arc Furnace]] из материалов, содержащих диоксид кремния, таких как обычный песок, кварц незера, стекловолокно, кремень или [[асбест|Asbestos]]. В основном используется в виде пластин (т.е. заготовок), которые [[прессуются|Burner Press]] с использованием штампа для схем, а затем превращаются в различные типы микросхем. Из-за необходимости в дуговой печи кремний доступен после получения [[полимера|Polymer]], что требует переработки [[нефти|Crude Oil]].", + "zh_CN": "生产集成电路以及其他比模拟电路更加复杂的电路的重要材料。可通过使用[[电弧炉|Electric Arc Furnace]]冶炼含二氧化硅的物品(如普通沙子、下界石英、玻璃纤维、燧石和[[石棉|Asbestos]])获取。主要的应用形式为在[[锻压机|Burner Press]]中经电路板锻模锻压的晶圆(即坯料),这些晶圆随后被用来制作多种微处理器。 因为其制作需要电弧炉,硅只能在获得[[聚合物|Polymer]]后制作,因此需要[[原油处理|Crude Oil]]。" } } diff --git a/src/main/resources/assets/hbm/manual/material/sodium.json b/src/main/resources/assets/hbm/manual/material/sodium.json index 6ad6ac6f7..90c98db3f 100644 --- a/src/main/resources/assets/hbm/manual/material/sodium.json +++ b/src/main/resources/assets/hbm/manual/material/sodium.json @@ -1,13 +1,17 @@ { "name": "Sodium", "icon": ["hbm:item.powder_sodium", 1, 0], - "trigger": [["hbm:item.powder_sodium"]], - "title": { - "en_US": "Sodium", - "ru_RU": "Натрий" - }, + "trigger": [["hbm:item.powder_sodium"]], + "title": { + "en_US": "Sodium", + "uk_UA": "Натрій", + "ru_RU": "Натрий", + "zh_CN": "钠" + }, "content": { "en_US": "Mainly derived from sodalite, a gem which is found as a [[centrifuge|Centrifuge]] byproduct of many ores. Used in liquid form as a powerful [[PWR]] coolant.", - "ru_RU": "В основном добывается из содалита, драгоценного камня, который является побочным продуктом [[центрифуги|Centrifuge]] при переработке многих руд. Используется в жидкой форме как мощный охладитель для [[ВВЭР|PWR]]." + "uk_UA": "В основному отримується з содаліту, дорогоцінного каменю, який зустрічається як побічний продукт [[центрифугування|Centrifuge]] багатьох руд. Використовується в рідкому вигляді як потужний охолоджувач для [[ВВЕР|PWR]].", + "ru_RU": "В основном добывается из содалита, драгоценного камня, который является побочным продуктом [[центрифугования|Centrifuge]] при переработке многих руд. Используется в жидкой форме как мощный охладитель для [[ВВЭР|PWR]].", + "zh_CN": "主要通过方钠石获取,方钠石可作为多种矿石的[[离心|Centrifuge]]副产物获得。其液体形式可用作强力的[[PWR]]冷却剂。" } } diff --git a/src/main/resources/assets/hbm/manual/material/steel.json b/src/main/resources/assets/hbm/manual/material/steel.json index 83c6f8867..77dad347b 100644 --- a/src/main/resources/assets/hbm/manual/material/steel.json +++ b/src/main/resources/assets/hbm/manual/material/steel.json @@ -1,13 +1,17 @@ { "name": "Steel", "icon": ["hbm:item.ingot_steel", 1, 0], - "trigger": [["hbm:item.ingot_steel"], ["hbm:item.plate_steel"], ["hbm:item.powder_steel"]], - "title": { - "en_US": "Steel", - "ru_RU": "Сталь" - }, + "trigger": [["hbm:item.ingot_steel"], ["hbm:item.plate_steel"], ["hbm:item.powder_steel"]], + "title": { + "en_US": "Steel", + "uk_UA": "Сталь", + "ru_RU": "Сталь", + "zh_CN": "钢" + }, "content": { "en_US": "Upgraded version of iron, basic material. Used in almost everything. Initially obtained by combining coal and iron in a [[blast furnace|Blast Furnace]]. Upgraded recipes are available later on via [[crucible|Crucible]] and [[rotary furnace|Rotary Furnace]].", - "ru_RU": "Улучшенная версия железа, базовый материал. Используется почти во всем. Изначально получается путём комбинирования угля и железа в [[доменной печи|Blast Furnace]]. Улучшенные рецепты доступны позже через [[плавильню|Crucible]] и [[роторную печь|Rotary Furnace]]." + "uk_UA": "Покращена версія заліза, базовий матеріал. Використовується майже в усьому. Спочатку отримується шляхом поєднання вугілля та заліза в [[доменній печі|Blast Furnace]]. Покращені рецепти доступні пізніше в [[ливарні|Crucible]] та [[роторній печі|Rotary Furnace]].", + "ru_RU": "Улучшенная версия железа, базовый материал. Используется почти во всем. Изначально получается путём комбинирования угля и железа в [[доменной печи|Blast Furnace]]. Улучшенные рецепты доступны позже через [[плавильню|Crucible]] и [[роторную печь|Rotary Furnace]].", + "zh_CN": "铁的升级版,是一种基础金属,几乎所有东西都要用到钢。最初可通过在[[高炉|Blast Furnace]]中混合煤炭和铁获取,而之后也有通过[[坩埚|Crucible]]和[[回转炉|Rotary Furnace]]制作的高级配方。" } } diff --git a/src/main/resources/assets/hbm/manual/material/sulfur.json b/src/main/resources/assets/hbm/manual/material/sulfur.json index 7d9b5915b..5984bf61d 100644 --- a/src/main/resources/assets/hbm/manual/material/sulfur.json +++ b/src/main/resources/assets/hbm/manual/material/sulfur.json @@ -1,13 +1,17 @@ { "name": "Sulfur", "icon": ["hbm:item.sulfur", 1, 0], - "trigger": [["hbm:item.sulfur"]], - "title": { - "en_US": "Sulfur", - "ru_RU": "Сера" - }, + "trigger": [["hbm:item.sulfur"]], + "title": { + "en_US": "Sulfur", + "uk_UA": "Сірка", + "ru_RU": "Сера", + "zh_CN": "硫" + }, "content": { "en_US": "Common ore, found in even larger numbers in the nether. Used in a variety of things, like [[sulfuric acid|Sulfuric Acid]], [[rubber|Rubber]] and in yellowcake for [[uranium|Uranium]] hexafluoride. Can also make gunpowder, matchsticks, or act as yellow dye.", - "ru_RU": "Обычная руда, в больших количествах встречается в Незере. Используется для различных целей, таких как [[серная кислота|Sulfuric Acid]], [[резина|Rubber]] и в йеллоукейке для гексафторида [[урана|Uranium]]. Также может использоваться для изготовления пороха, спичек или в качестве жёлтого красителя." + "uk_UA": "Звичайна руда, зустрічається у великих кількостях в пеклі. Використовується в різних речах, таких як [[сірчана кислота|Sulfuric Acid]], [[гума|Rubber]] та єлоукейку для отримання гексафториду [[урану|Uranium]]. Також може використовуватися для виготовлення пороху, сірників або як жовтий барвник.", + "ru_RU": "Распространённая руда, в больших количествах встречается в Незере. Используется для различных вещей, таких как [[серная кислота|Sulfuric Acid]], [[резина|Rubber]] и в жёлтом кеке для гексафторида [[урана|Uranium]]. Также может использоваться для изготовления пороха, спичек или в качестве жёлтого красителя.", + "zh_CN": "常见矿物,在下界的生成量更多。用于多种配方,例如制作[[硫酸|Sulfuric Acid]]和 [[橡胶|Rubber]],也用于制作黄饼,作为合成六氟化[[铀|Uranium]]的原料。 也可用于制作火药、火柴,以及用作黄色染料。" } } diff --git a/src/main/resources/assets/hbm/manual/material/tantalium.json b/src/main/resources/assets/hbm/manual/material/tantalium.json index e3d0ee9c2..cf3e30380 100644 --- a/src/main/resources/assets/hbm/manual/material/tantalium.json +++ b/src/main/resources/assets/hbm/manual/material/tantalium.json @@ -1,13 +1,17 @@ { "name": "Tantalium", "icon": ["hbm:item.ingot_tantalium", 1, 0], - "trigger": [["hbm:item.ingot_tantalium"], ["hbm:item.powder_tantalium"], ["hbm:item.nugget_tantalium"]], - "title": { - "en_US": "Tantalium", - "ru_RU": "Тантал" - }, + "trigger": [["hbm:item.ingot_tantalium"], ["hbm:item.powder_tantalium"], ["hbm:item.nugget_tantalium"]], + "title": { + "en_US": "Tantalium", + "uk_UA": "Тантал", + "ru_RU": "Тантал", + "zh_CN": "钽" + }, "content": { "en_US": "Tantalium ('Tantalum') can be extracted out of [[coltan|Coltan]] which is only found within one specific area in the world. Used mainly for tantalium capacitors, which are crucial for the control units used by most nuclear bombs.", - "ru_RU": "Тантал ('Tantalum') добывается из [[колтана|Coltan]], который встречается только в одном определенном регионе мира. В основном используется для танталовых конденсаторов, которые критически важны для блоков управления, используемых в большинстве ядерных бомб." + "uk_UA": "Тантал ('Танталій') можна отримати з [[колтану|Coltan]] який зустрічається лише в одному конкретному регіоні світу. Використовується переважно для танталових конденсаторів, які є критично важливими для блоків керування, що використовуються в більшості ядерних бомб.", + "ru_RU": "Тантал ('Tantalum') добывается из [[колтана|Coltan]], который встречается только в одной определённой области мира. В основном используется для танталовых конденсаторов, которые критически важны для блоков управления, используемых в большинстве ядерных бомб.", + "zh_CN": "钽可从仅生成在特定区域的[[钶钽铁矿|Coltan]]中提取。 主要用于制作钽电容器,钽电容器可作为大多数核弹所需的控制单元的重要原料。" } } diff --git a/src/main/resources/assets/hbm/manual/material/technetium.json b/src/main/resources/assets/hbm/manual/material/technetium.json index 5eaef724f..d640d843e 100644 --- a/src/main/resources/assets/hbm/manual/material/technetium.json +++ b/src/main/resources/assets/hbm/manual/material/technetium.json @@ -1,13 +1,17 @@ { "name": "Technetium", "icon": ["hbm:item.ingot_technetium", 1, 0], - "trigger": [["hbm:item.billet_technetium"], ["hbm:item.ingot_technetium"], ["hbm:item.nugget_technetium"]], - "title": { - "en_US": "Technetium", - "ru_RU": "Технеций" - }, + "trigger": [["hbm:item.billet_technetium"], ["hbm:item.ingot_technetium"], ["hbm:item.nugget_technetium"]], + "title": { + "en_US": "Technetium", + "uk_UA": "Технецій-99", + "ru_RU": "Технеций", + "zh_CN": "锝" + }, "content": { "en_US": "Synthetic metal, reprocessed from [[ZIRNOX]] or [[PWR]] fuel early on. May also be extracted from some [[RBMK]] fuels or [[bedrock ore|Bedrock Ore]] with high-performance solvent.

Primarily used for [[technetium steel|Technetium Steel]].

Moderately radioactive.", - "ru_RU": "Синтетический металл, перерабатывается из топлива [[ЦИРНОКС|ZIRNOX]] или [[ВВЭР|PWR]] на ранних стадиях. Также может быть извлечен из некоторых топлив [[РБМК|RBMK]] или [[бедроковой руды|Bedrock Ore]] с использованием высокоэффективного растворителя.

В основном используется для [[технециевой стали|Technetium Steel]].

Умеренно радиоактивен." + "uk_UA": "Синтетичний метал, перероблений з палива [[ЦИРНОКС|ZIRNOX]] або [[ВВЕР|PWR]] на ранніх етапах. також може бути отриманий з деяких видів палива [[РБМК|RBMK]] або [[корінної руди|Bedrock Ore]] за допомогою високоефективного розчинника.

В основному використовується для [[технецієвої сталі|Technetium Steel]].

Помірно радіоактивний.", + "ru_RU": "Синтетический металл, получаемый в результате переработки топлива [[ЦИРНОКС|ZIRNOX]] или [[ВВЭР|PWR]] на ранних стадиях. Также может быть извлечен из некоторых видов топлива [[РБМК|RBMK]] или [[бедроковой руды|Bedrock Ore]] с использованием высокоэффективного растворителя.

В основном используется для [[технециевой стали|Technetium Steel]].

Умеренно радиоактивен.", + "zh_CN": "人工合成的金属元素,初期可通过再处理[[锆诺克斯|ZIRNOX]]和[[PWR]]的枯竭燃料获取。也可通过回收某些[[RBMK]]燃料或使用高性能溶剂处理[[基岩矿石|Bedrock Ore]]获取。

主要用于制作[[锝钢|Technetium Steel]]。

放射性中等。" } } diff --git a/src/main/resources/assets/hbm/manual/material/technetium_steel.json b/src/main/resources/assets/hbm/manual/material/technetium_steel.json index ac31ac861..848f139a7 100644 --- a/src/main/resources/assets/hbm/manual/material/technetium_steel.json +++ b/src/main/resources/assets/hbm/manual/material/technetium_steel.json @@ -1,13 +1,17 @@ { "name": "Technetium Steel", "icon": ["hbm:item.ingot_tcalloy", 1, 0], - "trigger": [["hbm:item.ingot_tcalloy"], ["hbm:item.powder_tcalloy"]], - "title": { - "en_US": "Technetium Steel", - "ru_RU": "Технециевая сталь" - }, + "trigger": [["hbm:item.ingot_tcalloy"], ["hbm:item.powder_tcalloy"]], + "title": { + "en_US": "Technetium Steel", + "uk_UA": "Технецієва сталь", + "ru_RU": "Технециевая сталь", + "zh_CN": "锝钢" + }, "content": { "en_US": "Alloy made from [[steel|Steel]] and [[technetium|Technetium]]. Corrosion resistant, used in stronger fluid tanks and many advanced machines. Obtainable after either a [[ZIRNOX]] or [[PWR]] due to technetium being synthetic.

Fully interchangeable with [[cadmium steel|Cadmium Steel]].", - "ru_RU": "Сплав из [[стали|Steel]] и [[технеция|Technetium]]. Устойчив к коррозии, используется в более прочных резервуарах для жидкостей и во многих продвинутых машинах. Доступен после [[ЦИРНОКС|ZIRNOX]] или [[ВВЭР|PWR]], так как технеций является синтетическим.

Полностью взаимозаменяем с [[кадмиевой сталью|Cadmium Steel]]." + "uk_UA": "Сплав, виготовлений зі [[сталі|Steel]] та [[технецію|Technetium]]. Стійкий до корозії, використовується в більш міцних резервуарах для рідини та в багатьох передових машинах. Одержується після [[ЦИРНОКС|ZIRNOX]] або [[ВВЕР|PWR]], оскільки технецій є синтетичним.

Повністю взаємозамінний з [[кадмієвою сталлю|Cadmium Steel]].", + "ru_RU": "Сплав из [[стали|Steel]] и [[технеция|Technetium]]. Устойчив к коррозии, используется в более прочных резервуарах для жидкостей и во многих продвинутых машинах. Доступен после [[ЦИРНОКС|ZIRNOX]] или [[ВВЭР|PWR]], так как технеций является синтетическим.

Полностью взаимозаменяем с [[кадмиевой сталью|Cadmium Steel]].", + "zh_CN": "[[钢|Steel]]和[[锝|Technetium]]的合金,耐腐蚀,用于制作强度更高的液体储罐和多种高级机器。 由于锝需要人工制造,因此只能在建造[[锆诺克斯|ZIRNOX]]或[[PWR]]之后获取。

和[[镉钢|Cadmium Steel]]完全通用。" } } diff --git a/src/main/resources/assets/hbm/manual/material/thorium.json b/src/main/resources/assets/hbm/manual/material/thorium.json index be512e7cc..075261d4a 100644 --- a/src/main/resources/assets/hbm/manual/material/thorium.json +++ b/src/main/resources/assets/hbm/manual/material/thorium.json @@ -1,13 +1,17 @@ { "name": "Thorium-232", "icon": ["hbm:item.billet_th232", 1, 0], - "trigger": [["hbm:item.ingot_th232"], ["hbm:item.billet_th232"], ["hbm:item.nugget_th232"], ["hbm:item.powder_thorium"]], - "title": { - "en_US": "Thorium-232", - "ru_RU": "Торий-232" - }, + "trigger": [["hbm:item.ingot_th232"], ["hbm:item.billet_th232"], ["hbm:item.nugget_th232"], ["hbm:item.powder_thorium"]], + "title": { + "en_US": "Thorium-232", + "uk_UA": "Торій-232", + "ru_RU": "Торий-232", + "zh_CN": "钍-232" + }, "content": { "en_US": "Fertile (i.e. can be bred) isotope which yields [[uranium-233|Uranium-233]]. Can either be irradiated in an [[RBMK]] to produce [[thorium fuel|Thorium Fuel]] or combined with uranium-233. Thorium-derived fuels are generally cost-effective but not very powerful. Also usable in [[liquid thorium salt|Liquid Thorium Salt]], a powerful [[PWR]] coolant (turning it into a molten salt reactor) which yields tons of uranium-233 quickly.

Slightly radioactive.", - "ru_RU": "Фертильный (т.е. пригодный для размножения) изотоп, дающий [[уран-233|Uranium-233]]. Может быть облучен в [[РБМК|RBMK]] для производства [[ториевого топлива|Thorium Fuel]] или комбинирован с ураном-233. Топлива, производные от тория, обычно экономичны, но не очень мощные. Также используется в [[жидкой ториевой соли|Liquid Thorium Salt]], мощном охладителе [[ВВЭР|PWR]], превращающем его в реактор на расплавленных солях, который быстро производит большое количество урана-233.

Слабо радиоактивен." + "uk_UA": "Фертильний (тобто придатний до розмноження) ізотоп який дає [[уран-233|Uranium-233]]. Може бути опромінений в [[РБМК|RBMK]] для отримання [[торієвого палива|Thorium Fuel]] або поєднаний з ураном-233. Паливо, отримане з торію, зазвичай економічне, але не дуже потужне. Також використовується у вигляді [[рідкої торієвої солі|Liquid Thorium Salt]], потужному теплоносію [[ВВЕР|PWR]] (перетворюючи його у реактор на розплавах солей) який швидко дає тонни урану-233.

Слабко радіоактивний.", + "ru_RU": "Фертильный (т.е. пригодный для размножения) изотоп, дающий [[уран-233|Uranium-233]]. Может быть облучен в [[РБМК|RBMK]] для производства [[ториевого топлива|Thorium Fuel]] или комбинирован с ураном-233. Топливо, производное от тория, обычно экономично, но не очень мощное. Также используется в [[жидкой ториевой соли|Liquid Thorium Salt]], мощном охладителе [[ВВЭР|PWR]], превращающем его в реактор на расплавленных солях, который быстро производит большое количество урана-233.

Слабо радиоактивен.", + "zh_CN": "可增殖的同位素,增殖后产生[[铀-233|Uranium-233]]。可通过在[[RBMK]]中辐照或与铀-233混合得到[[钍燃料|Thorium Fuel]]。 总体来讲,由钍衍生的燃料成本较低,但能量不高。 也可用于[[液态钍盐|Liquid Thorium Salt]],其可作为一种强力的[[PWR]]冷却剂(同时将反应堆变成熔盐堆),同时快速产生大量铀-233。

略有放射性。" } } diff --git a/src/main/resources/assets/hbm/manual/material/uranium-233.json b/src/main/resources/assets/hbm/manual/material/uranium-233.json index d1802f419..ea6e52f83 100644 --- a/src/main/resources/assets/hbm/manual/material/uranium-233.json +++ b/src/main/resources/assets/hbm/manual/material/uranium-233.json @@ -1,13 +1,17 @@ { "name": "Uranium-233", "icon": ["hbm:item.billet_u233", 1, 0], - "trigger": [["hbm:item.ingot_u233"], ["hbm:item.billet_u233"], ["hbm:item.nugget_u233"]], - "title": { - "en_US": "Uranium-233", - "ru_RU": "Уран-233" - }, + "trigger": [["hbm:item.ingot_u233"], ["hbm:item.billet_u233"], ["hbm:item.nugget_u233"]], + "title": { + "en_US": "Uranium-233", + "uk_UA": "Уран-233", + "ru_RU": "Уран-233", + "zh_CN": "铀-233" + }, "content": { "en_US": "Artificial type of fissile uranium (i.e. reactor capable), created by reprocessing [[thorium-based fuels|Thorium Fuel]]. High enriched uranium-233 fuel is generally more powerful than fuel derived from [[uranium-235|Uranium-235]].

Moderately radioactive.", - "ru_RU": "Искусственный тип делящегося урана (т.е. пригодного для реакторов), получаемый путём переработки [[ториевых топлив|Thorium Fuel]]. Высокообогащенное топливо урана-233, как правило, мощнее, чем топливо, полученное из [[урана-235|Uranium-235]].

Умеренно радиоактивен." + "uk_UA": "Штучний ізотоп урану здатного до розщеплення (тобто придатного для реакторів), отримується шляхом переробки [[палива на основі торію|Thorium Fuel]]. Високозбагачене паливо з урану-233, як правило, потужніше, ніж паливо, отримане з [[урану-235|Uranium-235]].

Помірно радіоактивний.", + "ru_RU": "Искусственный тип делящегося урана (т.е. пригодного для реакторов), получаемый путём переработки [[ториевых топлив|Thorium Fuel]]. Высокообогащённое топливо из урана-233, как правило, мощнее, чем топливо, полученное из [[урана-235|Uranium-235]].

Умеренно радиоактивен.", + "zh_CN": "人工制造的易裂变(即能够用于反应堆)的铀同位素,可通过再处理[[钍基燃料|Thorium Fuel]]获取。总体来讲,高浓缩度的铀-233较基于铀-235的燃料更加强力。

放射性中等。" } } diff --git a/src/main/resources/assets/hbm/manual/material/uranium-235.json b/src/main/resources/assets/hbm/manual/material/uranium-235.json index 56b101d67..23e2a810c 100644 --- a/src/main/resources/assets/hbm/manual/material/uranium-235.json +++ b/src/main/resources/assets/hbm/manual/material/uranium-235.json @@ -1,13 +1,17 @@ { "name": "Uranium-235", "icon": ["hbm:item.billet_u235", 1, 0], - "trigger": [["hbm:item.ingot_u235"], ["hbm:item.billet_u235"], ["hbm:item.nugget_u235"]], - "title": { - "en_US": "Uranium-235", - "ru_RU": "Уран-235" - }, + "trigger": [["hbm:item.ingot_u235"], ["hbm:item.billet_u235"], ["hbm:item.nugget_u235"]], + "title": { + "en_US": "Uranium-235", + "uk_UA": "Уран-235", + "ru_RU": "Уран-235", + "zh_CN": "铀-235" + }, "content": { "en_US": "Enriched uranium. Fissile, usable in some reactors directly as high enriched fuel, or mixed back with [[uranium-238|Uranium-238]] for medium enriched uranium fuels. Weapons grade. Created initially by processing [[uranium hexafluuoride|Uranium Hexafluoride]] in a cascade of four [[gas centrifuges|Gas Centriuge]], available later on by separating [[natural uranium|Uranium]] via [[SILEX]].

Moderately radioactive.", - "ru_RU": "Обогащенный уран. Делящийся, используется в некоторых реакторах непосредственно как высокообогащенное топливо или смешивается с [[ураном-238|Uranium-238]] для среднеобогащенных урановых топлив. Оружейное качество. Изначально создается путём переработки [[гексафторида урана|Uranium Hexafluoride]] в каскаде из четырех [[газовых центрифуг|Gas Centrifuge]], позже доступен через разделение [[натурального урана|Uranium]] с помощью [[SILEX]].

Умеренно радиоактивен." + "uk_UA": "Збагачений уран. Придатний до розщеплення, використовується в деяких реакторах безпосередньо як високозбагачене паливо або змішується з [[ураном-238|Uranium-238]] для отримання середньозбагаченого уранового палива. Збройового класу. Спочатку отримується шялхом переробки [[гексафториду урану|Uranium Hexafluoride]] у каскаді з чотирьох [[газових центрифуг|Gas Centriuge]], пізніше доступний шляхом розділення [[природного урану|Uranium]] за допомогою [[камери лазерного розділення ізотопів|SILEX]].

Помірно радіоактивний.", + "ru_RU": "Обогащённый уран. Делящийся, используется в некоторых реакторах непосредственно как высокообогащенное топливо или смешивается с [[ураном-238|Uranium-238]] для среднеобогащенного уранового топлива. Оружейное качество. Изначально создается путём переработки [[гексафторида урана|Uranium Hexafluoride]] в каскаде из четырех [[газовых центрифуг|Gas Centrifuge]], позже доступен через разделение [[натурального урана|Uranium]] с помощью [[SILEX]].

Умеренно радиоактивен.", + "zh_CN": "浓缩的铀,容易裂变,可直接作为高浓缩度燃料用于某些反应堆,也可与[[铀-238|Uranium-238]]混合回中浓缩度的铀燃料。 也是一种武器级的同位素。最初可通过在四台串联的[[气体离心机|Gas Centrifuge]]中处理[[六氟化铀|Uranium Hexafluoride]]获取,之后也可直接在[[SILEX]]中 分离[[天然铀|Uranium]]获取。

放射性中等。" } } diff --git a/src/main/resources/assets/hbm/manual/material/uranium-238.json b/src/main/resources/assets/hbm/manual/material/uranium-238.json index ca87770e1..6d55e3765 100644 --- a/src/main/resources/assets/hbm/manual/material/uranium-238.json +++ b/src/main/resources/assets/hbm/manual/material/uranium-238.json @@ -1,13 +1,17 @@ { "name": "Uranium-238", "icon": ["hbm:item.billet_u238", 1, 0], - "trigger": [["hbm:item.ingot_u238"], ["hbm:item.billet_u238"], ["hbm:item.nugget_u238"]], - "title": { - "en_US": "Uranium-238", - "ru_RU": "Уран-238" - }, + "trigger": [["hbm:item.ingot_u238"], ["hbm:item.billet_u238"], ["hbm:item.nugget_u238"]], + "title": { + "en_US": "Uranium-238", + "uk_UA": "Уран-238", + "ru_RU": "Уран-238", + "zh_CN": "铀-238" + }, "content": { "en_US": "Depleted uranium, not fissile (i.e. not directly reactor-usable). Primarily a byproduct from enriching [[uranium|Uranium]]. Used in [[ferrouranium|Ferrouranium]], for [[depleted uranium ammo|Depleted Uranium Ammo]] and for certain low-enriched fuels. Fuels that contain uranium-238 typically yield useful [[plutonium-239|Plutonium-239]] when reprocessing.

Slightly radioactive.", - "ru_RU": "Истощенный уран, не делящийся (т.е. не пригоден для прямого использования в реакторах). В основном является побочным продуктом обогащения [[урана|Uranium]]. Используется в [[ферроурание|Ferrouranium]], для [[боеприпасов с истощенным ураном|Depleted Uranium Ammo]] и для некоторых низкообогащенных топлив. Топлива, содержащие уран-238, при переработке обычно дают полезный [[плутоний-239|Plutonium-239]].

Слабо радиоактивен." + "uk_UA": "Збіднений уран, не ділиться (тобто не придатний для безпосереднього використання в реакторах). В основному побічний продукт збагачення [[урану|Uranium]]. Використовується у виготовленні [[фероурану|Ferrouranium]], [[боєприпасів зі збідненим ураном|Depleted Uranium Ammo]] та для певного низькозбагаченого палива. Паливо, що містить уран-238 зазвичай дає корисний [[плутоній-239|Plutonium-239]] під час переробки.

Слабо радіоактивний.", + "ru_RU": "Обеднённый уран, не делящийся (т.е. не пригоден для прямого использования в реакторах). В основном является побочным продуктом обогащения [[урана|Uranium]]. Используется в [[ферроуране|Ferrouranium]], для [[боеприпасов с обеднённым ураном|Depleted Uranium Ammo]] и для некоторых низкообогащенных видов топлива. Виды топлива, содержащие уран-238, при переработке обычно дают полезный [[плутоний-239|Plutonium-239]].

Слабо радиоактивен.", + "zh_CN": "贫铀,不能作为燃料(即无法直接被反应堆使用)。通常作为[[铀|Uranium]]浓缩过程中的副产品。用于制造[[铀铁合金|Ferrouranium]],[[贫铀弹药|Depleted Uranium Ammo]]和低浓缩度燃料。含有铀-238的燃料在再处理时会产生有用的[[钚-239|Plutonium-239]]。

略有放射性。" } } diff --git a/src/main/resources/assets/hbm/manual/material/uranium.json b/src/main/resources/assets/hbm/manual/material/uranium.json index 89ab05f6b..a85eae076 100644 --- a/src/main/resources/assets/hbm/manual/material/uranium.json +++ b/src/main/resources/assets/hbm/manual/material/uranium.json @@ -1,13 +1,17 @@ { "name": "Uranium", "icon": ["hbm:item.ingot_uranium", 1, 0], - "trigger": [["hbm:item.ingot_uranium"], ["hbm:item.billet_uranium"], ["hbm:item.nugget_uranium"], ["hbm:item.powder_uranium"], ["hbm:tile.ore_uranium"]], - "title": { - "en_US": "Uranium", - "ru_RU": "Уран" - }, + "trigger": [["hbm:item.ingot_uranium"], ["hbm:item.billet_uranium"], ["hbm:item.nugget_uranium"], ["hbm:item.powder_uranium"], ["hbm:tile.ore_uranium"]], + "title": { + "en_US": "Uranium", + "uk_UA": "Уран", + "ru_RU": "Уран", + "zh_CN": "铀" + }, "content": { "en_US": "Natural uranium, slightly radioactive. Not very fissile on its own, can be enriched by turning it into [[uranium hexafluoride|Uranium Hexafluoride]] and processing it in [[gas centrifuges|Gas Centrifuge]]. [[ZIRNOX]], [[RBMK]] and [[Chigago Pile]] may use natural uranium as fuel without enrichment.

See also:
[[Uranium-233]]
[[Uranium-235]]
[[Uranium-238]]", - "ru_RU": "Натуральный уран, слабо радиоактивен. Сам по себе не очень делящийся, может быть обогащен путём превращения в [[гексафторид урана|Uranium Hexafluoride]] и переработки в [[газовых центрифугах|Gas Centrifuge]]. [[ЦИРНОКС|ZIRNOX]], [[РБМК|RBMK]] и [[Чикагская поленница|Chicago Pile]] могут использовать натуральный уран как топливо без обогащения.

См. также:
[[Уран-233|Uranium-233]]
[[Уран-235|Uranium-235]]
[[Уран-238|Uranium-238]]" + "uk_UA": "Природний уран, слабо радіоактивний. Сам по собі не дуже ділиться, його можна збагачувати, перетворюючи на [[гексафторид урану|Uranium Hexafluoride]] та оброблюючи в [[газових центрифугах|Gas Centrifuge]]. [[ЦИРНОКС|ZIRNOX]], [[РБМК|RBMK]] та [[Чиказька дровітня|Chigago Pile]] можуть використовувати природний уран як паливо без збагачення.

Див. також:
[[Уран-233|Uranium-233]]
[[Уран-235|Uranium-235]]
[[Уран-238|Uranium-238]]", + "ru_RU": "Природный уран, слабо радиоактивен. Сам по себе не очень делящийся, может быть обогащён путём превращения в [[гексафторид урана|Uranium Hexafluoride]] и переработки в [[газовых центрифугах|Gas Centrifuge]]. [[ЦИРНОКС|ZIRNOX]], [[РБМК|RBMK]] и [[Чикагская поленница|Chicago Pile]] могут использовать природный уран как топливо без обогащения.

См. также:
[[Уран-233|Uranium-233]]
[[Уран-235|Uranium-235]]
[[Уран-238|Uranium-238]]", + "zh_CN": "天然铀,具有微弱放射性。本身不太容易裂变,但可通过将其变为[[六氟化铀|Uranium Hexafluoride]]并在[[气体离心机|Gas Centrifuge]]中处理以将其浓缩。[[锆诺克斯|ZIRNOX]],[[RBMK]]和[[芝加哥反应堆|Chigago Pile]]可直接将未浓缩铀用作燃料。

另见:
[[铀-233|Uranium-233]]
[[铀-235|Uranium-235]]
[[铀-238|Uranium-238]]" } } diff --git a/src/main/resources/assets/hbm/manual/material/weaponsteel.json b/src/main/resources/assets/hbm/manual/material/weaponsteel.json index 52e5c11ed..9b7d9b2df 100644 --- a/src/main/resources/assets/hbm/manual/material/weaponsteel.json +++ b/src/main/resources/assets/hbm/manual/material/weaponsteel.json @@ -1,13 +1,17 @@ { "name": "Weapon Steel", "icon": ["hbm:item.ingot_weaponsteel", 1, 0], - "trigger": [["hbm:item.ingot_weaponsteel"], ["hbm:item.plate_weaponsteel"]], - "title": { - "en_US": "Weapon Steel", - "ru_RU": "Оружейная сталь" - }, + "trigger": [["hbm:item.ingot_weaponsteel"], ["hbm:item.plate_weaponsteel"]], + "title": { + "en_US": "Weapon Steel", + "uk_UA": "Збройова сталь", + "ru_RU": "Оружейная сталь", + "zh_CN": "武器级钢" + }, "content": { "en_US": "High-purity version of [[steel|Steel]] made in a [[rotary furnace|Rotary Furnace]]. Requires [[coker gas|Coker Gas]], and therefore a [[coker unit|Coker Unit]]. Used in many mid-game weapons, weapon modifications and missile warheads.", - "ru_RU": "Высококачественная версия [[стали|Steel]], изготовленная в [[роторной печи|Rotary Furnace]]. Требует [[коксовый газ|Coker Gas]] и, следовательно, [[коксовую установку|Coker Unit]]. Используется во многих оружиях среднего этапа игры, модификациях оружия и боеголовках ракет." + "uk_UA": "Високочиста версія [[сталі|Steel]] виготовлена в [[роторній печі|Rotary Furnace]]. Потребує [[коксовий газ|Coker Gas]], тому і [[коксову установку|Coker Unit]]. Використовується в багатьох видах мідгеймової зброї, модифікаціях зброї та ракетних боєголовках.", + "ru_RU": "Высококачественная версия [[стали|Steel]], изготовленная в [[роторной печи|Rotary Furnace]]. Требует [[коксовый газ|Coker Gas]] и, следовательно, [[коксовую установку|Coker Unit]]. Используется во многих оружиях среднего этапа игры, модификациях оружия и боеголовках ракет.", + "zh_CN": "在[[回转炉|Rotary Furnace]]中制作的高纯度[[钢|Steel]]。需要[[焦化气|Coker Gas]],焦化气则需要[[焦化装置|Coker Unit]]来制作。用于游戏中期的武器制作和改装以及导弹弹头的制作。" } } diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_am_mix.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_am_mix.png index 12f553847..1362ef70b 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_am_mix.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_am_mix.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_pu241.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_pu241.png index 01c0f4e83..0d8f5ae97 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_pu241.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_pu241.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hea242.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hea242.png index 02db8994d..5d37d8a53 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hea242.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hea242.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hen237.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hen237.png index 64228fb58..de05e5cf0 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hen237.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hen237.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hep239.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hep239.png index c14fe4ec2..dbc98b8d5 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hep239.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hep239.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hep241.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hep241.png index 2a99abe38..3a5210046 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hep241.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hep241.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes326.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes326.png index d659fdd2f..4ece6a899 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes326.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes326.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes327.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes327.png index 7a1f8df98..15a94978f 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes327.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes327.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu233.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu233.png index 8961cc636..2e20c7838 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu233.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu233.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu235.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu235.png index c80a207b0..7b398f44b 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu235.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu235.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.mea.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.mea.png index 90305870d..cb92ca074 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel.mea.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.mea.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.men.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.men.png index c21db4157..c7d9463db 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel.men.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.men.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.mep.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.mep.png index 1d1334635..9feec8b65 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel.mep.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.mep.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.meu.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.meu.png index ca1e8e89e..eaf2ddeec 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel.meu.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.meu.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.mox.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.mox.png index 59d0a64a2..056578a18 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel.mox.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel.mox.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel_base.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel_base.png index 9d614943b..2b4d197bb 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel_base.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel_base.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel_depleted.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel_depleted.png index cb2b2d545..34fd113b5 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel_depleted.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel_depleted.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel_hot.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel_hot.png index 84b4903d4..504f02b1b 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pwr_fuel_hot.png and b/src/main/resources/assets/hbm/textures/items/pwr_fuel_hot.png differ