From eb89f6ea33f5996e5d7d9bde93d222daec6c9536 Mon Sep 17 00:00:00 2001 From: kross <135918757+krossgg@users.noreply.github.com> Date: Sat, 21 Sep 2024 21:36:53 -0400 Subject: [PATCH] Changed recipe decoding to not return immutables (#1995) --- gradle/scripts/publishing.gradle | 2 +- .../gtceu/api/codec/DispatchedMapCodec.java | 3 +-- .../gtceu/api/recipe/RecipeRunner.java | 26 +++++++++++-------- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/gradle/scripts/publishing.gradle b/gradle/scripts/publishing.gradle index 5579fc7767..44e01da103 100644 --- a/gradle/scripts/publishing.gradle +++ b/gradle/scripts/publishing.gradle @@ -21,7 +21,7 @@ publishing { repositories { // Add repositories to publish to here. maven { - url "https://maven.firstdarkdev.xyz/snapshots" + url "https://maven.gtceu.com" credentials { username System.getenv("MAVEN_USER") password System.getenv("MAVEN_PASS") diff --git a/src/main/java/com/gregtechceu/gtceu/api/codec/DispatchedMapCodec.java b/src/main/java/com/gregtechceu/gtceu/api/codec/DispatchedMapCodec.java index f5e2b7b968..7d8abeda93 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/codec/DispatchedMapCodec.java +++ b/src/main/java/com/gregtechceu/gtceu/api/codec/DispatchedMapCodec.java @@ -2,7 +2,6 @@ import com.gregtechceu.gtceu.GTCEu; -import com.google.common.collect.ImmutableMap; import com.mojang.datafixers.util.Pair; import com.mojang.datafixers.util.Unit; import com.mojang.serialization.*; @@ -44,7 +43,7 @@ public DataResult, T>> decode(final DynamicOps ops, final (result, entry) -> parseEntry(result, ops, entry, entries, failed), (r1, r2) -> r1.apply2stable((u1, u2) -> u1, r2)); - final Pair, T> pair = Pair.of(ImmutableMap.copyOf(entries), input); + final Pair, T> pair = Pair.of(new Object2ObjectArrayMap<>(entries), input); final T errors = ops.createMap(failed.build()); return finalResult.map(ignored -> pair).setPartial(pair) diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeRunner.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeRunner.java index 599c2b861c..fb4c072e80 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeRunner.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeRunner.java @@ -110,17 +110,21 @@ private void fillContent(IRecipeCapabilityHolder holder, Map.Entry new ArrayList<>()).add(cont.content); + // Only roll if there's anything to roll for + if (!chancedContents.isEmpty()) { + int recipeTier = RecipeHelper.getPreOCRecipeEuTier(recipe); + int holderTier = holder.getChanceTier(); + var cache = this.chanceCaches.get(cap); + chancedContents = logic.roll(chancedContents, function, recipeTier, holderTier, cache, recipe.parallels, + cap); + + if (chancedContents == null) return; + for (Content cont : chancedContents) { + if (cont.slotName == null) { + this.content.content.add(cont.content); + } else { + this.content.slots.computeIfAbsent(cont.slotName, s -> new ArrayList<>()).add(cont.content); + } } } }