diff options
Diffstat (limited to 'runtime/src/main/java')
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 renderHoleBackground(GuiGraphics graphics, int y1, int y2, int tint, int alpha1, int alpha2) { Tesselator tesselator = Tesselator.getInstance(); BufferBuilder buffer = tesselator.getBuilder(); - RenderSystem.setShaderTexture(0, BACKGROUND_LOCATION); + RenderSystem.setShaderTexture(0, InternalTextures.LEGACY_DIRT); Matrix4f matrix = graphics.pose().last().pose(); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); float float_1 = 32.0F; @@ -224,10 +226,11 @@ public class FilteringScreen extends Screen { @Override public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { - renderHoleBackground(graphics, 0, height, 32, 255, 255); + super.render(graphics, mouseX, mouseY, delta); updateSelectionCache(); Rectangle bounds = getBounds(); tooltip = null; + UpdatedListWidget.renderAs(minecraft, width, height, bounds.y, height, graphics, delta); if (bounds.isEmpty()) return; ScissorsHandler.INSTANCE.scissor(bounds); @@ -273,7 +276,6 @@ public class FilteringScreen extends Screen { buffer.vertex(matrix, 0, bounds.y, 0.0F).uv(0.0F, 0.0F).color(0, |
