Add multiple matching Stacks (#27)
This commit is contained in:
+20
-11
@@ -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++) {
|
||||
|
||||
Reference in New Issue
Block a user