diff options
5 files changed, 60 insertions, 54 deletions
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalPrimitive.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalPrimitive.java index 6e28e41b48..abc8e4a788 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalPrimitive.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalPrimitive.java @@ -3,6 +3,7 @@ package com.github.technus.tectech.elementalMatter.classes; import com.github.technus.tectech.TecTech; import com.github.technus.tectech.auxiliary.TecTechConfig; import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition; +import com.github.technus.tectech.elementalMatter.interfaces.iExchangeInfo; import net.minecraft.client.Minecraft; import net.minecraft.crash.CrashReport; import net.minecraft.item.ItemStack; @@ -126,12 +127,12 @@ public abstract class cElementalPrimitive extends cElementalDefinition { } @Override - public FluidStack someAmountIntoFluidStack() { + public iExchangeInfo someAmountIntoFluidStack() { return null; } @Override - public ItemStack someAmountIntoItemsStack() { + public iExchangeInfo someAmountIntoItemsStack() { return null; } diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java index 8f745ae3b0..44f09468a8 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java @@ -443,17 +443,13 @@ public final class dAtomDefinition extends cElementalDefinition { //} @Override - public FluidStack someAmountIntoFluidStack() { - aFluidDequantizationInfo fdq= transformation.fluidDequantization.get(this); - if(fdq!=null) return fdq.output(); - return null; + public aFluidDequantizationInfo someAmountIntoFluidStack() { + return transformation.fluidDequantization.get(this); } @Override - public ItemStack someAmountIntoItemsStack() { - aItemDequantizationInfo idq= transformation.itemDequantization.get(this); - if(idq!=null) return idq.output(); - return null; + public aItemDequantizationInfo someAmountIntoItemsStack() { + return transformation.itemDequantization.get(this); } private final static class nomenclature { diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java index 83424cdfab..cc9579568c 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java @@ -4,6 +4,7 @@ import com.github.technus.tectech.TecTech; import com.github.technus.tectech.auxiliary.TecTechConfig; import com.github.technus.tectech.elementalMatter.classes.*; import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition; +import com.github.technus.tectech.elementalMatter.interfaces.iExchangeInfo; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; @@ -275,12 +276,12 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi //} @Override - public ItemStack someAmountIntoItemsStack() { + public iExchangeInfo someAmountIntoItemsStack() { return null; } @Override - public FluidStack someAmountIntoFluidStack() { + public iExchangeInfo someAmountIntoFluidStack() { return null; } diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalDefinition.java index d5b149c51d..e90b6d2ae6 100644 --- a/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalDefinition.java +++ b/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalDefinition.java @@ -41,9 +41,9 @@ public interface iElementalDefinition extends Comparable<iElementalDefinition>,C cElementalDefinitionStackMap getSubParticles();//contents... null if none - ItemStack someAmountIntoItemsStack(); + iExchangeInfo someAmountIntoItemsStack(); - FluidStack someAmountIntoFluidStack(); + iExchangeInfo someAmountIntoFluidStack(); NBTTagCompound toNBT(); diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java index c5ccf73946..11a87ef867 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java @@ -61,7 +61,7 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock @Override public void construct(int qty) { - StructureBuilder(shape, blockType, blockMeta,1, 1, 0, getBaseMetaTileEntity()); + StructureBuilder(shape, blockType, blockMeta, 1, 1, 0, getBaseMetaTileEntity()); } @Override @@ -79,32 +79,34 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock ItemStack[] inI = getStoredInputs().toArray(new ItemStack[0]); if (inI.length > 0) { for (ItemStack is : inI) { - //TODO Here item quantizaiton - - int[] oreIDs = OreDictionary.getOreIDs(is); - if (TecTechConfig.DEBUG_MODE) - TecTech.Logger.info("Quantifier-recipe " + is.getItem().getUnlocalizedName() + "." + is.getItemDamage() + " " + is.getDisplayName()); - for (int ID : oreIDs) { + //ITEM STACK quantization + aItemQuantizationInfo aIQI = bTransformationInfo.itemQuantization.get(new aItemQuantizationInfo(is, false, null)); + if (aIQI == null) { + aIQI = bTransformationInfo.itemQuantization.get(new aItemQuantizationInfo(is, true, null)); + } + if (aIQI == null) { + //ORE DICT quantization + int[] oreIDs = OreDictionary.getOreIDs(is); + for (int ID : oreIDs) { + if (TecTechConfig.DEBUG_MODE) + TecTech.Logger.info("Quantifier-Ore-recipe " + is.getItem().getUnlocalizedName() + "." + is.getItemDamage() + " " + OreDictionary.getOreName(ID)); + aOredictQuantizationInfo aOQI = bTransformationInfo.oredictQuantization.get(ID); + if (aOQI == null) continue; + iHasElementalDefinition into = aOQI.output(); + if (into != null && isInputEqual(true, false, + nothingF, new ItemStack[]{new ItemStack(is.getItem(), aOQI.amount, is.getItemDamage())}, null, inI)) { + startRecipe(into); + return true; + } + } + } else { + //Do ITEM STACK quantization if (TecTechConfig.DEBUG_MODE) - TecTech.Logger.info("Quantifier-recipe " + is.getItem().getUnlocalizedName() + "." + is.getItemDamage() + " " + OreDictionary.getOreName(ID)); - aOredictQuantizationInfo aOQI = bTransformationInfo.oredictQuantization.get(ID); - if(aOQI==null) continue; - iHasElementalDefinition into = aOQI.output(); + TecTech.Logger.info("Quantifier-Item-recipe " + is.getItem().getUnlocalizedName() + "." + is.getItemDamage()); + iHasElementalDefinition into = aIQI.output(); if (into != null && isInputEqual(true, false, - nothingF, new ItemStack[]{new ItemStack(is.getItem(), aOQI.amount, is.getItemDamage())}, null, inI)) { - mMaxProgresstime = 20; - mEfficiencyIncrease = 10000; - float mass = into.getMass(); - float euMult = mass / refMass; - eAmpereFlow = (int) Math.ceil(euMult); - if (mass > refUnstableMass) { - mEUt = (int) -V[9]; - } else { - mEUt = (int) -V[8]; - } - outputEM = new cElementalInstanceStackMap[]{ - new cElementalInstanceStackMap(new cElementalInstanceStack(into.getDefinition(),into.getAmount())) - }; + nothingF, new ItemStack[]{new ItemStack(is.getItem(), aIQI.input().stackSize, is.getItemDamage())}, null, inI)) { + startRecipe(into); return true; } } @@ -113,24 +115,12 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock FluidStack[] inF = getStoredFluids().toArray(new FluidStack[0]); if (inF.length > 0) { for (FluidStack fs : inF) { - aFluidQuantizationInfo aFQI =bTransformationInfo.fluidQuantization.get(fs.getFluid().getID()); - if(aFQI==null)continue; + aFluidQuantizationInfo aFQI = bTransformationInfo.fluidQuantization.get(fs.getFluid().getID()); + if (aFQI == null) continue; iHasElementalDefinition into = aFQI.output(); if (into != null && fs.amount >= aFQI.input().amount && isInputEqual(true, false, new FluidStack[]{aFQI.input()}, nothingI, inF, (ItemStack[]) null)) { - mMaxProgresstime = 20; - mEfficiencyIncrease = 10000; - float mass = into.getMass(); - float euMult = mass / refMass; - eAmpereFlow = (int) Math.ceil(euMult); - if (mass > refUnstableMass) { - mEUt = (int) -V[9]; - } else { - mEUt = (int) -V[8]; - } - outputEM = new cElementalInstanceStackMap[]{ - new cElementalInstanceStackMap(new cElementalInstanceStack(into.getDefinition(),into.getAmount())) - }; + startRecipe(into); return true; } } @@ -141,6 +131,24 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock return false; } + private void startRecipe(iHasElementalDefinition into) { + mMaxProgresstime = 20; + mEfficiencyIncrease = 10000; + float mass = into.getMass(); + float euMult = mass / refMass; + eAmpereFlow = (int) Math.ceil(euMult); + if (mass > refUnstableMass) { + mEUt = (int) -V[9]; + } else { + mEUt = (int) -V[8]; + } + outputEM = new cElementalInstanceStackMap[]{ + into instanceof cElementalInstanceStack ? + new cElementalInstanceStackMap((cElementalInstanceStack) into) : + new cElementalInstanceStackMap(new cElementalInstanceStack(into.getDefinition(), into.getAmount())) + }; + } + @Override public void EM_outputFunction() { if (eOutputHatches.size() < 1) { |