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 000000000..afc8755f8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crate_desh_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/crate_desh_top.png b/src/main/resources/assets/hbm/textures/blocks/crate_desh_top.png new file mode 100644 index 000000000..5a223c2ca Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/crate_desh_top.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_desh.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_desh.png new file mode 100644 index 000000000..ba84eb214 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_desh.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_crate_iron.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_iron.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_crate_iron.png rename to src/main/resources/assets/hbm/textures/gui/storage/gui_crate_iron.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_crate_steel.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_steel.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_crate_steel.png rename to src/main/resources/assets/hbm/textures/gui/storage/gui_crate_steel.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_crate_tungsten.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_tungsten.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_crate_tungsten.png rename to src/main/resources/assets/hbm/textures/gui/storage/gui_crate_tungsten.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_crate_tungsten_hot.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_tungsten_hot.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_crate_tungsten_hot.png rename to src/main/resources/assets/hbm/textures/gui/storage/gui_crate_tungsten_hot.png diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage.png new file mode 100644 index 000000000..e5f502989 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage.png differ 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