From c27d9e152e9de0d92ab7ae139ed50c90a36c85e6 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 25 May 2022 16:37:29 +0200 Subject: [PATCH] desh crates, cleaned up crate code terribleness --- src/main/java/com/hbm/blocks/ModBlocks.java | 10 +- .../hbm/blocks/generic/BlockStorageCrate.java | 32 ++-- src/main/java/com/hbm/handler/GUIHandler.java | 68 ++------ .../container/ContainerCrateDesh.java | 67 ++++++++ .../com/hbm/inventory/gui/GUICrateDesh.java | 42 +++++ .../com/hbm/inventory/gui/GUICrateIron.java | 2 +- .../com/hbm/inventory/gui/GUICrateSteel.java | 2 +- .../hbm/inventory/gui/GUICrateTungsten.java | 4 +- .../java/com/hbm/inventory/gui/GUISafe.java | 2 +- .../machine/TileEntityMachineAssembler.java | 2 +- .../machine/storage/TileEntityCrateBase.java | 158 ++++++++++++++++++ .../machine/storage/TileEntityCrateDesh.java | 13 ++ .../machine/storage/TileEntityCrateIron.java | 153 +---------------- .../machine/storage/TileEntityCrateSteel.java | 150 +---------------- .../storage/TileEntityCrateTungsten.java | 145 +--------------- .../machine/storage/TileEntitySafe.java | 150 +---------------- .../hbm/textures/blocks/crate_desh_side.png | Bin 0 -> 772 bytes .../hbm/textures/blocks/crate_desh_top.png | Bin 0 -> 662 bytes .../textures/gui/storage/gui_crate_desh.png | Bin 0 -> 1456 bytes .../gui/{ => storage}/gui_crate_iron.png | Bin .../gui/{ => storage}/gui_crate_steel.png | Bin .../gui/{ => storage}/gui_crate_tungsten.png | Bin .../{ => storage}/gui_crate_tungsten_hot.png | Bin .../textures/gui/storage/gui_mass_storage.png | Bin 0 -> 3116 bytes .../textures/gui/{ => storage}/gui_safe.png | Bin 25 files changed, 322 insertions(+), 678 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUICrateDesh.java create mode 100644 src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java create mode 100644 src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateDesh.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/crate_desh_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crate_desh_top.png create mode 100644 src/main/resources/assets/hbm/textures/gui/storage/gui_crate_desh.png rename src/main/resources/assets/hbm/textures/gui/{ => storage}/gui_crate_iron.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => storage}/gui_crate_steel.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => storage}/gui_crate_tungsten.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => storage}/gui_crate_tungsten_hot.png (100%) create mode 100644 src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage.png rename src/main/resources/assets/hbm/textures/gui/{ => storage}/gui_safe.png (100%) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index fd1402995..3a6e79685 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -583,16 +583,10 @@ public class ModBlocks { public static final int guiID_capsule = 93; public static Block crate_iron; - public static final int guiID_crate_iron = 46; - public static Block crate_steel; - public static final int guiID_crate_steel = 47; - + public static Block crate_desh; public static Block crate_tungsten; - public static final int guiID_crate_tungsten = 103; - public static Block safe; - public static final int guiID_safe = 70; public static Block nuke_gadget; public static final int guiID_nuke_gadget = 3; @@ -2112,6 +2106,7 @@ public class ModBlocks { crate_jungle = new BlockJungleCrate(Material.rock).setBlockName("crate_jungle").setStepSound(Block.soundTypeStone).setHardness(1.0F).setResistance(2.5F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_jungle"); crate_iron = new BlockStorageCrate(Material.iron).setBlockName("crate_iron").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); crate_steel = new BlockStorageCrate(Material.iron).setBlockName("crate_steel").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + crate_desh = new BlockStorageCrate(Material.iron).setBlockName("crate_desh").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); crate_tungsten = new BlockStorageCrate(Material.iron).setBlockName("crate_tungsten").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab); safe = new BlockStorageCrate(Material.iron).setBlockName("safe").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); @@ -2906,6 +2901,7 @@ public class ModBlocks { //Crates GameRegistry.registerBlock(crate_iron, crate_iron.getUnlocalizedName()); GameRegistry.registerBlock(crate_steel, crate_steel.getUnlocalizedName()); + GameRegistry.registerBlock(crate_desh, crate_desh.getUnlocalizedName()); GameRegistry.registerBlock(crate_tungsten, crate_tungsten.getUnlocalizedName()); GameRegistry.registerBlock(safe, safe.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index 91c44cfd1..b313837c7 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -8,6 +8,8 @@ import com.hbm.items.tool.ItemLock; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityLockableBase; +import com.hbm.tileentity.machine.storage.TileEntityCrateBase; +import com.hbm.tileentity.machine.storage.TileEntityCrateDesh; import com.hbm.tileentity.machine.storage.TileEntityCrateIron; import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; import com.hbm.tileentity.machine.storage.TileEntityCrateTungsten; @@ -56,6 +58,10 @@ public class BlockStorageCrate extends BlockContainer { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":crate_tungsten_top"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":crate_tungsten_side"); } + if(this == ModBlocks.crate_desh) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":crate_desh_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":crate_desh_side"); + } if(this == ModBlocks.safe) { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":safe_front"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":safe_side"); @@ -74,14 +80,11 @@ public class BlockStorageCrate extends BlockContainer { @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - if(this == ModBlocks.crate_iron) - return new TileEntityCrateIron(); - if(this == ModBlocks.crate_steel) - return new TileEntityCrateSteel(); - if(this == ModBlocks.crate_tungsten) - return new TileEntityCrateTungsten(); - if(this == ModBlocks.safe) - return new TileEntitySafe(); + if(this == ModBlocks.crate_iron) return new TileEntityCrateIron(); + if(this == ModBlocks.crate_steel) return new TileEntityCrateSteel(); + if(this == ModBlocks.crate_desh) return new TileEntityCrateDesh(); + if(this == ModBlocks.crate_tungsten) return new TileEntityCrateTungsten(); + if(this == ModBlocks.safe) return new TileEntitySafe(); return null; } @@ -143,17 +146,8 @@ public class BlockStorageCrate extends BlockContainer { } else if(!player.isSneaking()) { TileEntity entity = world.getTileEntity(x, y, z); - if(entity instanceof TileEntityCrateIron && ((TileEntityCrateIron) entity).canAccess(player)) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_crate_iron, world, x, y, z); - } - if(entity instanceof TileEntityCrateSteel && ((TileEntityCrateSteel) entity).canAccess(player)) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_crate_steel, world, x, y, z); - } - if(entity instanceof TileEntityCrateTungsten && ((TileEntityCrateTungsten) entity).canAccess(player)) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_crate_tungsten, world, x, y, z); - } - if(entity instanceof TileEntitySafe && ((TileEntitySafe) entity).canAccess(player)) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_safe, world, x, y, z); + if(entity instanceof TileEntityCrateBase && ((TileEntityCrateBase) entity).canAccess(player)) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); } return true; } else { diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index 18c0c9b53..ede516501 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -28,6 +28,12 @@ public class GUIHandler implements IGuiHandler { @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity entity = world.getTileEntity(x, y, z); + + if(entity instanceof TileEntityCrateIron) { return new ContainerCrateIron(player.inventory, (TileEntityCrateIron) entity); } + if(entity instanceof TileEntityCrateSteel) { return new ContainerCrateSteel(player.inventory, (TileEntityCrateSteel) entity); } + if(entity instanceof TileEntityCrateDesh) { return new ContainerCrateDesh(player.inventory, (TileEntityCrateDesh) entity); } + if(entity instanceof TileEntityCrateTungsten) { return new ContainerCrateTungsten(player.inventory, (TileEntityCrateTungsten) entity); } + if(entity instanceof TileEntitySafe) { return new ContainerSafe(player.inventory, (TileEntitySafe) entity); } if(entity instanceof TileEntityMachineLiquefactor) { return new ContainerLiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); } if(entity instanceof TileEntityMachineSolidifier) { return new ContainerSolidifier(player.inventory, (TileEntityMachineSolidifier) entity); } @@ -354,20 +360,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_crate_iron: { - if(entity instanceof TileEntityCrateIron) { - return new ContainerCrateIron(player.inventory, (TileEntityCrateIron) entity); - } - return null; - } - - case ModBlocks.guiID_crate_steel: { - if(entity instanceof TileEntityCrateSteel) { - return new ContainerCrateSteel(player.inventory, (TileEntityCrateSteel) entity); - } - return null; - } - case ModBlocks.guiID_machine_press: { if(entity instanceof TileEntityMachinePress) { return new ContainerMachinePress(player.inventory, (TileEntityMachinePress) entity); @@ -487,13 +479,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_safe: { - if(entity instanceof TileEntitySafe) { - return new ContainerSafe(player.inventory, (TileEntitySafe) entity); - } - return null; - } - case ModBlocks.guiID_gascent: { if(entity instanceof TileEntityMachineGasCent) { return new ContainerMachineGasCent(player.inventory, (TileEntityMachineGasCent) entity); @@ -711,13 +696,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_crate_tungsten: { - if(entity instanceof TileEntityCrateTungsten) { - return new ContainerCrateTungsten(player.inventory, (TileEntityCrateTungsten) entity); - } - return null; - } - case ModBlocks.guiID_chekhov: { if(entity instanceof TileEntityTurretChekhov) { return new ContainerTurretBase(player.inventory, (TileEntityTurretChekhov) entity); @@ -873,6 +851,12 @@ public class GUIHandler implements IGuiHandler { @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity entity = world.getTileEntity(x, y, z); + + if(entity instanceof TileEntityCrateIron) { return new GUICrateIron(player.inventory, (TileEntityCrateIron) entity); } + if(entity instanceof TileEntityCrateSteel) { return new GUICrateSteel(player.inventory, (TileEntityCrateSteel) entity); } + if(entity instanceof TileEntityCrateDesh) { return new GUICrateDesh(player.inventory, (TileEntityCrateDesh) entity); } + if(entity instanceof TileEntityCrateTungsten) { return new GUICrateTungsten(player.inventory, (TileEntityCrateTungsten) entity); } + if(entity instanceof TileEntitySafe) { return new GUISafe(player.inventory, (TileEntitySafe) entity); } if(entity instanceof TileEntityMachineLiquefactor) { return new GUILiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); } if(entity instanceof TileEntityMachineSolidifier) { return new GUISolidifier(player.inventory, (TileEntityMachineSolidifier) entity); } @@ -1199,20 +1183,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_crate_iron: { - if(entity instanceof TileEntityCrateIron) { - return new GUICrateIron(player.inventory, (TileEntityCrateIron) entity); - } - return null; - } - - case ModBlocks.guiID_crate_steel: { - if(entity instanceof TileEntityCrateSteel) { - return new GUICrateSteel(player.inventory, (TileEntityCrateSteel) entity); - } - return null; - } - case ModBlocks.guiID_machine_press: { if(entity instanceof TileEntityMachinePress) { return new GUIMachinePress(player.inventory, (TileEntityMachinePress) entity); @@ -1325,13 +1295,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_safe: { - if(entity instanceof TileEntitySafe) { - return new GUISafe(player.inventory, (TileEntitySafe) entity); - } - return null; - } - case ModBlocks.guiID_gascent: { if(entity instanceof TileEntityMachineGasCent) { return new GUIMachineGasCent(player.inventory, (TileEntityMachineGasCent) entity); @@ -1549,13 +1512,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_crate_tungsten: { - if(entity instanceof TileEntityCrateTungsten) { - return new GUICrateTungsten(player.inventory, (TileEntityCrateTungsten) entity); - } - return null; - } - case ModBlocks.guiID_chekhov: { if(entity instanceof TileEntityTurretChekhov) { return new GUITurretChekhov(player.inventory, (TileEntityTurretChekhov) entity); diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java b/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java new file mode 100644 index 000000000..bb1c7224e --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java @@ -0,0 +1,67 @@ +package com.hbm.inventory.container; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerCrateDesh extends Container { + + private IInventory diFurnace; + + public ContainerCrateDesh(InventoryPlayer invPlayer, IInventory tedf) { + diFurnace = tedf; + + for(int i = 0; i < 8; i++) { + for(int j = 0; j < 13; j++) { + this.addSlotToContainer(new Slot(tedf, j + i * 13, 8 + j * 18, 18 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 44 + j * 18, 174 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 44 + i * 18, 232)); + } + } + + @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()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= diFurnace.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 0, diFurnace.getSizeInventory(), false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(p_82846_1_, var5); + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return diFurnace.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateDesh.java b/src/main/java/com/hbm/inventory/gui/GUICrateDesh.java new file mode 100644 index 000000000..61cb62526 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUICrateDesh.java @@ -0,0 +1,42 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCrateDesh; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.util.ResourceLocation; + +public class GUICrateDesh extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_desh.png"); + private IInventory crate; + + public GUICrateDesh(InventoryPlayer invPlayer, IInventory inv) { + super(new ContainerCrateDesh(invPlayer, inv)); + crate = inv; + + this.xSize = 248; + this.ySize = 256; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.crate.hasCustomInventoryName() ? this.crate.getInventoryName() : I18n.format(this.crate.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 40, this.ySize - 96 + 3, 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); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateIron.java b/src/main/java/com/hbm/inventory/gui/GUICrateIron.java index 83ae322de..04a354e53 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrateIron.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrateIron.java @@ -14,7 +14,7 @@ import net.minecraft.util.ResourceLocation; public class GUICrateIron extends GuiContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_crate_iron.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_iron.png"); private TileEntityCrateIron diFurnace; public GUICrateIron(InventoryPlayer invPlayer, TileEntityCrateIron tedf) { diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateSteel.java b/src/main/java/com/hbm/inventory/gui/GUICrateSteel.java index 332a13ee6..4883360d4 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrateSteel.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrateSteel.java @@ -14,7 +14,7 @@ import net.minecraft.util.ResourceLocation; public class GUICrateSteel extends GuiContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_crate_steel.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_steel.png"); private IInventory crate; public GUICrateSteel(InventoryPlayer invPlayer, IInventory inv) { diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateTungsten.java b/src/main/java/com/hbm/inventory/gui/GUICrateTungsten.java index 7da006832..30a0ec162 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrateTungsten.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrateTungsten.java @@ -14,8 +14,8 @@ import net.minecraft.util.ResourceLocation; public class GUICrateTungsten extends GuiContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_crate_tungsten.png"); - private static ResourceLocation texture_hot = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_crate_tungsten_hot.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_tungsten.png"); + private static ResourceLocation texture_hot = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_tungsten_hot.png"); private TileEntityCrateTungsten diFurnace; public GUICrateTungsten(InventoryPlayer invPlayer, TileEntityCrateTungsten tedf) { diff --git a/src/main/java/com/hbm/inventory/gui/GUISafe.java b/src/main/java/com/hbm/inventory/gui/GUISafe.java index a7c6d0e8d..8b49d5362 100644 --- a/src/main/java/com/hbm/inventory/gui/GUISafe.java +++ b/src/main/java/com/hbm/inventory/gui/GUISafe.java @@ -14,7 +14,7 @@ import net.minecraft.util.ResourceLocation; public class GUISafe extends GuiContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_safe.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_safe.png"); private TileEntitySafe diFurnace; public GUISafe(InventoryPlayer invPlayer, TileEntitySafe tedf) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 13f5c6f25..ba77308a0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -213,7 +213,7 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements data.setInteger("progress", progress); data.setInteger("maxProgress", maxProgress); data.setBoolean("isProgressing", isProgressing); - data.setInteger("recipe", slots[4] != null ? slots[4].getItemDamage() : -1); + data.setInteger("recipe", slots[4] != null ? AssemblerRecipes.recipeList.indexOf(AssemblerRecipes.getOutputFromTempate(slots[4])) : -1); this.networkPack(data, 150); } else { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java new file mode 100644 index 000000000..14568a358 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java @@ -0,0 +1,158 @@ +package com.hbm.tileentity.machine.storage; + +import com.hbm.tileentity.machine.TileEntityLockableBase; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; + +public abstract class TileEntityCrateBase extends TileEntityLockableBase implements ISidedInventory { + + protected ItemStack slots[]; + public String customName; + + public TileEntityCrateBase() { + slots = new ItemStack[0]; + } + + public TileEntityCrateBase(int count) { + slots = new ItemStack[count]; + } + + @Override + public int getSizeInventory() { + return slots.length; + } + + @Override + public ItemStack getStackInSlot(int i) { + return slots[i]; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) { + if (slots[i] != null) { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemStack) { + slots[i] = itemStack; + if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { + itemStack.stackSize = getInventoryStackLimit(); + } + } + + @Override + public boolean hasCustomInventoryName() { + return this.customName != null && this.customName.length() > 0; + } + + public void setCustomName(String name) { + this.customName = name; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; + } + } + + // You scrubs aren't needed for anything (right now) + @Override + public void openInventory() { + } + + @Override + public void closeInventory() { + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return true; + } + + @Override + public ItemStack decrStackSize(int i, int j) { + if (slots[i] != null) { + if (slots[i].stackSize <= j) { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } + ItemStack itemStack1 = slots[i].splitStack(j); + if (slots[i].stackSize == 0) { + slots[i] = null; + } + + return itemStack1; + } else { + return null; + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + NBTTagList list = nbt.getTagList("items", 10); + + slots = new ItemStack[getSizeInventory()]; + + for (int i = 0; i < list.tagCount(); i++) { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + byte b0 = nbt1.getByte("slot"); + if (b0 >= 0 && b0 < slots.length) { + slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + NBTTagList list = new NBTTagList(); + + for (int i = 0; i < slots.length; i++) { + if (slots[i] != null) { + NBTTagCompound nbt1 = new NBTTagCompound(); + nbt1.setByte("slot", (byte) i); + slots[i].writeToNBT(nbt1); + list.appendTag(nbt1); + } + } + nbt.setTag("items", list); + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + int[] slots = new int[this.slots.length]; + for(int i = 0; i < slots.length; i++) slots[i] = i; + return slots; + } + + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + return this.isItemValidForSlot(i, itemStack) && !this.isLocked(); + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return !this.isLocked(); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateDesh.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateDesh.java new file mode 100644 index 000000000..923928b66 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateDesh.java @@ -0,0 +1,13 @@ +package com.hbm.tileentity.machine.storage; + +public class TileEntityCrateDesh extends TileEntityCrateBase { + + public TileEntityCrateDesh() { + super(104); //8 rows with 13 slots + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.customName : "container.crateDesh"; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java index 29298a441..abf54980b 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java @@ -1,162 +1,13 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.tileentity.machine.TileEntityLockableBase; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; - -public class TileEntityCrateIron extends TileEntityLockableBase implements ISidedInventory { - - private ItemStack slots[]; - - private String customName; +public class TileEntityCrateIron extends TileEntityCrateBase { public TileEntityCrateIron() { - slots = new ItemStack[36]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } + super(36); } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.customName : "container.crateIron"; } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - NBTTagList list = new NBTTagList(); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - int[] slots = new int[36]; - for(int i = 0; i < slots.length; i++) - slots[i] = i; - return slots; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack) && !this.isLocked(); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return !this.isLocked(); - } - } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java index 135e74e32..725fde319 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java @@ -1,161 +1,15 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.tileentity.machine.TileEntityLockableBase; - -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -public class TileEntityCrateSteel extends TileEntityLockableBase implements ISidedInventory { - - private ItemStack slots[]; - - private String customName; +public class TileEntityCrateSteel extends TileEntityCrateBase implements ISidedInventory { public TileEntityCrateSteel() { - slots = new ItemStack[54]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } + super(54); } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.customName : "container.crateSteel"; } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - NBTTagList list = new NBTTagList(); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - int[] slots = new int[54]; - for(int i = 0; i < slots.length; i++) - slots[i] = i; - return slots; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack) && !this.isLocked(); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return !this.isLocked(); - } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java index 1a509aff3..db640f843 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java @@ -1,57 +1,18 @@ package com.hbm.tileentity.machine.storage; import com.hbm.items.ModItems; -import com.hbm.tileentity.machine.TileEntityLockableBase; import api.hbm.block.ILaserable; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCrateTungsten extends TileEntityLockableBase implements ISidedInventory, ILaserable { - - private ItemStack slots[]; - - private String customName; - +public class TileEntityCrateTungsten extends TileEntityCrateBase implements ILaserable { private int heatTimer; public TileEntityCrateTungsten() { - slots = new ItemStack[27]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } + super(27); } @Override @@ -59,62 +20,6 @@ public class TileEntityCrateTungsten extends TileEntityLockableBase implements I return this.hasCustomInventoryName() ? this.customName : "container.crateTungsten"; } - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - @Override public void updateEntity() { @@ -147,52 +52,6 @@ public class TileEntityCrateTungsten extends TileEntityLockableBase implements I } } - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - NBTTagList list = new NBTTagList(); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - int[] slots = new int[27]; - for(int i = 0; i < slots.length; i++) - slots[i] = i; - return slots; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack) && !this.isLocked(); - } - @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { if(this.isLocked()) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java index a2664bcfc..d258a90a2 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java @@ -1,161 +1,15 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.tileentity.machine.TileEntityLockableBase; - -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -public class TileEntitySafe extends TileEntityLockableBase implements ISidedInventory { - - private ItemStack slots[]; - - private String customName; +public class TileEntitySafe extends TileEntityCrateBase implements ISidedInventory { public TileEntitySafe() { - slots = new ItemStack[15]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } + super(15); } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.customName : "container.safe"; } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - NBTTagList list = new NBTTagList(); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - int[] slots = new int[15]; - for(int i = 0; i < slots.length; i++) - slots[i] = i; - return slots; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack) && !this.isLocked(); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return !this.isLocked(); - } } diff --git a/src/main/resources/assets/hbm/textures/blocks/crate_desh_side.png b/src/main/resources/assets/hbm/textures/blocks/crate_desh_side.png new file mode 100644 index 0000000000000000000000000000000000000000..afc8755f83b1b45d82e477e313e9e1df6a5ca72b GIT binary patch literal 772 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

8ui$5NinDgH zXt}jmEY`BJ{N$pqAb(o{@NPzc2SC@mDNf& zE|>dsWC&mM&dVllvmEUjZ`)Bp|S7>Pr#kK(bTg)n&kq5%w&;#+- z{^w?_Da;5P_Fu5RiPVuvBpsUKw(vhXE=1=q^FZih1OKl0D?4;oIh%9{!_D+Wc2H~= z=L>hr?bSR?zBT$+Ed9TL!#*LE)?b7?C6?Yxz7LQ87zxz=MA+ZHQL!$2Vujr(=_HND z3APN$j)dxbtAZE_%h_RgV4FQ>#WH+vN$)HX!T)Nve=q0_D4;IUwUKzXd&pNWw=Eu< JD_ufP{SM;4Lcjn3 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/gui_safe.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_safe.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_safe.png rename to src/main/resources/assets/hbm/textures/gui/storage/gui_safe.png