aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTechnus <daniel112092@gmail.com>2017-05-28 10:48:35 +0200
committerTechnus <daniel112092@gmail.com>2017-05-28 10:48:35 +0200
commitd37b7bb680d8baf71a657655be18f3c0d679fc84 (patch)
treeb2454f692e0501144a7dbb619349070792f1c1c5
parente3581dee99f21dc0da66c3eaaaff8cf82b20fb16 (diff)
downloadGT5-Unofficial-d37b7bb680d8baf71a657655be18f3c0d679fc84.tar.gz
GT5-Unofficial-d37b7bb680d8baf71a657655be18f3c0d679fc84.tar.bz2
GT5-Unofficial-d37b7bb680d8baf71a657655be18f3c0d679fc84.zip
Properly implement quantization i hope?
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalPrimitive.java5
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java12
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java5
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalDefinition.java4
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java88
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) {