aboutsummaryrefslogtreecommitdiff
path: root/runtime/src
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2024-03-02 03:09:05 +0900
committershedaniel <daniel@shedaniel.me>2024-03-02 03:09:05 +0900
commit52a6bf840ed665a2086ed37bbe0f99907d160350 (patch)
tree75687fc5f19a5d6880e396e0c316a70f88d6ea7f /runtime/src
parente4cf4d7a272dbf5da9a8ca868d003f011f5b0fc9 (diff)
downloadRoughlyEnoughItems-52a6bf840ed665a2086ed37bbe0f99907d160350.tar.gz
RoughlyEnoughItems-52a6bf840ed665a2086ed37bbe0f99907d160350.tar.bz2
RoughlyEnoughItems-52a6bf840ed665a2086ed37bbe0f99907d160350.zip
Update to 24w09a
Diffstat (limited to 'runtime/src')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java21
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java11
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/addon/ConfigAddonsScreen.java13
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringAddRuleScreen.java15
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringCategoriesScreen.java15
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRuleOptionsScreen.java14
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java15
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java8
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/InternalTextures.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/RecipeDisplayExporter.java12
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsEntryListWidget.java9
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java9
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/error/ErrorsEntryListWidget.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/error/ErrorsScreen.java13
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/performance/PerformanceScreen.java11
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java5
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/ConfigReloadingScreen.java19
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/SearchFilterSyntaxHighlightingScreen.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/UncertainDisplayViewingScreen.java17
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/WarningAndErrorScreen.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/BatchedEntryRendererManager.java1
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/CachedEntryListRender.java12
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/UpdatedListWidget.java69
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/TextFieldWidget.java6
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/comparison/FluidComparatorRegistryImpl.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/comparison/ItemComparatorRegistryImpl.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/comparison/NbtHasherProviderImpl.java64
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/InputSlotCrafter.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java40
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/test/REITestPlugin.java11
31 files changed, 263 insertions, 174 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java
index 408227e16..37cb7814d 100644
--- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java
+++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java
@@ -24,8 +24,6 @@
package me.shedaniel.rei;
import com.google.common.collect.Lists;
-import com.mojang.blaze3d.systems.RenderSystem;
-import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.serialization.DataResult;
import dev.architectury.event.Event;
import dev.architectury.event.EventFactory;
@@ -247,7 +245,7 @@ public class RoughlyEnoughItemsCoreClient {
Minecraft client = Minecraft.getInstance();
NetworkManager.registerReceiver(NetworkManager.s2c(), RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, (buf, context) -> {
- ItemStack stack = buf.readItem();
+ ItemStack stack = buf.readJsonWithCodec(ItemStack.OPTIONAL_CODEC);
String player = buf.readUtf(32767);
if (client.player != null) {
client.player.displayClientMessage(Component.literal(I18n.get("text.rei.cheat_items").replaceAll("\\{item_name}", EntryStacks.of(stack.copy()).asFormattedText().getString()).replaceAll("\\{item_count}", stack.copy().getCount() + "").replaceAll("\\{player_name}", player)), false);
@@ -266,7 +264,7 @@ public class RoughlyEnoughItemsCoreClient {
List<ItemStack> list = Lists.newArrayList();
int count = buf.readInt();
for (int j = 0; j < count; j++) {
- list.add(buf.readItem());
+ list.add(buf.readJsonWithCodec(ItemStack.OPTIONAL_CODEC));
}
input.add(list);
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java
index 58b4cd21a..3f536b53e 100644
--- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java
+++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java
@@ -87,9 +87,12 @@ public class RoughlyEnoughItemsNetwork {
player.displayClientMessage(Component.translatable("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false);
return;
}
- ItemStack stack = buf.readItem();
+ ItemStack stack = buf.readJsonWithCodec(ItemStack.OPTIONAL_CODEC);
if (player.getInventory().add(stack.copy())) {
- NetworkManager.sendToPlayer(player, RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, new FriendlyByteBuf(Unpooled.buffer()).writeItem(stack.copy()).writeUtf(player.getScoreboardName(), 32767));
+ FriendlyByteBuf newBuf = new FriendlyByteBuf(Unpooled.buffer());
+ newBuf.writeJsonWithCodec(ItemStack.OPTIONAL_CODEC, stack.copy());
+ newBuf.writeUtf(player.getScoreboardName(), 32767);
+ NetworkManager.sendToPlayer(player, RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, newBuf);
} else {
player.displayClientMessage(Component.translatable("text.rei.failed_cheat_items"), false);
}
@@ -102,7 +105,7 @@ public class RoughlyEnoughItemsNetwork {
}
AbstractContainerMenu menu = player.containerMenu;
- ItemStack itemStack = buf.readItem();
+ ItemStack itemStack = buf.readJsonWithCodec(ItemStack.OPTIONAL_CODEC);
ItemStack stack = itemStack.copy();
if (!menu.getCarried().isEmpty() && ItemStack.isSameItemSameTags(menu.getCarried(), stack)) {
stack.setCount(Mth.clamp(stack.getCount() + menu.getCarried().getCount(), 1, stack.getMaxStackSize()));
@@ -111,7 +114,10 @@ public class RoughlyEnoughItemsNetwork {
}
menu.setCarried(stack.copy());
menu.broadcastChanges();
- NetworkManager.sendToPlayer(player, RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, new FriendlyByteBuf(Unpooled.buffer()).writeItem(itemStack.copy()).writeUtf(player.getScoreboardName(), 32767));
+ FriendlyByteBuf newBuf = new FriendlyByteBuf(Unpooled.buffer());
+ newBuf.writeJsonWithCodec(ItemStack.OPTIONAL_CODEC, stack.copy());
+ newBuf.writeUtf(player.getScoreboardName(), 32767);
+ NetworkManager.sendToPlayer(player, RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, newBuf);
});
NetworkManager.registerReceiver(NetworkManager.c2s(), CREATE_ITEMS_HOTBAR_PACKET, Collections.singletonList(new SplitPacketTransformer()), (buf, context) -> {
ServerPlayer player = (ServerPlayer) context.getPlayer();
@@ -119,13 +125,16 @@ public class RoughlyEnoughItemsNetwork {
player.displayClientMessage(Component.translatable("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false);
return;
}
- ItemStack stack = buf.readItem();
+ ItemStack stack = buf.readJsonWithCodec(ItemStack.OPTIONAL_CODEC);
int hotbarSlotId = buf.readVarInt();
if (hotbarSlotId >= 0 && hotbarSlotId < 9) {
AbstractContainerMenu menu = player.containerMenu;
player.getInventory().items.set(hotbarSlotId, stack.copy());
menu.broadcastChanges();
- NetworkManager.sendToPlayer(player, RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, new FriendlyByteBuf(Unpooled.buffer()).writeItem(stack.copy()).writeUtf(player.getScoreboardName(), 32767));
+ FriendlyByteBuf newBuf = new FriendlyByteBuf(Unpooled.buffer());
+ newBuf.writeJsonWithCodec(ItemStack.OPTIONAL_CODEC, stack.copy());
+ newBuf.writeUtf(player.getScoreboardName(), 32767);
+ NetworkManager.sendToPlayer(player, RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, newBuf);
} else {
player.displayClientMessage(Component.translatable("text.rei.failed_cheat_items"), false);
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java
index 9c185764e..0ebef6306 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java
@@ -219,7 +219,9 @@ public class ClientHelperImpl implements ClientHelper {
return false;
}
try {
- NetworkManager.sendToServer(ConfigObject.getInstance().isGrabbingItems() ? RoughlyEnoughItemsNetwork.CREATE_ITEMS_GRAB_PACKET : RoughlyEnoughItemsNetwork.CREATE_ITEMS_PACKET, new FriendlyByteBuf(Unpooled.buffer()).writeItem(cheatedStack));
+ FriendlyByteBuf newBuf = new FriendlyByteBuf(Unpooled.buffer());
+ newBuf.writeJsonWithCodec(ItemStack.OPTIONAL_CODEC, cheatedStack);
+ NetworkManager.sendToServer(ConfigObject.getInstance().isGrabbingItems() ? RoughlyEnoughItemsNetwork.CREATE_ITEMS_GRAB_PACKET : RoughlyEnoughItemsNetwork.CREATE_ITEMS_PACKET, newBuf);
return true;
} catch (Exception exception) {
return false;
@@ -229,7 +231,7 @@ public class ClientHelperImpl implements ClientHelper {
if (identifier == null) {
return false;
}
- String tagMessage = cheatedStack.copy().getTag() != null && !cheatedStack.copy().getTag().isEmpty() ? cheatedStack.copy().getTag().getAsString() : "";
+ String tagMessage = /* TODO 24w09a: cheatedStack.copy().getTag() != null && !cheatedStack.copy().getTag().isEmpty() ? cheatedStack.copy().getTag().getAsString() :*/ "";
String og = cheatedStack.getCount() == 1 ? ConfigObject.getInstance().getGiveCommand().replaceAll(" \\{count}", "") : ConfigObject.getInstance().getGiveCommand();
String madeUpCommand = og.replaceAll("\\{player_name}", Minecraft.getInstance().player.getScoreboardName()).replaceAll("\\{item_name}", identifier.getPath()).replaceAll("\\{item_identifier}", identifier.toString()).replaceAll("\\{nbt}", tagMessage).replaceAll("\\{count}", String.valueOf(cheatedStack.getCount()));
if (madeUpCommand.length() > 256) {
@@ -264,7 +266,10 @@ public class ClientHelperImpl implements ClientHelper {
return false;
}
try {
- NetworkManager.sendToServer(RoughlyEnoughItemsNetwork.CREATE_ITEMS_HOTBAR_PACKET, new FriendlyByteBuf(Unpooled.buffer()).writeItem(stack.getValue().copy()).writeVarInt(hotbarSlotId));
+ FriendlyByteBuf newBuf = new FriendlyByteBuf(Unpooled.buffer());
+ newBuf.writeJsonWithCodec(ItemStack.OPTIONAL_CODEC, stack.getValue().copy());
+ newBuf.writeVarInt(hotbarSlotId);
+ NetworkManager.sendToServer(RoughlyEnoughItemsNetwork.CREATE_ITEMS_HOTBAR_PACKET, newBuf);
return true;
} catch (Exception exception) {
return false;
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/addon/ConfigAddonsScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/addon/ConfigAddonsScreen.java
index 32ee7174d..fdbc3166e 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/addon/ConfigAddonsScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/addon/ConfigAddonsScreen.java
@@ -23,10 +23,10 @@
package me.shedaniel.rei.impl.client.config.addon;
-import me.shedaniel.clothconfig2.gui.widget.DynamicElementListWidget;
import me.shedaniel.rei.api.client.config.addon.ConfigAddon;
import me.shedaniel.rei.api.client.config.addon.ConfigAddonRegistry;
import me.shedaniel.rei.impl.client.gui.InternalTextures;
+import me.shedaniel.rei.impl.client.gui.widget.UpdatedListWidget;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.ComponentPath;
import net.minecraft.client.gui.GuiGraphics;
@@ -38,7 +38,6 @@ import net.minecraft.client.gui.screens.Screen;
import net.minecraft.locale.Language;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.FormattedText;
-import net.minecraft.resources.ResourceLocation;
import org.jetbrains.annotations.Nullable;
import java.util.Collections;
@@ -63,7 +62,7 @@ public class ConfigAddonsScreen extends Screen {
minecraft.setScreen(parent);
}).bounds(4, 4, Minecraft.getInstance().font.width(backText) + 10, 20).build());
}
- rulesList = addWidget(new AddonsList(minecraft, width, height, 30, height, BACKGROUND_LOCATION));
+ rulesList = addWidget(new AddonsList(minecraft, width, height, 30, height));
ConfigAddonRegistryImpl addonRegistry = (ConfigAddonRegistryImpl) ConfigAddonRegistry.getInstance();
for (ConfigAddon addon : addonRegistry.getAddons()) {
rulesList.addItem(new DefaultAddonEntry(parent, addon));
@@ -77,11 +76,11 @@ public class ConfigAddonsScreen extends Screen {
graphics.drawString(this.font, this.title.getVisualOrderText(), (int) (this.width / 2.0F - this.font.width(this.title) / 2.0F), 12, -1);
}
- public static class AddonsList extends DynamicElementListWidget<AddonEntry> {
+ public static class AddonsList extends UpdatedListWidget<AddonEntry> {
private boolean inFocus;
- public AddonsList(Minecraft client, int width, int height, int top, int bottom, ResourceLocation backgroundLocation) {
- super(client, width, height, top, bottom, backgroundLocation);
+ public AddonsList(Minecraft client, int width, int height, int top, int bottom) {
+ super(client, width, height, top, bottom);
}
@Override
@@ -105,7 +104,7 @@ public class ConfigAddonsScreen extends Screen {
}
}
- public static abstract class AddonEntry extends DynamicElementListWidget.ElementEntry<AddonEntry> {
+ public static abstract class AddonEntry extends UpdatedListWidget.ElementEntry<AddonEntry> {
@Override
public int getItemHeight() {
return 26;
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringAddRuleScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringAddRuleScreen.java
index 46dd3aae5..2e3e40595 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringAddRuleScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringAddRuleScreen.java
@@ -23,10 +23,10 @@
package me.shedaniel.rei.impl.client.config.entries;
-import me.shedaniel.clothconfig2.gui.widget.DynamicElementListWidget;
import me.shedaniel.rei.api.client.entry.filtering.FilteringRule;
import me.shedaniel.rei.api.client.entry.filtering.FilteringRuleType;
import me.shedaniel.rei.api.client.entry.filtering.FilteringRuleTypeRegistry;
+import me.shedaniel.rei.impl.client.gui.widget.UpdatedListWidget;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.Button;
@@ -36,7 +36,6 @@ import net.minecraft.client.gui.screens.Screen;
import net.minecraft.locale.Language;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.FormattedText;
-import net.minecraft.resources.ResourceLocation;
import java.util.Collections;
import java.util.List;
@@ -65,7 +64,7 @@ public class FilteringAddRuleScreen extends Screen {
}, Supplier::get) {
});
}
- rulesList = addWidget(new RulesList(minecraft, width, height, 30, height, BACKGROUND_LOCATION));
+ rulesList = addWidget(new RulesList(minecraft, width, height, 30, height));
for (FilteringRuleType<?> rule : FilteringRuleTypeRegistry.getInstance()) {
if (!rule.isSingular())
rulesList.addItem(new DefaultRuleEntry(parent, entry, rule.createNew(), null));
@@ -75,16 +74,16 @@ public class FilteringAddRuleScreen extends Screen {
@Override
public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) {
- this.rulesList.render(graphics, mouseX, mouseY, delta);
super.render(graphics, mouseX, mouseY, delta);
+ this.rulesList.render(graphics, mouseX, mouseY, delta);
graphics.drawString(this.font, this.title.getVisualOrderText(), (int) (this.width / 2.0F - this.font.width(this.title) / 2.0F), 12, -1);
}
- public static class RulesList extends DynamicElementListWidget<RuleEntry> {
+ public static class RulesList extends UpdatedListWidget<RuleEntry> {
private boolean inFocus;
- public RulesList(Minecraft client, int width, int height, int top, int bottom, ResourceLocation backgroundLocation) {
- super(client, width, height, top, bottom, backgroundLocation);
+ public RulesList(Minecraft client, int width, int height, int top, int bottom) {
+ super(client, width, height, top, bottom);
}
@Override
@@ -108,7 +107,7 @@ public class FilteringAddRuleScreen extends Screen {
}
}
- public static abstract class RuleEntry extends DynamicElementListWidget.ElementEntry<RuleEntry> {
+ public static abstract class RuleEntry extends UpdatedListWidget.ElementEntry<RuleEntry> {
private final FilteringRule<?> rule;
public RuleEntry(FilteringRule<?> rule) {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringCategoriesScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringCategoriesScreen.java
index 0c35ac197..2b30174e4 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringCategoriesScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringCategoriesScreen.java
@@ -23,9 +23,9 @@
package me.shedaniel.rei.impl.client.config.entries;
-import me.shedaniel.clothconfig2.gui.widget.DynamicElementListWidget;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.api.client.registry.category.CategoryRegistry;
+import me.shedaniel.rei.impl.client.gui.widget.UpdatedListWidget;
import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
@@ -37,7 +37,6 @@ import net.minecraft.client.resources.sounds.SimpleSoundInstance;
import net.minecraft.locale.Language;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.FormattedText;
-import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvents;
import java.util.Collections;
@@ -64,7 +63,7 @@ public class FilteringCategoriesScreen extends Screen {
this.parent = null;
}, Supplier::get) {});
}
- listWidget = addWidget(new ListWidget(minecraft, width, height, 30, height, BACKGROUND_LOCATION));
+ listWidget = addWidget(new ListWidget(minecraft, width, height, 30, height));
for (CategoryRegistry.CategoryConfiguration<?> configuration : CategoryRegistry.getInstance()) {
listWidget.addItem(new DefaultListEntry(configuration));
}
@@ -72,16 +71,16 @@ public class FilteringCategoriesScreen extends Screen {
@Override
public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) {
- this.listWidget.render(graphics, mouseX, mouseY, delta);
super.render(graphics, mouseX, mouseY, delta);
+ this.listWidget.render(graphics, mouseX, mouseY, delta);
graphics.drawString(this.font, this.title.getVisualOrderText(), (int) (this.width / 2.0F - this.font.width(this.title) / 2.0F), 12, -1);
}
- private static class ListWidget extends DynamicElementListWidget<ListEntry> {
+ private static class ListWidget extends UpdatedListWidget<ListEntry> {
private boolean inFocus;
- public ListWidget(Minecraft client, int width, int height, int top, int bottom, ResourceLocation backgroundLocation) {
- super(client, width, height, top, bottom, backgroundLocation);
+ public ListWidget(Minecraft client, int width, int height, int top, int bottom) {
+ super(client, width, height, top, bottom);
}
@Override
@@ -125,7 +124,7 @@ public class FilteringCategoriesScreen extends Screen {
}
}
- private static abstract class ListEntry extends DynamicElementListWidget.ElementEntry<ListEntry> {
+ private static abstract class ListEntry extends UpdatedListWidget.ElementEntry<ListEntry> {
@Override
public int getItemHeight() {
return 35;
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRuleOptionsScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRuleOptionsScreen.java
index fc91c1a04..9ba9ca8c5 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRuleOptionsScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRuleOptionsScreen.java
@@ -24,9 +24,9 @@
package me.shedaniel.rei.impl.client.config.entries;
import com.mojang.blaze3d.systems.RenderSystem;
-import me.shedaniel.clothconfig2.gui.widget.DynamicElementListWidget;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.api.client.entry.filtering.FilteringRule;
+import me.shedaniel.rei.impl.client.gui.widget.UpdatedListWidget;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.ComponentPath;
import net.minecraft.client.gui.GuiGraphics;
@@ -76,7 +76,7 @@ public abstract class FilteringRuleOptionsScreen<T extends FilteringRule<?>> ext
}, Supplier::get) {
});
}
- rulesList = addWidget(new RulesList(minecraft, width, height, 30, height, BACKGROUND_LOCATION));
+ rulesList = addWidget(new RulesList(minecraft, width, height, 30, height));
addEntries(ruleEntry -> rulesList.addItem(ruleEntry));
}
@@ -96,14 +96,14 @@ public abstract class FilteringRuleOptionsScreen<T extends FilteringRule<?>> ext
@Override
public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) {
- this.rulesList.render(graphics, mouseX, mouseY, delta);
super.render(graphics, mouseX, mouseY, delta);
+ this.rulesList.render(graphics, mouseX, mouseY, delta);
graphics.drawString(this.font, this.title.getVisualOrderText(), (int) (this.width / 2.0F - this.font.width(this.title) / 2.0F), 12, -1);
}
- public static class RulesList extends DynamicElementListWidget<RuleEntry> {
- public RulesList(Minecraft client, int width, int height, int top, int bottom, ResourceLocation backgroundLocation) {
- super(client, width, height, top, bottom, backgroundLocation);
+ public static class RulesList extends UpdatedListWidget<RuleEntry> {
+ public RulesList(Minecraft client, int width, int height, int top, int bottom) {
+ super(client, width, height, top, bottom);
}
@Override
@@ -122,7 +122,7 @@ public abstract class FilteringRuleOptionsScreen<T extends FilteringRule<?>> ext
}
}
- public static abstract class RuleEntry extends DynamicElementListWidget.ElementEntry<RuleEntry> {
+ public static abstract class RuleEntry extends UpdatedListWidget.ElementEntry<RuleEntry> {
private final FilteringRule<?> rule;
public RuleEntry(FilteringRule<?> rule) {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java
index 3321cb40f..dd8981641 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java
@@ -24,7 +24,6 @@
package me.shedaniel.rei.impl.client.config.entries;
import com.google.common.base.Suppliers;
-import me.shedaniel.clothconfig2.gui.widget.DynamicElementListWidget;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.api.client.entry.filtering.FilteringRule;
import me.shedaniel.rei.api.client.entry.filtering.FilteringRuleType;
@@ -36,6 +35,7 @@ import me.shedaniel.rei.impl.client.entry.filtering.rules.ManualFilteringRule;
import me.shedaniel.rei.impl.client.entry.filtering.rules.SearchFilteringRuleType;
import me.shedaniel.rei.impl.client.gui.InternalTextures;
import me.shedaniel.rei.impl.client.gui.widget.EntryWidget;
+import me.shedaniel.rei.impl.client.gui.widget.UpdatedListWidget;
import me.shedaniel.rei.impl.common.entry.type.FilteringLogic;
import me.shedaniel.rei.impl.common.util.HashedEntryStackWrapper;
import net.minecraft.client.Minecraft;
@@ -48,7 +48,6 @@ import net.minecraft.client.resources.sounds.SimpleSoundInstance;
import net.minecraft.locale.Language;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.FormattedText;
-import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvents;
import java.util.*;
@@ -87,7 +86,7 @@ public class FilteringRulesScreen extends Screen {
}, Supplier::get) {
});
}
- rulesList = addWidget(new RulesList(minecraft, width, height, 30, height, BACKGROUND_LOCATION));
+ rulesList = addWidget(new RulesList(minecraft, width, height, 30, height));
for (int i = entry.rules.size() - 1; i >= 0; i--) {
FilteringRule<?> rule = entry.rules.get(i);
if (rule instanceof ManualFilteringRule)
@@ -102,16 +101,16 @@ public class FilteringRulesScreen extends Screen {
@Override
public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) {
- this.rulesList.render(graphics, mouseX, mouseY, delta);
super.render(graphics, mouseX, mouseY, delta);
+ this.rulesList.render(graphics, mouseX, mouseY, delta);
graphics.drawString(this.font, this.title.getVisualOrderText(), (int) (this.width / 2.0F - this.font.width(this.title) / 2.0F), 12, -1);
}
- public static class RulesList extends DynamicElementListWidget<RuleEntry> {
+ public static class RulesList extends UpdatedListWidget<RuleEntry> {
private boolean inFocus;
- public RulesList(Minecraft client, int width, int height, int top, int bottom, ResourceLocation backgroundLocation) {
- super(client, width, height, top, bottom, backgroundLocation);
+ public RulesList(Minecraft client, int width, int height, int top, int bottom) {
+ super(client, width, height, top, bottom);
}
@Override
@@ -150,7 +149,7 @@ public class FilteringRulesScreen extends Screen {
}
}
- public static abstract class RuleEntry extends DynamicElementListWidget.ElementEntry<RuleEntry> {
+ public static abstract class RuleEntry extends UpdatedListWidget.ElementEntry<RuleEntry> {
private final FilteringRule<?> rule;
public RuleEntry(FilteringRule<?> rule) {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java
index 214d41257..9d826cfd2 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java
@@ -44,9 +44,11 @@ import me.shedaniel.rei.api.client.search.SearchFilter;
import me.shedaniel.rei.api.client.search.SearchProvider;
import me.shedaniel.rei.api.common.entry.EntrySerializer;
import me.shedaniel.rei.api.common.entry.EntryStack;
+import me.shedaniel.rei.impl.client.gui.InternalTextures;
import me.shedaniel.rei.impl.client.gui.ScreenOverlayImpl;
import me.shedaniel.rei.impl.client.gui.widget.BatchedEntryRendererManager;
import me.shedaniel.rei.impl.client.gui.widget.EntryWidget;
+import me.shedaniel.rei.impl.client.gui.widget.UpdatedListWidget;
import me.shedaniel.rei.impl.client.gui.widget.search.OverlaySearchField;
import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft;
@@ -209,7 +211,7 @@ public class FilteringScreen extends Screen {
protected void renderHoleBackgrou