diff --git a/src/main/java/de/eydamos/backpack/factory/FactoryBackpackNormal.java b/src/main/java/de/eydamos/backpack/factory/FactoryBackpackNormal.java index 58397471..00519997 100644 --- a/src/main/java/de/eydamos/backpack/factory/FactoryBackpackNormal.java +++ b/src/main/java/de/eydamos/backpack/factory/FactoryBackpackNormal.java @@ -1,10 +1,12 @@ package de.eydamos.backpack.factory; import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryEnderChest; import net.minecraft.inventory.Slot; +import net.minecraft.util.StatCollector; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -13,6 +15,7 @@ import de.eydamos.backpack.inventory.container.Boundaries; import de.eydamos.backpack.inventory.container.ContainerAdvanced; import de.eydamos.backpack.inventory.slot.SlotBackpack; +import de.eydamos.backpack.misc.Localizations; import de.eydamos.backpack.saves.BackpackSave; import de.eydamos.guiadvanced.form.Label; import de.eydamos.guiadvanced.subpart.GuiSlot; @@ -85,17 +88,26 @@ public GuiContainer getGuiContainer(BackpackSave backpack, IInventory[] inventor int slotsPerRow = backpack.getSlotsPerRow(); int inventoryRows = (int) Math.ceil(inventories[1].getSizeInventory() / (float) slotsPerRow); int textPositionY = 17 + inventoryRows * SLOT + 2; + int inventoryStart = container.getBoundary(Boundaries.INVENTORY); + int hotbarEnd = container.getBoundary(Boundaries.HOTBAR_END); GuiSlot guiSlot; for (int i = 0; i < container.inventorySlots.size(); i++) { Slot slot = (Slot) container.inventorySlots.get(i); - guiSlot = new GuiSlot(slot.xDisplayPosition - 1, slot.yDisplayPosition - 1); + int yOffset = (i >= inventoryStart && i < hotbarEnd) ? 44 : 0; + guiSlot = new GuiSlot(slot.xDisplayPosition - 1, slot.yDisplayPosition - 1, 18, 18, yOffset); guiBackpack.addSubPart(guiSlot); } int inventorySpaceBefore = (int) Math.round(container.getWidth() / 2. - (SLOT * 9) / 2.); - guiBackpack.addSubPart(new Label(X_SPACING, 6, 0x404040, inventories[1].getInventoryName())); + String baseTitle = I18n.format(inventories[1].getInventoryName()); + String guiTitle = baseTitle; + if (StatCollector.canTranslate(Localizations.GUI_TITLE_FORMAT)) { + guiTitle = I18n.format(Localizations.GUI_TITLE_FORMAT, baseTitle); + } + + guiBackpack.addSubPart(new Label(X_SPACING, 6, 0x404040, guiTitle)); guiBackpack.addSubPart(new Label(inventorySpaceBefore, textPositionY, 0x404040, "container.inventory")); return guiBackpack; diff --git a/src/main/java/de/eydamos/backpack/factory/FactoryPersonalSlot.java b/src/main/java/de/eydamos/backpack/factory/FactoryPersonalSlot.java index 1e80d7d6..7d6da69c 100644 --- a/src/main/java/de/eydamos/backpack/factory/FactoryPersonalSlot.java +++ b/src/main/java/de/eydamos/backpack/factory/FactoryPersonalSlot.java @@ -1,9 +1,11 @@ package de.eydamos.backpack.factory; import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; +import net.minecraft.util.StatCollector; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -102,14 +104,23 @@ public GuiContainer getGuiContainer(PlayerSave player, IInventory[] inventories, ContainerPersonalSlot container = (ContainerPersonalSlot) getContainer(player, inventories, entityPlayer); GuiBackpack guiBackpack = new GuiBackpack(container); + int inventoryStart = container.getBoundary(Boundaries.INVENTORY); + int hotbarEnd = container.getBoundary(Boundaries.HOTBAR_END); GuiSlot guiSlot; for (int i = 0; i < container.inventorySlots.size(); i++) { Slot slot = (Slot) container.inventorySlots.get(i); - guiSlot = new GuiSlot(slot.xDisplayPosition - 1, slot.yDisplayPosition - 1); + int yOffset = (i >= inventoryStart && i < hotbarEnd) ? 44 : 0; + guiSlot = new GuiSlot(slot.xDisplayPosition - 1, slot.yDisplayPosition - 1, 18, 18, yOffset); guiBackpack.addSubPart(guiSlot); } - guiBackpack.addSubPart(new Label(X_SPACING, 6, 0x404040, container.getInventoryToSave().getInventoryName())); + String baseTitle = I18n.format(container.getInventoryToSave().getInventoryName()); + String guiTitle = baseTitle; + if (StatCollector.canTranslate(Localizations.GUI_TITLE_FORMAT)) { + guiTitle = I18n.format(Localizations.GUI_TITLE_FORMAT, baseTitle); + } + + guiBackpack.addSubPart(new Label(X_SPACING, 6, 0x404040, guiTitle)); guiBackpack.addSubPart(new Label(X_SPACING, 38, 0x404040, container.getInventoryPickup().getInventoryName())); return guiBackpack; diff --git a/src/main/java/de/eydamos/backpack/factory/FactoryWorkbenchBackpack.java b/src/main/java/de/eydamos/backpack/factory/FactoryWorkbenchBackpack.java index 7b6169a9..9c69ae6a 100644 --- a/src/main/java/de/eydamos/backpack/factory/FactoryWorkbenchBackpack.java +++ b/src/main/java/de/eydamos/backpack/factory/FactoryWorkbenchBackpack.java @@ -165,13 +165,16 @@ public GuiContainer getGuiContainer(BackpackSave backpack, IInventory[] inventor ContainerAdvanced container = getContainer(backpack, inventories, entityPlayer); GuiWorkbenchBackpack guiBackpack = new GuiWorkbenchBackpack(container); + int inventoryStart = container.getBoundary(Boundaries.INVENTORY); + int hotbarEnd = container.getBoundary(Boundaries.HOTBAR_END); GuiSlot guiSlot; for (int i = 0; i < container.inventorySlots.size(); i++) { Slot slot = (Slot) container.inventorySlots.get(i); + int yOffset = (i >= inventoryStart && i < hotbarEnd) ? 44 : 0; if (i == 0) { - guiSlot = new GuiSlot(slot.xDisplayPosition - 5, slot.yDisplayPosition - 5, 26); + guiSlot = new GuiSlot(slot.xDisplayPosition - 5, slot.yDisplayPosition - 5, 26, 26, yOffset); } else { - guiSlot = new GuiSlot(slot.xDisplayPosition - 1, slot.yDisplayPosition - 1); + guiSlot = new GuiSlot(slot.xDisplayPosition - 1, slot.yDisplayPosition - 1, 18, 18, yOffset); } guiBackpack.addSubPart(guiSlot); } diff --git a/src/main/java/de/eydamos/backpack/misc/Localizations.java b/src/main/java/de/eydamos/backpack/misc/Localizations.java index 02e8cde7..8e120edb 100644 --- a/src/main/java/de/eydamos/backpack/misc/Localizations.java +++ b/src/main/java/de/eydamos/backpack/misc/Localizations.java @@ -26,6 +26,7 @@ public class Localizations { public static final String LABEL_NEW_NAME = "text.backpack.new_name"; public static final String LABEL_BACKPACK_CONFIG = "text.backpack.configuration"; + public static final String GUI_TITLE_FORMAT = "text.backpack.title_format"; public static final String BUTTON_OK = "button.backpack.ok"; public static final String BUTTON_CANCEL = "button.backpack.cancel"; diff --git a/src/main/java/de/eydamos/guiadvanced/subpart/GuiSlot.java b/src/main/java/de/eydamos/guiadvanced/subpart/GuiSlot.java index 7189f5a8..4d5dfc28 100644 --- a/src/main/java/de/eydamos/guiadvanced/subpart/GuiSlot.java +++ b/src/main/java/de/eydamos/guiadvanced/subpart/GuiSlot.java @@ -14,6 +14,7 @@ public class GuiSlot implements AbstractGuiPart { protected int relativePositionY; protected int width; protected int height; + protected int textureYOffset; public GuiSlot(int posX, int posY) { this(posX, posY, 18, 18); @@ -24,8 +25,13 @@ public GuiSlot(int posX, int posY, int widthHeight) { } public GuiSlot(int posX, int posY, int width, int height) { + this(posX, posY, width, height, 0); + } + + public GuiSlot(int posX, int posY, int width, int height, int textureYOffset) { setWidth(width); setHeight(height); + this.textureYOffset = textureYOffset; relativePositionX = posX; relativePositionY = posY; } @@ -54,27 +60,28 @@ public void setHeight(int value) { public void draw(Minecraft mc, int mouseX, int mouseY, float something) { Rectangle rectangle = new Rectangle(1, 1); rectangle.startDrawing(); + int yOffset = textureYOffset; // draw upper left corner - rectangle.setBackgroundPosition(201, 0); + rectangle.setBackgroundPosition(201, yOffset); rectangle.addBoxVertices(xPosition, yPosition); // draw upper right corner - rectangle.setBackgroundPosition(218, 0); + rectangle.setBackgroundPosition(218, yOffset); rectangle.addBoxVertices(xPosition + width - 1, yPosition); // draw lower left corner - rectangle.setBackgroundPosition(201, 17); + rectangle.setBackgroundPosition(201, 17 + yOffset); rectangle.addBoxVertices(xPosition, yPosition + height - 1); // draw lower right corner - rectangle.setBackgroundPosition(218, 17); + rectangle.setBackgroundPosition(218, 17 + yOffset); rectangle.addBoxVertices(xPosition + width - 1, yPosition + height - 1); // borders top/bottom rectangle.setWidth(width - 2); rectangle.setBackgroundRepeat(BackgroundRepeat.REPEAT_X); // draw top border - rectangle.setBackgroundPosition(202, 0); + rectangle.setBackgroundPosition(202, yOffset); rectangle.addBoxVertices(xPosition + 1, yPosition); // draw bottom border - rectangle.setBackgroundPosition(202, 17); + rectangle.setBackgroundPosition(202, 17 + yOffset); rectangle.addBoxVertices(xPosition + 1, yPosition + height - 1); // borders left/right @@ -82,10 +89,10 @@ public void draw(Minecraft mc, int mouseX, int mouseY, float something) { rectangle.setHeight(height - 2); rectangle.setBackgroundRepeat(BackgroundRepeat.REPEAT_Y); // draw left border - rectangle.setBackgroundPosition(201, 1); + rectangle.setBackgroundPosition(201, 1 + yOffset); rectangle.addBoxVertices(xPosition, yPosition + 1); // draw right border - rectangle.setBackgroundPosition(218, 1); + rectangle.setBackgroundPosition(218, 1 + yOffset); rectangle.addBoxVertices(xPosition + width - 1, yPosition + 1); // draw background @@ -93,7 +100,7 @@ public void draw(Minecraft mc, int mouseX, int mouseY, float something) { rectangle.setHeight(height - 2); rectangle.setBackgroundSize(14, 14); rectangle.setBackgroundRepeat(BackgroundRepeat.REPEAT); - rectangle.setBackgroundPosition(202, 1); + rectangle.setBackgroundPosition(202, 1 + yOffset); rectangle.addBoxVertices(xPosition + 1, yPosition + 1); rectangle.performDrawing(); } diff --git a/src/main/resources/assets/backpack/textures/gui/guiCombined.png b/src/main/resources/assets/backpack/textures/gui/guiCombined.png index a1961f90..b8dda770 100644 Binary files a/src/main/resources/assets/backpack/textures/gui/guiCombined.png and b/src/main/resources/assets/backpack/textures/gui/guiCombined.png differ