diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-04-30 20:16:24 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-04-30 20:16:24 +0800 |
| commit | a7e0b3e2bfbdefdd7eee4dc108e7e6e4fce5da33 (patch) | |
| tree | c27abf2db7b9c5a2b549ed0a57a9cee338d3e441 | |
| parent | 0bcfca2b8366092141c8e86f9e9f37dea670f334 (diff) | |
| download | RoughlyEnoughItems-a7e0b3e2bfbdefdd7eee4dc108e7e6e4fce5da33.tar.gz RoughlyEnoughItems-a7e0b3e2bfbdefdd7eee4dc108e7e6e4fce5da33.tar.bz2 RoughlyEnoughItems-a7e0b3e2bfbdefdd7eee4dc108e7e6e4fce5da33.zip | |
Fixed #76
| -rw-r--r-- | CHANGELOG.md | 4 | ||||
| -rwxr-xr-x | build.gradle | 24 | ||||
| -rw-r--r-- | gradle.properties | 3 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java | 22 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java | 11 | ||||
| -rwxr-xr-x | src/main/resources/fabric.mod.json | 5 |
6 files changed, 36 insertions, 33 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 14d9c94d5..c6fa009c5 100644 --- a/CHANGELOG.md +++ b/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 diff --git a/build.gradle b/build.gradle index 66ca0e783..a9a04feed 100755 --- a/build.gradle +++ b/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}" } diff --git a/gradle.properties b/gradle.properties index f8a766fa7..74d86497a 100644 --- a/gradle.properties +++ b/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 diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java index 577f0fc72..41bd9b9ec 100644 --- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java +++ b/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(); diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java b/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java index 7b8e3b353..345342ef0 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java +++ b/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; diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 26b041cc6..df2c2d1bb 100755 --- a/src/main/resources/fabric.mod.json +++ b/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": [ |
