From 73f283d940af5ff19f784eb54c3316440e25c49a Mon Sep 17 00:00:00 2001 From: Eli Gibbs Date: Tue, 9 Jun 2026 22:17:37 -0400 Subject: [PATCH] Fixed the DNA Extractor recipe provider to actually pass weights in to the 1.20.1 branch --- .../datagen/ModRecipeProvider.java | 6 ++-- .../recipe/DNAExtractorRecipe.java | 29 +++++++++++++++++-- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModRecipeProvider.java b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModRecipeProvider.java index f235150..b2da4a5 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModRecipeProvider.java +++ b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModRecipeProvider.java @@ -650,9 +650,9 @@ public class ModRecipeProvider { ModItems.TEST_TUBE.get(), ModItems.MOSQUITO_IN_AMBER.get(), ModItems.FROG_DNA.get(), - ModItems.INDORAPTOR_DNA.get(), 0.0, - ModItems.INDOMINUS_REX_DNA.get(), 0.0, - ModItems.DISTORTUS_REX_DNA.get(), 0.0, + ModItems.INDORAPTOR_DNA.get(), 0, + ModItems.INDOMINUS_REX_DNA.get(), 0, + ModItems.DISTORTUS_REX_DNA.get(), 0, 1 ); } diff --git a/common/src/main/java/net/cmr/jurassicrevived/recipe/DNAExtractorRecipe.java b/common/src/main/java/net/cmr/jurassicrevived/recipe/DNAExtractorRecipe.java index 512c94f..69ba22c 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/recipe/DNAExtractorRecipe.java +++ b/common/src/main/java/net/cmr/jurassicrevived/recipe/DNAExtractorRecipe.java @@ -137,17 +137,42 @@ public record DNAExtractorRecipe( JsonArray ingredients = GsonHelper.getAsJsonArray(json, "ingredients"); NonNullList inputs = NonNullList.withSize(2, Ingredient.EMPTY); for (int i = 0; i < 2; i++) inputs.set(i, Ingredient.fromJson(ingredients.get(i))); - return new DNAExtractorRecipe(id, inputs, ShapedRecipe.itemStackFromJson(GsonHelper.getAsJsonObject(json, "result")), java.util.Map.of()); + + java.util.Map parsedWeights = new java.util.HashMap<>(); + if (json.has("weights")) { + JsonObject weightsObj = GsonHelper.getAsJsonObject(json, "weights"); + for (java.util.Map.Entry entry : weightsObj.entrySet()) { + parsedWeights.put(new ResourceLocation(entry.getKey()), entry.getValue().getAsInt()); + } + } + + return new DNAExtractorRecipe(id, inputs, ShapedRecipe.itemStackFromJson(GsonHelper.getAsJsonObject(json, "result")), parsedWeights); } + @Override public DNAExtractorRecipe fromNetwork(ResourceLocation id, FriendlyByteBuf buf) { NonNullList inputs = NonNullList.withSize(buf.readInt(), Ingredient.EMPTY); for (int i = 0; i < inputs.size(); i++) inputs.set(i, Ingredient.fromNetwork(buf)); - return new DNAExtractorRecipe(id, inputs, buf.readItem(), java.util.Map.of()); + ItemStack output = buf.readItem(); + + int mapSize = buf.readVarInt(); + java.util.Map syncedWeights = new java.util.HashMap<>(); + for (int i = 0; i < mapSize; i++) { + syncedWeights.put(buf.readResourceLocation(), buf.readVarInt()); + } + + return new DNAExtractorRecipe(id, inputs, output, syncedWeights); } + @Override public void toNetwork(FriendlyByteBuf buf, DNAExtractorRecipe recipe) { buf.writeInt(recipe.inputs().size()); for (Ingredient ing : recipe.inputs()) ing.toNetwork(buf); buf.writeItem(recipe.output()); + + buf.writeVarInt(recipe.weights().size()); + for (java.util.Map.Entry entry : recipe.weights().entrySet()) { + buf.writeResourceLocation(entry.getKey()); + buf.writeVarInt(entry.getValue()); + } } /*?}*/ }