Selaa lähdekoodia

Version Checker + Mirror REI + Fix Bugs

Fix #26
Close #21
Unknown 6 vuotta sitten
vanhempi
sitoutus
0b0c916378

+ 12 - 0
src/main/java/me/shedaniel/rei/client/ConfigHelper.java

@@ -107,4 +107,16 @@ public class ConfigHelper {
         return config.checkUpdates;
     }
     
+    public void setCheckUpdates(boolean checkUpdates) {
+        config.checkUpdates = checkUpdates;
+    }
+    
+    public boolean isMirrorItemPanel() {
+        return config.mirrorItemPanel;
+    }
+    
+    public void setMirrorItemPanel(boolean mirrorItemPanel) {
+        config.mirrorItemPanel = mirrorItemPanel;
+    }
+    
 }

+ 1 - 0
src/main/java/me/shedaniel/rei/client/REIConfig.java

@@ -13,5 +13,6 @@ public class REIConfig {
     public boolean sideSearchField = false;
     public String giveCommandPrefix = "/give";
     public boolean checkUpdates = true;
+    public boolean mirrorItemPanel = false;
     
 }

+ 32 - 11
src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java

@@ -62,7 +62,7 @@ public class ContainerScreenOverlay extends Screen {
             }
         });
         page = MathHelper.clamp(page, 0, getTotalPage());
-        widgets.add(new ButtonWidget(10, 10, 40, 20, "") {
+        widgets.add(new ButtonWidget(RoughlyEnoughItemsCore.getConfigHelper().isMirrorItemPanel() ? window.getScaledWidth() - 50 : 10, 10, 40, 20, "") {
             @Override
             public void draw(int int_1, int int_2, float float_1) {
                 this.text = getCheatModeText();
@@ -74,7 +74,7 @@ public class ContainerScreenOverlay extends Screen {
                 ClientHelper.setCheating(!ClientHelper.isCheating());
             }
         });
-        widgets.add(new ButtonWidget(10, 35, 40, 20, I18n.translate("text.rei.config")) {
+        widgets.add(new ButtonWidget(RoughlyEnoughItemsCore.getConfigHelper().isMirrorItemPanel() ? window.getScaledWidth() - 50 : 10, 35, 40, 20, I18n.translate("text.rei.config")) {
             @Override
             public void onPressed(int button, double mouseX, double mouseY) {
                 ClientHelper.openConfigWindow(GuiHelper.getLastContainerScreen());
@@ -200,14 +200,22 @@ public class ContainerScreenOverlay extends Screen {
     }
     
     private Rectangle calculateBoundary() {
-        int startX = GuiHelper.getLastMixinContainerScreen().getContainerLeft() + GuiHelper.getLastMixinContainerScreen().getContainerWidth() + 10;
-        int width = window.getScaledWidth() - startX;
+        if (!RoughlyEnoughItemsCore.getConfigHelper().isMirrorItemPanel()) {
+            int startX = GuiHelper.getLastMixinContainerScreen().getContainerLeft() + GuiHelper.getLastMixinContainerScreen().getContainerWidth() + 10;
+            int width = window.getScaledWidth() - startX;
+            if (MinecraftClient.getInstance().currentScreen instanceof RecipeViewingWidgetScreen) {
+                RecipeViewingWidgetScreen widget = (RecipeViewingWidgetScreen) MinecraftClient.getInstance().currentScreen;
+                startX = widget.getBounds().x + widget.getBounds().width + 10;
+                width = window.getScaledWidth() - startX;
+            }
+            return new Rectangle(startX, 0, width, window.getScaledHeight());
+        }
+        int width = GuiHelper.getLastMixinContainerScreen().getContainerLeft() - 6;
         if (MinecraftClient.getInstance().currentScreen instanceof RecipeViewingWidgetScreen) {
             RecipeViewingWidgetScreen widget = (RecipeViewingWidgetScreen) MinecraftClient.getInstance().currentScreen;
-            startX = widget.getBounds().x + widget.getBounds().width + 10;
-            width = window.getScaledWidth() - startX;
+            width = widget.getBounds().x - 6;
         }
-        return new Rectangle(startX, 0, width, window.getScaledHeight());
+        return new Rectangle(4, 0, width, window.getScaledHeight());
     }
     
     private int getLeft() {
@@ -224,6 +232,8 @@ public class ContainerScreenOverlay extends Screen {
     
     @Override
     public boolean mouseScrolled(double amount) {
+        if (!GuiHelper.isOverlayVisible())
+            return false;
         if (rectangle.contains(ClientHelper.getMouseLocation())) {
             if (amount > 0 && buttonLeft.enabled)
                 buttonLeft.onPressed(0, 0, 0);
@@ -241,6 +251,12 @@ public class ContainerScreenOverlay extends Screen {
     
     @Override
     public boolean keyPressed(int int_1, int int_2, int int_3) {
+        if (ClientHelper.HIDE.matchesKey(int_1, int_2)) {
+            GuiHelper.toggleOverlayVisible();
+            return true;
+        }
+        if (!GuiHelper.isOverlayVisible())
+            return false;
         for(GuiEventListener listener : listeners)
             if (listener.keyPressed(int_1, int_2, int_3))
                 return true;
@@ -268,19 +284,24 @@ public class ContainerScreenOverlay extends Screen {
             else if (ClientHelper.USAGE.matchesKey(int_1, int_2))
                 return ClientHelper.executeUsageKeyBind(this, itemStack);
         }
-        if (ClientHelper.HIDE.matchesKey(int_1, int_2)) {
-            GuiHelper.toggleOverlayVisible();
-            return true;
-        }
         return false;
     }
     
     @Override
     public boolean charTyped(char char_1, int int_1) {
+        if (!GuiHelper.isOverlayVisible())
+            return false;
         for(GuiEventListener listener : listeners)
             if (listener.charTyped(char_1, int_1))
                 return true;
         return super.charTyped(char_1, int_1);
     }
     
+    @Override
+    public boolean mouseClicked(double double_1, double double_2, int int_1) {
+        if (!GuiHelper.isOverlayVisible())
+            return false;
+        return super.mouseClicked(double_1, double_2, int_1);
+    }
+    
 }

+ 43 - 1
src/main/java/me/shedaniel/rei/gui/widget/ConfigWidget.java

@@ -54,7 +54,7 @@ public class ConfigWidget extends Screen {
             @Override
             public void draw(int mouseX, int mouseY, float partialTicks) {
                 text = getTrueFalseText(RoughlyEnoughItemsCore.getConfigHelper().sideSearchField());
-                String t = I18n.translate("text.rei.centre_searchbox");
+                String t = I18n.translate("text.rei.side_searchbox");
                 int width = fontRenderer.getStringWidth(t);
                 fontRenderer.drawWithShadow(t, this.x - width - 10, this.y + (this.height - 8) / 2, -1);
                 super.draw(mouseX, mouseY, partialTicks);
@@ -106,6 +106,48 @@ public class ConfigWidget extends Screen {
                 super.draw(int_1, int_2, float_1);
             }
         });
+        widgets.add(new ButtonWidget(window.getScaledWidth() / 2 - 20, 120, 40, 20, "") {
+            @Override
+            public void onPressed(int button, double mouseX, double mouseY) {
+                if (button == 0)
+                    RoughlyEnoughItemsCore.getConfigHelper().setMirrorItemPanel(!RoughlyEnoughItemsCore.getConfigHelper().isMirrorItemPanel());
+                try {
+                    RoughlyEnoughItemsCore.getConfigHelper().saveConfig();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        
+            @Override
+            public void draw(int mouseX, int mouseY, float partialTicks) {
+                text = getTrueFalseText(RoughlyEnoughItemsCore.getConfigHelper().isMirrorItemPanel());
+                String t = I18n.translate("text.rei.mirror_rei");
+                int width = fontRenderer.getStringWidth(t);
+                fontRenderer.drawWithShadow(t, this.x - width - 10, this.y + (this.height - 8) / 2, -1);
+                super.draw(mouseX, mouseY, partialTicks);
+            }
+        });
+        widgets.add(new ButtonWidget(window.getScaledWidth() / 2 - 20, 150, 40, 20, "") {
+            @Override
+            public void onPressed(int button, double mouseX, double mouseY) {
+                if (button == 0)
+                    RoughlyEnoughItemsCore.getConfigHelper().setCheckUpdates(!RoughlyEnoughItemsCore.getConfigHelper().checkUpdates());
+                try {
+                    RoughlyEnoughItemsCore.getConfigHelper().saveConfig();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        
+            @Override
+            public void draw(int mouseX, int mouseY, float partialTicks) {
+                text = getTrueFalseText(RoughlyEnoughItemsCore.getConfigHelper().checkUpdates());
+                String t = I18n.translate("text.rei.check_updates");
+                int width = fontRenderer.getStringWidth(t);
+                fontRenderer.drawWithShadow(t, this.x - width - 10, this.y + (this.height - 8) / 2, -1);
+                super.draw(mouseX, mouseY, partialTicks);
+            }
+        });
     }
     
     private String getTrueFalseText(boolean showCraftableOnlyButton) {

+ 0 - 1
src/main/resources/assets/roughlyenoughitems/lang/de_de.json

@@ -18,7 +18,6 @@
   "category.rei.brewing.reactant": "§Zutat",
   "category.rei.brewing.result": "§eEntstehender Trank",
   "text.rei.config": "Einstellung",
-  "text.rei.centre_searchbox": "Rechte Suchbox: ",
   "text.rei.cheat_items": "[{item_name}] x{item_count} {player_name} gegeben.",
   "text.rei.failed_cheat_items": "§cItems geben fehlgeschlagen.",
   "text.rei.list_ordering": "Item Listen Reihenfolge",

+ 4 - 2
src/main/resources/assets/roughlyenoughitems/lang/en_us.json

@@ -18,7 +18,8 @@
   "category.rei.brewing.reactant": "§eIngredient",
   "category.rei.brewing.result": "§eResulted Potion",
   "text.rei.config": "Config",
-  "text.rei.centre_searchbox": "Right Search Box: ",
+  "text.rei.side_searchbox": "Side Search Box: ",
+  "text.rei.mirror_rei": "Mirror REI Widgets: ",
   "text.rei.cheat_items": "Given [{item_name}] x{item_count} to {player_name}.",
   "text.rei.failed_cheat_items": "§cFailed to give items.",
   "text.rei.list_ordering": "Item List Ordering",
@@ -30,10 +31,11 @@
   "ordering.rei.item_groups": "Item Groups",
   "text.speed_craft.failed_move_items": "§cCan't move items!",
   "text.speed_craft.move_items": "Move Items",
-  "text.rei.enable_craftable_only": "Enable Craftable Only: ",
+  "text.rei.enable_craftable_only": "Enable Craftable Filter: ",
   "text.rei.showing_craftable": "Showing Craftable",
   "text.rei.showing_all": "Showing All",
   "text.rei.delete_items": "§cDelete Item",
+  "text.rei.check_updates": "Check Updates: ",
   "text.rei.update_outdated": "§6REI is outdated!\n§6Current: §a%s §6Latest: §a%s\n§6Update Priority: §a%s",
   "text.rei.update_changelog_line": "§6- %s"
 }

+ 0 - 1
src/main/resources/assets/roughlyenoughitems/lang/et_ee.json

@@ -18,7 +18,6 @@
   "category.rei.brewing.reactant": "§eKoostisosa",
   "category.rei.brewing.result": "§eValmiv võlujook",
   "text.rei.config": "Seadistus",
-  "text.rei.centre_searchbox": "Parempoolne otsingukast: ",
   "text.rei.cheat_items": "{item_count} [{item_name}] antud mängijale {player_name}.",
   "text.rei.failed_cheat_items": "§cEsemete andmine ebaõnnestus.",
   "text.rei.list_ordering": "Esemenimekirja järjestus",

+ 2 - 3
src/main/resources/assets/roughlyenoughitems/lang/fr_fr.json

@@ -15,7 +15,6 @@
   "category.rei.brewing.reactant": "§eIngrédient",
   "category.rei.brewing.result": "§ePotion obtenue",
   "text.rei.config": "Config",
-  "text.rei.centre_searchbox": "Zone de recherche à droite : ",
   "text.rei.cheat_items": "[{item_name}] x{item_count} ont été donnés à {player_name}.",
   "text.rei.failed_cheat_items": "§cImpossible de donner les objets.",
   "text.rei.list_ordering": "Ordre de la liste d'objets",
@@ -25,9 +24,9 @@
   "ordering.rei.registry": "Registre",
   "ordering.rei.name": "Nom",
   "ordering.rei.item_groups": "Groupes d'objets",
-  "text.speed_craft.failed_move_items": "§cImpossible de déplacer les objets !",
+  "text.speed_craft.failed_move_items": "§cImpossible de déplacer les objets!",
   "text.speed_craft.move_items": "Déplacer les objets",
-  "text.rei.enable_craftable_only": "Activer les recettes réalisables uniquement : ",
+  "text.rei.enable_craftable_only": "Activer les recettes réalisables uniquement: ",
   "text.rei.showing_craftable": "Recettes réalisables",
   "text.rei.showing_all": "Toutes les recettes",
   "text.rei.delete_items": "§cSupprimer l'objet"

+ 7 - 2
src/main/resources/assets/roughlyenoughitems/lang/zh_cn.json

@@ -18,7 +18,8 @@
   "category.rei.brewing.reactant": "§e材料",
   "category.rei.brewing.result": "§e输出药水",
   "text.rei.config": "设置",
-  "text.rei.centre_searchbox": "右置搜索栏: ",
+  "text.rei.side_searchbox": "不置中搜索栏: ",
+  "text.rei.mirror_rei": "右置 REI 小工具: ",
   "text.rei.cheat_items": "已将 {item_count} 个 [{item_name}] 给予 {player_name}",
   "text.rei.failed_cheat_items": "§c不能给予物品.",
   "text.rei.list_ordering": "物品清单排序",
@@ -30,7 +31,11 @@
   "ordering.rei.item_groups": "物品分类",
   "text.speed_craft.failed_move_items": "§c不能移动物品!",
   "text.speed_craft.move_items": "移动物品",
+  "text.rei.enable_craftable_only": "过滤不可合成的物品: ",
   "text.rei.showing_craftable": "显示可合成的物品",
   "text.rei.showing_all": "显示所有物品",
-  "text.rei.delete_items": "§c删除物品"
+  "text.rei.delete_items": "§c删除物品",
+  "text.rei.check_updates": "检查更新: ",
+  "text.rei.update_outdated": "§6REI 需要更新!\n§6当前版本: §a%s §6最新版本: §a%s\n§6重要性: §a%s",
+  "text.rei.update_changelog_line": "§6- %s"
 }

+ 7 - 2
src/main/resources/assets/roughlyenoughitems/lang/zh_tw.json

@@ -18,7 +18,8 @@
   "category.rei.brewing.reactant": "§e材料",
   "category.rei.brewing.result": "§e輸出藥水",
   "text.rei.config": "設置",
-  "text.rei.centre_searchbox": "右置搜索欄: ",
+  "text.rei.side_searchbox": "不置中搜索欄: ",
+  "text.rei.mirror_rei": "右置 REI 小工具: ",
   "text.rei.cheat_items": "已將 {item_count} 個 [{item_name}] 給予 {player_name}",
   "text.rei.failed_cheat_items": "§c不能給予物品.",
   "text.rei.list_ordering": "物品清單排序",
@@ -30,7 +31,11 @@
   "ordering.rei.item_groups": "物品分類",
   "text.speed_craft.failed_move_items": "§c不能移動物品!",
   "text.speed_craft.move_items": "移動物品",
+  "text.rei.enable_craftable_only": "過濾不可合成的物品: ",
   "text.rei.showing_craftable": "顯示可合成的物品",
   "text.rei.showing_all": "顯示所有物品",
-  "text.rei.delete_items": "§c刪除物品"
+  "text.rei.delete_items": "§c刪除物品",
+  "text.rei.check_updates": "檢查更新: ",
+  "text.rei.update_outdated": "§6REI 需要更新!\n§6當前版本: §a%s §6最新版本: §a%s\n§6重要性: §a%s",
+  "text.rei.update_changelog_line": "§6- %s"
 }

+ 1 - 1
version.json

@@ -17,7 +17,7 @@
     "fabric": [
       {
         "version": "2.2.0.48",
-        "text": "Added a version checker.",
+        "text": "Added a version checker, an option to mirror the item panel and fixed interacting with REI when hidden.",
         "level": "light"
       }
     ]