From ec7c35e604f1ddf00b77fd9c7d67b772d461b654 Mon Sep 17 00:00:00 2001 From: pahimar Date: Wed, 6 Mar 2013 21:46:19 -0500 Subject: [PATCH] Work on enabling custom inventory names --- ee3_common/com/pahimar/ee3/block/BlockEE.java | 14 +++-- .../gui/inventory/GuiAlchemicalBag.java | 5 +- .../gui/inventory/GuiAlchemicalChest.java | 13 ++-- .../ee3/client/gui/inventory/GuiAludel.java | 12 ++-- .../client/gui/inventory/GuiCalcinator.java | 5 +- .../handlers/WorldTransmutationHandler.java | 1 - .../inventory/ContainerAlchemicalChest.java | 7 +-- ...agSavedData.java => WorldSavedDataEE.java} | 4 +- ee3_common/com/pahimar/ee3/lib/Strings.java | 14 +++-- .../ee3/network/packet/PacketTileUpdate.java | 13 +--- .../ee3/tileentity/TileAlchemicalChest.java | 5 +- .../com/pahimar/ee3/tileentity/TileEE.java | 60 +++++++++++++------ resources/mods/ee3/lang/en_US.xml | 8 +-- 13 files changed, 90 insertions(+), 71 deletions(-) rename ee3_common/com/pahimar/ee3/inventory/{AlchemicalBagSavedData.java => WorldSavedDataEE.java} (94%) diff --git a/ee3_common/com/pahimar/ee3/block/BlockEE.java b/ee3_common/com/pahimar/ee3/block/BlockEE.java index eecc1b50..2b3d35dd 100644 --- a/ee3_common/com/pahimar/ee3/block/BlockEE.java +++ b/ee3_common/com/pahimar/ee3/block/BlockEE.java @@ -1,9 +1,5 @@ package com.pahimar.ee3.block; -import com.pahimar.ee3.lib.Reference; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; @@ -13,6 +9,12 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; +import com.pahimar.ee3.lib.Reference; +import com.pahimar.ee3.tileentity.TileEE; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + /** * BlockEE * @@ -57,5 +59,9 @@ public abstract class BlockEE extends BlockContainer { } world.setBlockMetadataWithNotify(x, y, z, direction, 3); + + if (itemStack.hasDisplayName()) { + ((TileEE) world.getBlockTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName()); + } } } diff --git a/ee3_common/com/pahimar/ee3/client/gui/inventory/GuiAlchemicalBag.java b/ee3_common/com/pahimar/ee3/client/gui/inventory/GuiAlchemicalBag.java index d5405729..a9dde56a 100644 --- a/ee3_common/com/pahimar/ee3/client/gui/inventory/GuiAlchemicalBag.java +++ b/ee3_common/com/pahimar/ee3/client/gui/inventory/GuiAlchemicalBag.java @@ -12,7 +12,6 @@ import com.pahimar.ee3.inventory.ContainerAlchemicalBag; import com.pahimar.ee3.lib.Sprites; import com.pahimar.ee3.lib.Strings; -import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -28,8 +27,8 @@ public class GuiAlchemicalBag extends GuiContainer { protected void drawGuiContainerForegroundLayer(int x, int y) { - this.fontRenderer.drawString(LanguageRegistry.instance().getStringLocalization(Strings.GUI_ALCHEMICAL_BAG_NAME), 8, 6, 4210752); - this.fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 44, this.ySize - 96 + 2, 4210752); + this.fontRenderer.drawString(StatCollector.translateToLocal(Strings.CONTAINER_ALCHEMICAL_BAG_NAME), 8, 6, 4210752); + this.fontRenderer.drawString(StatCollector.translateToLocal(Strings.CONTAINER_INVENTORY), 44, this.ySize - 96 + 2, 4210752); } protected void drawGuiContainerBackgroundLayer(float opacity, int x, int y) { diff --git a/ee3_common/com/pahimar/ee3/client/gui/inventory/GuiAlchemicalChest.java b/ee3_common/com/pahimar/ee3/client/gui/inventory/GuiAlchemicalChest.java index ca0ac881..50126761 100644 --- a/ee3_common/com/pahimar/ee3/client/gui/inventory/GuiAlchemicalChest.java +++ b/ee3_common/com/pahimar/ee3/client/gui/inventory/GuiAlchemicalChest.java @@ -2,6 +2,7 @@ package com.pahimar.ee3.client.gui.inventory; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; import net.minecraft.util.StatCollector; import org.lwjgl.opengl.GL11; @@ -9,18 +10,16 @@ import org.lwjgl.opengl.GL11; import com.pahimar.ee3.inventory.ContainerAlchemicalChest; import com.pahimar.ee3.lib.Sprites; import com.pahimar.ee3.lib.Strings; -import com.pahimar.ee3.tileentity.TileAlchemicalChest; -import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class GuiAlchemicalChest extends GuiContainer { - private TileAlchemicalChest tileAlchemicalChest; + private IInventory tileAlchemicalChest; - public GuiAlchemicalChest(InventoryPlayer inventoryPlayer, TileAlchemicalChest tileAlchemicalChest) { + public GuiAlchemicalChest(InventoryPlayer inventoryPlayer, IInventory tileAlchemicalChest) { super(new ContainerAlchemicalChest(inventoryPlayer, tileAlchemicalChest)); this.tileAlchemicalChest = tileAlchemicalChest; @@ -29,9 +28,9 @@ public class GuiAlchemicalChest extends GuiContainer { } protected void drawGuiContainerForegroundLayer(int x, int y) { - - this.fontRenderer.drawString(LanguageRegistry.instance().getStringLocalization(Strings.GUI_ALCHEMICAL_CHEST_NAME), 8, 6, 4210752); - this.fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 44, this.ySize - 96 + 2, 4210752); + + this.fontRenderer.drawString(this.tileAlchemicalChest.func_94042_c() ? this.tileAlchemicalChest.getInvName() : StatCollector.translateToLocal(this.tileAlchemicalChest.getInvName()), 8, 6, 4210752); + this.fontRenderer.drawString(StatCollector.translateToLocal(Strings.CONTAINER_INVENTORY), 44, this.ySize - 96 + 2, 4210752); } protected void drawGuiContainerBackgroundLayer(float opacity, int x, int y) { diff --git a/ee3_common/com/pahimar/ee3/client/gui/inventory/GuiAludel.java b/ee3_common/com/pahimar/ee3/client/gui/inventory/GuiAludel.java index cf59e6e2..08fd1d04 100644 --- a/ee3_common/com/pahimar/ee3/client/gui/inventory/GuiAludel.java +++ b/ee3_common/com/pahimar/ee3/client/gui/inventory/GuiAludel.java @@ -1,5 +1,9 @@ package com.pahimar.ee3.client.gui.inventory; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.StatCollector; + import org.lwjgl.opengl.GL11; import com.pahimar.ee3.inventory.ContainerAludel; @@ -7,12 +11,8 @@ import com.pahimar.ee3.lib.Sprites; import com.pahimar.ee3.lib.Strings; import com.pahimar.ee3.tileentity.TileAludel; -import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.StatCollector; @SideOnly(Side.CLIENT) public class GuiAludel extends GuiContainer { @@ -30,8 +30,8 @@ public class GuiAludel extends GuiContainer { @Override protected void drawGuiContainerForegroundLayer(int x, int y) { - this.fontRenderer.drawString(LanguageRegistry.instance().getStringLocalization(Strings.GUI_ALUDEL_NAME), 73, 6, 4210752); - this.fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 8, this.ySize - 93, 4210752); + this.fontRenderer.drawString(StatCollector.translateToLocal(Strings.CONTAINER_ALUDEL_NAME), 73, 6, 4210752); + this.fontRenderer.drawString(StatCollector.translateToLocal(Strings.CONTAINER_INVENTORY), 8, this.ySize - 93, 4210752); } @Override diff --git a/ee3_common/com/pahimar/ee3/client/gui/inventory/GuiCalcinator.java b/ee3_common/com/pahimar/ee3/client/gui/inventory/GuiCalcinator.java index de1dd12c..0602e36e 100644 --- a/ee3_common/com/pahimar/ee3/client/gui/inventory/GuiCalcinator.java +++ b/ee3_common/com/pahimar/ee3/client/gui/inventory/GuiCalcinator.java @@ -11,7 +11,6 @@ import com.pahimar.ee3.lib.Sprites; import com.pahimar.ee3.lib.Strings; import com.pahimar.ee3.tileentity.TileCalcinator; -import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -38,8 +37,8 @@ public class GuiCalcinator extends GuiContainer { protected void drawGuiContainerForegroundLayer(int x, int y) { - this.fontRenderer.drawString(LanguageRegistry.instance().getStringLocalization(Strings.GUI_CALCINATOR_NAME), 60, 6, 4210752); - this.fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + this.fontRenderer.drawString(StatCollector.translateToLocal(Strings.CONTAINER_CALCINATOR_NAME), 60, 6, 4210752); + this.fontRenderer.drawString(StatCollector.translateToLocal(Strings.CONTAINER_INVENTORY), 8, this.ySize - 96 + 2, 4210752); } protected void drawGuiContainerBackgroundLayer(float opacity, int x, int y) { diff --git a/ee3_common/com/pahimar/ee3/core/handlers/WorldTransmutationHandler.java b/ee3_common/com/pahimar/ee3/core/handlers/WorldTransmutationHandler.java index 16be16f7..809aa9aa 100644 --- a/ee3_common/com/pahimar/ee3/core/handlers/WorldTransmutationHandler.java +++ b/ee3_common/com/pahimar/ee3/core/handlers/WorldTransmutationHandler.java @@ -39,7 +39,6 @@ public class WorldTransmutationHandler { int upperBoundY = -1 * lowerBoundY; int lowerBoundZ = -1 * rangeZ / 2; int upperBoundZ = -1 * lowerBoundZ; - boolean hasSoundPlayed = false; boolean anySuccess = false; double xShift = 0; diff --git a/ee3_common/com/pahimar/ee3/inventory/ContainerAlchemicalChest.java b/ee3_common/com/pahimar/ee3/inventory/ContainerAlchemicalChest.java index f78fd3b9..79acfa27 100644 --- a/ee3_common/com/pahimar/ee3/inventory/ContainerAlchemicalChest.java +++ b/ee3_common/com/pahimar/ee3/inventory/ContainerAlchemicalChest.java @@ -3,14 +3,13 @@ package com.pahimar.ee3.inventory; 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; -import com.pahimar.ee3.tileentity.TileAlchemicalChest; - public class ContainerAlchemicalChest extends Container { - private TileAlchemicalChest tileAlchemicalChest; + private IInventory tileAlchemicalChest; private final int CHEST_INVENTORY_ROWS = 4; private final int CHEST_INVENTORY_COLUMNS = 13; @@ -18,7 +17,7 @@ public class ContainerAlchemicalChest extends Container { private final int PLAYER_INVENTORY_ROWS = 3; private final int PLAYER_INVENTORY_COLUMNS = 9; - public ContainerAlchemicalChest(InventoryPlayer inventoryPlayer, TileAlchemicalChest tileAlchemicalChest) { + public ContainerAlchemicalChest(InventoryPlayer inventoryPlayer, IInventory tileAlchemicalChest) { this.tileAlchemicalChest = tileAlchemicalChest; diff --git a/ee3_common/com/pahimar/ee3/inventory/AlchemicalBagSavedData.java b/ee3_common/com/pahimar/ee3/inventory/WorldSavedDataEE.java similarity index 94% rename from ee3_common/com/pahimar/ee3/inventory/AlchemicalBagSavedData.java rename to ee3_common/com/pahimar/ee3/inventory/WorldSavedDataEE.java index 98a8b33a..89f4b823 100644 --- a/ee3_common/com/pahimar/ee3/inventory/AlchemicalBagSavedData.java +++ b/ee3_common/com/pahimar/ee3/inventory/WorldSavedDataEE.java @@ -10,14 +10,14 @@ import net.minecraft.world.WorldSavedData; import com.pahimar.ee3.lib.Strings; -public class AlchemicalBagSavedData extends WorldSavedData implements IInventory { +public class WorldSavedDataEE extends WorldSavedData implements IInventory { public UUID uuid; public ItemStack[] inventory; private final int INVENTORY_SIZE = 13 * 4; - public AlchemicalBagSavedData(String filePath) { + public WorldSavedDataEE(String filePath) { super(filePath); inventory = new ItemStack[INVENTORY_SIZE]; diff --git a/ee3_common/com/pahimar/ee3/lib/Strings.java b/ee3_common/com/pahimar/ee3/lib/Strings.java index e69f6bed..14ae61ac 100644 --- a/ee3_common/com/pahimar/ee3/lib/Strings.java +++ b/ee3_common/com/pahimar/ee3/lib/Strings.java @@ -15,12 +15,6 @@ public class Strings { public static final String FINAL_ERROR_MESSAGE = "version.final_error"; public static final String MC_VERSION_NOT_FOUND = "version.mc_version_not_found"; - /* Gui related constants */ - public static final String GUI_CALCINATOR_NAME = "gui.calcinator.name"; - public static final String GUI_ALUDEL_NAME = "gui.aludel.name"; - public static final String GUI_ALCHEMICAL_CHEST_NAME = "gui.alchemicalChest.name"; - public static final String GUI_ALCHEMICAL_BAG_NAME = "gui.alchemicalBag.name"; - /* NBT related constants */ public static final String NBT_ITEM_CHARGE_LEVEL_KEY = "itemChargeLevel"; public static final String NBT_ITEM_MODE_KEY = "itemMode"; @@ -29,6 +23,7 @@ public class Strings { public static final String NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN = "itemAlchemicalBagGuiOpen"; public static final String NBT_TE_OWNER_KEY = "teOwner"; public static final String NBT_TE_STATE_KEY = "teState"; + public static final String NBT_TE_CUSTOM_NAME = "CustomName"; public static final String NBT_TE_DIRECTION_KEY = "teDirection"; /* Block name constants */ @@ -56,5 +51,12 @@ public class Strings { public static final String TRANSMUTATION_COST_ITEM = "item" + TRANSMUTATION_COST; public static final String TRANSMUTATION_COST_BLOCK = "block" + TRANSMUTATION_COST; public static final String TRANSMUTATION_COST_MOB = "mob" + TRANSMUTATION_COST; + + /* Container related constants */ + public static final String CONTAINER_CALCINATOR_NAME = "container." + CALCINATOR_NAME; + public static final String CONTAINER_ALUDEL_NAME = "container." + ALUDEL_NAME; + public static final String CONTAINER_ALCHEMICAL_CHEST_NAME = "container." + ALCHEMICAL_CHEST_NAME; + public static final String CONTAINER_ALCHEMICAL_BAG_NAME = "container." + ALCHEMICAL_BAG_NAME; + public static final String CONTAINER_INVENTORY = "container.inventory"; } \ No newline at end of file diff --git a/ee3_common/com/pahimar/ee3/network/packet/PacketTileUpdate.java b/ee3_common/com/pahimar/ee3/network/packet/PacketTileUpdate.java index 7f15e4fa..01ab056d 100644 --- a/ee3_common/com/pahimar/ee3/network/packet/PacketTileUpdate.java +++ b/ee3_common/com/pahimar/ee3/network/packet/PacketTileUpdate.java @@ -23,30 +23,23 @@ import cpw.mods.fml.common.network.Player; public class PacketTileUpdate extends PacketEE { public int x, y, z; - public byte direction; public short state; public String player; + public String customName; public PacketTileUpdate() { super(PacketTypeHandler.TILE, true); } - public void setCoords(int x, int y, int z) { - - this.x = x; - this.y = y; - this.z = z; - } - public void writeData(DataOutputStream data) throws IOException { data.writeInt(x); data.writeInt(y); data.writeInt(z); - data.writeByte(direction); data.writeShort(state); data.writeUTF(player); + data.writeUTF(customName); } public void readData(DataInputStream data) throws IOException { @@ -54,9 +47,9 @@ public class PacketTileUpdate extends PacketEE { this.x = data.readInt(); this.y = data.readInt(); this.z = data.readInt(); - this.direction = data.readByte(); this.state = data.readShort(); this.player = data.readUTF(); + this.customName = data.readUTF(); } public void execute(INetworkManager manager, Player player) { diff --git a/ee3_common/com/pahimar/ee3/tileentity/TileAlchemicalChest.java b/ee3_common/com/pahimar/ee3/tileentity/TileAlchemicalChest.java index b81a1de4..c54a6123 100644 --- a/ee3_common/com/pahimar/ee3/tileentity/TileAlchemicalChest.java +++ b/ee3_common/com/pahimar/ee3/tileentity/TileAlchemicalChest.java @@ -96,7 +96,7 @@ public class TileAlchemicalChest extends TileEE implements IInventory { @Override public String getInvName() { - return "container." + Strings.ALCHEMICAL_CHEST_NAME; + return this.hasCustomName() ? this.getCustomName() : Strings.CONTAINER_ALCHEMICAL_CHEST_NAME; } @Override @@ -216,13 +216,14 @@ public class TileAlchemicalChest extends TileEE implements IInventory { } } nbtTagCompound.setTag("Items", tagList); + } @Override // public boolean hasCustomName() public boolean func_94042_c() { - return false; + return this.hasCustomName(); } @Override diff --git a/ee3_common/com/pahimar/ee3/tileentity/TileEE.java b/ee3_common/com/pahimar/ee3/tileentity/TileEE.java index 92f18d7e..faff3748 100644 --- a/ee3_common/com/pahimar/ee3/tileentity/TileEE.java +++ b/ee3_common/com/pahimar/ee3/tileentity/TileEE.java @@ -17,19 +17,9 @@ import com.pahimar.ee3.lib.Strings; */ public class TileEE extends TileEntity { - private byte direction; private short state; private String owner; - - public byte getDirection() { - - return direction; - } - - public void setDirection(byte direction) { - - this.direction = direction; - } + private String customName; public short getState() { @@ -45,11 +35,31 @@ public class TileEE extends TileEntity { return owner; } + + public boolean hasOwner() { + + return ((owner != null) && (owner.length() > 0)); + } public void setOwner(String owner) { this.owner = owner; } + + public boolean hasCustomName() { + + return ((this.customName != null) && (this.customName.length() > 0)); + } + + public String getCustomName() { + + return customName; + } + + public void setCustomName(String customName) { + + this.customName = customName; + } public boolean isUseableByPlayer(EntityPlayer player) { @@ -59,20 +69,32 @@ public class TileEE extends TileEntity { public void readFromNBT(NBTTagCompound nbtTagCompound) { super.readFromNBT(nbtTagCompound); - - direction = nbtTagCompound.getByte(Strings.NBT_TE_DIRECTION_KEY); - state = nbtTagCompound.getShort(Strings.NBT_TE_STATE_KEY); - owner = nbtTagCompound.getString(Strings.NBT_TE_OWNER_KEY); + + if (nbtTagCompound.hasKey(Strings.NBT_TE_STATE_KEY)) { + this.state = nbtTagCompound.getShort(Strings.NBT_TE_STATE_KEY); + } + + if (nbtTagCompound.hasKey(Strings.NBT_TE_OWNER_KEY)) { + this.owner = nbtTagCompound.getString(Strings.NBT_TE_OWNER_KEY); + } + + if (nbtTagCompound.hasKey(Strings.NBT_TE_CUSTOM_NAME)) { + this.customName = nbtTagCompound.getString(Strings.NBT_TE_CUSTOM_NAME); + } } public void writeToNBT(NBTTagCompound nbtTagCompound) { super.writeToNBT(nbtTagCompound); - nbtTagCompound.setByte(Strings.NBT_TE_DIRECTION_KEY, direction); - nbtTagCompound.setShort(Strings.NBT_TE_STATE_KEY, state); - if (owner != null && owner != "") { - nbtTagCompound.setString(Strings.NBT_TE_OWNER_KEY, owner); + nbtTagCompound.setShort(Strings.NBT_TE_STATE_KEY, this.state); + + if (hasOwner()) { + nbtTagCompound.setString(Strings.NBT_TE_OWNER_KEY, this.owner); + } + + if (this.hasCustomName()) { + nbtTagCompound.setString(Strings.NBT_TE_CUSTOM_NAME, this.customName); } } diff --git a/resources/mods/ee3/lang/en_US.xml b/resources/mods/ee3/lang/en_US.xml index 65c95eaf..cbc9244f 100644 --- a/resources/mods/ee3/lang/en_US.xml +++ b/resources/mods/ee3/lang/en_US.xml @@ -22,10 +22,10 @@ Calcinator Aludel Alchemical Chest - Calcinator - Aludel - Alchemical Chest - Alchemical Bag + Calcinator + Aludel + Alchemical Chest + Alchemical Bag Equivalent Exchange 3 Initializing remote version check against remote version authority, located at Remote version check failed to initialize properly