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/main/java/me/shedaniel/rei/impl | |
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/main/java/me/shedaniel/rei/impl')
23 files changed, 86 insertions, 128 deletions
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(); } } @@ -489,9 +486,7 @@ public class CustomCollapsibleEntrySelectionScreen 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(), 0xff873e23, 0xff873e23); - RenderSystem.enableDepthTest(); } } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/generic/OptionEntriesScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/generic/OptionEntriesScreen.java index b771b9e83..c849fe801 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/generic/OptionEntriesScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/generic/OptionEntriesScreen.java @@ -293,7 +293,6 @@ public abstract class OptionEntriesScreen extends Screen { @Override public void render(GuiGraphics graphics, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isHovered, float delta) { - RenderSystem.setShaderTexture(0, CONFIG_TEX); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); this.widget.rectangle.x = x + 3; this.widget.rectangle.y = y; diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/CachedEntryListRender.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/CachedEntryListRender.java index 78d3c19ba..b61e9e7a8 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/CachedEntryListRender.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/CachedEntryListRender.java @@ -23,10 +23,11 @@ package me.shedaniel.rei.impl.client.gui.widget; -import com.mojang.blaze3d.ProjectionType; +/*import com.mojang.blaze3d.ProjectionType; import com.mojang.blaze3d.pipeline.TextureTarget; import com.mojang.blaze3d.platform.Lighting; import com.mojang.blaze3d.platform.NativeImage; +import com.mojang.blaze3d.systems.RenderPass; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.DefaultVertexFormat; import com.mojang.blaze3d.vertex.VertexFormat; @@ -45,6 +46,7 @@ import me.shedaniel.rei.impl.common.InternalLogger; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.renderer.CoreShaders; +import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.client.renderer.RenderStateShard; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.texture.DynamicTexture; @@ -57,16 +59,17 @@ import org.joml.Matrix4f; import org.joml.Matrix4fStack; import java.util.List; +import java.util.OptionalDouble; +import java.util.OptionalInt; public class CachedEntryListRender { public static final int RESOLUTION = 64; public static DynamicTexture cachedTexture; public static ResourceLocation cachedTextureLocation; public static Long2LongMap hash = new Long2LongOpenHashMap(); - public static LazyResettable<RenderType> renderType = new LazyResettable<>(() -> RenderType.create("rei_cache", DefaultVertexFormat.POSITION_TEX, VertexFormat.Mode.QUADS, 256, + public static LazyResettable<RenderType> renderType = new LazyResettable<>(() -> RenderType.create("rei_cache", RenderType.TRANSIENT_BUFFER_SIZE, RenderPipelines.GUI_TEXTURED, VertexFormat.Mode.QUADS, 256, RenderType.CompositeState.builder() .setTextureState(new RenderStateShard.TextureStateShard(cachedTextureLocation, TriState.DEFAULT, false)) - .setShaderState(new RenderStateShard.ShaderStateShard(CoreShaders.POSITION_TEX)) .createCompositeState(false))); public static class Sprite { @@ -146,9 +149,7 @@ public class CachedEntryListRender { hash = new Long2LongOpenHashMap(list.size() + 10); Minecraft minecraft = Minecraft.getInstance(); - TextureTarget target = new TextureTarget(width, height, true); - target.setClearColor(0, 0, 0, 0); - target.bindWrite(true); + TextureTarget target = new TextureTarget(null, width, height, true); Matrix4f projectionMatrix = new Matrix4f().setOrtho(0.0F, width, height, 0.0F, 1000.0F, 3000.0F); RenderSystem.setProjectionMatrix(projectionMatrix, ProjectionType.ORTHOGRAPHIC); Matrix4fStack modelViewStack = RenderSystem.getModelViewStack(); @@ -190,4 +191,25 @@ public class CachedEntryListRender { private static long pack(int x, int y) { return ((long) x << 32) | (y & 0xFFFFFFFFL); } +}*/ + +import net.minecraft.client.renderer.RenderType; +import net.minecraft.resources.ResourceLocation; + +import java.util.function.Supplier; + +public class CachedEntryListRender { + public static final ResourceLocation cachedTextureLocation = null; + public static final Supplier<RenderType> renderType = null; + + public static Sprite get(Object o) { + return null; + } + + public static class Sprite { + public float u0; + public float u1; + public float v0; + public float v1; + } } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ConfigButtonWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ConfigButtonWidget.java index 01dd2649d..3e37d497d 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ConfigButtonWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ConfigButtonWidget.java @@ -71,7 +71,7 @@ public class ConfigButtonWidget { if (!ClientHelper.getInstance().isCheating() || Minecraft.getInstance().screen instanceof DisplayScreen) { button.removeTint(); } else if (!ClientHelperImpl.getInstance().hasOperatorPermission()) { - if (Minecraft.getInstance().gameMode.hasInfiniteItems()) { + if (Minecraft.getInstance().player.hasInfiniteMaterials()) { button.setTint(0x2aff0000); } else { button.setTint(0x58fcf003); @@ -107,7 +107,7 @@ public class ConfigButtonWidget { if (!ClientHelper.getInstance().isCheating()) return Component.translatable("text.rei.cheating_disabled"); else if (!ClientHelperImpl.getInstance().hasOperatorPermission()) { - if (Minecraft.getInstance().gameMode.hasInfiniteItems()) + if (Minecraft.getInstance().player.hasInfiniteMaterials()) return Component.translatable("text.rei.cheating_limited_creative_enabled"); else return Component.translatable("text.rei.cheating_enabled_no_perms"); } else if (ClientHelperImpl.getInstance().hasPermissionToUsePackets()) @@ -162,11 +162,11 @@ public class ConfigButtonWidget { config::isEntryListWidgetScrolled, config::setEntryListWidgetScrolled ), - new SeparatorMenuEntry(), + /*new SeparatorMenuEntry(), ToggleMenuEntry.of(Component.translatable("text.rei.config.menu.display.caching_entry_rendering"), config::doesCacheEntryRendering, config::setDoesCacheEntryRendering - ), + ),*/ new SeparatorMenuEntry(), ToggleMenuEntry.of(Component.translatable("text.rei.config.menu.display.syntax_highlighting"), () -> config.getSyntaxHighlightingMode() == SyntaxHighlightingMode.COLORFUL || config.getSyntaxHighlightingMode() == SyntaxHighlightingMode.COLORFUL_UNDERSCORED, diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DynamicErrorFreeEntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DynamicErrorFreeEntryListWidget.java index f77faa518..b5f076059 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DynamicErrorFreeEntryListWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DynamicErrorFreeEntryListWidget.java @@ -25,7 +25,8 @@ package me.shedaniel.rei.impl.client.gui.widget; import com.google.common.collect.Lists; import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.*; +import com.mojang.blaze3d.vertex.Tesselator; +import com.mojang.blaze3d.vertex.VertexConsumer; import me.shedaniel.rei.api.client.gui.AbstractContainerEventHandler; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -257,27 +258,14 @@ public abstract class DynamicErrorFreeEntryListWidget<E extends DynamicErrorFree if (this.renderSelection) this.renderHeader(graphics, rowLeft, startY); this.renderList(graphics, rowLeft, startY, mouseX, mouseY, delta); - RenderSystem.disableDepthTest(); this.renderHoleBackground(graphics, 0, this.top, 255, 255); this.renderHoleBackground(graphics, this.bottom, this.height, 255, 255); - RenderSystem.enableBlend(); - RenderSystem.blendFuncSeparate(770, 771, 0, 1); - Matrix4f matrix = graphics.pose().last().pose(); - BufferBuilder buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR); - buffer.addVertex(matrix, this.left, this.top + 4, 0.0F).setUv(0, 1).setColor(0, 0, 0, 0); - buffer.addVertex(matrix, this.right, this.top + 4, 0.0F).setUv(1, 1).setColor(0, 0, 0, 0); - buffer.addVertex(matrix, this.right, this.top, 0.0F).setUv(1, 0).setColor(0, 0, 0, 255); - buffer.addVertex(matrix, this.left, this.top, 0.0F).setUv(0, 0).setColor(0, 0, 0, 255); - buffer.addVertex(matrix, this.left, this.bottom, 0.0F).setUv(0, 1).setColor(0, 0, 0, 255); - buffer.addVertex(matrix, this.right, this.bottom, 0.0F).setUv(1, 1).setColor(0, 0, 0, 255); - buffer.addVertex(matrix, this.right, this.bottom - 4, 0.0F).setUv(1, 0).setColor(0, 0, 0, 0); - buffer.addVertex(matrix, this.left, this.bottom - 4, 0.0F).setUv(0, 0).setColor(0, 0, 0, 0); - BufferUploader.drawWithShader(buffer.buildOrThrow()); + RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); + graphics.blit(RenderType::guiTextured, Screen.HEADER_SEPARATOR, this.left, this.top - 2, 0.0F, 0.0F, this.width, 2, 32, 2); + graphics.blit(RenderType::guiTextured, Screen.FOOTER_SEPARATOR, this.left, this.bottom, 0.0F, 0.0F, this.width, 2, 32, 2); int maxScroll = this.getMaxScroll(); - renderScrollBar(graphics, maxScroll, scrollbarPosition, int_4); - + this.renderScrollBar(graphics, maxScroll, scrollbarPosition, int_4); this.renderDecorations(graphics, mouseX, mouseY); - RenderSystem.disableBlend(); } protected void renderScrollBar(GuiGraphics graphics, int maxScroll, int scrollbarPositionMinX, int scrollbarPositionMaxX) { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryHighlighter.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryHighlighter.java index be711e98c..255630fef 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryHighlighter.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryHighlighter.java @@ -23,7 +23,6 @@ package me.shedaniel.rei.impl.client.gui.widget; -import com.mojang.blaze3d.systems.RenderSystem; import me.shedaniel.math.Color; import me.shedaniel.rei.api.common.util.EntryStacks; import me.shedaniel.rei.impl.client.config.ConfigManagerImpl; @@ -41,8 +40,6 @@ public class EntryHighlighter { int dimColor = Color.ofRGBA(20 / 255F, 20 / 255F, 20 / 255F, dimOpacity).getColor(); int borderColor = Color.ofRGBA(0x5f / 255F, 0xff / 255F, 0x3b / 255F, opacity).getColor(); int color = Color.ofRGBA(0x5f / 255F, 0xff / 255F, 0x3b / 255F, opacity * 0x34 / 255F).getColor(); - RenderSystem.disableDepthTest(); - RenderSystem.colorMask(true, true, true, false); if (Minecraft.getInstance().screen instanceof AbstractContainerScreen<?> containerScreen) { int x = containerScreen.leftPos, y = containerScreen.topPos; for (Slot slot : containerScreen.getMenu().slots) { @@ -62,7 +59,5 @@ public class EntryHighlighter { } } } - RenderSystem.colorMask(true, true, true, true); - RenderSystem.enableDepthTest(); } } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryWidget.java index 3bb78a272..7aae3ef19 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryWidget.java @@ -25,7 +25,6 @@ package me.shedaniel.rei.impl.client.gui.widget; import com.google.common.base.Suppliers; import com.mojang.blaze3d.platform.InputConstants; -import com.mojang.blaze3d.systems.RenderSystem; import me.shedaniel.clothconfig2.api.ModifierKeyCode; import me.shedaniel.clothconfig2.api.animator.NumberAnimator; import me.shedaniel.clothconfig2.api.animator.ValueAnimator; @@ -422,9 +421,6 @@ public class EntryWidget extends Slot implements DraggableStackProviderWidget { protected void drawBackground(GuiGraphics graphics, int mouseX, int mouseY, float delta) { if (background) { darkBackgroundAlpha.update(delta); - RenderSystem.enableBlend(); - RenderSystem.blendFuncSeparate(770, 771, 1, 0); - RenderSystem.blendFunc(770, 771); graphics.blit(RenderType::guiTextured, InternalTextures.CHEST_GUI_TEXTURE, bounds.x, bounds.y, 0, 222, bounds.width, bounds.height, 256, 256); if (darkBackgroundAlpha.value() > 0.0F) { graphics.blit(RenderType::guiTextured, InternalTextures.CHEST_GUI_TEXTURE_DARK, bounds.x, bounds.y, 0, 222, bounds.width, bounds.height, 256, 256, ARGB.white(darkBackgroundAlpha.value())); @@ -535,14 +531,10 @@ public class EntryWidget extends Slot implements DraggableStackProviderWidget { protected void drawHighlighted(GuiGraphics graphics, int mouseX, int mouseY, float delta) { darkHighlightedAlpha.update(delta); - RenderSystem.disableDepthTest(); - RenderSystem.colorMask(true, true, true, false); Rectangle bounds = getInnerBounds(); graphics.fillGradient(bounds.x, bounds.y, bounds.getMaxX(), bounds.getMaxY(), 0x80ffffff, 0x80ffffff); int darkColor = 0x111111 | ((int) (90 * darkHighlightedAlpha.value()) << 24); graphics.fillGradient(bounds.x, bounds.y, bounds.getMaxX(), bounds.getMaxY(), darkColor, darkColor); - RenderSystem.colorMask(true, true, true, true); - RenderSystem.enableDepthTest(); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/HoleWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/HoleWidget.java index db4dda035..109646a1c 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/HoleWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/HoleWidget.java @@ -23,7 +23,6 @@ package me.shedaniel.rei.impl.client.gui.widget; -import com.mojang.blaze3d.systems.RenderSystem; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.client.gui.widgets.Widget; import me.shedaniel.rei.api.client.gui.widgets.Widgets; @@ -44,18 +43,14 @@ public class HoleWidget { public static Widget createMenuBackground(Rectangle bounds) { return Widgets.withBounds(Widgets.createDrawableWidget((graphics, mouseX, mouseY, delta) -> { - RenderSystem.enableBlend(); graphics.blit(RenderType::guiTextured, ResourceLocation.withDefaultNamespace("textures/gui/menu_list_background.png"), bounds.x, bounds.y, bounds.getMaxX(), bounds.getMaxY(), bounds.width, bounds.height, 32, 32); - RenderSystem.disableBlend(); }), bounds); } public static Widget createListBorders(Rectangle bounds) { return Widgets.withBounds(Widgets.createDrawableWidget((graphics, mouseX, mouseY, delta) -> { - RenderSystem.enableBlend(); graphics.blit(RenderType::guiTextured, CreateWorldScreen.HEADER_SEPARATOR, bounds.x, bounds.y - 2, 0.0F, 0.0F, bounds.width, 2, 32, 2); graphics.blit(RenderType::guiTextured, CreateWorldScreen.FOOTER_SEPARATOR, bounds.x, bounds.getMaxY(), 0.0F, 0.0F, bounds.width, 2, 32, 2); - RenderSystem.disableBlend(); }), bounds); } } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/ArrowWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/ArrowWidget.java index 931692321..0b6678d3a 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/ArrowWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/ArrowWidget.java @@ -23,7 +23,6 @@ package me.shedaniel.rei.impl.client.gui.widget.basewidgets; -import com.mojang.blaze3d.systems.RenderSystem; import me.shedaniel.clothconfig2.api.animator.NumberAnimator; import me.shedaniel.clothconfig2.api.animator.ValueAnimator; import me.shedaniel.math.Rectangle; @@ -83,19 +82,14 @@ public final class ArrowWidget extends Arrow { } public void renderBackground(GuiGraphics graphics, boolean dark, float alpha) { - RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, alpha); - RenderSystem.enableBlend(); - RenderSystem.blendFuncSeparate(770, 771, 1, 0); - RenderSystem.blendFunc(770, 771); ResourceLocation texture = REIRuntime.getInstance().getDefaultDisplayTexture(dark); if (getAnimationDuration() > 0) { int width = Mth.ceil((System.currentTimeMillis() / (animationDuration / 24) % 24d)); - graphics.blit(RenderType::guiTextured, texture, getX() + width, getY(), 106 + width, 91, 24 - width, 17, 256, 256); - graphics.blit(RenderType::guiTextured, texture, getX(), getY(), 82, 91, width, 17, 256, 256); + graphics.blit(RenderType::guiTextured, texture, getX() + width, getY(), 106 + width, 91, 24 - width, 17, 256, 256, 0xFFFFFF | (int) (alpha * 255) << 24); + graphics.blit(RenderType::guiTextured, texture, getX(), getY(), 82, 91, width, 17, 256, 256, 0xFFFFFF | (int) (alpha * 255) << 24); } else { - graphics.blit(RenderType::guiTextured, texture, getX(), getY(), 106, 91, 24, 17, 256, 256); + graphics.blit(RenderType::guiTextured, texture, getX(), getY(), 106, 91, 24, 17, 256, 256, 0xFFFFFF | (int) (alpha * 255) << 24); } - RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/BurningFireWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/BurningFireWidget.java index 0b0f1cfe6..e43927d85 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/BurningFireWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/BurningFireWidget.java @@ -23,7 +23,6 @@ package me.shedaniel.rei.impl.client.gui.widget.basewidgets; -import com.mojang.blaze3d.systems.RenderSystem; import me.shedaniel.clothconfig2.api.animator.NumberAnimator; import me.shedaniel.clothconfig2.api.animator.ValueAnimator; import me.shedaniel.math.Rectangle; @@ -77,19 +76,14 @@ public final class BurningFireWidget extends BurningFire { } public void renderBackground(GuiGraphics graphics, boolean dark, float alpha) { - RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, alpha); - RenderSystem.enableBlend(); - RenderSystem.blendFuncSeparate(770, 771, 1, 0); - RenderSystem.blendFunc(770, 771); ResourceLocation texture = REIRuntime.getInstance().getDefaultDisplayTexture(dark); if (getAnimationDuration() > 0) { int height = 14 - Mth.ceil((System.currentTimeMillis() / (animationDuration / 14) % 14d)); - graphics.blit(RenderType::guiTextured, texture, getX(), getY(), 1, 74, 14, 14 - height, 256, 256); - graphics.blit(RenderType::guiTextured, texture, getX(), getY() + 14 - height, 82, 77 + (14 - height), 14, height, 256, 256); + graphics.blit(RenderType::guiTextured, texture, getX(), getY(), 1, 74, 14, 14 - height, 256, 256, 0xFFFFFF | (int) (alpha * 255) << 24); + graphics.blit(RenderType::guiTextured, texture, getX(), getY() + 14 - height, 82, 77 + (14 - height), 14, height, 256, 256, 0xFFFFFF | (int) (alpha * 255) << 24); } else { - graphics.blit(RenderType::guiTextured, texture, getX(), getY(), 1, 74, 14, 14, 256, 256); + graphics.blit(RenderType::guiTextured, texture, getX(), getY(), 1, 74, 14, 14, 256, 256, 0xFFFFFF | (int) (alpha * 255) << 24); } - RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryManager.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryManager.java index 5bf96d84a..6f77570f3 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryManager.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryManager.java @@ -90,17 +90,17 @@ public class DisplayHistoryManager { entries.clear(); displayToEntries.clear(); for (CompoundTag tag : displayHistory) { - String uuid = tag.getString("DisplayHistoryUUID"); + String uuid = tag.getString("DisplayHistoryUUID").orElseThrow(); DisplayEntry entry = copy.get(uuid); if (entry != null) { entries.put(entry.getUuid().toString(), entry); displayToEntries.put(entry.getDisplay(), entry); - } else if (tag.getBoolean("DisplayHistoryContains")) { + } else if (tag.getBooleanOr("DisplayHistoryContains", false)) { try { - CategoryIdentifier<?> categoryIdentifier = CategoryIdentifier.of(tag.getString("DisplayHistoryCategory")); + CategoryIdentifier<?> categoryIdentifier = CategoryIdentifier.of(tag.getString("DisplayHistoryCategory").orElseThrow()); if (CategoryRegistry.getInstance().tryGet(categoryIdentifier).isPresent()) { - DataResult<Display> result = Display.codec().parse(BasicDisplay.registryAccess().createSerializationContext(NbtOps.INSTANCE), tag.getCompound("DisplayHistoryData")); + DataResult<Display> result = Display.codec().parse(BasicDisplay.registryAccess().createSerializationContext(NbtOps.INSTANCE), tag.getCompound("DisplayHistoryData").orElseThrow()); Display display = result.getOrThrow(); DisplayEntry newEntry = new DisplayEntry(parent, display, null); newEntry.setUuid(UUID.fromString(uuid)); @@ -161,7 +161,7 @@ public class DisplayHistoryManager { private void save() { List<CompoundTag> displayHistory = ConfigManagerImpl.getInstance().getConfig().getDisplayHistory(); for (CompoundTag compoundTag : displayHistory) { - String uuid = compoundTag.getString("DisplayHistoryUUID"); + String uuid = compoundTag.getString("DisplayHistoryUUID").orElseThrow(); DisplayEntry entry = entries.get(uuid); if (entry != null) { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchField.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchField.java index 214933201..5758109fe 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchField.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchField.java @@ -25,7 +25,6 @@ package me.shedaniel.rei.impl.client.gui.widget.search; import com.google.common.collect.Lists; import com.mojang.blaze3d.platform.InputConstants; -import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.datafixers.util.Pair; import me.shedaniel.clothconfig2.api.animator.NumberAnimator; import me.shedaniel.clothconfig2.api.animator.ValueAnimator; @@ -146,9 +145,7 @@ public class OverlaySearchField extends TextFieldWidget implements TextFieldWidg public void laterRender(GuiGraphics graphics, int mouseX, int mouseY, float delta) { progress.update(delta); - RenderSystem.disableDepthTest(); if (isMain) drawHint(graphics, mouseX, mouseY); - RenderSystem.enableDepthTest(); } private void drawHint(GuiGraphics graphics, int mouseX, int mouseY) { @@ -357,9 +354,7 @@ public class OverlaySearchField extends TextFieldWidget implements TextFieldWidg @Override public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { - RenderSystem.disableDepthTest(); setSuggestion(!isFocused() && getText().isEmpty() ? I18n.get("text.rei.search.field.suggestion") : null); super.render(graphics, mouseX, mouseY, delta); - RenderSystem.enableDepthTest(); } } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/SlotAccessorRegistryImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/SlotAccessorRegistryImpl.java index 49cfc196f..b9311595b 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/SlotAccessorRegistryImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/SlotAccessorRegistryImpl.java @@ -95,7 +95,7 @@ public class SlotAccessorRegistryImpl implements SlotAccessorRegistry { @Override public SlotAccessor read(AbstractContainerMenu menu, Player player, CompoundTag tag) { - String id = tag.getString("id"); + String id = tag.getString("id").orElseThrow(); Serializer serializer = map.get(ResourceLocation.parse(id)); if (serializer == null) { throw new NullPointerException("No serializer found for " + id); |