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 | |
| parent | 9d3bb3cfc7d0c494b33e5d914487a404f2f9d02e (diff) | |
| download | RoughlyEnoughItems-ade79d9a271916885c758632c01d4f7195803a2c.tar.gz RoughlyEnoughItems-ade79d9a271916885c758632c01d4f7195803a2c.tar.bz2 RoughlyEnoughItems-ade79d9a271916885c758632c01d4f7195803a2c.zip | |
Update to 1.21.5
57 files changed, 227 insertions, 238 deletions
diff --git a/.github/workflows/curseforge.yml b/.github/workflows/curseforge.yml index b8b60ea80..c268d74ae 100644 --- a/.github/workflows/curseforge.yml +++ b/.github/workflows/curseforge.yml @@ -22,6 +22,7 @@ on: - 16.x-1.21 - 17.x-1.21.2 - 18.x-1.21.4 + - 19.x-1.21.5 jobs: build: diff --git a/api/src/main/java/me/shedaniel/rei/api/client/entry/filtering/FilteringRuleType.java b/api/src/main/java/me/shedaniel/rei/api/client/entry/filtering/FilteringRuleType.java index 5c17346d2..620c3e07a 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/entry/filtering/FilteringRuleType.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/entry/filtering/FilteringRuleType.java @@ -74,9 +74,9 @@ public interface FilteringRuleType<T extends FilteringRule<?>> { */ @Nullable static FilteringRule<?> read(CompoundTag tag) { - FilteringRuleType<?> type = FilteringRuleTypeRegistry.getInstance().get(ResourceLocation.tryParse(tag.getString("id"))); + FilteringRuleType<?> type = FilteringRuleTypeRegistry.getInstance().get(ResourceLocation.tryParse(tag.getString("id").orElseThrow())); if (type == null) return null; - return type.readFrom(tag.getCompound("rule")); + return type.readFrom(tag.getCompoundOrEmpty("rule")); } /** diff --git a/api/src/main/java/me/shedaniel/rei/api/client/registry/transfer/simple/SimpleTransferHandler.java b/api/src/main/java/me/shedaniel/rei/api/client/registry/transfer/simple/SimpleTransferHandler.java index 17668f8ca..f5c8981f8 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/registry/transfer/simple/SimpleTransferHandler.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/registry/transfer/simple/SimpleTransferHandler.java @@ -32,7 +32,6 @@ import me.shedaniel.rei.api.client.registry.transfer.TransferHandler; import me.shedaniel.rei.api.client.registry.transfer.TransferHandlerMeta; import me.shedaniel.rei.api.common.category.CategoryIdentifier; import me.shedaniel.rei.api.common.display.Display; -import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.api.common.entry.InputIngredient; import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes; import me.shedaniel.rei.api.common.transfer.info.stack.SlotAccessor; @@ -46,7 +45,6 @@ import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.ApiStatus; -import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -80,7 +78,7 @@ public interface SimpleTransferHandler extends TransferHandler, TransferHandlerM public Iterable<SlotAccessor> getInventorySlots(Context context) { LocalPlayer player = context.getMinecraft().player; Inventory inventory = player.getInventory(); - return IntStream.range(0, inventory.items.size()) + return IntStream.range(0, inventory.getNonEquipmentItems().size()) .mapToObj(index -> SlotAccessor.fromPlayerInventory(player, index)) .collect(Collectors.toList()); } diff --git a/api/src/main/java/me/shedaniel/rei/api/client/util/MatrixUtils.java b/api/src/main/java/me/shedaniel/rei/api/client/util/MatrixUtils.java index 7d6192fd5..6ca6595ff 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/util/MatrixUtils.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/util/MatrixUtils.java @@ -36,7 +36,7 @@ public class MatrixUtils { Transformation transformation = new Transformation(matrix); Transformation inverse = transformation.inverse(); if (inverse != null) inverse.getScale(); // This has a side effect - return inverse == null ? Transformation.identity().getMatrix() : inverse.getMatrix(); + return inverse == null ? Transformation.identity().getMatrixCopy() : inverse.getMatrixCopy(); } public static Rectangle transform(Matrix4f matrix, Rectangle rectangle) { diff --git a/api/src/main/java/me/shedaniel/rei/api/client/util/SpriteRenderer.java b/api/src/main/java/me/shedaniel/rei/api/client/util/SpriteRenderer.java index 5c9e3c92f..f7005374f 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/util/SpriteRenderer.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/util/SpriteRenderer.java @@ -28,11 +28,15 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.texture.AbstractTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.TriState; import org.joml.Matrix3f; import org.joml.Matrix4f; import org.joml.Vector3f; @@ -223,7 +227,10 @@ public class SpriteRenderer { float sX = sprite.contents().width(); float sY = sprite.contents().height(); - RenderSystem.setShaderTexture(0, texture); + TextureManager textureManager = Minecraft.getInstance().getTextureManager(); + AbstractTexture abstractTexture = textureManager.getTexture(texture); + abstractTexture.setFilter(TriState.FALSE, false); + RenderSystem.setShaderTexture(0, abstractTexture.getTexture()); for (float y = y1; y < y2; y += Math.min(y2 - y, sY)) { for (float x = x1; x < x2; x += Math.min(x2 - x, sX)) { diff --git a/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java b/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java index 6b00b4d7d..0eb1c9b49 100644 --- a/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java +++ b/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java @@ -45,7 +45,6 @@ import me.shedaniel.rei.api.common.plugins.PluginManager; import me.shedaniel.rei.api.common.transfer.info.stack.SlotAccessor; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.minecraft.client.data.models.blockstates.PropertyDispatch; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; import net.minecraft.nbt.CompoundTag; @@ -84,7 +83,7 @@ public final class ClientInternals { private static Function<Boolean, ClickArea.Result> clickAreaHandlerResult = (result) -> throwNotSetup(); private static BiConsumer<List<ClientTooltipComponent>, TooltipComponent> clientTooltipComponentProvider = (tooltip, result) -> throwNotSetup(); private static BiFunction<@Nullable Point, Collection<Tooltip.Entry>, Tooltip> tooltipProvider = (point, texts) -> throwNotSetup(); - private static PropertyDispatch.QuadFunction<Point, @Nullable TooltipFlag, Boolean, Item.TooltipContext, TooltipContext> tooltipContextProvider = (point, texts, search, context) -> throwNotSetup(); + private static QuadFunction<Point, @Nullable TooltipFlag, Boolean, Item.TooltipContext, TooltipContext> tooltipContextProvider = (point, texts, search, context) -> throwNotSetup(); private static Function<Object, Tooltip.Entry> tooltipEntryProvider = (component) -> throwNotSetup(); private static Supplier<List<String>> jeiCompatMods = ClientInternals::throwNotSetup; private static Supplier<Object> builtinClientPlugin = ClientInternals::throwNotSetup; @@ -243,4 +242,8 @@ public final class ClientInternals { public interface SimpleTransferHandler { TransferHandler.Result handle(TransferHandler.Context context, me.shedaniel.rei.api.client.registry.transfer.simple.SimpleTransferHandler.MissingInputRenderer missingInputRenderer, List<InputIngredient<ItemStack>> inputs, Iterable<SlotAccessor> inputSlots, Iterable<SlotAccessor> inventorySlots); } + + public interface QuadFunction<T, U, V, W, R> { + R apply(T t, U u, V v, W w); + } } diff --git a/build.gradle b/build.gradle index b116e5321..da3e9d952 100755 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { id("architectury-plugin") version("3.4-SNAPSHOT") - id("dev.architectury.loom") version("1.7-SNAPSHOT") apply false + id("dev.architectury.loom") version("1.10-SNAPSHOT") apply false id("org.cadixdev.licenser") version("0.6.1") id("me.shedaniel.unified-publishing") version("0.1.+") id("maven-publish") diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java index 6c93af751..4ea379854 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java @@ -448,7 +448,7 @@ public class DefaultClientPlugin implements REIClientPlugin, BuiltinClientPlugin ItemStack itemStack = stack.castValue(); if (!itemStack.isEnchantable()) return; for (Pair<EnchantmentInstance, ItemStack> pair : enchantmentBooks) { - if (!pair.getKey().enchantment.value().canEnchant(itemStack)) continue; + if (!pair.getKey().enchantment().value().canEnchant(itemStack)) continue; Optional<Pair<ItemStack, Integer>> output = DefaultAnvilDisplay.calculateOutput(itemStack, pair.getValue()); if (output.isEmpty()) continue; registry.add(new DefaultAnvilDisplay(List.of(EntryIngredients.of(itemStack), EntryIngredients.of(pair.getValue())), diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultInformationCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultInformationCategory.java index 7d1e9455c..9ef500b6f 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultInformationCategory.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultInformationCategory.java @@ -24,7 +24,6 @@ package me.shedaniel.rei.plugin.client.categories; import com.google.common.collect.Lists; -import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.VertexConsumer; import me.shedaniel.clothconfig2.ClothConfigInitializer; import me.shedaniel.clothconfig2.api.scroll.ScrollingContainer; @@ -99,7 +98,6 @@ public class DefaultInformationCategory implements DisplayCategory<DefaultInform return new Renderer() { @Override public void render(GuiGraphics graphics, Rectangle bounds, int mouseX, int mouseY, float delta) { - RenderSystem.setShaderTexture(0, REIRuntime.getInstance().getDefaultDisplayTexture()); graphics.pose().pushPose(); graphics.pose().translate(-1.2f, -1, 0); Matrix4f matrix = graphics.pose().last().pose(); diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultSmithingCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultSmithingCategory.java index 003e9410b..2dc96a7b8 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultSmithingCategory.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultSmithingCategory.java @@ -100,8 +100,8 @@ public class DefaultSmithingCategory implements DisplayCategory<SmithingDisplay> @ApiStatus.Experimental private static EntryIngredient getOutput(SmithingDisplay display, RegistryAccess registryAccess, EntryStack<?> template, EntryStack<?> base, EntryStack<?> addition) { - if (display.type() == SmithingDisplay.SmithingRecipeType.TRIM) { - EntryIngredient output = DefaultSmithingDisplay.getTrimmingOutput(registryAccess, template, base, addition); + if (display.type() == SmithingDisplay.SmithingRecipeType.TRIM && display instanceof SmithingDisplay.Trimming trimming) { + EntryIngredient output = DefaultSmithingDisplay.getTrimmingOutput(registryAccess, trimming.pattern(), base, addition); if (!output.isEmpty()) return output; } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/GameModeFavoriteEntry.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/GameModeFavoriteEntry.java index d58d4f501..bdf7456df 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/GameModeFavoriteEntry.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/GameModeFavoriteEntry.java @@ -193,7 +193,7 @@ public class GameModeFavoriteEntry extends FavoriteEntry { @Override public DataResult<GameModeFavoriteEntry> read(CompoundTag object) { - String stringValue = object.getString(KEY); + String stringValue = object.getStringOr(KEY, "NOT_SET"); GameType type = stringValue.equals("NOT_SET") ? null : GameType.valueOf(stringValue); return DataResult.success(new GameModeFavoriteEntry(type), Lifecycle.stable()); } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/TimeFavoriteEntry.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/TimeFavoriteEntry.java index e78cb4016..c6c0d6bdc 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/TimeFavoriteEntry.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/TimeFavoriteEntry.java @@ -223,7 +223,7 @@ public class TimeFavoriteEntry extends FavoriteEntry { @Override public DataResult<TimeFavoriteEntry> read(CompoundTag object) { - String stringValue = object.getString(KEY); + String stringValue = object.getStringOr(KEY, "NOT_SET"); Time type = stringValue.equals("NOT_SET") ? null : Time.valueOf(stringValue); return DataResult.success(new TimeFavoriteEntry(type), Lifecycle.stable()); } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/WeatherFavoriteEntry.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/WeatherFavoriteEntry.java index 902b96a5c..bfb0334cc 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/WeatherFavoriteEntry.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/WeatherFavoriteEntry.java @@ -197,7 +197,7 @@ public class WeatherFavoriteEntry extends FavoriteEntry { @Override public DataResult<WeatherFavoriteEntry> read(CompoundTag object) { - String stringValue = object.getString(KEY); + String stringValue = object.getStringOr(KEY, "NOT_SET"); Weather weather = stringValue.equals("NOT_SET") ? null : Weather.valueOf(stringValue); return DataResult.success(new WeatherFavoriteEntry(weather), Lifecycle.stable()); } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/DefaultPlugin.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/DefaultPlugin.java index ceed9d1b4..472b30cbe 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/DefaultPlugin.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/DefaultPlugin.java @@ -163,6 +163,7 @@ public class DefaultPlugin implements BuiltinPlugin, REICommonPlugin { registry.register(id("default/composting"), DefaultCompostingDisplay.SERIALIZER); registry.register(id("default/fuel"), DefaultFuelDisplay.SERIALIZER); registry.register(id("default/smithing"), DefaultSmithingDisplay.SERIALIZER); + registry.register(id("default/smithing/trimming"), DefaultSmithingDisplay.Trimming.SERIALIZER); registry.register(id("default/anvil"), DefaultAnvilDisplay.SERIALIZER); registry.register(id("default/beacon_base"), DefaultBeaconBaseDisplay.SERIALIZER); registry.register(id("default/beacon_payment"), DefaultBeaconPaymentDisplay.SERIALIZER); diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/SmithingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/SmithingDisplay.java index 919eb561b..ed00d4f60 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/SmithingDisplay.java +++ b/ |
