Add multiple matching Stacks (#27)

This commit is contained in:
forester302
2024-10-27 10:52:56 +01:00
committed by GitHub
parent 71070c32bc
commit f8368f95a4
@@ -26,14 +26,8 @@ public class RecipeDataGenerator implements IDataGenerator {
return "recipes";
}
@Override
public JsonElement generateDataJson() {
DynamicRegistryManager registryManager = DGU.getWorld().getRegistryManager();
JsonObject finalObj = new JsonObject();
Multimap<Integer, JsonObject> recipes = ArrayListMultimap.create();
for (RecipeEntry<?> recipeE : Objects.requireNonNull(DGU.getWorld()).getRecipeManager().values()) {
Recipe<?> recipe = recipeE.value();
if (recipe instanceof ShapedRecipe sr) {
private void generateShapedRecipe(DynamicRegistryManager registryManager, JsonObject finalObj, ShapedRecipe sr, int n) {
boolean hasIncremented = false;
var ingredients = sr.getIngredients();
List<Integer> ingr = new ArrayList<>();
for (int i = 0; i < 9; i++) {
@@ -42,18 +36,22 @@ public class RecipeDataGenerator implements IDataGenerator {
continue;
}
var stacks = ingredients.get(i);
var matching = stacks.getMatchingStacks();
var matching = stacks.getMatchingStacks(); // FIXME: fix when there are more than one matching stack
if (matching.length == 0) {
ingr.add(-1);
} else if (matching.length > n){
ingr.add(getRawIdFor(matching[n].getItem()));
} else {
ingr.add(getRawIdFor(matching[0].getItem()));
}
if (matching.length-1 > n && !hasIncremented) {
generateShapedRecipe(registryManager, finalObj, sr, n+1);
hasIncremented = true;
}
}
//Lists.reverse(ingr);
JsonArray inShape = new JsonArray();
var iter = ingr.iterator();
for (int y = 0; y < sr.getHeight(); y++) {
var jsonRow = new JsonArray();
@@ -77,6 +75,17 @@ public class RecipeDataGenerator implements IDataGenerator {
finalObj.add(id, new JsonArray());
}
finalObj.get(id).getAsJsonArray().add(finalRecipe);
}
@Override
public JsonElement generateDataJson() {
DynamicRegistryManager registryManager = DGU.getWorld().getRegistryManager();
JsonObject finalObj = new JsonObject();
Multimap<Integer, JsonObject> recipes = ArrayListMultimap.create();
for (RecipeEntry<?> recipeE : Objects.requireNonNull(DGU.getWorld()).getRecipeManager().values()) {
Recipe<?> recipe = recipeE.value();
if (recipe instanceof ShapedRecipe sr) {
generateShapedRecipe(registryManager, finalObj, sr, 0);
// var input = new JsonArray();
// var ingredients = sr.getIngredients().stream().toList();
// for (int y = 0; y < sr.getHeight(); y++) {