Skip to content

Commit fbbc218

Browse files
committed
Make recipe inputs private, add a getter method that deep clones the array
1 parent ad020bf commit fbbc218

2 files changed

Lines changed: 18 additions & 7 deletions

File tree

station-recipes-v0/src/main/java/net/modificationstation/stationapi/impl/recipe/StationShapedRecipe.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,15 @@
99
import net.modificationstation.stationapi.api.registry.ItemRegistry;
1010
import net.modificationstation.stationapi.api.tag.TagKey;
1111

12-
import java.util.Optional;
13-
import java.util.Random;
12+
import java.util.*;
1413
import java.util.function.Function;
1514

1615
public class StationShapedRecipe implements CraftingRecipe, StationRecipe {
1716

1817
private static final Random RANDOM = new Random();
1918

2019
public final int width, height;
21-
public final Either<TagKey<Item>, ItemStack>[] grid;
20+
private final Either<TagKey<Item>, ItemStack>[] grid;
2221
public final ItemStack output;
2322

2423
public StationShapedRecipe(int width, int height, Either<TagKey<Item>, ItemStack>[] grid, ItemStack output) {
@@ -103,4 +102,9 @@ public ItemStack[] getIngredients() {
103102
public ItemStack[] getOutputs() {
104103
return new ItemStack[] { output };
105104
}
105+
106+
public Either<TagKey<Item>, ItemStack>[] getGrid() {
107+
//noinspection unchecked
108+
return (Either<TagKey<Item>, ItemStack>[]) Arrays.stream(grid).map(entry -> entry.mapRight(ItemStack::copy)).toArray(Either[]::new);
109+
}
106110
}

station-recipes-v0/src/main/java/net/modificationstation/stationapi/impl/recipe/StationShapelessRecipe.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,14 @@
99
import net.modificationstation.stationapi.api.registry.ItemRegistry;
1010
import net.modificationstation.stationapi.api.tag.TagKey;
1111

12-
import java.util.BitSet;
13-
import java.util.Optional;
14-
import java.util.Random;
12+
import java.util.*;
1513
import java.util.function.Function;
1614

1715
public class StationShapelessRecipe implements CraftingRecipe, StationRecipe {
1816

1917
private static final Random RANDOM = new Random();
2018

21-
public final Either<TagKey<Item>, ItemStack>[] ingredients;
19+
private final Either<TagKey<Item>, ItemStack>[] ingredients;
2220
public final ItemStack output;
2321
public final BitSet matchedIngredients;
2422

@@ -92,4 +90,13 @@ public ItemStack[] getIngredients() {
9290
public ItemStack[] getOutputs() {
9391
return new ItemStack[] { output };
9492
}
93+
94+
/**
95+
* To be renamed to getIngredients in a3, use with caution.
96+
*/
97+
@Deprecated
98+
public Either<TagKey<Item>, ItemStack>[] getInputs() {
99+
//noinspection unchecked
100+
return (Either<TagKey<Item>, ItemStack>[]) Arrays.stream(ingredients).map(entry -> entry.mapRight(ItemStack::copy)).toArray(Either[]::new);
101+
}
95102
}

0 commit comments

Comments
 (0)