Add multiple matching Stacks (#27)
This commit is contained in:
+20
-11
@@ -26,14 +26,8 @@ public class RecipeDataGenerator implements IDataGenerator {
|
|||||||
return "recipes";
|
return "recipes";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private void generateShapedRecipe(DynamicRegistryManager registryManager, JsonObject finalObj, ShapedRecipe sr, int n) {
|
||||||
public JsonElement generateDataJson() {
|
boolean hasIncremented = false;
|
||||||
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) {
|
|
||||||
var ingredients = sr.getIngredients();
|
var ingredients = sr.getIngredients();
|
||||||
List<Integer> ingr = new ArrayList<>();
|
List<Integer> ingr = new ArrayList<>();
|
||||||
for (int i = 0; i < 9; i++) {
|
for (int i = 0; i < 9; i++) {
|
||||||
@@ -42,18 +36,22 @@ public class RecipeDataGenerator implements IDataGenerator {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
var stacks = ingredients.get(i);
|
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) {
|
if (matching.length == 0) {
|
||||||
ingr.add(-1);
|
ingr.add(-1);
|
||||||
|
} else if (matching.length > n){
|
||||||
|
ingr.add(getRawIdFor(matching[n].getItem()));
|
||||||
} else {
|
} else {
|
||||||
ingr.add(getRawIdFor(matching[0].getItem()));
|
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();
|
JsonArray inShape = new JsonArray();
|
||||||
|
|
||||||
|
|
||||||
var iter = ingr.iterator();
|
var iter = ingr.iterator();
|
||||||
for (int y = 0; y < sr.getHeight(); y++) {
|
for (int y = 0; y < sr.getHeight(); y++) {
|
||||||
var jsonRow = new JsonArray();
|
var jsonRow = new JsonArray();
|
||||||
@@ -77,6 +75,17 @@ public class RecipeDataGenerator implements IDataGenerator {
|
|||||||
finalObj.add(id, new JsonArray());
|
finalObj.add(id, new JsonArray());
|
||||||
}
|
}
|
||||||
finalObj.get(id).getAsJsonArray().add(finalRecipe);
|
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 input = new JsonArray();
|
||||||
// var ingredients = sr.getIngredients().stream().toList();
|
// var ingredients = sr.getIngredients().stream().toList();
|
||||||
// for (int y = 0; y < sr.getHeight(); y++) {
|
// for (int y = 0; y < sr.getHeight(); y++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user