Fix OreDict

This commit is contained in:
Ellpeck 2015-11-15 18:14:39 +01:00
parent 4163643299
commit 1ba09afab6
7 changed files with 27 additions and 25 deletions

View file

@ -19,7 +19,7 @@ import ellpeck.actuallyadditions.util.Util;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.EnumChatFormatting;
import java.util.ArrayList; import java.util.List;
public class PageCrusherRecipe extends BookletPage{ public class PageCrusherRecipe extends BookletPage{
@ -75,7 +75,7 @@ public class PageCrusherRecipe extends BookletPage{
stack = this.recipe.getRecipeOutputOnes().get(Math.min(this.recipe.getRecipeOutputOnes().size()-1, this.recipePos)); stack = this.recipe.getRecipeOutputOnes().get(Math.min(this.recipe.getRecipeOutputOnes().size()-1, this.recipePos));
break; break;
default: default:
ArrayList<ItemStack> outputTwos = this.recipe.getRecipeOutputTwos(); List<ItemStack> outputTwos = this.recipe.getRecipeOutputTwos();
stack = outputTwos == null ? null : outputTwos.get(Math.min(outputTwos.size()-1, this.recipePos)); stack = outputTwos == null ? null : outputTwos.get(Math.min(outputTwos.size()-1, this.recipePos));
break; break;
} }
@ -107,7 +107,7 @@ public class PageCrusherRecipe extends BookletPage{
@Override @Override
public void updateScreen(int ticksElapsed){ public void updateScreen(int ticksElapsed){
if(ticksElapsed%10 == 0){ if(ticksElapsed%10 == 0){
ArrayList<ItemStack> outputTwos = this.recipe.getRecipeOutputTwos(); List<ItemStack> outputTwos = this.recipe.getRecipeOutputTwos();
if(this.recipePos+1 >= Math.max(this.recipe.getRecipeInputs().size(), Math.max(this.recipe.getRecipeOutputOnes().size(), outputTwos == null ? 0 : outputTwos.size()))){ if(this.recipePos+1 >= Math.max(this.recipe.getRecipeInputs().size(), Math.max(this.recipe.getRecipeOutputOnes().size(), outputTwos == null ? 0 : outputTwos.size()))){
this.recipePos = 0; this.recipePos = 0;
} }

View file

@ -21,7 +21,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
import java.util.ArrayList; import java.util.List;
public class PageReconstructor extends BookletPage{ public class PageReconstructor extends BookletPage{
@ -96,10 +96,10 @@ public class PageReconstructor extends BookletPage{
private ItemStack getInputForOutput(ItemStack output){ private ItemStack getInputForOutput(ItemStack output){
for(ReconstructorRecipeHandler.Recipe recipe : ReconstructorRecipeHandler.recipes){ for(ReconstructorRecipeHandler.Recipe recipe : ReconstructorRecipeHandler.recipes){
ArrayList<ItemStack> stacks = OreDictionary.getOres(recipe.output); List<ItemStack> stacks = OreDictionary.getOres(recipe.output, false);
for(ItemStack stack : stacks){ for(ItemStack stack : stacks){
if(output.isItemEqual(stack)){ if(output.isItemEqual(stack)){
ArrayList<ItemStack> inputs = OreDictionary.getOres(recipe.input); List<ItemStack> inputs = OreDictionary.getOres(recipe.input, false);
if(inputs != null && !inputs.isEmpty() && inputs.get(0) != null){ if(inputs != null && !inputs.isEmpty() && inputs.get(0) != null){
ItemStack input = inputs.get(0).copy(); ItemStack input = inputs.get(0).copy();
input.stackSize = 1; input.stackSize = 1;

View file

@ -69,7 +69,7 @@ public class AtomicReconstructorRecipeHandler extends TemplateRecipeHandler impl
public void loadCraftingRecipes(ItemStack result){ public void loadCraftingRecipes(ItemStack result){
ArrayList<ReconstructorRecipeHandler.Recipe> recipes = ReconstructorRecipeHandler.recipes; ArrayList<ReconstructorRecipeHandler.Recipe> recipes = ReconstructorRecipeHandler.recipes;
for(ReconstructorRecipeHandler.Recipe recipe : recipes){ for(ReconstructorRecipeHandler.Recipe recipe : recipes){
if(ItemUtil.contains(OreDictionary.getOres(recipe.output), result, true)){ if(ItemUtil.contains(OreDictionary.getOres(recipe.output, false), result, true)){
arecipes.add(new CachedReconstructorRecipe(recipe.input, recipe.output)); arecipes.add(new CachedReconstructorRecipe(recipe.input, recipe.output));
} }
} }
@ -79,7 +79,7 @@ public class AtomicReconstructorRecipeHandler extends TemplateRecipeHandler impl
public void loadUsageRecipes(ItemStack ingredient){ public void loadUsageRecipes(ItemStack ingredient){
ArrayList<ReconstructorRecipeHandler.Recipe> recipes = ReconstructorRecipeHandler.recipes; ArrayList<ReconstructorRecipeHandler.Recipe> recipes = ReconstructorRecipeHandler.recipes;
for(ReconstructorRecipeHandler.Recipe recipe : recipes){ for(ReconstructorRecipeHandler.Recipe recipe : recipes){
if(ItemUtil.contains(OreDictionary.getOres(recipe.input), ingredient, true)){ if(ItemUtil.contains(OreDictionary.getOres(recipe.input, false), ingredient, true)){
CachedReconstructorRecipe theRecipe = new CachedReconstructorRecipe(recipe.input, recipe.output); CachedReconstructorRecipe theRecipe = new CachedReconstructorRecipe(recipe.input, recipe.output);
theRecipe.setIngredientPermutation(Collections.singletonList(theRecipe.input), ingredient); theRecipe.setIngredientPermutation(Collections.singletonList(theRecipe.input), ingredient);
arecipes.add(theRecipe); arecipes.add(theRecipe);
@ -120,8 +120,8 @@ public class AtomicReconstructorRecipeHandler extends TemplateRecipeHandler impl
public PositionedStack input; public PositionedStack input;
public CachedReconstructorRecipe(String input, String result){ public CachedReconstructorRecipe(String input, String result){
this.result = new PositionedStack(OreDictionary.getOres(result), 67+32, 19); this.result = new PositionedStack(OreDictionary.getOres(result, false), 67+32, 19);
this.input = new PositionedStack(OreDictionary.getOres(input), 5+32, 19); this.input = new PositionedStack(OreDictionary.getOres(input, false), 5+32, 19);
} }
@Override @Override

View file

@ -172,7 +172,7 @@ public class CrusherRecipeHandler extends TemplateRecipeHandler implements INeiR
public PositionedStack resultTwo; public PositionedStack resultTwo;
public int secondChance; public int secondChance;
public CachedCrush(ArrayList<ItemStack> in, ArrayList<ItemStack> outOne, ArrayList<ItemStack> outTwo, int secondChance, CrusherRecipeHandler handler){ public CachedCrush(List<ItemStack> in, List<ItemStack> outOne, List<ItemStack> outTwo, int secondChance, CrusherRecipeHandler handler){
boolean isDouble = handler instanceof CrusherDoubleRecipeHandler; boolean isDouble = handler instanceof CrusherDoubleRecipeHandler;
this.ingredient = new PositionedStack(in, isDouble ? 51 : 80, 21); this.ingredient = new PositionedStack(in, isDouble ? 51 : 80, 21);
this.resultOne = new PositionedStack(outOne, isDouble ? 38 : 66, 69); this.resultOne = new PositionedStack(outOne, isDouble ? 38 : 66, 69);

View file

@ -17,6 +17,7 @@ import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
public class CrusherRecipeRegistry{ public class CrusherRecipeRegistry{
@ -88,7 +89,7 @@ public class CrusherRecipeRegistry{
recipes.add(new CrusherRecipe(input, outputOne, outputOneAmount, "", 0, 0)); recipes.add(new CrusherRecipe(input, outputOne, outputOneAmount, "", 0, 0));
} }
public static ArrayList<ItemStack> getOutputOnes(ItemStack input){ public static List<ItemStack> getOutputOnes(ItemStack input){
CrusherRecipe recipe = getRecipeFromInput(input); CrusherRecipe recipe = getRecipeFromInput(input);
return recipe == null ? null : recipe.getRecipeOutputOnes(); return recipe == null ? null : recipe.getRecipeOutputOnes();
} }
@ -102,7 +103,7 @@ public class CrusherRecipeRegistry{
return null; return null;
} }
public static ArrayList<ItemStack> getOutputTwos(ItemStack input){ public static List<ItemStack> getOutputTwos(ItemStack input){
CrusherRecipe recipe = getRecipeFromInput(input); CrusherRecipe recipe = getRecipeFromInput(input);
return recipe == null ? null : recipe.getRecipeOutputTwos(); return recipe == null ? null : recipe.getRecipeOutputTwos();
} }
@ -132,36 +133,36 @@ public class CrusherRecipeRegistry{
this.outputTwoChance = outputTwoChance; this.outputTwoChance = outputTwoChance;
} }
public ArrayList<ItemStack> getRecipeOutputOnes(){ public List<ItemStack> getRecipeOutputOnes(){
if(this.outputOne == null || this.outputOne.isEmpty()){ if(this.outputOne == null || this.outputOne.isEmpty()){
return null; return null;
} }
ArrayList<ItemStack> stacks = OreDictionary.getOres(this.outputOne); List<ItemStack> stacks = OreDictionary.getOres(this.outputOne, false);
for(ItemStack stack : stacks){ for(ItemStack stack : stacks){
stack.stackSize = this.outputOneAmount; stack.stackSize = this.outputOneAmount;
} }
return stacks; return stacks;
} }
public ArrayList<ItemStack> getRecipeOutputTwos(){ public List<ItemStack> getRecipeOutputTwos(){
if(this.outputTwo == null || this.outputTwo.isEmpty()){ if(this.outputTwo == null || this.outputTwo.isEmpty()){
return null; return null;
} }
ArrayList<ItemStack> stacks = OreDictionary.getOres(this.outputTwo); List<ItemStack> stacks = OreDictionary.getOres(this.outputTwo, false);
for(ItemStack stack : stacks){ for(ItemStack stack : stacks){
stack.stackSize = this.outputTwoAmount; stack.stackSize = this.outputTwoAmount;
} }
return stacks; return stacks;
} }
public ArrayList<ItemStack> getRecipeInputs(){ public List<ItemStack> getRecipeInputs(){
if(this.input == null || this.input.isEmpty()){ if(this.input == null || this.input.isEmpty()){
return null; return null;
} }
ArrayList<ItemStack> stacks = OreDictionary.getOres(this.input); List<ItemStack> stacks = OreDictionary.getOres(this.input, false);
for(ItemStack stack : stacks){ for(ItemStack stack : stacks){
stack.stackSize = 1; stack.stackSize = 1;
} }

View file

@ -14,6 +14,7 @@ import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
import java.util.Objects; import java.util.Objects;
public class ReconstructorRecipeHandler{ public class ReconstructorRecipeHandler{
@ -63,7 +64,7 @@ public class ReconstructorRecipeHandler{
} }
public ItemStack getFirstOutput(){ public ItemStack getFirstOutput(){
ArrayList<ItemStack> stacks = OreDictionary.getOres(this.output); List<ItemStack> stacks = OreDictionary.getOres(this.output, false);
if(stacks != null && !stacks.isEmpty()){ if(stacks != null && !stacks.isEmpty()){
return stacks.get(0); return stacks.get(0);
} }

View file

@ -21,7 +21,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import java.util.ArrayList; import java.util.List;
public class TileEntityGrinder extends TileEntityInventoryBase implements IEnergyReceiver{ public class TileEntityGrinder extends TileEntityInventoryBase implements IEnergyReceiver{
@ -136,10 +136,10 @@ public class TileEntityGrinder extends TileEntityInventoryBase implements IEnerg
public boolean canCrushOn(int theInput, int theFirstOutput, int theSecondOutput){ public boolean canCrushOn(int theInput, int theFirstOutput, int theSecondOutput){
if(this.slots[theInput] != null){ if(this.slots[theInput] != null){
ArrayList<ItemStack> outputOnes = CrusherRecipeRegistry.getOutputOnes(this.slots[theInput]); List<ItemStack> outputOnes = CrusherRecipeRegistry.getOutputOnes(this.slots[theInput]);
if(outputOnes != null && !outputOnes.isEmpty()){ if(outputOnes != null && !outputOnes.isEmpty()){
ItemStack outputOne = outputOnes.get(0); ItemStack outputOne = outputOnes.get(0);
ArrayList<ItemStack> outputTwos = CrusherRecipeRegistry.getOutputTwos(this.slots[theInput]); List<ItemStack> outputTwos = CrusherRecipeRegistry.getOutputTwos(this.slots[theInput]);
ItemStack outputTwo = outputTwos == null ? null : outputTwos.get(0); ItemStack outputTwo = outputTwos == null ? null : outputTwos.get(0);
if(outputOne != null){ if(outputOne != null){
if((this.slots[theFirstOutput] == null || (this.slots[theFirstOutput].isItemEqual(outputOne) && this.slots[theFirstOutput].stackSize <= this.slots[theFirstOutput].getMaxStackSize()-outputOne.stackSize)) && (outputTwo == null || (this.slots[theSecondOutput] == null || (this.slots[theSecondOutput].isItemEqual(outputTwo) && this.slots[theSecondOutput].stackSize <= this.slots[theSecondOutput].getMaxStackSize()-outputTwo.stackSize)))){ if((this.slots[theFirstOutput] == null || (this.slots[theFirstOutput].isItemEqual(outputOne) && this.slots[theFirstOutput].stackSize <= this.slots[theFirstOutput].getMaxStackSize()-outputOne.stackSize)) && (outputTwo == null || (this.slots[theSecondOutput] == null || (this.slots[theSecondOutput].isItemEqual(outputTwo) && this.slots[theSecondOutput].stackSize <= this.slots[theSecondOutput].getMaxStackSize()-outputTwo.stackSize)))){
@ -160,7 +160,7 @@ public class TileEntityGrinder extends TileEntityInventoryBase implements IEnerg
} }
public void finishCrushing(int theInput, int theFirstOutput, int theSecondOutput){ public void finishCrushing(int theInput, int theFirstOutput, int theSecondOutput){
ArrayList<ItemStack> outputOnes = CrusherRecipeRegistry.getOutputOnes(this.slots[theInput]); List<ItemStack> outputOnes = CrusherRecipeRegistry.getOutputOnes(this.slots[theInput]);
if(outputOnes != null){ if(outputOnes != null){
ItemStack outputOne = outputOnes.get(0); ItemStack outputOne = outputOnes.get(0);
if(outputOne != null){ if(outputOne != null){
@ -173,7 +173,7 @@ public class TileEntityGrinder extends TileEntityInventoryBase implements IEnerg
} }
} }
ArrayList<ItemStack> outputTwos = CrusherRecipeRegistry.getOutputTwos(this.slots[theInput]); List<ItemStack> outputTwos = CrusherRecipeRegistry.getOutputTwos(this.slots[theInput]);
if(outputTwos != null){ if(outputTwos != null){
ItemStack outputTwo = outputTwos.get(0); ItemStack outputTwo = outputTwos.get(0);
if(outputTwo != null){ if(outputTwo != null){