diff options
Diffstat (limited to 'src/main/java/gregtech/api/util')
-rw-r--r-- | src/main/java/gregtech/api/util/GT_OreDictUnificator.java | 45 | ||||
-rw-r--r-- | src/main/java/gregtech/api/util/GT_Recipe.java | 51 |
2 files changed, 82 insertions, 14 deletions
diff --git a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java index 33149eb801..9d9b45cecf 100644 --- a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java +++ b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java @@ -165,16 +165,21 @@ public class GT_OreDictUnificator { if (!GT_Utility.areStacksEqual(tStack0, tStack1)) { GT_ItemStack tGTStack1 = new GT_ItemStack(tStack1); List<ItemStack> list = sUnificationTable.get(tGTStack1); - if (list == null) sUnificationTable.put(tGTStack1, list = new ArrayList<ItemStack>()); - if (!list.contains(tStack0)) list.add(tStack0); + if (list == null) + sUnificationTable.put(tGTStack1, list = new ArrayList<ItemStack>()); + if (!list.contains(tStack0)) + list.add(tStack0); } } } } ItemStack[] aStacks = {}; - if (obj instanceof ItemStack) aStacks = new ItemStack[]{(ItemStack) obj}; - else if (obj instanceof ItemStack[]) aStacks = (ItemStack[]) obj; - else if (obj instanceof List) aStacks = (ItemStack[]) ((List)obj).toArray(new ItemStack[0]); + if (obj instanceof ItemStack) + aStacks = new ItemStack[]{(ItemStack) obj}; + else if (obj instanceof ItemStack[]) + aStacks = (ItemStack[]) obj; + else if (obj instanceof List) aStacks = (ItemStack[]) + ((List)obj).toArray(new ItemStack[0]); List<ItemStack> rList = new ArrayList<ItemStack>(); for (ItemStack aStack : aStacks) { rList.add(aStack); @@ -230,7 +235,8 @@ public class GT_OreDictUnificator { } public static void addAssociation(OrePrefixes aPrefix, Materials aMaterial, ItemStack aStack, boolean aBlackListed) { - if (aPrefix == null || aMaterial == null || GT_Utility.isStackInvalid(aStack)) return; + if (aPrefix == null || aMaterial == null || GT_Utility.isStackInvalid(aStack)) + return; if (Items.feather.getDamage(aStack) == W) for (byte i = 0; i < 16; i++) setItemData(GT_Utility.copyAmountAndMetaData(1, i, aStack), new ItemData(aPrefix, aMaterial, aBlackListed)); setItemData(aStack, new ItemData(aPrefix, aMaterial, aBlackListed)); @@ -256,8 +262,13 @@ public class GT_OreDictUnificator { } public static boolean isItemStackDye(ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack)) return false; - for (Dyes tDye : Dyes.VALUES) if (isItemStackInstanceOf(aStack, tDye.toString())) return true; + if (GT_Utility.isStackInvalid(aStack)) + return false; + + for (Dyes tDye : Dyes.VALUES) + if (isItemStackInstanceOf(aStack, tDye.toString())) + return true; + return false; } @@ -266,11 +277,20 @@ public class GT_OreDictUnificator { } public static boolean registerOre(Object aName, ItemStack aStack) { - if (aName == null || GT_Utility.isStackInvalid(aStack)) return false; + if (aName == null || GT_Utility.isStackInvalid(aStack)) + return false; + String tName = aName.toString(); - if (GT_Utility.isStringInvalid(tName)) return false; + + if (GT_Utility.isStringInvalid(tName)) + return false; + ArrayList<ItemStack> tList = getOres(tName); - for (int i = 0; i < tList.size(); i++) if (GT_Utility.areStacksEqual(tList.get(i), aStack, true)) return false; + + for (int i = 0; i < tList.size(); i++) + if (GT_Utility.areStacksEqual(tList.get(i), aStack, true)) + return false; + isRegisteringOre++; OreDictionary.registerOre(tName, GT_Utility.copyAmount(1, aStack)); isRegisteringOre--; @@ -286,7 +306,8 @@ public class GT_OreDictUnificator { } public static void resetUnificationEntries() { - for (ItemData tPrefixMaterial : sItemStack2DataMap.values()) tPrefixMaterial.mUnificationTarget = null; + for (ItemData tPrefixMaterial : sItemStack2DataMap.values()) + tPrefixMaterial.mUnificationTarget = null; } public static ItemStack getGem(MaterialStack aMaterial) { diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java index 2e420f13cd..234dc994d8 100644 --- a/src/main/java/gregtech/api/util/GT_Recipe.java +++ b/src/main/java/gregtech/api/util/GT_Recipe.java @@ -19,6 +19,7 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidContainerItem;
+import net.minecraftforge.oredict.OreDictionary;
import java.util.*;
@@ -583,7 +584,6 @@ public class GT_Recipe implements Comparable<GT_Recipe> { public static final GT_Recipe_Map_Fuel sHugeNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.fluidnaquadahreactor", "Naquadah Reactor MkIII", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Fuel sExtremeNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.hugenaquadahreactor", "Naquadah Reactor MkIV", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Fuel sUltraHugeNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.extrahugenaquadahreactor", "Naquadah Reactor MkV", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
- //public static final GT_Recipe_Map_Fuel sUltraHugeNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.ultrahugenaquadahreactor", "Naquadah Reactor MkV", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_LargeBoilerFakeFuels sLargeBoilerFakeFuels = new GT_Recipe_Map_LargeBoilerFakeFuels();
/**
@@ -1296,24 +1296,71 @@ public class GT_Recipe implements Comparable<GT_Recipe> { * Special Class for Assembler handling.
*/
public static class GT_Recipe_Map_Assembler extends GT_Recipe_Map {
+
public GT_Recipe_Map_Assembler(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed) {
super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed);
}
@Override
public GT_Recipe findRecipe(IHasWorldObjectAndCoords aTileEntity, GT_Recipe aRecipe, boolean aNotUnificated, long aVoltage, FluidStack[] aFluids, ItemStack aSpecialSlot, ItemStack... aInputs) {
- GT_Recipe rRecipe = super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot, aInputs);
+
+ GT_Recipe rRecipe = super.findRecipe(aTileEntity, aRecipe, true, aVoltage, aFluids, aSpecialSlot, aInputs);
+/*
+
+
+ Doesnt work, keep it as a reminder tho
+
+ if (rRecipe == null){
+ Set<ItemStack> aInputs2 = new TreeSet<ItemStack>();
+ for (ItemStack aInput : aInputs) {
+ aInputs2.add(aInput);
+ }
+
+ for (ItemStack aInput : aInputs) {
+ aInputs2.remove(aInput);
+ int[] oredictIDs = OreDictionary.getOreIDs(aInput);
+ if ( oredictIDs.length > 1){
+ for (final int i : oredictIDs){
+ final ItemStack[] oredictIS = (ItemStack[]) OreDictionary.getOres(OreDictionary.getOreName(i)).toArray();
+ if (oredictIS != null && oredictIS.length > 1){
+ for (final ItemStack IS : oredictIS){
+ aInputs2.add(IS);
+ ItemStack[] temp = (ItemStack[]) aInputs2.toArray();
+ rRecipe = super.findRecipe(aTileEntity, aRecipe, aNotUnificated, aVoltage, aFluids, aSpecialSlot,temp);
+ if(rRecipe!= null){
+ break;
+ }
+ else {
+ aInputs2.remove(IS);
+ }
+ }
+ if(rRecipe!= null)
+ break;
+ }
+ }
+ if(rRecipe!= null)
+ break;
+ }else
+ aInputs2.add(aInput);
+ if(rRecipe!= null)
+ break;
+ }
+ }
+*/
if (aInputs == null || aInputs.length <= 0 || aInputs[0] == null || rRecipe == null || !GregTech_API.sPostloadFinished)
return rRecipe;
+
for (ItemStack aInput : aInputs) {
if (ItemList.Paper_Printed_Pages.isStackEqual(aInput, false, true)) {
rRecipe = rRecipe.copy();
rRecipe.mCanBeBuffered = false;
rRecipe.mOutputs[0].setTagCompound(aInput.getTagCompound());
}
+
}
return rRecipe;
}
+
}
/**
|