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.util.EnumChatFormatting;
import java.util.ArrayList;
import java.util.List;
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));
break;
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));
break;
}
@ -107,7 +107,7 @@ public class PageCrusherRecipe extends BookletPage{
@Override
public void updateScreen(int ticksElapsed){
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()))){
this.recipePos = 0;
}

View file

@ -21,7 +21,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.oredict.OreDictionary;
import java.util.ArrayList;
import java.util.List;
public class PageReconstructor extends BookletPage{
@ -96,10 +96,10 @@ public class PageReconstructor extends BookletPage{
private ItemStack getInputForOutput(ItemStack output){
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){
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){
ItemStack input = inputs.get(0).copy();
input.stackSize = 1;

View file

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

View file

@ -172,7 +172,7 @@ public class CrusherRecipeHandler extends TemplateRecipeHandler implements INeiR
public PositionedStack resultTwo;
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;
this.ingredient = new PositionedStack(in, isDouble ? 51 : 80, 21);
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 java.util.ArrayList;
import java.util.List;
public class CrusherRecipeRegistry{
@ -88,7 +89,7 @@ public class CrusherRecipeRegistry{
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);
return recipe == null ? null : recipe.getRecipeOutputOnes();
}
@ -102,7 +103,7 @@ public class CrusherRecipeRegistry{
return null;
}
public static ArrayList<ItemStack> getOutputTwos(ItemStack input){
public static List<ItemStack> getOutputTwos(ItemStack input){
CrusherRecipe recipe = getRecipeFromInput(input);
return recipe == null ? null : recipe.getRecipeOutputTwos();
}
@ -132,36 +133,36 @@ public class CrusherRecipeRegistry{
this.outputTwoChance = outputTwoChance;
}
public ArrayList<ItemStack> getRecipeOutputOnes(){
public List<ItemStack> getRecipeOutputOnes(){
if(this.outputOne == null || this.outputOne.isEmpty()){
return null;
}
ArrayList<ItemStack> stacks = OreDictionary.getOres(this.outputOne);
List<ItemStack> stacks = OreDictionary.getOres(this.outputOne, false);
for(ItemStack stack : stacks){
stack.stackSize = this.outputOneAmount;
}
return stacks;
}
public ArrayList<ItemStack> getRecipeOutputTwos(){
public List<ItemStack> getRecipeOutputTwos(){
if(this.outputTwo == null || this.outputTwo.isEmpty()){
return null;
}
ArrayList<ItemStack> stacks = OreDictionary.getOres(this.outputTwo);
List<ItemStack> stacks = OreDictionary.getOres(this.outputTwo, false);
for(ItemStack stack : stacks){
stack.stackSize = this.outputTwoAmount;
}
return stacks;
}
public ArrayList<ItemStack> getRecipeInputs(){
public List<ItemStack> getRecipeInputs(){
if(this.input == null || this.input.isEmpty()){
return null;
}
ArrayList<ItemStack> stacks = OreDictionary.getOres(this.input);
List<ItemStack> stacks = OreDictionary.getOres(this.input, false);
for(ItemStack stack : stacks){
stack.stackSize = 1;
}

View file

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

View file

@ -21,7 +21,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection;
import java.util.ArrayList;
import java.util.List;
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){
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()){
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);
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)))){
@ -160,7 +160,7 @@ public class TileEntityGrinder extends TileEntityInventoryBase implements IEnerg
}
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){
ItemStack outputOne = outputOnes.get(0);
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){
ItemStack outputTwo = outputTwos.get(0);
if(outputTwo != null){