ConfigGui.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. package me.shedaniel.gui;
  2. import me.shedaniel.ClientListener;
  3. import me.shedaniel.Core;
  4. import me.shedaniel.config.REIItemListOrdering;
  5. import me.shedaniel.gui.widget.KeyBindButton;
  6. import net.minecraft.client.MinecraftClient;
  7. import net.minecraft.client.gui.Gui;
  8. import net.minecraft.client.gui.widget.ButtonWidget;
  9. import net.minecraft.client.resource.language.I18n;
  10. import java.io.IOException;
  11. import java.util.Arrays;
  12. public class ConfigGui extends Gui {
  13. private Gui parent;
  14. public ConfigGui(Gui parent) {
  15. this.parent = parent;
  16. }
  17. @Override
  18. protected void onInitialized() {
  19. addButton(new KeyBindButton(997, parent.width / 2 - 20, 30, 80, 20, Core.config.recipeKeyBind, key -> {
  20. Core.config.recipeKeyBind = key;
  21. ClientListener.recipeKeyBind.setKey(key);
  22. try {
  23. Core.saveConfig();
  24. } catch (IOException e) {
  25. e.printStackTrace();
  26. }
  27. }));
  28. addButton(new KeyBindButton(998, parent.width / 2 - 20, 60, 80, 20, Core.config.usageKeyBind, key -> {
  29. Core.config.usageKeyBind = key;
  30. ClientListener.usageKeyBind.setKey(key);
  31. try {
  32. Core.saveConfig();
  33. } catch (IOException e) {
  34. e.printStackTrace();
  35. }
  36. }));
  37. addButton(new KeyBindButton(999, parent.width / 2 - 20, 90, 80, 20, Core.config.hideKeyBind, key -> {
  38. Core.config.hideKeyBind = key;
  39. ClientListener.hideKeyBind.setKey(key);
  40. try {
  41. Core.saveConfig();
  42. } catch (IOException e) {
  43. e.printStackTrace();
  44. }
  45. }));
  46. addButton(new ButtonWidget(1000, parent.width / 2 - 90, 120, 150, 20, "") {
  47. @Override
  48. public void onPressed(double double_1, double double_2) {
  49. Core.config.centreSearchBox = !Core.config.centreSearchBox;
  50. try {
  51. Core.saveConfig();
  52. } catch (IOException e) {
  53. e.printStackTrace();
  54. }
  55. }
  56. @Override
  57. public void draw(int int_1, int int_2, float float_1) {
  58. this.text = I18n.translate("text.rei.centre_searchbox", Core.config.centreSearchBox ? "§a" : "§c", Core.config.centreSearchBox);
  59. super.draw(int_1, int_2, float_1);
  60. if (this.hovered)
  61. drawSuggestion(int_1, int_2);
  62. }
  63. protected void drawSuggestion(int x, int y) {
  64. drawTooltip(Arrays.asList(I18n.translate("text.rei.centre_searchbox.tooltip").split("\n")), x, y);
  65. }
  66. });
  67. addButton(new ButtonWidget(1001, parent.width / 2 - 90, 150, 150, 20, "") {
  68. @Override
  69. public void onPressed(double double_1, double double_2) {
  70. int index = Arrays.asList(REIItemListOrdering.values()).indexOf(Core.config.itemListOrdering);
  71. if (index >= REIItemListOrdering.values().length) {
  72. index = 0;
  73. Core.config.isAscending = !Core.config.isAscending;
  74. }
  75. Core.config.itemListOrdering = REIItemListOrdering.values()[index];
  76. try {
  77. Core.saveConfig();
  78. } catch (IOException e) {
  79. e.printStackTrace();
  80. }
  81. }
  82. @Override
  83. public void draw(int int_1, int int_2, float float_1) {
  84. this.text = I18n.translate("text.rei.list_ordering_button", I18n.translate(Core.config.itemListOrdering.getNameTranslationKey()),
  85. I18n.translate(Core.config.isAscending ? "ordering.rei.ascending" : "ordering.rei.descending"));
  86. super.draw(int_1, int_2, float_1);
  87. }
  88. });
  89. }
  90. @Override
  91. public void draw(int mouseX, int mouseY, float partialTicks) {
  92. drawBackground();
  93. super.draw(mouseX, mouseY, partialTicks);
  94. String text = I18n.translate("key.rei.recipe") + ": ";
  95. drawString(MinecraftClient.getInstance().fontRenderer, text, parent.width / 2 - 40 - MinecraftClient.getInstance().fontRenderer.getStringWidth(text), 30 + 6, -1);
  96. text = I18n.translate("key.rei.use") + ": ";
  97. drawString(MinecraftClient.getInstance().fontRenderer, text, parent.width / 2 - 40 - MinecraftClient.getInstance().fontRenderer.getStringWidth(text), 60 + 6, -1);
  98. text = I18n.translate("key.rei.hide") + ": ";
  99. drawString(MinecraftClient.getInstance().fontRenderer, text, parent.width / 2 - 40 - MinecraftClient.getInstance().fontRenderer.getStringWidth(text), 90 + 6, -1);
  100. text = I18n.translate("text.rei.list_ordering") + ": ";
  101. drawString(MinecraftClient.getInstance().fontRenderer, text, parent.width / 2 - 110 - MinecraftClient.getInstance().fontRenderer.getStringWidth(text), 150 + 6, -1);
  102. }
  103. @Override
  104. public boolean keyPressed(int p_keyPressed_1_, int p_keyPressed_2_, int p_keyPressed_3_) {
  105. if (p_keyPressed_1_ == 256 && this.doesEscapeKeyClose()) {
  106. this.close();
  107. if (parent != null)
  108. MinecraftClient.getInstance().openGui(parent);
  109. return true;
  110. } else {
  111. return super.keyPressed(p_keyPressed_1_, p_keyPressed_2_, p_keyPressed_3_);
  112. }
  113. }
  114. }