diff --git a/src/main/java/de/skate702/craftingkeys/CraftingKeys.java b/src/main/java/de/skate702/craftingkeys/CraftingKeys.java index 3956de1..e267183 100644 --- a/src/main/java/de/skate702/craftingkeys/CraftingKeys.java +++ b/src/main/java/de/skate702/craftingkeys/CraftingKeys.java @@ -17,12 +17,10 @@ import de.skate702.craftingkeys.config.GuiConfig; import de.skate702.craftingkeys.config.GuiConfigHandler; import de.skate702.craftingkeys.manager.*; import de.skate702.craftingkeys.proxies.CraftingKeysProxy; +import de.skate702.craftingkeys.util.LanguageLocalizer; import de.skate702.craftingkeys.util.Logger; import de.skate702.craftingkeys.util.Util; -import net.minecraft.client.gui.GuiEnchantment; -import net.minecraft.client.gui.GuiMainMenu; -import net.minecraft.client.gui.GuiMerchant; -import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.*; import net.minecraft.client.gui.inventory.*; import net.minecraftforge.client.event.GuiOpenEvent; import net.minecraftforge.common.MinecraftForge; @@ -175,6 +173,10 @@ public class CraftingKeys { ((GuiEnchantment) currentScreen).inventorySlots); con.acceptKey(); + } else if (currentScreen instanceof GuiRepair){ + ContainerManager con = AnvilManager.getInstance( + ((GuiRepair) currentScreen).inventorySlots); + con.acceptKey(); } } diff --git a/src/main/java/de/skate702/craftingkeys/config/ConfigGui.java b/src/main/java/de/skate702/craftingkeys/config/ConfigGui.java index 2a1d7fb..6808e2a 100644 --- a/src/main/java/de/skate702/craftingkeys/config/ConfigGui.java +++ b/src/main/java/de/skate702/craftingkeys/config/ConfigGui.java @@ -5,6 +5,7 @@ import cpw.mods.fml.client.config.GuiConfig; import cpw.mods.fml.client.config.IConfigElement; import de.skate702.craftingkeys.CraftingKeys; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.util.StatCollector; import net.minecraftforge.common.config.ConfigElement; import java.util.ArrayList; diff --git a/src/main/java/de/skate702/craftingkeys/config/GuiConfig.java b/src/main/java/de/skate702/craftingkeys/config/GuiConfig.java index 06faaa5..4be5f03 100644 --- a/src/main/java/de/skate702/craftingkeys/config/GuiConfig.java +++ b/src/main/java/de/skate702/craftingkeys/config/GuiConfig.java @@ -1,5 +1,6 @@ package de.skate702.craftingkeys.config; +import de.skate702.craftingkeys.util.LanguageLocalizer; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; import net.minecraft.util.ResourceLocation; @@ -13,101 +14,225 @@ public class GuiConfig extends GuiScreen { private static final Color pureWhite = new Color(255, 255, 255, 255); private static final Color lightGray = new Color(128, 128, 128, 255); private static final Color highlight = new Color(86, 144, 72, 255); - private int craftingBasePosition; - private int craftingBaseOffset; + private int guiBasePosition; + private int guiBaseOffset; + + private int guiShowBasePosition; + private int guiShowBaseHeight; + private GuiType guiShowType; + + //TODO:Give all buttons the name you think are good for the eventhandling + private int buttonSaveID = 901; + private int buttonAbortID = 902; + private int buttonDropID = 903; + private int buttonStackID = 904; + + private int buttonAnvilID = 301; + private int buttonBrewingstandID = 302; + private int buttonDispenserID = 303; + private int buttonFurnaceID = 304; + private int buttonEnchantmentID = 305; + private int buttonInventoryID = 306; + private int buttonVillagerID = 307; + + public enum GuiType{ + ANVIL, + FURNACE, + BREWINGSTAND, + ENCHANTMENT, + INVENTORY, + VILAGER, + DISPENSER; + } @Override public void initGui() { // Fill vars - craftingBasePosition = width / 2 - craftingBaseOffset; - craftingBaseOffset = 35; + guiBaseOffset = 35; + guiBasePosition = width / 2 - guiBaseOffset; - // Add crafting Buttons - buttonList.add((new GuiButton(0, craftingBasePosition - 60, height / 2 - 87, 20, 20, "Q"))); - buttonList.add((new GuiButton(1, craftingBasePosition - 41, height / 2 - 87, 20, 20, "W"))); - buttonList.add((new GuiButton(2, craftingBasePosition - 22, height / 2 - 87, 20, 20, "E"))); - buttonList.add((new GuiButton(3, craftingBasePosition - 60, height / 2 - 68, 20, 20, "A"))); - buttonList.add((new GuiButton(4, craftingBasePosition - 41, height / 2 - 68, 20, 20, "S"))); - buttonList.add((new GuiButton(5, craftingBasePosition - 22, height / 2 - 68, 20, 20, "D"))); - buttonList.add((new GuiButton(6, craftingBasePosition - 60, height / 2 - 49, 20, 20, "Y"))); - buttonList.add((new GuiButton(7, craftingBasePosition - 41, height / 2 - 49, 20, 20, "X"))); - buttonList.add((new GuiButton(8, craftingBasePosition - 22, height / 2 - 49, 20, 20, "C"))); + guiShowBasePosition = width / 2 - 35; + guiShowBaseHeight = height / 2 + 35; - buttonList.add((new GuiButton(9, craftingBasePosition + 34, height / 2 - 67, 22, 20, "Ctrl"))); - buttonList.add((new GuiButton(10, craftingBasePosition + 105, height / 2 - 84, 50, 20, "Shift"))); - buttonList.add((new GuiButton(11, craftingBasePosition + 105, height / 2 - 46, 50, 20, "Space"))); - - // Add control buttons - buttonList.add((new GuiButton(12, width - 53, 3, 50, 20, "Abort"))); - buttonList.add((new GuiButton(13, width - 53, 26, 50, 20, "Save"))); + guiShowType = GuiType.FURNACE; + //Button Init + addStandardButtons(); } + @Override public void drawScreen(int mouseX, int mouseY, float partialTicks) { - // Fill vars - int infoPositionLeft = 20; - int infoPositionRight = width - 194; - int infoPositionHeight = height / 2 + 25; - - // Reset the GL-Color to pure white + //Setting up GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - - // Init the Background drawDefaultBackground(); //drawWorldBackground(0); + //Title + drawCenteredString(fontRendererObj, LanguageLocalizer.localize("craftingkeys.config.title"), width / 2, height / 2 - 115, pureWhite.getRGB()); + // Info-text and fake line + drawCenteredString(fontRendererObj, LanguageLocalizer.localize("craftingkeys.config.description"), width / 2, height / 2 - 10, pureWhite.getRGB()); + drawCenteredString(fontRendererObj, "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -", width / 2, height / 2 + 8, lightGray.getRGB()); + drawCenteredString(fontRendererObj, LanguageLocalizer.localize("craftingkeys.config.usage"), width / 2, height / 2 + 23, pureWhite.getRGB()); + // Key Info + drawCenteredString(fontRendererObj, "Stack Key", guiBasePosition + 130, height / 2 - 96, pureWhite.getRGB()); + drawCenteredString(fontRendererObj, "Drop Key", guiBasePosition + 130, height / 2 - 58, pureWhite.getRGB()); + //Draw line to let it look better + drawHorizontalLine(guiBasePosition - 86, guiBasePosition + 85, height / 2 - 20, pureWhite.getRGB()); - // Title - drawCenteredString(fontRendererObj, "Crafting Keys Config", width / 2, height / 2 - 115, pureWhite.getRGB()); - - // Crafting Table texture - mc.renderEngine.bindTexture(new ResourceLocation("textures/gui/container/crafting_table.png")); - drawTexturedModalRect(craftingBasePosition - 86, height / 2 - 100, 1, 0, 174, 80); - - // Key Info - drawCenteredString(fontRendererObj, "Stack Key", craftingBasePosition + 130, height / 2 - 96, pureWhite.getRGB()); - drawCenteredString(fontRendererObj, "Drop Key", craftingBasePosition + 130, height / 2 - 58, pureWhite.getRGB()); - - // Line under crafting table texture - drawHorizontalLine(craftingBasePosition - 100, width / 2 + 100 + craftingBaseOffset, - height / 2 - 20, pureWhite.getRGB()); - - // Info-text and fake line - drawCenteredString(fontRendererObj, "Configure your keys here. Click \"Save\" when finished!", - width / 2, height / 2 - 10, pureWhite.getRGB()); - drawCenteredString(fontRendererObj, "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -", - width / 2, height / 2 + 8, lightGray.getRGB()); - - // Insert Info screens - genFurnaceInfo(infoPositionRight, infoPositionHeight); - genBrewingStandInfo(infoPositionLeft, infoPositionHeight); + drawCraftingTable(); + // Insert Gui by selected Type + if(guiShowType == GuiType.FURNACE){ + genFurnaceInfo(); + }else if(guiShowType == GuiType.BREWINGSTAND){ + genBrewingStandInfo(); + }else if(guiShowType == GuiType.DISPENSER){ + genDispenserInfo(); + }else if(guiShowType == GuiType.ENCHANTMENT){ + genEnchantmentInfo(); + }else if(guiShowType == GuiType.INVENTORY){ + genInventoryInfo(); + }else if(guiShowType == GuiType.VILAGER){ + genVillagerInfo(); + }else if(guiShowType == GuiType.ANVIL){ + genAnvilInfo(); + } + //Draw line to let it look better + drawHorizontalLine(guiShowBasePosition - 86, guiShowBasePosition + 85, guiShowBaseHeight + 80, lightGray.getRGB()); super.drawScreen(mouseX, mouseY, partialTicks); } - private void genFurnaceInfo(int xBase, int yBase) { - GL11.glColor4f(0.5F, 0.5F, 0.5F, 1.0F); + //TODO: Set here the buttons with the function + @Override + public void actionPerformed(GuiButton button) { + if (button.id == buttonAbortID) { + + }else if (button.id == buttonSaveID) { + + }else if(button.id == buttonInventoryID) { + guiShowType = GuiType.INVENTORY; + }else if(button.id == buttonEnchantmentID){ + guiShowType = GuiType.ENCHANTMENT; + }else if(button.id == buttonBrewingstandID){ + guiShowType = GuiType.BREWINGSTAND; + }else if(button.id == buttonDispenserID){ + guiShowType = GuiType.DISPENSER; + }else if(button.id == buttonFurnaceID){ + guiShowType = GuiType.FURNACE; + }else if(button.id == buttonVillagerID){ + guiShowType = GuiType.VILAGER; + }else if(button.id == buttonAnvilID){ + guiShowType = GuiType.ANVIL; + } + } + + //GUI GENERATORS: + /* + TODO: Create strings for showing the Keybindings + */ + + private void drawCraftingTable(){ + GL11.glColor4f(1F, 1F, 1F, 1F); + mc.renderEngine.bindTexture(new ResourceLocation("textures/gui/container/crafting_table.png")); + drawTexturedModalRect(guiBasePosition - 86, height / 2 - 100, 1, 0, 174, 80); + drawString(fontRendererObj, "Crafting Table", guiBasePosition - 33, height / 2 - 100 + 3, lightGray.getRGB()); + } + + private void genFurnaceInfo() { + GL11.glColor4f(0.5F, 0.5F, 0.5F, 1F); mc.renderEngine.bindTexture(new ResourceLocation("textures/gui/container/furnace.png")); - drawTexturedModalRect(xBase, yBase, 1, 0, 174, 80); - drawString(fontRendererObj, "Furnace", xBase + 5, yBase + 5, lightGray.getRGB()); - drawCenteredString(fontRendererObj, "W", xBase + 63, yBase + 21, highlight.getRGB()); - drawCenteredString(fontRendererObj, "S", xBase + 63, yBase + 57, highlight.getRGB()); - drawCenteredString(fontRendererObj, "Ctrl", xBase + 123, yBase + 39, highlight.getRGB()); + drawTexturedModalRect(guiShowBasePosition - 86, guiShowBaseHeight, 1, 0, 174, 80); + + drawString(fontRendererObj, "Furnace", guiShowBasePosition - 15, guiShowBaseHeight + 3, lightGray.getRGB()); + + drawCenteredString(fontRendererObj, "W", guiShowBasePosition - 86 + 63, guiShowBaseHeight + 21, highlight.getRGB()); + drawCenteredString(fontRendererObj, "S", guiShowBasePosition - 86 + 63, guiShowBaseHeight + 57, highlight.getRGB()); + drawCenteredString(fontRendererObj, "Ctrl", guiShowBasePosition - 86 + 123, guiShowBaseHeight + 39, highlight.getRGB()); } - private void genBrewingStandInfo(int xBase, int yBase) { - GL11.glColor4f(0.5F, 0.5F, 0.5F, 1.0F); + private void genBrewingStandInfo() { + GL11.glColor4f(0.5F, 0.5F, 0.5F, 1F); mc.renderEngine.bindTexture(new ResourceLocation("textures/gui/container/brewing_stand.png")); - drawTexturedModalRect(xBase, yBase, 1, 0, 174, 80); - drawString(fontRendererObj, "Brewing Stand", xBase + 5, yBase + 5, lightGray.getRGB()); - drawCenteredString(fontRendererObj, "W", xBase + 86, yBase + 21, highlight.getRGB()); - drawCenteredString(fontRendererObj, "S", xBase + 86, yBase + 58, highlight.getRGB()); - drawCenteredString(fontRendererObj, "A", xBase + 63, yBase + 50, highlight.getRGB()); - drawCenteredString(fontRendererObj, "D", xBase + 109, yBase + 50, highlight.getRGB()); + drawTexturedModalRect(guiShowBasePosition - 86, guiShowBaseHeight, 1, 0, 174, 80); + + drawString(fontRendererObj, "Brewing Stand", guiShowBasePosition - 33, guiShowBaseHeight + 3, lightGray.getRGB()); + + drawCenteredString(fontRendererObj, "W", guiBasePosition, guiShowBaseHeight + 21, highlight.getRGB()); + drawCenteredString(fontRendererObj, "S", guiBasePosition, guiShowBaseHeight + 58, highlight.getRGB()); + drawCenteredString(fontRendererObj, "A", guiBasePosition - 86 + 63, guiShowBaseHeight + 50, highlight.getRGB()); + drawCenteredString(fontRendererObj, "D", guiBasePosition - 86 + 109, guiShowBaseHeight + 50, highlight.getRGB()); } - // TODO: generators for all other textures. But... I hate this job. Does anyone wants to do this? - // TODO: We need volunteers! Let's go! Make a pull request. THANK YOU! + private void genEnchantmentInfo(){ + GL11.glColor4f(0.5F, 0.5F, 0.5F, 1F); + mc.renderEngine.bindTexture(new ResourceLocation("textures/gui/container/enchanting_table.png")); + drawTexturedModalRect(guiShowBasePosition - 86, guiShowBaseHeight, 1, 0, 174, 80); + drawString(fontRendererObj, "Enchanting", guiShowBasePosition - 20, guiShowBaseHeight + 3, lightGray.getRGB()); + } + private void genAnvilInfo(){ + GL11.glColor4f(0.5F, 0.5F, 0.5F, 1F); + mc.renderEngine.bindTexture(new ResourceLocation("textures/gui/container/anvil.png")); + drawTexturedModalRect(guiShowBasePosition - 86, guiShowBaseHeight, 1, 0, 174, 80); + drawString(fontRendererObj, "Anvil", guiShowBasePosition - 17, guiShowBaseHeight + 3, lightGray.getRGB()); + } + + private void genVillagerInfo(){ + GL11.glColor4f(0.5F, 0.5F, 0.5F, 1F); + mc.renderEngine.bindTexture(new ResourceLocation("textures/gui/container/villager.png")); + drawTexturedModalRect(guiShowBasePosition - 86, guiShowBaseHeight, 1, 0, 174, 80); + drawString(fontRendererObj, "Villager", guiShowBasePosition - 17, guiShowBaseHeight + 3, lightGray.getRGB()); + } + + private void genInventoryInfo(){ + GL11.glColor4f(0.5F, 0.5F, 0.5F, 1F); + mc.renderEngine.bindTexture(new ResourceLocation("textures/gui/container/inventory.png")); + drawTexturedModalRect(guiShowBasePosition - 86, guiShowBaseHeight, 1, 0, 174, 80); + drawString(fontRendererObj, "Inventory", guiShowBasePosition - 20, guiShowBaseHeight + 3, lightGray.getRGB()); + } + + private void genDispenserInfo(){ + GL11.glColor4f(0.5F, 0.5F, 0.5F, 1F); + mc.renderEngine.bindTexture(new ResourceLocation("textures/gui/container/dispenser.png")); + drawTexturedModalRect(guiShowBasePosition - 86, guiShowBaseHeight, 1, 0, 174, 80); + drawString(fontRendererObj, "Dispenser", guiShowBasePosition - 23, guiShowBaseHeight + 3, lightGray.getRGB()); + } + + + private void addStandardButtons(){ + // Add control buttons + buttonList.add((new GuiButton(buttonAbortID, width - 53, 3, 50, 20, LanguageLocalizer.localize("craftingkeys.config.button.abort")))); + buttonList.add((new GuiButton(buttonSaveID, width - 53, 26, 50, 20, LanguageLocalizer.localize("craftingkeys.config.button.save")))); + //I don't know if you want to change those for every gui + buttonList.add((new GuiButton(buttonStackID, guiBasePosition + 105, height / 2 - 84, 50, 20, "Shift"))); + buttonList.add((new GuiButton(buttonDropID, guiBasePosition + 105, height / 2 - 46, 50, 20, "Space"))); + //Add Switch Buttons + buttonList.add((new GuiButton(buttonInventoryID, guiShowBasePosition - 86 - 70 - 5, guiShowBaseHeight, 70, 20, "Inventory"))); + buttonList.add((new GuiButton(buttonFurnaceID, guiShowBasePosition - 86 - 70 - 5, guiShowBaseHeight + 20 + 1, 70, 20, "Furnace"))); + buttonList.add((new GuiButton(buttonBrewingstandID, guiShowBasePosition + 86 + 5, guiShowBaseHeight, 90, 20, "Brewing Stand"))); + buttonList.add((new GuiButton(buttonDispenserID, guiShowBasePosition - 86 - 70 - 5, guiShowBaseHeight + 2*20 + 2*1, 70, 20, "Dispenser"))); + buttonList.add((new GuiButton(buttonVillagerID, guiShowBasePosition + 86 + 5, guiShowBaseHeight + 20 + 1, 70, 20, "Villager"))); + buttonList.add((new GuiButton(buttonEnchantmentID, guiShowBasePosition + 86 + 5, guiShowBaseHeight + 2*20 + 2*1, 70, 20, "Enchanting"))); + buttonList.add((new GuiButton(buttonAnvilID, guiShowBasePosition - 86 - 70 - 5, guiShowBaseHeight + 3*20 + 3*1, 70, 20, "Anvil"))); + + //Adding Crafting Buttons + addCraftingButtons(); + } + + private void addCraftingButtons(){ + buttonList.add((new GuiButton(0, guiBasePosition - 60, height / 2 - 87, 20, 20, "Q"))); + buttonList.add((new GuiButton(1, guiBasePosition - 41, height / 2 - 87, 20, 20, "W"))); + buttonList.add((new GuiButton(2, guiBasePosition - 22, height / 2 - 87, 20, 20, "E"))); + buttonList.add((new GuiButton(3, guiBasePosition - 60, height / 2 - 68, 20, 20, "A"))); + buttonList.add((new GuiButton(4, guiBasePosition - 41, height / 2 - 68, 20, 20, "S"))); + buttonList.add((new GuiButton(5, guiBasePosition - 22, height / 2 - 68, 20, 20, "D"))); + buttonList.add((new GuiButton(6, guiBasePosition - 60, height / 2 - 49, 20, 20, "Y"))); + buttonList.add((new GuiButton(7, guiBasePosition - 41, height / 2 - 49, 20, 20, "X"))); + buttonList.add((new GuiButton(8, guiBasePosition - 22, height / 2 - 49, 20, 20, "C"))); + buttonList.add((new GuiButton(9, guiBasePosition + 34, height / 2 - 67, 22, 20, "Ctrl"))); + } + + //TODO:Get strings from language file(Localizer)... + //TODO:Add things that make this GUI an Config ... :P } diff --git a/src/main/java/de/skate702/craftingkeys/config/GuiConfigHandler.java b/src/main/java/de/skate702/craftingkeys/config/GuiConfigHandler.java index 5de57c7..d06a476 100644 --- a/src/main/java/de/skate702/craftingkeys/config/GuiConfigHandler.java +++ b/src/main/java/de/skate702/craftingkeys/config/GuiConfigHandler.java @@ -20,3 +20,4 @@ public class GuiConfigHandler implements IGuiHandler { return null; } } + diff --git a/src/main/java/de/skate702/craftingkeys/manager/AnvilManager.java b/src/main/java/de/skate702/craftingkeys/manager/AnvilManager.java new file mode 100644 index 0000000..69fcca4 --- /dev/null +++ b/src/main/java/de/skate702/craftingkeys/manager/AnvilManager.java @@ -0,0 +1,53 @@ +package de.skate702.craftingkeys.manager; + +import de.skate702.craftingkeys.util.Logger; +import net.minecraft.inventory.Container; + +public class AnvilManager extends ContainerManager { + private static AnvilManager instance = null; + + private AnvilManager(Container container) { + super(container); + } + + public static AnvilManager getInstance(Container container) { + if (instance == null) { + instance = new AnvilManager(container); + } else { + instance.container = container; + } + return instance; + } + + @Override + protected int specificKeyToSlotIndex() { + return mapKeyToSlot(-1, -1, -1, 0, 1, -1 , -1, -1, -1); + } + + @Override + protected int getInventoryStartIndex() { + return 3; + } + + @Override + protected int getInteractionSlotIndex() { + return 2; + } + + @Override + protected void onInteractionKeyPressed() { + interact(); + } + + @Override + protected int[] getDropSlots() { + return new int[]{0, 1}; + } + + @Override + protected void interact() { + leftClick(2); + } + + +} diff --git a/src/main/java/de/skate702/craftingkeys/util/LanguageLocalizer.java b/src/main/java/de/skate702/craftingkeys/util/LanguageLocalizer.java new file mode 100644 index 0000000..f423298 --- /dev/null +++ b/src/main/java/de/skate702/craftingkeys/util/LanguageLocalizer.java @@ -0,0 +1,16 @@ +package de.skate702.craftingkeys.util; + +import net.minecraft.util.StatCollector; + +public class LanguageLocalizer { + /** + *If another language than de_DE or en_US is selected the English one is used... + * + * @param unloc The unlocalized string which is in the definded in the language file + * @return localized The localized String + */ + public static String localize(String unloc){ + String localized = StatCollector.translateToLocal(unloc); + return localized; + } +} diff --git a/src/main/resources/assets/craftingkeys/lang/de_DE.lang b/src/main/resources/assets/craftingkeys/lang/de_DE.lang index afced74..e7fbf82 100644 --- a/src/main/resources/assets/craftingkeys/lang/de_DE.lang +++ b/src/main/resources/assets/craftingkeys/lang/de_DE.lang @@ -27,3 +27,10 @@ de.skate702.craftingkeys.config.other.tooltip=Saemtliche anderen Einstellungen s de.skate702.craftingkeys.warn.line1=Achtung: Crafting-Keys befindet sich in der Alpha! de.skate702.craftingkeys.warn.line2=Es gibt noch viele Fehler, und es fehlen noch einige Funktionen. de.skate702.craftingkeys.warn.line3=Mehr Info's findest du auf: https://github.com/0xSeb/CraftingKeys! + +craftingkeys.config.title=Crafting Keys Konfiguration +craftingkeys.config.description=Konfiguriere hier deine Tastenbelegung und klicke dann auf "Sichern". +craftingkeys.config.button.save=Sichern +craftingkeys.config.button.abort=Abbruch +craftingkeys.config.usage=Waehle das GUI, fuer das du die Tastenbelegung sehen moechtest. + diff --git a/src/main/resources/assets/craftingkeys/lang/en_US.lang b/src/main/resources/assets/craftingkeys/lang/en_US.lang index 4c01586..2513ed9 100644 --- a/src/main/resources/assets/craftingkeys/lang/en_US.lang +++ b/src/main/resources/assets/craftingkeys/lang/en_US.lang @@ -26,4 +26,11 @@ de.skate702.craftingkeys.config.other.tooltip=All other settings are here! # Warning de.skate702.craftingkeys.warn.line1=Warning: Crafting Keys is still in development! de.skate702.craftingkeys.warn.line2=This mod is not complete and there are some errors left. -de.skate702.craftingkeys.warn.line3=More Information: https://github.com/0xSeb/CraftingKeys! \ No newline at end of file +de.skate702.craftingkeys.warn.line3=More Information: https://github.com/0xSeb/CraftingKeys! + +craftingkeys.config.title=Crafting Keys Config +craftingkeys.config.description=Configure your keys here. Click "Save" when finished! +craftingkeys.config.button.save=Save +craftingkeys.config.button.abort=Abort +craftingkeys.config.usage=Use the buttons to select the GUI which you want to see the Keybindings for! +