diff options
| author | shedaniel <daniel@shedaniel.me> | 2025-04-10 15:35:26 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2025-04-10 19:14:00 +0800 |
| commit | ade79d9a271916885c758632c01d4f7195803a2c (patch) | |
| tree | 1a2662a2b529f682a4efa138c2ee12808e6b979f /runtime/src | |
| parent | 9d3bb3cfc7d0c494b33e5d914487a404f2f9d02e (diff) | |
| download | RoughlyEnoughItems-ade79d9a271916885c758632c01d4f7195803a2c.tar.gz RoughlyEnoughItems-ade79d9a271916885c758632c01d4f7195803a2c.tar.bz2 RoughlyEnoughItems-ade79d9a271916885c758632c01d4f7195803a2c.zip | |
Update to 1.21.5
Diffstat (limited to 'runtime/src')
28 files changed, 101 insertions, 151 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java index 86ccdcb37..69275ebc9 100644 --- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java +++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java @@ -99,7 +99,6 @@ import me.shedaniel.rei.plugin.test.REITestPlugin; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; -import net.minecraft.client.data.models.blockstates.PropertyDispatch; import net.minecraft.client.gui.components.EditBox; import net.minecraft.client.gui.components.ImageButton; import net.minecraft.client.gui.components.events.GuiEventListener; @@ -140,14 +139,14 @@ public class RoughlyEnoughItemsCoreClient { ClientInternals.attachInstance((Supplier<EntryRenderer<?>>) () -> emptyEntryRenderer, "emptyEntryRenderer"); ClientInternals.attachInstance((BiFunction<Supplier<DataResult<FavoriteEntry>>, Supplier<CompoundTag>, FavoriteEntry>) DelegatingFavoriteEntryProviderImpl::new, "delegateFavoriteEntry"); ClientInternals.attachInstance((Function<CompoundTag, DataResult<FavoriteEntry>>) (object) -> { - String type = object.getString(FavoriteEntry.TYPE_KEY); + String type = object.getString(FavoriteEntry.TYPE_KEY).orElseThrow(); ResourceLocation id = ResourceLocation.parse(type); FavoriteEntryType<FavoriteEntry> entryType = FavoriteEntryType.registry().get(id); if (entryType == null) return DataResult.error(() -> "Unknown favorite type: " + id + ", json: " + object); return entryType.read(object); }, "favoriteEntryFromJson"); ClientInternals.attachInstance((BiFunction<@Nullable Point, Collection<Tooltip.Entry>, Tooltip>) QueuedTooltip::impl, "tooltipProvider"); - ClientInternals.attachInstance((PropertyDispatch.QuadFunction<Point, @Nullable TooltipFlag, Boolean, Item.TooltipContext, TooltipContext>) TooltipContextImpl::new, "tooltipContextProvider"); + ClientInternals.attachInstance((ClientInternals.QuadFunction<Point, @Nullable TooltipFlag, Boolean, Item.TooltipContext, TooltipContext>) TooltipContextImpl::new, "tooltipContextProvider"); ClientInternals.attachInstance((Function<Object, Tooltip.Entry>) QueuedTooltip.TooltipEntryImpl::new, "tooltipEntryProvider"); ClientInternals.attachInstance((BiFunction<Component, List<FavoriteMenuEntry>, FavoriteMenuEntry>) SubMenuEntry::new, "subMenuEntry"); ClientInternals.attachInstance((BiFunction<Component, BooleanValue, FavoriteMenuEntry>) (text, value) -> ToggleMenuEntry.of(text, value::get, value), "toggleEntry"); diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java index a1305b421..511decbd6 100644 --- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java +++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java @@ -132,7 +132,7 @@ public class RoughlyEnoughItemsNetwork { int hotbarSlotId = buf.readVarInt(); if (hotbarSlotId >= 0 && hotbarSlotId < 9) { AbstractContainerMenu menu = player.containerMenu; - player.getInventory().items.set(hotbarSlotId, stack.copy()); + player.getInventory().setItem(hotbarSlotId, stack.copy()); menu.broadcastChanges(); RegistryFriendlyByteBuf newBuf = new RegistryFriendlyByteBuf(Unpooled.buffer(), player.registryAccess()); newBuf.writeJsonWithCodec(ItemStack.OPTIONAL_CODEC, stack.copy()); @@ -151,11 +151,11 @@ public class RoughlyEnoughItemsNetwork { boolean shift = packetByteBuf.readBoolean(); try { CompoundTag nbt = packetByteBuf.readNbt(); - int version = nbt.getInt("Version"); + int version = nbt.getInt("Version").orElse(-1); if (version != 1) throw new IllegalStateException("Server and client REI protocol version mismatch! Server: 1, Client: " + version); - List<InputIngredient<ItemStack>> inputs = readInputs(context.registryAccess(), nbt.getList("Inputs", Tag.TAG_COMPOUND)); - List<SlotAccessor> input = readSlots(container, player, nbt.getList("InputSlots", Tag.TAG_COMPOUND)); - List<SlotAccessor> inventory = readSlots(container, player, nbt.getList("InventorySlots", Tag.TAG_COMPOUND)); + List<InputIngredient<ItemStack>> inputs = readInputs(context.registryAccess(), nbt.getListOrEmpty("Inputs")); + List<SlotAccessor> input = readSlots(container, player, nbt.getListOrEmpty("InputSlots")); + List<SlotAccessor> inventory = readSlots(container, player, nbt.getListOrEmpty("InventorySlots")); NewInputSlotCrafter<AbstractContainerMenu, Container> crafter = new NewInputSlotCrafter<>(container, input, inventory, inputs); crafter.fillInputSlots(player, shift); } catch (InputSlotCrafter.NotEnoughMaterialsException e) { @@ -189,7 +189,7 @@ public class RoughlyEnoughItemsNetwork { List<InputIngredient<ItemStack>> inputs = new ArrayList<>(); for (Tag t : tag) { CompoundTag compoundTag = (CompoundTag) t; - InputIngredient<EntryStack<?>> stacks = InputIngredient.of(compoundTag.getInt("Index"), EntryIngredient.codec().parse(registryAccess.createSerializationContext(NbtOps.INSTANCE), compoundTag.getList("Ingredient", Tag.TAG_COMPOUND)).getOrThrow()); + InputIngredient<EntryStack<?>> stacks = InputIngredient.of(compoundTag.getInt("Index").orElseThrow(), EntryIngredient.codec().parse(registryAccess.createSerializationContext(NbtOps.INSTANCE), compoundTag.getListOrEmpty("Ingredient")).getOrThrow()); inputs.add(InputIngredient.withType(stacks, VanillaEntryTypes.ITEM)); } return inputs; 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 7591124f3..ba4c7cc1a 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 @@ -57,7 +57,6 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen; -import net.minecraft.core.NonNullList; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; @@ -128,7 +127,7 @@ public class ClientHelperImpl implements ClientHelper { } public boolean canDeleteItems() { - return hasPermissionToUsePackets() || Minecraft.getInstance().gameMode.hasInfiniteItems(); + return hasPermissionToUsePackets() || Minecraft.getInstance().player.hasInfiniteMaterials(); } @Override @@ -286,12 +285,10 @@ public class ClientHelperImpl implements ClientHelper { return Long2LongMaps.EMPTY_MAP; } Long2LongOpenHashMap map = new Long2LongOpenHashMap(); - for (NonNullList<ItemStack> compartment : Minecraft.getInstance().player.getInventory().compartments) { - for (ItemStack stack : compartment) { - long hash = definition.hash(null, stack, ComparisonContext.FUZZY); - long newCount = map.getOrDefault(hash, 0) + Math.max(0, stack.getCount()); - map.put(hash, newCount); - } + for (ItemStack stack : Minecraft.getInstance().player.getInventory().getNonEquipmentItems()) { + long hash = definition.hash(null, stack, ComparisonContext.FUZZY); + long newCount = map.getOrDefault(hash, 0) + Math.max(0, stack.getCount()); + map.put(hash, newCount); } return map; } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/REIRuntimeImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/REIRuntimeImpl.java index 33eccf0ab..2e0dc1ec8 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/REIRuntimeImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/REIRuntimeImpl.java @@ -256,11 +256,11 @@ public class REIRuntimeImpl implements REIRuntime { public void startReload() { getOverlay().ifPresent(ScreenOverlay::queueReloadOverlay); lastDisplayScreen.clear(); - if (!RenderSystem.isOnRenderThread()) { + /*if (!RenderSystem.isOnRenderThread()) { RenderSystem.recordRenderCall(CachedEntryListRender::refresh); } else { CachedEntryListRender.refresh(); - } + }*/ } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigManagerImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigManagerImpl.java index d6cd1418d..05610502f 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigManagerImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigManagerImpl.java @@ -58,6 +58,7 @@ import net.fabricmc.api.Environment; import net.minecraft.ResourceLocationException; import net.minecraft.client.gui.screens.Screen; import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtOps; import net.minecraft.nbt.Tag; import net.minecraft.nbt.TagParser; import net.minecraft.network.chat.Component; @@ -70,6 +71,7 @@ import java.util.Locale; @ApiStatus.Internal @Environment(EnvType.CLIENT) public class ConfigManagerImpl implements ConfigManager { + private static final TagParser<Tag> NBT_OPS_PARSER = TagParser.create(NbtOps.INSTANCE); private boolean craftableOnly = false; private final Gson gson = new GsonBuilder().create(); private ConfigObjectImpl object; @@ -138,7 +140,7 @@ public class ConfigManagerImpl implements ConfigManager { }); builder.registerDeserializer(String.class, Tag.class, (value, marshaller) -> { try { - return TagParser.parseTag(value); + return NBT_OPS_PARSER.parseFully(value); } catch (CommandSyntaxException e) { throw new DeserializationException(e); } @@ -150,7 +152,7 @@ public class ConfigManagerImpl implements ConfigManager { }); builder.registerDeserializer(String.class, CompoundTag.class, (value, marshaller) -> { try { - return TagParser.parseTag(value); + return TagParser.parseCompoundFully(value); } catch (CommandSyntaxException e) { throw new DeserializationException(e); } @@ -170,7 +172,7 @@ public class ConfigManagerImpl implements ConfigManager { }); builder.registerDeserializer(String.class, EntryStackProvider.class, (value, marshaller) -> { try { - return EntryStackProvider.defer(new TagParser(new StringReader(value)).readValue()); + return EntryStackProvider.defer(NBT_OPS_PARSER.parseFully(new StringReader(value))); } catch (CommandSyntaxException e) { e.printStackTrace(); return EntryStackProvider.ofStack(EntryStack.empty()); @@ -196,7 +198,7 @@ public class ConfigManagerImpl implements ConfigManager { }); builder.registerDeserializer(String.class, FilteringRule.class, (value, marshaller) -> { try { - return FilteringRuleType.read(TagParser.parseTag(value)); + return FilteringRuleType.read(TagParser.parseCompoundFully(value)); } catch (Exception e) { e.printStackTrace(); return null; @@ -217,7 +219,7 @@ public class ConfigManagerImpl implements ConfigManager { }); builder.registerDeserializer(String.class, FavoriteEntry.class, (value, marshaller) -> { try { - CompoundTag tag = TagParser.parseTag(value); + CompoundTag tag = TagParser.parseCompoundFully(value); return FavoriteEntry.readDelegated(tag); } catch (Exception e) { e.printStackTrace(); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigObjectImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigObjectImpl.java index 41e91b7c9..4b500fa1f 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigObjectImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigObjectImpl.java @@ -370,6 +370,7 @@ public class ConfigObjectImpl implements ConfigObject, ConfigData { @Override public ModifierKeyCode getExportImageKeybind() { + if (true) return ModifierKeyCode.unknown(); return basics.keyBindings.exportImageKeybind == null ? ModifierKeyCode.unknown() : basics.keyBindings.exportImageKeybind; } 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 442326252..0e322a879 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 @@ -25,7 +25,6 @@ package me.shedaniel.rei.impl.client.config.entries; import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.VertexConsumer; import me.shedaniel.clothconfig2.ClothConfigInitializer; import me.shedaniel.clothconfig2.api.scroll.ScrollingContainer; @@ -460,9 +459,7 @@ public class FilteringScreen extends Screen { if (isSelected()) { boolean filtered = isFiltered(); Rectangle bounds = getBounds(); - RenderSystem.disableDepthTest(); graphics.fillGradient(bounds.x, bounds.y, bounds.getMaxX(), bounds.getMaxY(), filtered ? 0x90ffffff : 0x55ffffff, filtered ? 0x90ffffff : 0x55ffffff); - RenderSystem.enableDepthTest(); } } @@ -482,9 +479,7 @@ public class FilteringScreen extends Screen { protected void drawBackground(GuiGraphics graphics, int mouseX, int mouseY, float delta) { if (isFiltered()) { Rectangle bounds = getBounds(); - RenderSystem.disableDepthTest(); graphics.fillGradient(bounds.x, bounds.y, bounds.getMaxX(), bounds.getMaxY(), 0xffff0000, 0xffff0000); - RenderSystem.enableDepthTest(); } } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/entry/filtering/rules/SearchFilteringRuleType.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/entry/filtering/rules/SearchFilteringRuleType.java index 41c4b6875..cfe4999e0 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/entry/filtering/rules/SearchFilteringRuleType.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/entry/filtering/rules/SearchFilteringRuleType.java @@ -65,8 +65,8 @@ public enum SearchFilteringRuleType implements FilteringRuleType<SearchFiltering @Override public SearchFilteringRule readFrom(CompoundTag tag) { - String filter = tag.getString("filter"); - boolean show = tag.getBoolean("show"); + String filter = tag.getString("filter").orElseThrow(); + boolean show = tag.getBoolean("show").orElseThrow(); return new SearchFilteringRule(filter, show); } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/RecipeDisplayExporter.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/RecipeDisplayExporter.java index 9183eed9a..d66ac1e2f 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/RecipeDisplayExporter.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/RecipeDisplayExporter.java @@ -80,9 +80,9 @@ public final class RecipeDisplayExporter { } private static void exportRecipe(Rectangle rectangle, DisplaySpec display, List<Widget> widgets) { - Minecraft client = Minecraft.getInstance(); + /*Minecraft client = Minecraft.getInstance(); Window window = client.getWindow(); - RenderTarget renderTarget = new TextureTarget(window.getWidth(), window.getHeight(), true); + RenderTarget renderTarget = new TextureTarget(null, window.getWidth(), window.getHeight(), true); renderTarget.setClearColor(0, 0, 0, 0); renderTarget.bindWrite(true); RenderSystem.clear(256); @@ -126,6 +126,6 @@ public final class RecipeDisplayExporter { renderTarget.destroyBuffers(); // Minecraft.getInstance().levelRenderer.graphicsChanged(); Minecraft.getInstance().getMainRenderTarget().bindWrite(true); - poseStack.popMatrix(); + poseStack.popMatrix();*/ } } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/components/ConfigOptionValueWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/components/ConfigOptionValueWidget.java index 1e2a67292..4f9a83e96 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/components/ConfigOptionValueWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/components/ConfigOptionValueWidget.java @@ -46,7 +46,6 @@ import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.FormattedText; import net.minecraft.resources.ResourceLocation; -import org.joml.Matrix4f; import java.util.Objects; import java.util.function.BiConsumer; @@ -86,12 +85,11 @@ public class ConfigOptionValueWidget { setText.accept(option.getEntry().getOption(access.get(option))); - Matrix4f[] matrix = {new Matrix4f()}; Label label = Widgets.createLabel(new Point(), text[0]).rightAligned() .color(0xFFE0E0E0) .hoveredColor(0xFFE0E0E0) .onRender((poses, l) -> { - if (MatrixUtils.transform(matrix[0], l.getBounds()).contains(PointHelper.ofMouse())) { + if (MatrixUtils.transform(poses.pose().last().pose(), l.getBounds()).contains(PointHelper.ofMouse())) { l.setMessage(text[0].copy().withStyle(ChatFormatting.UNDERLINE)); } else { l.setMessage(text[0]); @@ -99,9 +97,9 @@ public class ConfigOptionValueWidget { }); if (option.getEntry() instanceof OptionValueEntry.Selection<T> selection) { - applySelection(access, option, selection, label, setText, matrix); + applySelection(access, option, selection, label, setText); } else if (access.get(option) instanceof ModifierKeyCode) { - applyKeycode(access, option, label, setText, matrix); + applyKeycode(access, option, label, setText); } else if (option.getEntry() instanceof OptionValueEntry.Configure<T>) { label.clickable().onClick($ -> { ((OptionValueEntry.Configure<T>) option.getEntry()).configure(access, option, () -> { @@ -113,13 +111,18 @@ public class ConfigOptionValueWidget { return Widgets.concatWithBounds(() -> new Rectangle(-label.getBounds().width, 0, label.getBounds().width + 8, 14), label, - Widgets.createDrawableWidget((graphics, mouseX, mouseY, delta) -> matrix[0] = graphics.pose().last().pose()), Widgets.withTranslate(Widgets.createTexturedWidget(ResourceLocation.parse("roughlyenoughitems:textures/gui/config/selector.png"), new Rectangle(1, 1, 4, 6), 0, 0, 1, 1, 1, 1), 0, 0.5, 0) ); } - private static <T> void applySelection(ConfigAccess access, CompositeOption<T> option, OptionValueEntry.Selection<T> selection, Label label, Consumer<Component> setText, Matrix4f[] matrix) { + private static <T> void applySelection(ConfigAccess access, CompositeOption<T> option, OptionValueEntry.Selection<T> selection, Label label, Consumer<Component> setText) { + Rectangle bounds = new Rectangle(); + BiConsumer<GuiGraphics, Label> render = label.getOnRender(); + label.onRender((poses, $) -> { + render.accept(poses, $); + bounds.setBounds(MatrixUtils.transform(poses.pose().last().pose(), label.getBounds())); + }); int noOfOptions = selection.getOptions().size(); if (noOfOptions == 2) { label.clickable().onClick($ -> { @@ -128,7 +131,7 @@ public class ConfigOptionValueWidget { }); } else if (noOfOptions >= 2) { label.clickable().onClick($ -> { - Menu menu = new Menu(MatrixUtils.transform(matrix[0], label.getBounds()), CollectionUtils.map(selection.getOptions(), opt -> { + Menu menu = new Menu(bounds, CollectionUtils.map(selection.getOptions(), opt -> { Component selectionOption = selection.getOption(opt); if (opt.equals(access.getDefault(option))) { selectionOption = translatable("config.rei.value.default", selectionOption); @@ -146,7 +149,7 @@ public class ConfigOptionValueWidget { } } - private static <T> void applyKeycode(ConfigAccess access, CompositeOption<T> option, Label label, Consumer<Component> setText, Matrix4f[] matrix) { + private static <T> void applyKeycode(ConfigAccess access, CompositeOption<T> option, Label label, Consumer<Component> setText) { label.clickable().onClick($ -> { access.closeMenu(); access.focusKeycode((CompositeOption<ModifierKeyCode>) option); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/options/AllREIConfigGroups.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/options/AllREIConfigGroups.java index 474132b8e..bdb5a8168 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/options/AllREIConfigGroups.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/options/AllREIConfigGroups.java @@ -50,7 +50,7 @@ public interface AllREIConfigGroups { .add(FOCUS_SEARCH_KEYBIND) .add(COPY_RECIPE_ID_KEYBIND) .add(FAVORITE_KEYBIND) - .add(EXPORT_IMAGE_KEYBIND) + /*.add(EXPORT_IMAGE_KEYBIND)*/ .add(BACK_KEYBIND); OptionGroup INPUT_ADVANCED = make("input.advanced") .add(USE_NATIVE_KEYBINDS); @@ -112,7 +112,7 @@ public interface AllREIConfigGroups { .add(GIVE_COMMAND); OptionGroup PERFORMANCE_RENDERING = make("performance.rendering") .add(BATCHED_RENDERING) - .add(CACHED_RENDERING); + /*.add(CACHED_RENDERING)*/; OptionGroup PERFORMANCE_RELOAD = make("performance.reload") .add(RELOAD_THREAD) .add(CACHED_DISPLAY_LOOKUP); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/error/ErrorsEntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/error/ErrorsEntryListWidget.java index 476ac4994..e7228efa6 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/error/ErrorsEntryListWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/error/ErrorsEntryListWidget.java @@ -38,7 +38,6 @@ import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.texture.DynamicTexture; import net.minecraft.client.resources.sounds.SimpleSoundInstance; -import net.minecraft.network.chat.ClickEvent; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.HoverEvent; import net.minecraft.network.chat.Style; @@ -316,8 +315,7 @@ public class ErrorsEntryListWidget extends DynamicSmoothScrollingEntryListWidget if (style != null && screen != null) { if (style.getHoverEvent() != null) { HoverEvent hoverEvent = style.getHoverEvent(); - Component component = hoverEvent.getValue(HoverEvent.Action.SHOW_TEXT); - if (component != null) { + if (hoverEvent instanceof HoverEvent.ShowText(Component component)) { graphics.renderTooltip(Minecraft.getInstance().font, Minecraft.getInstance().font.split(component, Math.max(this.width / 2, 200)), x, y); } } @@ -334,14 +332,7 @@ public class ErrorsEntryListWidget extends DynamicSmoothScrollingEntryListWidget if (button == 0) { Style style = this.getTextAt(mouseX, mouseY); if (style != null && style.getClickEvent() != null) { - ClickEvent clickEvent = style.getClickEvent(); - Minecraft.getInstance().getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); - try { - Util.getPlatform().openUri(new URI(clickEvent.getValue())); - return true; - } catch (URISyntaxException e) { - e.printStackTrace(); - } + Minecraft.getInstance().screen.handleComponentClicked(style); return true; } } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/collapsible/selection/CustomCollapsibleEntrySelectionScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/collapsible/selection/CustomCollapsibleEntrySelectionScreen.java index 3bccba8d2..127fe6bf5 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/collapsible/selection/CustomCollapsibleEntrySelectionScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/collapsible/selection/CustomCollapsibleEntrySelectionScreen.java @@ -25,7 +25,6 @@ package me.shedaniel.rei.impl.client.gui.screen.collapsible.selection; import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.VertexConsumer; import me.shedaniel.clothconfig2.ClothConfigInitializer; import me.shedaniel.clothconfig2.api.scroll.ScrollingContainer; @@ -467,9 +466,7 @@ public class CustomCollapsibleEntrySelectionScreen extends Screen { if (isSelected()) { boolean filtered = isFiltered(); Rectangle bounds = getBounds(); - RenderSystem.disableDepthTest(); graphics.fillGradient(bounds.x, bounds.y, bounds.getMaxX(), bounds.getMaxY(), filtered ? 0x70ffffff : 0x55ffffff, filtered ? 0x70ffffff : 0x55ffffff); - RenderSystem.enableDepthTest(); } |
