From 7930adec70e65fe0eb512c54ccabf10d16813b08 Mon Sep 17 00:00:00 2001 From: LexManos Date: Thu, 24 Aug 2017 15:21:47 -0700 Subject: [PATCH] Fix recipe book auto-fill not working for OreDictionary ingredients. --- .../net/minecraftforge/oredict/OreIngredient.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/minecraftforge/oredict/OreIngredient.java b/src/main/java/net/minecraftforge/oredict/OreIngredient.java index 80ff110bff..11ae517367 100644 --- a/src/main/java/net/minecraftforge/oredict/OreIngredient.java +++ b/src/main/java/net/minecraftforge/oredict/OreIngredient.java @@ -29,14 +29,13 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.Ingredient; import net.minecraft.util.NonNullList; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; public class OreIngredient extends Ingredient { private NonNullList ores; private IntList itemIds = null; private ItemStack[] array = null; + private int lastSizeA = -1, lastSizeL = -1; public OreIngredient(String ore) { @@ -48,7 +47,7 @@ public class OreIngredient extends Ingredient @Nonnull public ItemStack[] getMatchingStacks() { - if (array == null || this.array.length != ores.size()) + if (array == null || this.lastSizeA != ores.size()) { NonNullList lst = NonNullList.create(); for (ItemStack itemstack : this.ores) @@ -59,6 +58,7 @@ public class OreIngredient extends Ingredient lst.add(itemstack); } this.array = lst.toArray(new ItemStack[lst.size()]); + this.lastSizeA = ores.size(); } return this.array; } @@ -66,10 +66,9 @@ public class OreIngredient extends Ingredient @Override @Nonnull - @SideOnly(Side.CLIENT) public IntList getValidItemStacksPacked() { - if (this.itemIds == null || this.itemIds.size() != ores.size()) + if (this.itemIds == null || this.lastSizeL != ores.size()) { this.itemIds = new IntArrayList(this.ores.size()); @@ -89,6 +88,7 @@ public class OreIngredient extends Ingredient } this.itemIds.sort(IntComparators.NATURAL_COMPARATOR); + this.lastSizeL = ores.size(); } return this.itemIds; @@ -112,5 +112,6 @@ public class OreIngredient extends Ingredient protected void invalidate() { this.itemIds = null; + this.array = null; } }