Fixed the DNA Extractor recipe provider to actually pass weights in to the 1.20.1 branch
This commit is contained in:
@@ -650,9 +650,9 @@ public class ModRecipeProvider {
|
|||||||
ModItems.TEST_TUBE.get(),
|
ModItems.TEST_TUBE.get(),
|
||||||
ModItems.MOSQUITO_IN_AMBER.get(),
|
ModItems.MOSQUITO_IN_AMBER.get(),
|
||||||
ModItems.FROG_DNA.get(),
|
ModItems.FROG_DNA.get(),
|
||||||
ModItems.INDORAPTOR_DNA.get(), 0.0,
|
ModItems.INDORAPTOR_DNA.get(), 0,
|
||||||
ModItems.INDOMINUS_REX_DNA.get(), 0.0,
|
ModItems.INDOMINUS_REX_DNA.get(), 0,
|
||||||
ModItems.DISTORTUS_REX_DNA.get(), 0.0,
|
ModItems.DISTORTUS_REX_DNA.get(), 0,
|
||||||
1
|
1
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -137,17 +137,42 @@ public record DNAExtractorRecipe(
|
|||||||
JsonArray ingredients = GsonHelper.getAsJsonArray(json, "ingredients");
|
JsonArray ingredients = GsonHelper.getAsJsonArray(json, "ingredients");
|
||||||
NonNullList<Ingredient> inputs = NonNullList.withSize(2, Ingredient.EMPTY);
|
NonNullList<Ingredient> inputs = NonNullList.withSize(2, Ingredient.EMPTY);
|
||||||
for (int i = 0; i < 2; i++) inputs.set(i, Ingredient.fromJson(ingredients.get(i)));
|
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<ResourceLocation, Integer> parsedWeights = new java.util.HashMap<>();
|
||||||
|
if (json.has("weights")) {
|
||||||
|
JsonObject weightsObj = GsonHelper.getAsJsonObject(json, "weights");
|
||||||
|
for (java.util.Map.Entry<String, com.google.gson.JsonElement> 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) {
|
@Override public DNAExtractorRecipe fromNetwork(ResourceLocation id, FriendlyByteBuf buf) {
|
||||||
NonNullList<Ingredient> inputs = NonNullList.withSize(buf.readInt(), Ingredient.EMPTY);
|
NonNullList<Ingredient> inputs = NonNullList.withSize(buf.readInt(), Ingredient.EMPTY);
|
||||||
for (int i = 0; i < inputs.size(); i++) inputs.set(i, Ingredient.fromNetwork(buf));
|
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<ResourceLocation, Integer> 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) {
|
@Override public void toNetwork(FriendlyByteBuf buf, DNAExtractorRecipe recipe) {
|
||||||
buf.writeInt(recipe.inputs().size());
|
buf.writeInt(recipe.inputs().size());
|
||||||
for (Ingredient ing : recipe.inputs()) ing.toNetwork(buf);
|
for (Ingredient ing : recipe.inputs()) ing.toNetwork(buf);
|
||||||
buf.writeItem(recipe.output());
|
buf.writeItem(recipe.output());
|
||||||
|
|
||||||
|
buf.writeVarInt(recipe.weights().size());
|
||||||
|
for (java.util.Map.Entry<ResourceLocation, Integer> entry : recipe.weights().entrySet()) {
|
||||||
|
buf.writeResourceLocation(entry.getKey());
|
||||||
|
buf.writeVarInt(entry.getValue());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/*?}*/
|
/*?}*/
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user