From f89fc3702e3995e02ec98128709ab176b7398872 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 5 May 2021 23:35:08 +0200 Subject: [PATCH] RBMK auto control function limit, console GUI, recipes --- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../com/hbm/blocks/generic/BlockGeysir.java | 6 ++ .../java/com/hbm/crafting/MineralRecipes.java | 6 ++ src/main/java/com/hbm/handler/GUIHandler.java | 14 +++ .../com/hbm/inventory/AssemblerRecipes.java | 8 ++ .../container/ContainerRBMKConsole.java | 35 ++++++++ .../com/hbm/inventory/gui/GUIRBMKConsole.java | 43 +++++++++ src/main/java/com/hbm/items/ModItems.java | 9 ++ .../java/com/hbm/items/tool/ItemRBMKTool.java | 82 ++++++++++++++++++ .../rbmk/TileEntityRBMKControlAuto.java | 44 ++++++---- .../rbmk/TileEntityRBMKSlottedBase.java | 1 - src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../gui/reactors/gui_rbmk_console.png | Bin 5073 -> 4420 bytes .../hbm/textures/items/fragment_boron.png | Bin 0 -> 426 bytes .../assets/hbm/textures/items/ingot_boron.png | Bin 0 -> 318 bytes .../hbm/textures/items/ingot_graphene.png | Bin 0 -> 194 bytes .../hbm/textures/items/ingot_graphite.png | Bin 0 -> 194 bytes .../ingot_grayscale_1_17_copper_base.png | Bin 0 -> 310 bytes .../hbm/textures/items/powder_boron.png | Bin 0 -> 343 bytes .../hbm/textures/items/powder_boron_tiny.png | Bin 0 -> 196 bytes .../assets/hbm/textures/items/rbmk_tool.png | Bin 0 -> 259 bytes 22 files changed, 235 insertions(+), 19 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerRBMKConsole.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java create mode 100644 src/main/java/com/hbm/items/tool/ItemRBMKTool.java create mode 100644 src/main/resources/assets/hbm/textures/items/fragment_boron.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_boron.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_graphene.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_graphite.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_grayscale_1_17_copper_base.png create mode 100644 src/main/resources/assets/hbm/textures/items/powder_boron.png create mode 100644 src/main/resources/assets/hbm/textures/items/powder_boron_tiny.png create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_tool.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index fc67ae3d3..9cb0fc988 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -867,7 +867,7 @@ public class ModBlocks { public static final int guiID_rbmk_boiler = 114; public static final int guiID_rbmk_control = 115; public static final int guiID_rbmk_control_auto = 116; - public static final int guiID_rbmk_console = 17; + public static final int guiID_rbmk_console = 117; public static Block pribris; public static Block pribris_burning; public static Block pribris_radiating; diff --git a/src/main/java/com/hbm/blocks/generic/BlockGeysir.java b/src/main/java/com/hbm/blocks/generic/BlockGeysir.java index 4cfdda076..1cff744d6 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGeysir.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGeysir.java @@ -12,6 +12,7 @@ import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.init.Blocks; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; @@ -44,6 +45,11 @@ public class BlockGeysir extends BlockContainer { public BlockGeysir(Material p_i45386_1_) { super(p_i45386_1_); } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 49fb15c88..62dbf90d3 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -20,6 +20,12 @@ public class MineralRecipes { RecipesCommon.add9To1(ModItems.ingot_aluminium, ModBlocks.block_aluminium); RecipesCommon.add1To9(ModBlocks.block_aluminium, ModItems.ingot_aluminium); + RecipesCommon.add9To1(ModItems.ingot_graphite, ModBlocks.block_graphite); + RecipesCommon.add1To9(ModBlocks.block_graphite, ModItems.ingot_graphite); + + RecipesCommon.add9To1(ModItems.ingot_boron, ModBlocks.block_boron); + RecipesCommon.add1To9(ModBlocks.block_boron, ModItems.ingot_boron); + RecipesCommon.add9To1(ModItems.nugget_zirconium, ModItems.ingot_zirconium); RecipesCommon.add1To9(ModItems.ingot_zirconium, ModItems.nugget_zirconium); diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index cb0ef8ab6..8acef8c0f 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -813,6 +813,13 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_rbmk_console: { + if(entity instanceof TileEntityRBMKConsole) { + return new ContainerRBMKConsole(player.inventory, (TileEntityRBMKConsole) entity); + } + return null; + } } // NON-TE CONTAINERS @@ -1613,6 +1620,13 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_rbmk_console: { + if(entity instanceof TileEntityRBMKConsole) { + return new GUIRBMKConsole(player.inventory, (TileEntityRBMKConsole) entity); + } + return null; + } } // ITEM GUIS diff --git a/src/main/java/com/hbm/inventory/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/AssemblerRecipes.java index c69dbf95c..a3e3efc31 100644 --- a/src/main/java/com/hbm/inventory/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/AssemblerRecipes.java @@ -683,6 +683,14 @@ public class AssemblerRecipes { new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.crystal_diamond, 1) }, 400); + + makeRecipe(new ComparableStack(ModBlocks.rbmk_blank, 1), new AStack[] { + new ComparableStack(ModBlocks.concrete, 6), + new ComparableStack(ModItems.ingot_asbestos, 6), + new OreDictStack("plateSteel", 12), + new OreDictStack("ingotCopper", 4), + new ComparableStack(ModItems.plate_polymer, 4) + }, 100); makeRecipe(new ComparableStack(ModBlocks.block_cap_nuka, 1), new AStack[] { new ComparableStack(ModItems.cap_nuka, 128) }, 10); makeRecipe(new ComparableStack(ModBlocks.block_cap_quantum, 1), new AStack[] { new ComparableStack(ModItems.cap_quantum, 128) }, 10); diff --git a/src/main/java/com/hbm/inventory/container/ContainerRBMKConsole.java b/src/main/java/com/hbm/inventory/container/ContainerRBMKConsole.java new file mode 100644 index 000000000..ecbd057ff --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerRBMKConsole.java @@ -0,0 +1,35 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerRBMKConsole extends Container { + + private TileEntityRBMKConsole rbmk; + + public ContainerRBMKConsole(InventoryPlayer invPlayer, TileEntityRBMKConsole tedf) { + this.rbmk = tedf; + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + return null; + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return rbmk.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java new file mode 100644 index 000000000..0aa1a841e --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java @@ -0,0 +1,43 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerRBMKConsole; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIRBMKConsole extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/reactors/gui_rbmk_console.png"); + private TileEntityRBMKConsole console; + + public GUIRBMKConsole(InventoryPlayer invPlayer, TileEntityRBMKConsole tedf) { + super(new ContainerRBMKConsole(invPlayer, tedf)); + this.console = tedf; + + this.xSize = 244; + this.ySize = 172; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 71, guiTop + 29, 16, 56, mouseX, mouseY, new String[]{ "%" } ); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + } + + @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); + } +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 9f56383ba..4b90d67b4 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -113,6 +113,8 @@ public class ModItems { public static Item nugget_solinium; public static Item ingot_phosphorus; public static Item ingot_semtex; + public static Item ingot_boron; + public static Item ingot_graphite; public static Item ingot_australium; public static Item ingot_weidanium; @@ -1019,6 +1021,7 @@ public class ModItems { public static Item digamma_diagnostic; public static Item survey_scanner; public static Item mirror_tool; + public static Item rbmk_tool; public static Item template_folder; public static Item journal_pip; @@ -2296,6 +2299,8 @@ public class ModItems { ingot_au198 = new ItemHazard().addRadiation(ItemHazard.au198 * ItemHazard.ingot).addFire(15).toItem().setUnlocalizedName("ingot_au198").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_au198"); ingot_titanium = new Item().setUnlocalizedName("ingot_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_titanium"); ingot_cobalt = new Item().setUnlocalizedName("ingot_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cobalt"); + ingot_boron = new Item().setUnlocalizedName("ingot_boron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_boron"); + ingot_graphite = new Item().setUnlocalizedName("ingot_graphite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_graphite"); sulfur = new Item().setUnlocalizedName("sulfur").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sulfur"); ingot_uranium_fuel = new ItemHazard(ItemHazard.uf * ItemHazard.ingot).setUnlocalizedName("ingot_uranium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_uranium_fuel"); @@ -4036,6 +4041,7 @@ public class ModItems { digamma_diagnostic = new ItemDigammaDiagnostic().setUnlocalizedName("digamma_diagnostic").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":digamma_diagnostic"); survey_scanner = new ItemSurveyScanner().setUnlocalizedName("survey_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":survey_scanner"); mirror_tool = new ItemMirrorTool().setUnlocalizedName("mirror_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":mirror_tool"); + rbmk_tool = new ItemRBMKTool().setUnlocalizedName("rbmk_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":rbmk_tool"); key = new ItemKey().setUnlocalizedName("key").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key"); key_red = new ItemCustomLore().setUnlocalizedName("key_red").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red"); @@ -4865,6 +4871,8 @@ public class ModItems { GameRegistry.registerItem(ingot_lead, ingot_lead.getUnlocalizedName()); GameRegistry.registerItem(ingot_beryllium, ingot_beryllium.getUnlocalizedName()); GameRegistry.registerItem(ingot_cobalt, ingot_cobalt.getUnlocalizedName()); + GameRegistry.registerItem(ingot_boron, ingot_boron.getUnlocalizedName()); + GameRegistry.registerItem(ingot_graphite, ingot_graphite.getUnlocalizedName()); GameRegistry.registerItem(ingot_dura_steel, ingot_dura_steel.getUnlocalizedName()); GameRegistry.registerItem(ingot_polymer, ingot_polymer.getUnlocalizedName()); GameRegistry.registerItem(ingot_schraranium, ingot_schraranium.getUnlocalizedName()); @@ -5891,6 +5899,7 @@ public class ModItems { GameRegistry.registerItem(oil_detector, oil_detector.getUnlocalizedName()); GameRegistry.registerItem(survey_scanner, survey_scanner.getUnlocalizedName()); GameRegistry.registerItem(mirror_tool, mirror_tool.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_tool, rbmk_tool.getUnlocalizedName()); GameRegistry.registerItem(geiger_counter, geiger_counter.getUnlocalizedName()); GameRegistry.registerItem(digamma_diagnostic, digamma_diagnostic.getUnlocalizedName()); GameRegistry.registerItem(containment_box, containment_box.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/tool/ItemRBMKTool.java b/src/main/java/com/hbm/items/tool/ItemRBMKTool.java new file mode 100644 index 000000000..c87459e28 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemRBMKTool.java @@ -0,0 +1,82 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.google.common.collect.Multimap; +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.rbmk.RBMKBase; +import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole; +import com.hbm.util.I18nUtil; + +import net.minecraft.block.Block; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class ItemRBMKTool extends Item { + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { + + Block b = world.getBlock(x, y, z); + + if(b instanceof RBMKBase) { + + int[] pos = ((BlockDummyable)b).findCore(world, x, y, z); + + if(pos != null && !world.isRemote) { + + if(!stack.hasTagCompound()) + stack.stackTagCompound = new NBTTagCompound(); + + stack.stackTagCompound.setInteger("posX", pos[0]); + stack.stackTagCompound.setInteger("posY", pos[1] + 1); + stack.stackTagCompound.setInteger("posZ", pos[2]); + + player.addChatComponentMessage(new ChatComponentTranslation(this.getUnlocalizedName() + ".linked").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); + } + + return true; + } + + if(b == ModBlocks.rbmk_console && stack.hasTagCompound()) { + + if(!world.isRemote) { + + int[] pos = ((BlockDummyable)b).findCore(world, x, y, z); + + TileEntityRBMKConsole mirror = (TileEntityRBMKConsole)world.getTileEntity(pos[0], pos[1], pos[2]); + int tx = stack.stackTagCompound.getInteger("posX"); + int ty = stack.stackTagCompound.getInteger("posY"); + int tz = stack.stackTagCompound.getInteger("posZ"); + } + + return true; + } + + return false; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + for(String s : I18nUtil.resolveKeyArray(this.getUnlocalizedName() + ".desc")) + list.add(EnumChatFormatting.YELLOW + s); + } + + @Override + public Multimap getAttributeModifiers(ItemStack stack) { + + Multimap multimap = super.getAttributeModifiers(stack); + multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), new AttributeModifier(field_111210_e, "Weapon modifier", 2, 0)); + return multimap; + } +} 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 fb1026946..8252f5ab9 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlAuto.java @@ -32,24 +32,34 @@ public class TileEntityRBMKControlAuto extends TileEntityRBMKControl implements if(!worldObj.isRemote) { double fauxLevel = 0; + + double lowerBound = Math.min(this.heatLower, this.heatUpper); + double upperBound = Math.max(this.heatLower, this.heatUpper); - //TODO: there's some chaos that needs limiting - - switch(this.function) { - case LINEAR: - // my brain hasn't been this challenged since my math finals in - // '19 - fauxLevel = (this.heat - this.heatLower) * ((this.levelUpper - this.levelLower) / (this.heatUpper - this.heatLower)) + this.levelLower; - break; - - case QUAD_UP: - // so this is how we roll, huh? - fauxLevel = Math.pow((this.heat - this.heatLower) / (this.heatUpper - this.heatLower), 2) * (this.levelUpper - this.levelLower) + this.levelLower; - break; - case QUAD_DOWN: - // sometimes my genius is almost frightening - fauxLevel = Math.pow((this.heat - this.heatUpper) / (this.heatLower - this.heatUpper), 2) * (this.levelLower - this.levelUpper) + this.levelUpper; - break; + if(this.heat < lowerBound) { + fauxLevel = this.levelLower; + + } else if(this.heat > upperBound) { + fauxLevel = this.levelUpper; + + } else { + + switch(this.function) { + case LINEAR: + // my brain hasn't been this challenged since my math finals in + // '19 + fauxLevel = (this.heat - this.heatLower) * ((this.levelUpper - this.levelLower) / (this.heatUpper - this.heatLower)) + this.levelLower; + break; + + case QUAD_UP: + // so this is how we roll, huh? + fauxLevel = Math.pow((this.heat - this.heatLower) / (this.heatUpper - this.heatLower), 2) * (this.levelUpper - this.levelLower) + this.levelLower; + break; + case QUAD_DOWN: + // sometimes my genius is almost frightening + fauxLevel = Math.pow((this.heat - this.heatUpper) / (this.heatLower - this.heatUpper), 2) * (this.levelLower - this.levelUpper) + this.levelUpper; + break; + } } this.targetLevel = fauxLevel * 0.01D; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java index 24448e4a8..f83dccee0 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java @@ -4,7 +4,6 @@ import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 88f2e101b..d054c9a2b 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1339,6 +1339,7 @@ item.ingot_asbestos.name=Asbestplatte item.ingot_au198.name=Gold-198-Barren item.ingot_australium.name=Australiumbarren item.ingot_beryllium.name=Berylliumbarren +item.ingot_boron.name=Borbarren item.ingot_chainsteel.name=Schwerer Kettenstahl item.ingot_co60.name=Kobalt-60-Barren item.ingot_cobalt.name=Kobaltbarren @@ -1351,6 +1352,7 @@ item.ingot_dura_steel.name=Schnellarbeitsstahlbarren item.ingot_electronium.name=Elektroniumbarren item.ingot_euphemium.name=Euphemiumbarren item.ingot_fiberglass.name=Fiberglasstafel +item.ingot_graphite.name=Graphitbarren item.ingot_hes.name=Stark angereicherter Schrabidiumkernbrennstoffbarren item.ingot_lanthanium.name=Semistabiler Lanthanbarren item.ingot_lead.name=Bleibarren diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 94fbd8b33..f19ad4748 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1339,6 +1339,7 @@ item.ingot_asbestos.name=Asbestos Sheet item.ingot_au198.name=Gold-198 Ingot item.ingot_australium.name=Australium Ingot item.ingot_beryllium.name=Beryllium Ingot +item.ingot_boron.name=Boron Ingot item.ingot_chainsteel.name=Heavy Chainsteel item.ingot_co60.name=Cobalt-60 Ingot item.ingot_cobalt.name=Cobalt Ingot @@ -1351,6 +1352,7 @@ item.ingot_dura_steel.name=High-Speed Steel Ingot item.ingot_electronium.name=Electronium Ingot item.ingot_euphemium.name=Euphemium Ingot item.ingot_fiberglass.name=Fiberglass Bar +item.ingot_graphite.name=Graphite Ingot item.ingot_hes.name=Highly Enriched Schrabidium Fuel Ingot item.ingot_lanthanium.name=Semi-Stable Lanthanium Ingot item.ingot_lead.name=Lead Ingot diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_console.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_console.png index 2e68149f95c26369dc704687d922e26ca8e1f06e..47a35ee78fc5489abd3b4ac34d01eeb4cd2eeafc 100644 GIT binary patch literal 4420 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 D=O}N| literal 5073 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 J&d@#jKL8;1zb^m) diff --git a/src/main/resources/assets/hbm/textures/items/fragment_boron.png b/src/main/resources/assets/hbm/textures/items/fragment_boron.png new file mode 100644 index 0000000000000000000000000000000000000000..f9b21a1b204dff815b6c6cb05fefdb4621771b53 GIT binary patch literal 426 zcmV;b0agBqP)As=7>1u{50v0~4#7!q6oLpYMZv|z#UCJDrDN&e=~n1u zDW!02#WGHXAc1 z8tfCx{>sky4_RqFSx8*=)#UGEAq_ zSb9V-RDI*4*$%bV6bglC-bSN=)*1jQCEM*bK@b~Zk0^vdYmM*w2qB``A8)S{OOG17 zJ>MHbh={^8O-$3obzLTt37+R2+IO5_sQL!2P6*(69+qX1%jHSB@od1nIm#X{c7_Zqn={DJLhV zs;X*aWTds;Rv#$ASQ6wH%;50sMjDV4;pyTSQW2MYfN_e%fd)@aAI3AGzTVzU#g`i# z8XawUIWC=MmJB(4>C!3hSQ*KX!+kLgw9tNf{441hJrpGm3{$g-LD#V!WFss1~&#c`^#+(1%dVl;~UsL1r zN=}A9v%3uC439m&C2!|wwCx%bLsWLeG}oQ8AMjMZzZk`Ay!wbGyHe1}4>~6;muH4Y z{3@EHc&wsDAi(P)@B0UZGK>s+%LN4Yr5O1NSH0(&@7Tz&V9KILQLpFRp7*2F6YtCoJzL zC|z1G<j1(D7rdz=1+)iO_SU#_rHWPKsf;|!jzelF{r G5}E*R^?aTH literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/powder_boron.png b/src/main/resources/assets/hbm/textures/items/powder_boron.png new file mode 100644 index 0000000000000000000000000000000000000000..31be02289387b280ec8f1e8af5d6b9082d334932 GIT binary patch literal 343 zcmV-d0jU0oP)wK8Ay0dt_a1Aw>pBn-0L;VrlpQ)qQ;jij&Ou6vq9{N_V2tfLxLILsxoulWDZv;+ z2mwNfn=BsJ)0I+ang&D!tu>};Lf`iYAt1&GYc0yM#QW#>>(|HiZE;X*H&<1KVHjYH zfs}G_5<&py9C@Da2D${2tPv47=L?+d13-)s-g^ik;JwFiK4rfWT?-|#1OkBfetDO! pktJw*o~_s#`ja~PnfIHU`T@K_kxD@{7z_Xa002ovPDHLkV1gH6i~|4w literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/powder_boron_tiny.png b/src/main/resources/assets/hbm/textures/items/powder_boron_tiny.png new file mode 100644 index 0000000000000000000000000000000000000000..7529b6cea2f3db1c83a28082cd7b715b1da79d0b GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfkDXtp zc+bzAHq-K0#fD4UzkdBta(?E{t!xb)2D_f9KQLLXrO3i?CP(7YzJTo7^Q)>J-Y@v? twX;NU=bJM;>)Fj8@cewTSSbGhpQx*LCws!z*Fa}5c)I$ztaD0e0s#7CPNM(- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_tool.png b/src/main/resources/assets/hbm/textures/items/rbmk_tool.png new file mode 100644 index 0000000000000000000000000000000000000000..541702ec1d6f6c0d4e8839cf0ef9905ea8e7d82f GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf-5rY;xrKyBUomhHTky%_id;kBij_tTyv!D&Cs>Xe28lckUq1QX z|M>L7>s2oOShxH4|K@y6wW!yZ&+WXZF3liu`JL_@>AhRU8g$q?P4=zQdRFP?!m#4C zRJQKvPbU_!DfM2D+PqG?_Wov7ChI@f9+*~2v@wfZEh|lqdVlA|RINql%L{n3m#d{K z&UtQ`8o6l7uDI&iy_xpc_)34VUp85)-X64S$CN*&wv2NnBK`kdk-P)+1%s!npUXO@ GgeCwMg=WYA literal 0 HcmV?d00001