Unknown 6 年之前
父节点
当前提交
9f861cb4a8

+ 4 - 0
CHANGELOG.md

@@ -1,4 +1,8 @@
 View full changelog [here](https://github.com/shedaniel/RoughlyEnoughItems/blob/1.14/CHANGELOG.md).
+## v2.8.0+build.100
+- Fixed [#76](https://github.com/shedaniel/RoughlyEnoughItems/issues/76): Laggy Changing Pages
+- New: Better Server Support (You can now drop REI into server mods)
+- New: Better Cheat Mode Button
 ## v2.7.11.97
 - Fixed [#72](https://github.com/shedaniel/RoughlyEnoughItems/issues/72): Crash on clicking craftable items filter
 - New: Load REI Plugins via entry points, old way works too but support will be dropped

+ 12 - 12
build.gradle

@@ -50,21 +50,21 @@ dependencies {
     minecraft "com.mojang:minecraft:${project.minecraft_version}"
     mappings "net.fabricmc:yarn:${project.yarn_version}"
     modCompile "net.fabricmc:fabric-loader:${project.fabricloader_version}"
-//    modCompile "net.fabricmc:fabric:${project.fabric_version}"
-    modCompile "net.fabricmc.fabric-api:fabric-keybindings:${project.fabric_keybindings}"
-    modCompile "net.fabricmc.fabric-api:fabric-lib:${project.fabric_lib}"
-    modCompile "net.fabricmc.fabric-api:fabric-networking:${project.fabric_networking}"
-    modCompile "net.fabricmc.fabric-api:fabric-events-lifecycle:${project.fabric_events_lifecycle}"
-    modCompile "net.fabricmc.fabric-api:fabric-resource-loader:${project.fabric_resource_loader}"
+    modCompile "net.fabricmc:fabric:${project.fabric_version}"
+//    modCompile "net.fabricmc.fabric-api:fabric-keybindings:${project.fabric_keybindings}"
+//    modCompile "net.fabricmc.fabric-api:fabric-lib:${project.fabric_lib}"
+//    modCompile "net.fabricmc.fabric-api:fabric-networking:${project.fabric_networking}"
+//    modCompile "net.fabricmc.fabric-api:fabric-events-lifecycle:${project.fabric_events_lifecycle}"
+//    modCompile "net.fabricmc.fabric-api:fabric-resource-loader:${project.fabric_resource_loader}"
     modCompile "cloth:ClothEvents:${cloth_events_version}"
     modCompile "cloth-config:ClothConfig:${cloth_config_version}"
     if (includeDep) {
-//        include "net.fabricmc:fabric:${project.fabric_version}"
-        include "net.fabricmc.fabric-api:fabric-keybindings:${project.fabric_keybindings}"
-        include "net.fabricmc.fabric-api:fabric-lib:${project.fabric_lib}"
-        include "net.fabricmc.fabric-api:fabric-networking:${project.fabric_networking}"
-        include "net.fabricmc.fabric-api:fabric-events-lifecycle:${project.fabric_events_lifecycle}"
-        include "net.fabricmc.fabric-api:fabric-resource-loader:${project.fabric_resource_loader}"
+        include "net.fabricmc:fabric:${project.fabric_version}"
+//        include "net.fabricmc.fabric-api:fabric-keybindings:${project.fabric_keybindings}"
+//        include "net.fabricmc.fabric-api:fabric-lib:${project.fabric_lib}"
+//        include "net.fabricmc.fabric-api:fabric-networking:${project.fabric_networking}"
+//        include "net.fabricmc.fabric-api:fabric-events-lifecycle:${project.fabric_events_lifecycle}"
+//        include "net.fabricmc.fabric-api:fabric-resource-loader:${project.fabric_resource_loader}"
         include "cloth:ClothEvents:${cloth_events_version}"
         include "cloth-config:ClothConfig:${cloth_config_version}"
     }

+ 2 - 1
gradle.properties

@@ -1,4 +1,4 @@
-mod_version=2.8.0+build.99
+mod_version=2.8.0+build.100
 minecraft_version=1.14
 yarn_version=1.14+build.5
 fabricloader_version=0.4.6+build.141
@@ -6,6 +6,7 @@ jankson_version=1.1.0
 cloth_events_version=0.3.1.23
 cloth_config_version=0.2.1.14
 modmenu_version=1.4.0-71
+fabric_version=0.2.7+build.127
 
 fabric_keybindings=0.1.0
 fabric_lib=0.1.0

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

@@ -61,7 +61,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
         this.rectangle = RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel ? boundsHandler.getLeftBounds(MinecraftClient.getInstance().currentScreen) : boundsHandler.getRightBounds(MinecraftClient.getInstance().currentScreen);
         this.lastLeft = getLeft();
         widgets.add(itemListOverlay = new ItemListOverlay(page));
-        itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm);
+        itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm, false);
         
         widgets.add(buttonLeft = new ButtonWidget(rectangle.x, rectangle.y + 5, 16, 16, new TranslatableTextComponent("text.rei.left_arrow")) {
             @Override
@@ -69,7 +69,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
                 page--;
                 if (page < 0)
                     page = getTotalPage();
-                itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm);
+                itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm, false);
             }
             
             @Override
@@ -88,7 +88,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
                 page++;
                 if (page > getTotalPage())
                     page = 0;
-                itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm);
+                itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm, false);
             }
             
             @Override
@@ -216,7 +216,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
             public void onLabelClicked() {
                 MinecraftClient.getInstance().getSoundManager().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
                 page = 0;
-                itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm);
+                itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm, false);
             }
             
             @Override
@@ -227,19 +227,19 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
         buttonLeft.enabled = buttonRight.enabled = getTotalPage() > 0;
         if (ScreenHelper.searchField == null)
             ScreenHelper.searchField = new SearchFieldWidget(0, 0, 0, 0);
-        ScreenHelper.searchField.setChangedListener(s -> {
-            searchTerm = s;
-            itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm);
-        });
         ScreenHelper.searchField.getBounds().setBounds(getTextFieldArea());
         this.widgets.add(ScreenHelper.searchField);
         ScreenHelper.searchField.setText(searchTerm);
+        ScreenHelper.searchField.setChangedListener(s -> {
+            searchTerm = s;
+            itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm, true);
+        });
         if (RoughlyEnoughItemsCore.getConfigManager().getConfig().enableCraftableOnlyButton)
             this.widgets.add(toggleButtonWidget = new CraftableToggleButtonWidget(getCraftableToggleArea()) {
                 @Override
                 public void onPressed() {
                     RoughlyEnoughItemsCore.getConfigManager().toggleCraftableOnly();
-                    itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm);
+                    itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm, true);
                 }
                 
                 @Override
@@ -250,7 +250,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
             });
         else
             toggleButtonWidget = null;
-        this.itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm);
+        this.itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm, false);
     }
     
     private Weather getNextWeather() {
@@ -332,7 +332,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
         else if (RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() && (!hasSameListContent(new LinkedList<>(ScreenHelper.inventoryStacks), currentStacks) || (currentStacks.size() != ScreenHelper.inventoryStacks.size()))) {
             ScreenHelper.inventoryStacks = ClientHelper.getInventoryItemsTypes();
             DisplayHelper.DisplayBoundsHandler boundsHandler = RoughlyEnoughItemsCore.getDisplayHelper().getResponsibleBoundsHandler(MinecraftClient.getInstance().currentScreen.getClass());
-            itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm);
+            itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm, true);
         }
         GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
         GuiLighting.disable();

+ 7 - 4
src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java

@@ -34,10 +34,10 @@ import java.util.stream.Collectors;
 public class ItemListOverlay extends Widget {
     
     private static List<Item> searchBlacklisted = Lists.newArrayList();
+    private final List<ItemStack> currentDisplayed;
     private List<Widget> widgets;
     private int width, height, page;
     private Rectangle rectangle, listArea;
-    private List<ItemStack> currentDisplayed;
     
     public ItemListOverlay(int page) {
         this.currentDisplayed = Lists.newArrayList();
@@ -86,12 +86,15 @@ public class ItemListOverlay extends Widget {
             ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(I18n.translate("text.rei.delete_items")));
     }
     
-    public void updateList(DisplayHelper.DisplayBoundsHandler boundsHandler, Rectangle rectangle, int page, String searchTerm) {
+    public void updateList(DisplayHelper.DisplayBoundsHandler boundsHandler, Rectangle rectangle, int page, String searchTerm, boolean processSearchTerm) {
         this.rectangle = rectangle;
         this.page = page;
         this.widgets = Lists.newLinkedList();
         calculateListSize(rectangle);
-        currentDisplayed = processSearchTerm(searchTerm, RoughlyEnoughItemsCore.getItemRegisterer().getItemList(), ScreenHelper.inventoryStacks);
+        if (currentDisplayed.isEmpty() || processSearchTerm) {
+            currentDisplayed.clear();
+            currentDisplayed.addAll(processSearchTerm(searchTerm, RoughlyEnoughItemsCore.getItemRegisterer().getItemList(), ScreenHelper.inventoryStacks));
+        }
         int startX = (int) rectangle.getCenterX() - width * 9;
         int startY = (int) rectangle.getCenterY() - height * 9;
         this.listArea = new Rectangle((int) startX, (int) startY, width * 18, height * 18);
@@ -182,7 +185,7 @@ public class ItemListOverlay extends Widget {
     }
     
     private List<ItemStack> processSearchTerm(String searchTerm, List<ItemStack> ol, List<ItemStack> inventoryItems) {
-        List<ItemStack> os = new LinkedList<>(ol), stacks = Lists.newArrayList(), finalStacks = Lists.newArrayList();
+        List<ItemStack> os = Lists.newArrayList(ol), stacks = Lists.newArrayList(), finalStacks = Lists.newArrayList();
         List<ItemGroup> itemGroups = Lists.newArrayList(ItemGroup.GROUPS);
         itemGroups.add(null);
         ItemListOrdering ordering = RoughlyEnoughItemsCore.getConfigManager().getConfig().itemListOrdering;

+ 0 - 5
src/main/resources/fabric.mod.json

@@ -32,14 +32,9 @@
   },
   "requires": {
     "fabricloader": ">=0.4.0",
-    "fabric-keybindings": ">=0.1.0",
-    "fabric-lib": ">=0.1.0",
-    "fabric-networking": ">=0.1.0",
-    "fabric-events-lifecycle": ">=0.1.0",
     "cloth": "*"
   },
   "recommends": {
-    "fabric-resource-loader": ">=0.1.0",
     "cloth-config": ">=0.1.0"
   },
   "mixins": [