aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorTechnus <daniel112092@gmail.com>2017-05-26 19:21:47 +0200
committerTechnus <daniel112092@gmail.com>2017-05-26 19:21:47 +0200
commite3581dee99f21dc0da66c3eaaaff8cf82b20fb16 (patch)
tree517bb7714294650984e68eb23168456ea312386c /src/main/java
parente516f0b07c76cd1d5a8b6c21eece019f8c935000 (diff)
downloadGT5-Unofficial-e3581dee99f21dc0da66c3eaaaff8cf82b20fb16.tar.gz
GT5-Unofficial-e3581dee99f21dc0da66c3eaaaff8cf82b20fb16.tar.bz2
GT5-Unofficial-e3581dee99f21dc0da66c3eaaaff8cf82b20fb16.zip
cleanup quantization/dequantization
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/classes/aFluidDequantizationInfo.java49
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/classes/aFluidQuantizationInfo.java49
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/classes/aItemDequantizationInfo.java46
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/classes/aItemQuantizationInfo.java64
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/classes/aOredictDequantizationInfo.java57
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/classes/aOredictQuantizationInfo.java56
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/classes/bTransformationInfo.java82
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinition.java2
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStack.java2
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalPrimitive.java7
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/definitions/cPrimitiveDefinition.java4
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/definitions/dAtomDefinition.java174
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/definitions/dHadronDefinition.java6
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalDefinition.java8
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalInstanceContainer.java2
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iExchangeInfo.java11
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iHasElementalDefinition.java8
-rw-r--r--src/main/java/com/github/technus/tectech/loader/MachineLoader.java1
-rw-r--r--src/main/java/com/github/technus/tectech/loader/MainLoader.java7
-rw-r--r--src/main/java/com/github/technus/tectech/loader/RecipeLoader.java3
-rw-r--r--src/main/java/com/github/technus/tectech/magicAddon/EssentiaCompat.java (renamed from src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/EssentiaCompat.java)2
-rw-r--r--src/main/java/com/github/technus/tectech/magicAddon/EssentiaCompatEnabled.java (renamed from src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/EssentiaCompatEnabled.java)2
-rw-r--r--src/main/java/com/github/technus/tectech/magicAddon/definitions/dComplexAspectDefinition.java4
-rw-r--r--src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java16
-rw-r--r--src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java10
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java280
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_MultiblockBase_EM.java28
30 files changed, 675 insertions, 311 deletions
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aFluidDequantizationInfo.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aFluidDequantizationInfo.java
new file mode 100644
index 0000000000..9126ae2073
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aFluidDequantizationInfo.java
@@ -0,0 +1,49 @@
+package com.github.technus.tectech.elementalMatter.classes;
+
+import com.github.technus.tectech.elementalMatter.interfaces.iExchangeInfo;
+import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
+
+/**
+ * Created by Tec on 23.05.2017.
+ */
+public class aFluidDequantizationInfo implements iExchangeInfo {
+ private final iHasElementalDefinition in;
+ private final FluidStack out;
+
+ public aFluidDequantizationInfo(iHasElementalDefinition emIn, FluidStack fluidStackOut){
+ in=emIn;
+ out=fluidStackOut;
+ }
+
+ public aFluidDequantizationInfo(iHasElementalDefinition emIn ,int fluidID,int fluidAmount) {
+ in = emIn;
+ out = new FluidStack(fluidID, fluidAmount);
+ }
+
+ public aFluidDequantizationInfo(iHasElementalDefinition emIn, Fluid fluid, int fluidAmount){
+ in=emIn;
+ out=new FluidStack(fluid,fluidAmount);
+ }
+
+ @Override
+ public iHasElementalDefinition input() {
+ return in.clone();//MEH!
+ }
+
+ @Override
+ public FluidStack output() {
+ return out.copy();
+ }
+
+ @Override
+ public int hashCode() {
+ return in.getDefinition().hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return obj instanceof aFluidDequantizationInfo && hashCode() == obj.hashCode();
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aFluidQuantizationInfo.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aFluidQuantizationInfo.java
new file mode 100644
index 0000000000..1c26cd2747
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aFluidQuantizationInfo.java
@@ -0,0 +1,49 @@
+package com.github.technus.tectech.elementalMatter.classes;
+
+import com.github.technus.tectech.elementalMatter.interfaces.iExchangeInfo;
+import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
+
+/**
+ * Created by Tec on 23.05.2017.
+ */
+public class aFluidQuantizationInfo implements iExchangeInfo {
+ private final FluidStack in;
+ private final iHasElementalDefinition out;
+
+ public aFluidQuantizationInfo(FluidStack fluidStackIn, iHasElementalDefinition emOut){
+ in=fluidStackIn;
+ out=emOut;
+ }
+
+ public aFluidQuantizationInfo(int fluidID,int fluidAmount, iHasElementalDefinition emOut){
+ in=new FluidStack(fluidID,fluidAmount);
+ out=emOut;
+ }
+
+ public aFluidQuantizationInfo(Fluid fluid, int fluidAmount, iHasElementalDefinition emOut){
+ in=new FluidStack(fluid,fluidAmount);
+ out=emOut;
+ }
+
+ @Override
+ public FluidStack input() {
+ return in.copy();
+ }
+
+ @Override
+ public iHasElementalDefinition output() {
+ return out.clone();
+ }
+
+ @Override
+ public int hashCode() {
+ return in.getFluidID();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return obj instanceof aFluidQuantizationInfo && hashCode() == obj.hashCode();
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aItemDequantizationInfo.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aItemDequantizationInfo.java
new file mode 100644
index 0000000000..08162a234c
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aItemDequantizationInfo.java
@@ -0,0 +1,46 @@
+package com.github.technus.tectech.elementalMatter.classes;
+
+import com.github.technus.tectech.elementalMatter.interfaces.iExchangeInfo;
+import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GT_OreDictUnificator;
+import net.minecraft.item.ItemStack;
+
+/**
+ * Created by Tec on 23.05.2017.
+ */
+public class aItemDequantizationInfo implements iExchangeInfo {
+ private final iHasElementalDefinition in;
+ private final ItemStack out;
+
+ public aItemDequantizationInfo(iHasElementalDefinition emIn, ItemStack itemStackOut){
+ in=emIn;
+ out=itemStackOut;
+ }
+
+ public aItemDequantizationInfo(iHasElementalDefinition emIn, OrePrefixes prefix, Materials material, int amount) {
+ in = emIn;
+ out = GT_OreDictUnificator.get(prefix, material, amount);
+ }
+
+ @Override
+ public iHasElementalDefinition input() {
+ return in.clone();
+ }
+
+ @Override
+ public ItemStack output() {
+ return out.copy();
+ }
+
+ @Override
+ public int hashCode() {
+ return in.getDefinition().hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return obj instanceof aItemDequantizationInfo && hashCode() == obj.hashCode();
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aItemQuantizationInfo.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aItemQuantizationInfo.java
new file mode 100644
index 0000000000..c58fd286b7
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aItemQuantizationInfo.java
@@ -0,0 +1,64 @@
+package com.github.technus.tectech.elementalMatter.classes;
+
+import com.github.technus.tectech.elementalMatter.interfaces.iExchangeInfo;
+import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition;
+import cpw.mods.fml.common.registry.GameRegistry;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GT_OreDictUnificator;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.oredict.OreDictionary;
+
+/**
+ * Created by Tec on 23.05.2017.
+ */
+public class aItemQuantizationInfo implements iExchangeInfo {
+ private final ItemStack in;
+ private final boolean skipNBT;
+ private final iHasElementalDefinition out;
+
+ public aItemQuantizationInfo(ItemStack itemStackIn, boolean skipNBT, iHasElementalDefinition emOut) {
+ in = itemStackIn;
+ out = emOut;
+ this.skipNBT = skipNBT;
+ }
+
+ public aItemQuantizationInfo(OrePrefixes prefix, Materials material, int amount, boolean skipNBT, iHasElementalDefinition emOut) {
+ in = GT_OreDictUnificator.get(prefix, material, amount);
+ out = emOut;
+ this.skipNBT = skipNBT;
+ }
+
+ @Override
+ public ItemStack input() {
+ return in.copy();
+ }
+
+ @Override
+ public iHasElementalDefinition output() {
+ return out.clone();
+ }
+
+ @Override
+ public int hashCode() {
+ return (GameRegistry.findUniqueIdentifierFor(in.getItem())+":"+in.getUnlocalizedName()+":"+in.getItemDamage()).hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if(obj instanceof aItemQuantizationInfo){
+ //alias
+ ItemStack b=((aItemQuantizationInfo) obj).in;
+ if(!in.getUnlocalizedName().equals(((aItemQuantizationInfo) obj).in.getUnlocalizedName())) return false;
+
+ if(!GameRegistry.findUniqueIdentifierFor(in.getItem()).equals(
+ GameRegistry.findUniqueIdentifierFor(((aItemQuantizationInfo) obj).in.getItem()))) return false;
+
+ if(in.getItemDamage() != OreDictionary.WILDCARD_VALUE && b.getItemDamage() != OreDictionary.WILDCARD_VALUE) {
+ if (in.getItemDamage() != b.getItemDamage()) return false;
+ }
+ return skipNBT || ItemStack.areItemStackTagsEqual(in, b);
+ }
+ return false;
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aOredictDequantizationInfo.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aOredictDequantizationInfo.java
new file mode 100644
index 0000000000..1d2c2ca362
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aOredictDequantizationInfo.java
@@ -0,0 +1,57 @@
+package com.github.technus.tectech.elementalMatter.classes;
+
+import com.github.technus.tectech.elementalMatter.interfaces.iExchangeInfo;
+import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GT_OreDictUnificator;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.oredict.OreDictionary;
+
+/**
+ * Created by Tec on 23.05.2017.
+ */
+public class aOredictDequantizationInfo implements iExchangeInfo {
+ private final iHasElementalDefinition in;
+ public final int out;
+ public final int amount;
+
+ public aOredictDequantizationInfo(iHasElementalDefinition emIn, int id, int qty) {
+ in = emIn;
+ out = id;
+ amount = qty;
+ }
+
+ public aOredictDequantizationInfo(iHasElementalDefinition emIn, String name, int qty) {
+ in = emIn;
+ out = OreDictionary.getOreID(name);
+ amount = qty;
+ }
+
+ public aOredictDequantizationInfo(iHasElementalDefinition emIn, OrePrefixes prefix, Materials material, int qty) {
+ in = emIn;
+ out = OreDictionary.getOreID(prefix.name() + material.mName);
+ amount = qty;
+ }
+
+ @Override
+ public iHasElementalDefinition input() {
+ return in.clone();//MEH!
+ }
+
+ @Override
+ public Integer output() {
+ return out;
+ }
+
+ @Override
+ public int hashCode() {
+ return in.getDefinition().hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return obj instanceof aOredictDequantizationInfo && hashCode() == obj.hashCode();
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/aOredictQuantizationInfo.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aOredictQuantizationInfo.java
new file mode 100644
index 0000000000..ccad2c9429
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/aOredictQuantizationInfo.java
@@ -0,0 +1,56 @@
+package com.github.technus.tectech.elementalMatter.classes;
+
+import com.github.technus.tectech.elementalMatter.interfaces.iExchangeInfo;
+import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.oredict.OreDictionary;
+
+/**
+ * Created by Tec on 23.05.2017.
+ */
+public class aOredictQuantizationInfo implements iExchangeInfo {
+ public final int in;
+ public final int amount;
+ private final iHasElementalDefinition out;
+
+ public aOredictQuantizationInfo(int id, int qty, iHasElementalDefinition emOut){
+ in=id;
+ amount=qty;
+ out=emOut;
+ }
+
+ public aOredictQuantizationInfo(String name, int qty, iHasElementalDefinition emOut){
+ in=OreDictionary.getOreID(name);
+ amount=qty;
+ out=emOut;
+ }
+
+ public aOredictQuantizationInfo( OrePrefixes prefix, Materials material, int qty, iHasElementalDefinition emOut){
+ in=OreDictionary.getOreID(prefix.name() + material.mName);
+ amount=qty;
+ out=emOut;
+ }
+
+ @Override
+ public Integer input() {
+ return in;
+ }
+
+ @Override
+ public iHasElementalDefinition output() {
+ return out.clone();
+ }
+
+ @Override
+ public int hashCode() {
+ return in;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return obj instanceof aOredictQuantizationInfo && hashCode() == obj.hashCode();
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/bTransformationInfo.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/bTransformationInfo.java
new file mode 100644
index 0000000000..9c9b4779ff
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/bTransformationInfo.java
@@ -0,0 +1,82 @@
+package com.github.technus.tectech.elementalMatter.classes;
+
+import com.github.technus.tectech.elementalMatter.interfaces.iElementalDefinition;
+import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.oredict.OreDictionary;
+
+import java.util.HashMap;
+
+/**
+ * Created by Tec on 26.05.2017.
+ */
+public class bTransformationInfo {
+ final static public HashMap<Integer,aFluidQuantizationInfo> fluidQuantization=new HashMap<>(32);
+ public HashMap<iElementalDefinition,aFluidDequantizationInfo> fluidDequantization;
+
+ final static public HashMap<aItemQuantizationInfo,aItemQuantizationInfo> itemQuantization=new HashMap<>(32);
+ public HashMap<iElementalDefinition,aItemDequantizationInfo> itemDequantization;
+
+ final static public HashMap<Integer,aOredictQuantizationInfo> oredictQuantization=new HashMap<>(32);
+ public HashMap<iElementalDefinition,aOredictDequantizationInfo> oredictDequantization;
+
+ public bTransformationInfo(){
+ fluidDequantization=new HashMap<>();
+ itemDequantization=new HashMap<>();
+ oredictDequantization=new HashMap<>();
+ }
+
+ public bTransformationInfo(int fluidCap,int itemCap, int oreCap){
+ if(fluidCap>0)fluidDequantization=new HashMap<>(fluidCap);
+ if(itemCap>0)itemDequantization=new HashMap<>(itemCap);
+ if(oreCap>0)oredictDequantization=new HashMap<>(oreCap);
+ }
+
+ public void addFluid(iHasElementalDefinition em, FluidStack fluidStack){
+ fluidQuantization.put(fluidStack.getFluidID(),new aFluidQuantizationInfo(fluidStack,em));
+ fluidDequantization.put(em.getDefinition(),new aFluidDequantizationInfo(em,fluidStack));
+ }
+
+ public void addFluid(iHasElementalDefinition em ,int fluidID,int fluidAmount) {
+ fluidQuantization.put(fluidID,new aFluidQuantizationInfo(fluidID,fluidAmount,em));
+ fluidDequantization.put(em.getDefinition(),new aFluidDequantizationInfo(em,fluidID,fluidAmount));
+ }
+
+ public void addFluid(iHasElementalDefinition em, Fluid fluid, int fluidAmount){
+ fluidQuantization.put(fluid.getID(),new aFluidQuantizationInfo(fluid,fluidAmount,em));
+ fluidDequantization.put(em.getDefinition(),new aFluidDequantizationInfo(em,fluid,fluidAmount));
+ }
+
+ public void addItemQuantization(aItemQuantizationInfo aIQI){
+ itemQuantization.put(aIQI,aIQI);
+ }
+
+ public void addItem(iHasElementalDefinition em, ItemStack itemStack, boolean skipNBT){
+ addItemQuantization(new aItemQuantizationInfo(itemStack,skipNBT,em));
+ itemDequantization.put(em.getDefinition(),new aItemDequantizationInfo(em,itemStack));
+ }
+
+ public void addItem(iHasElementalDefinition em, OrePrefixes prefix, Materials material, int amount, boolean skipNBT){
+ addItemQuantization(new aItemQuantizationInfo(prefix,material,amount,skipNBT,em));
+ itemDequantization.put(em.getDefinition(),new aItemDequantizationInfo(em,prefix,material,amount));
+ }
+
+ public void addOredict(iHasElementalDefinition em, int id, int qty){
+ oredictQuantization.put(id,new aOredictQuantizationInfo(id,qty,em));
+ oredictDequantization.put(em.getDefinition(),new aOredictDequantizationInfo(em,id,qty));
+ }
+
+ public void addOredict(iHasElementalDefinition em, String name, int qty){
+ oredictQuantization.put(OreDictionary.getOreID(name),new aOredictQuantizationInfo(name,qty,em));
+ oredictDequantization.put(em.getDefinition(),new aOredictDequantizationInfo(em,name,qty));
+ }
+
+ public void addOredict(iHasElementalDefinition em, OrePrefixes prefix, Materials material, int qty){
+ oredictQuantization.put(OreDictionary.getOreID(prefix.name() + material.mName),new aOredictQuantizationInfo(prefix,material,qty,em));
+ oredictDequantization.put(em.getDefinition(),new aOredictDequantizationInfo(em,prefix,material,qty));
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinition.java
index a9fba3854a..9e9b54cf0c 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinition.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinition.java
@@ -29,7 +29,7 @@ public abstract class cElementalDefinition implements iElementalDefinition {
}
@Override
- protected final Object clone() {
+ public final cElementalDefinition clone() {
return this;//IMMUTABLE
}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStack.java b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStack.java
index d37c1e27cc..7ab4dcdc56 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStack.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/classes/cElementalDefinitionStack.java
@@ -19,7 +19,7 @@ public final class cElementalDefinitionStack implements iHasElementalDefinition
}
@Override
- protected final Object clone() {
+ public final cElementalDefinitionStack clone() {
return this;//IMMUTABLE
}
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 3434d222cd..6e28e41b48 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
@@ -20,9 +20,6 @@ import static com.github.technus.tectech.elementalMatter.definitions.cPrimitiveD
* EXTEND THIS TO ADD NEW PRIMITIVES, WATCH OUT FOR ID'S!!! (-1 to 32 can be assumed as used)
*/
public abstract class cElementalPrimitive extends cElementalDefinition {
- public static final Map<cElementalPrimitive, ItemStack> itemBinds = new TreeMap<>();
- public static final Map<cElementalPrimitive, FluidStack> fluidBinds = new TreeMap<>();
-
private static final byte nbtType = (byte) 'p';
public static final Map<Integer, iElementalDefinition> bindsBO = new HashMap<>();
@@ -129,12 +126,12 @@ public abstract class cElementalPrimitive extends cElementalDefinition {
}
@Override
- public FluidStack materializesIntoFluid() {
+ public FluidStack someAmountIntoFluidStack() {
return null;
}
@Override
- public ItemStack materializesIntoItem() {
+ public ItemStack someAmountIntoItemsStack() {
return null;
}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/cPrimitiveDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/cPrimitiveDefinition.java
index 35a3cfa524..3f06712940 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/cPrimitiveDefinition.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/cPrimitiveDefinition.java
@@ -10,8 +10,8 @@ import static com.github.technus.tectech.elementalMatter.classes.cElementalDecay
*/
public final class cPrimitiveDefinition extends cElementalPrimitive {
public static final cPrimitiveDefinition
- nbtE__ = new cPrimitiveDefinition("NBT ERROR", "!", 0, 0f, 0, Integer.MIN_VALUE, Integer.MIN_VALUE),
- null__ = new cPrimitiveDefinition("NULL POINTER", ".", 0, 0F, 0, -3, Integer.MAX_VALUE),
+ nbtE__ = new cPrimitiveDefinition("NBT ERROR", "!", 0, 0f, 0, Integer.MIN_VALUE, Integer.MIN_VALUE+10_000),
+ null__ = new cPrimitiveDefinition("NULL POINTER", ".", 0, 0F, 0, -3, Integer.MAX_VALUE-10_000),
space__ = new cPrimitiveDefinition("Space", "_", 0, 0F, 0, -4, 0),
magic = new cPrimitiveDefinition("Magic", "Ma", 4, 1e5F, 0, 0, 1),
magic_ = new cPrimitiveDefinition("Antimagic", "~Ma", -4, 1e5F, 0, 0, 2);
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 94e92107bf..8f745ae3b0 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
@@ -4,23 +4,29 @@ 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 cpw.mods.fml.common.registry.GameRegistry;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
import gregtech.api.objects.XSTR;
+import gregtech.api.util.GT_OreDictUnificator;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.oredict.OreDictionary;
import java.util.*;
import static com.github.technus.tectech.elementalMatter.definitions.eBosonDefinition.boson_Y__;
import static com.github.technus.tectech.elementalMatter.definitions.eBosonDefinition.deadEnd;
+import static gregtech.api.enums.OrePrefixes.dust;
/**
* Created by danie_000 on 18.11.2016.
*/
-public final class dAtomDefinition extends cElementalDefinition {//TODO Optimize map i/o
+public final class dAtomDefinition extends cElementalDefinition {
private final int hash;
- public static final Map<dAtomDefinition, ItemStack> itemBinds = new TreeMap<>();
- public static final Map<dAtomDefinition, FluidStack> fluidBinds = new TreeMap<>();
+ public static final bTransformationInfo transformation=new bTransformationInfo(16,0,64);
+ public static float refMass, refUnstableMass;
private static final byte nbtType = (byte) 'a';
private static final Random xstr = new XSTR();//NEEDS SEPARATE!
@@ -437,14 +443,16 @@ public final class dAtomDefinition extends cElementalDefinition {//TODO Optimize
//}
@Override
- public FluidStack materializesIntoFluid() {
-
+ public FluidStack someAmountIntoFluidStack() {
+ aFluidDequantizationInfo fdq= transformation.fluidDequantization.get(this);
+ if(fdq!=null) return fdq.output();
return null;
}
@Override
- public ItemStack materializesIntoItem() {
-
+ public ItemStack someAmountIntoItemsStack() {
+ aItemDequantizationInfo idq= transformation.itemDequantization.get(this);
+ if(idq!=null) return idq.output();
return null;
}
@@ -542,6 +550,158 @@ public final class dAtomDefinition extends cElementalDefinition {//TODO Optimize
TecTech.Logger.info("Registered Elemental Matter Class: Atom "+nbtType+" "+64);
}
+ public static void setTransformation(){
+ /*----STABLE ATOMS----**/
+ refMass = getFirstStableIsotope(1).getMass() * 144F;
+
+ transformation.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(1), 144),Materials.Hydrogen.mGas.getID(),144);
+ transformation.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(2), 144),Materials.Helium.mGas.getID(), 144);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(3), 144), dust, Materials.Lithium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(4), 144), dust, Materials.Beryllium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(5), 144), dust, Materials.Boron,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(6), 144), dust, Materials.Carbon,1);
+ transformation.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(7), 144),Materials.Nitrogen.mGas.getID(), 144);
+ transformation.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(8), 144),Materials.Oxygen.mGas.getID(), 144);
+ transformation.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(9), 144),Materials.Fluorine.mGas.getID(), 144);
+ //transformation.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(10), 144),Materials.Neon.mGas.getID(), 144);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(11), 144), dust, Materials.Sodium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(12), 144), dust, Materials.Magnesium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(13), 144), dust, Materials.Aluminium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(14), 144), dust, Materials.Silicon,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(15), 144), dust, Materials.Phosphorus,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(16), 144), dust, Materials.Sulfur,1);
+ transformation.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(17), 144),Materials.Chlorine.mGas.getID(), 144);
+ transformation.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(18), 144),Materials.Argon.mGas.getID(), 144);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(19), 144), dust, Materials.Potassium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(20), 144), dust, Materials.Calcium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(21), 144), dust, Materials.Scandium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(22), 144), dust, Materials.Titanium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(23), 144), dust, Materials.Vanadium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(24), 144), dust, Materials.Chrome,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(25), 144), dust, Materials.Manganese,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(26), 144), dust, Materials.Iron,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(27), 144), dust, Materials.Cobalt,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(28), 144), dust, Materials.Nickel,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(29), 144), dust, Materials.Copper,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(30), 144), dust, Materials.Zinc,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(31), 144), dust, Materials.Gallium,1);
+ //transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(32), 144),OrePrefixes.dust, Materials.Germanium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(33), 144), dust, Materials.Arsenic,1);
+ //transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(34), 144),OrePrefixes.dust, Materials.Selenium,1);
+ //transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(35), 144),OrePrefixes.dust, Materials.Bromine,1);
+ //transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(36), 144),OrePrefixes.dust, Materials.Krypton,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(37), 144), dust, Materials.Rubidium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(38), 144), dust, Materials.Strontium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(39), 144), dust, Materials.Yttrium,1);
+ //transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(40), 144),OrePrefixes.dust, Materials.Zirconium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(41), 144), dust, Materials.Niobium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(42), 144), dust, Materials.Molybdenum,1);
+ //transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(43), 144),OrePrefixes.dust, Materials.Technetium,1);
+ //transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(44), 144),OrePrefixes.dust, Materials.Ruthenium,1);
+ //transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(45), 144),OrePrefixes.dust, Materials.Rhodium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(46), 144), dust, Materials.Palladium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(47), 144), dust, Materials.Silver,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(48), 144), dust, Materials.Cadmium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(49), 144), dust, Materials.Indium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(50), 144), dust, Materials.Tin,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(51), 144), dust, Materials.Antimony,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(52), 144), dust, Materials.Tellurium,1);
+ //transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(53), 144),OrePrefixes.dust, Materials.Iodine,1);
+ //transformation.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(54), 144),Materials.Xenon.mGas.getID(), 144);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(55), 144), dust, Materials.Caesium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(56), 144), dust, Materials.Barium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(57), 144), dust, Materials.Lanthanum,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(58), 144), dust, Materials.Cerium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(59), 144), dust, Materials.Praseodymium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(60), 144), dust, Materials.Neodymium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(61), 144), dust, Materials.Promethium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(62), 144), dust, Materials.Samarium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(63), 144), dust, Materials.Europium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(64), 144), dust, Materials.Gadolinium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(65), 144), dust, Materials.Terbium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(66), 144), dust, Materials.Dysprosium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(67), 144), dust, Materials.Holmium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(68), 144), dust, Materials.Erbium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(69), 144), dust, Materials.Thulium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(70), 144), dust, Materials.Ytterbium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(71), 144), dust, Materials.Lutetium,1);
+ //transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(72), 144),OrePrefixes.dust, Materials.Hafnum,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(73), 144), dust, Materials.Tantalum,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(74), 144), dust, Materials.Tungsten,1);
+ //transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(75), 144),OrePrefixes.dust, Materials.Rhenium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(76), 144), dust, Materials.Osmium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(77), 144), dust, Materials.Iridium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(78), 144), dust, Materials.Platinum,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(79), 144), dust, Materials.Gold,1);
+ transformation.addFluid(new cElementalDefinitionStack(getFirstStableIsotope(80), 144),Materials.Mercury.mFluid.getID(), 144);
+ //transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(81), 144),OrePrefixes.dust, Materials.Thallium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(82), 144), dust, Materials.Lead,1);
+ transformation.addOredict(new cElementalDefinitionStack(getFirstStableIsotope(83), 144), dust, Materials.Bismuth,1);
+
+ /*----UNSTABLE ATOMS----**/
+ refUnstableMass = getFirstStableIsotope(83).getMass() * 144F;
+
+ //transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(84),144),OrePrefixes.dust, Materials.Polonium,1);
+ //transformation.addFluid(new cElementalDefinitionStack(getBestUnstableIsotope(85),144),Materials.Astatine.mPlasma.getID(), 144);
+ transformation.addFluid(new cElementalDefinitionStack(getBestUnstableIsotope(86),144),Materials.Radon.mGas.getID(), 144);
+ //transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(87),144),OrePrefixes.dust, Materials.Francium,1);
+ //transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(88),144),OrePrefixes.dust, Materials.Radium,1);
+ //transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(89),144),OrePrefixes.dust, Materials.Actinium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(90),144), dust, Materials.Thorium,1);
+ //transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(91),144),OrePrefixes.dust, Materials.Protactinium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(92),144), dust, Materials.Uranium,1);
+ //transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(93),144),OrePrefixes.dust, Materials.Neptunium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(94),144), dust, Materials.Plutonium,1);
+ transformation.addOredict(new cElementalDefinitionStack(getBestUnstableIsotope(95),144), dust, Materials.Americium,1);
+
+ /* ... */
+ cElementalDefinitionStack neutrons=new cElementalDefinitionStack(dHadronDefinition.hadron_n, 100000);
+ transformation.oredictDequantization.put(neutrons.definition,new aOredictDequantizationInfo(neutrons, dust,Materials.Neutronium,1));
+ bTransformationInfo.oredictQuantization.put(
+ OreDictionary.getOreID(OrePrefixes.ingotHot.name()+Materials.Neutronium.mName),
+ new aOredictQuantizationInfo(OrePrefixes.ingotHot,Materials.Neutronium,1 ,neutrons)
+ );
+
+ try {
+ dAtomDefinition temp=new dAtomDefinition(
+ eLeptonDefinition.lepton_e1,
+ dHadronDefinition.hadron_p1,
+ dHadronDefinition.hadron_n1
+ );
+ transformation.addFluid(new cElementalDefinitionStack(temp, 144),Materials.Deuterium.mGas.getID(), 144);
+
+ temp=new dAtomDefinition(
+ eLeptonDefinition.lepton_e1,
+ dHadronDefinition.hadron_p1,
+ dHadronDefinition.hadron_n2
+ );
+ transformation.addFluid(new cElementalDefinitionStack(temp, 144),Materials.Tritium.mGas.getID(), 144);
+
+ temp=new dAtomDefinition(
+ new cElementalDefinitionStack(eLeptonDefinition.lepton_e, 2),
+ dHadronDefinition.hadron_p2,
+ new cElementalDefinitionStack(dHadronDefinition.hadron_n, 3)
+ );
+ transformation.addFluid(new cElementalDefinitionStack(temp, 144),Materials.Helium_3.mGas.getID(), 144);
+
+ temp=new dAtomDefinition(
+ new cElementalDefinitionStack(eLeptonDefinition.lepton_e, 92),
+ new cElementalDefinitionStack(dHadronDefinition.hadron_p, 92),
+ new cElementalDefinitionStack(dHadronDefinition.hadron_n, 143)
+ );
+ transformation.addOredict(new cElementalDefinitionStack(temp, 144),OrePrefixes.dust, Materials.Uranium235,1);
+
+ temp=new dAtomDefinition(
+ new cElementalDefinitionStack(eLeptonDefinition.lepton_e, 94),
+ new cElementalDefinitionStack(dHadronDefinition.hadron_p, 94),
+ new cElementalDefinitionStack(dHadronDefinition.hadron_n, 149)
+ );
+ transformation.addOredict(new cElementalDefinitionStack(temp, 144),OrePrefixes.dust, Materials.Plutonium241,1);
+ } catch (tElementalException e) {
+ if (TecTechConfig.DEBUG_MODE) e.printStackTrace();
+ }
+ }
+
public static dAtomDefinition getFirstStableIsotope(int element) {
return stableAtoms.get(element);
}
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 2df9019699..83424cdfab 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
@@ -19,8 +19,6 @@ import static com.github.technus.tectech.elementalMatter.definitions.eBosonDefin
*/
public final class dHadronDefinition extends cElementalDefinition {//TODO Optimize map i/o
private final int hash;
- public static final Map<dHadronDefinition, ItemStack> itemBinds = new TreeMap<>();
- public static final Map<dHadronDefinition, FluidStack> fluidBinds = new TreeMap<>();
private static final byte nbtType = (byte) 'h';
//Helpers
@@ -277,12 +275,12 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
//}
@Override
- public ItemStack materializesIntoItem() {
+ public ItemStack someAmountIntoItemsStack() {
return null;
}
@Override
- public FluidStack materializesIntoFluid() {
+ public FluidStack 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 15c50fe880..d5b149c51d 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
@@ -10,7 +10,7 @@ import net.minecraftforge.fluids.FluidStack;
/**
* Created by danie_000 on 11.11.2016.
*/
-public interface iElementalDefinition extends Comparable<iElementalDefinition> {//IMMUTABLE
+public interface iElementalDefinition extends Comparable<iElementalDefinition>,Cloneable {//IMMUTABLE
//Nomenclature
String getName();
@@ -41,11 +41,13 @@ public interface iElementalDefinition extends Comparable<iElementalDefinition> {
cElementalDefinitionStackMap getSubParticles();//contents... null if none
- ItemStack materializesIntoItem();
+ ItemStack someAmountIntoItemsStack();
- FluidStack materializesIntoFluid();
+ FluidStack someAmountIntoFluidStack();
NBTTagCompound toNBT();
cElementalDefinitionStack getStackForm(int i);
+
+ iElementalDefinition clone();
}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalInstanceContainer.java b/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalInstanceContainer.java
index e559d9250d..27580a0b42 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalInstanceContainer.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iElementalInstanceContainer.java
@@ -5,7 +5,7 @@ import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStac
/**
* Created by danie_000 on 25.01.2017.
*/
-public interface iElementalInstanceContainer {
+public interface iElementalInstanceContainer extends Cloneable {
cElementalInstanceStackMap getContainerHandler();
float purgeOverflow();
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iExchangeInfo.java b/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iExchangeInfo.java
new file mode 100644
index 0000000000..7e0f782b68
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iExchangeInfo.java
@@ -0,0 +1,11 @@
+package com.github.technus.tectech.elementalMatter.interfaces;
+
+/**
+ * Created by Tec on 23.05.2017.
+ */
+public interface iExchangeInfo {
+ Object output();//what should be given - ItemStack,FluidStack,AspectStack, (EM definitionStack->)EM instance stack - etc.
+ //This must return new Object! - if obj is immutable dont care that much (applies to defStacks)
+
+ Object input();//same as above but for input
+}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iHasElementalDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iHasElementalDefinition.java
index d7bd96f9a2..12215d2d55 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iHasElementalDefinition.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/interfaces/iHasElementalDefinition.java
@@ -3,8 +3,14 @@ package com.github.technus.tectech.elementalMatter.interfaces;
/**
* Created by danie_000 on 30.01.2017.
*/
-public interface iHasElementalDefinition extends Comparable<iHasElementalDefinition> {
+public interface iHasElementalDefinition extends Comparable<iHasElementalDefinition>,Cloneable {
iElementalDefinition getDefinition();
int getAmount();
+
+ float getMass();
+
+ int getCharge();
+
+ iHasElementalDefinition clone();
}
diff --git a/src/main/java/com/github/technus/tectech/loader/MachineLoader.java b/src/main/java/com/github/technus/tectech/loader/MachineLoader.java
index 7568d2daf9..f3e6204ac9 100644
--- a/src/main/java/com/github/technus/tectech/loader/MachineLoader.java
+++ b/src/main/java/com/github/technus/tectech/loader/MachineLoader.java
@@ -246,6 +246,5 @@ public class MachineLoader implements Runnable {
GT_MetaTileEntity_Hatch_Rack.run();
GT_MetaTileEntity_EM_computer.run();
GT_MetaTileEntity_EM_research.run();
- GT_MetaTileEntity_EM_quantizer.run();
}
}
diff --git a/src/main/java/com/github/technus/tectech/loader/MainLoader.java b/src/main/java/com/github/technus/tectech/loader/MainLoader.java
index ee06ea9e1f..0911642f18 100644
--- a/src/main/java/com/github/technus/tectech/loader/MainLoader.java
+++ b/src/main/java/com/github/technus/tectech/loader/MainLoader.java
@@ -1,10 +1,10 @@
package com.github.technus.tectech.loader;
import com.github.technus.tectech.TecTech;
+import com.github.technus.tectech.magicAddon.EssentiaCompat;
+import com.github.technus.tectech.magicAddon.EssentiaCompatEnabled;
import com.github.technus.tectech.magicAddon.definitions.AspectDefinitionCompat;
import com.github.technus.tectech.magicAddon.definitions.AspectDefinitionCompatEnabled;
-import com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi.EssentiaCompat;
-import com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi.EssentiaCompatEnabled;
import com.github.technus.tectech.thing.block.QuantumGlassBlock;
import com.github.technus.tectech.thing.casing.GT_Container_CasingsTT;
import com.github.technus.tectech.thing.item.DebugBuilder;
@@ -22,8 +22,8 @@ import java.util.List;
import static com.github.technus.tectech.TecTech.hasThaumcraft;
import static com.github.technus.tectech.TecTech.mainTab;
+import static com.github.technus.tectech.magicAddon.EssentiaCompat.essentiaContainerCompat;
import static com.github.technus.tectech.magicAddon.definitions.AspectDefinitionCompat.aspectDefinitionCompat;
-import static com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi.EssentiaCompat.essentiaContainerCompat;
public final class MainLoader {//TODO add checks for - is mod loaded dreamcraft to enable higher tier machinery. (above UV), or implement a check for GT tier values.
@@ -66,6 +66,7 @@ public final class MainLoader {//TODO add checks for - is mod loaded dreamcraft
progressBarPostLoad.step("Recipes");
new RecipeLoader().run();
+
TecTech.Logger.info("Recipe Init Done");
progressBarPostLoad.step("Creative Tab part1");
diff --git a/src/main/java/com/github/technus/tectech/loader/RecipeLoader.java b/src/main/java/com/github/technus/tectech/loader/RecipeLoader.java
index 0f49042d76..c1589072ca 100644
--- a/src/main/java/com/github/technus/tectech/loader/RecipeLoader.java
+++ b/src/main/java/com/github/technus/tectech/loader/RecipeLoader.java
@@ -1,5 +1,6 @@
package com.github.technus.tectech.loader;
+import com.github.technus.tectech.elementalMatter.definitions.dAtomDefinition;
import cpw.mods.fml.common.Loader;
/**
@@ -7,6 +8,8 @@ import cpw.mods.fml.common.Loader;
*/
public class RecipeLoader implements Runnable {
public void run() {
+ dAtomDefinition.setTransformation();
+
// ===================================================================================================
// Recipes init - common goes here rest goes into methods below
// ===================================================================================================
diff --git a/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/EssentiaCompat.java b/src/main/java/com/github/technus/tectech/magicAddon/EssentiaCompat.java
index d3d90f832c..2cc647ea7f 100644
--- a/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/EssentiaCompat.java
+++ b/src/main/java/com/github/technus/tectech/magicAddon/EssentiaCompat.java
@@ -1,4 +1,4 @@
-package com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi;
+package com.github.technus.tectech.magicAddon;
import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStack;
import com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_MultiblockBase_EM;
diff --git a/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/EssentiaCompatEnabled.java b/src/main/java/com/github/technus/tectech/magicAddon/EssentiaCompatEnabled.java
index 2fec74a87a..8e5b774a50 100644
--- a/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/EssentiaCompatEnabled.java
+++ b/src/main/java/com/github/technus/tectech/magicAddon/EssentiaCompatEnabled.java
@@ -1,4 +1,4 @@
-package com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi;
+package com.github.technus.tectech.magicAddon;
import com.github.technus.tectech.elementalMatter.classes.cElementalDefinition;
import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStack;
diff --git a/src/main/java/com/github/technus/tectech/magicAddon/definitions/dComplexAspectDefinition.java b/src/main/java/com/github/technus/tectech/magicAddon/definitions/dComplexAspectDefinition.java
index 14dac06776..b7c7ee8dca 100644
--- a/src/main/java/com/github/technus/tectech/magicAddon/definitions/dComplexAspectDefinition.java
+++ b/src/main/java/com/github/technus/tectech/magicAddon/definitions/dComplexAspectDefinition.java
@@ -166,12 +166,12 @@ public final class dComplexAspectDefinition extends cElementalDefinition impleme
}
@Override
- public FluidStack materializesIntoFluid() {
+ public FluidStack someAmountIntoFluidStack() {
return null;
}
@Override
- public ItemStack materializesIntoItem() {
+ public ItemStack someAmountIntoItemsStack() {
return null;
}
diff --git a/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java b/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java
index 28cf9f4c62..3ca9a96f45 100644
--- a/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java
+++ b/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java
@@ -3,7 +3,7 @@ package com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi;
import com.github.technus.tectech.CommonValues;
import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStack;
import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStackMap;
-import com.github.technus.tectech.magicAddon.definitions.dComplexAspectDefinition;
+import com.github.technus.tectech.magicAddon.definitions.ePrimalAspectDefinition;
import com.github.technus.tectech.thing.block.QuantumGlassBlock;
import com.github.technus.tectech.thing.metaTileEntity.iConstructible;
import com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_MultiblockBase_EM;
@@ -15,7 +15,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import static com.github.technus.tectech.Util.StructureBuilder;
-import static com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi.EssentiaCompat.essentiaContainerCompat;
+import static com.github.technus.tectech.magicAddon.EssentiaCompat.essentiaContainerCompat;
import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT;
import static gregtech.api.enums.GT_Values.E;
import static gregtech.api.enums.GT_Values.V;
@@ -68,23 +68,23 @@ public class GT_MetaTileEntity_EM_essentiaDequantizer extends GT_MetaTileEntity_
@Override
public boolean EM_checkRecipe(ItemStack itemStack) {
container=essentiaContainerCompat.getContainer(this);
- if (eInputHatches.size() < 1) {
+ if (eInputHatches.size() < 1 || container==null) {
stopMachine();
return false;
}
- cElementalInstanceStackMap inputHatchContainer=eOutputHatches.get(0).getContainerHandler();
+ cElementalInstanceStackMap inputHatchContainer=eInputHatches.get(0).getContainerHandler();
if(inputHatchContainer.hasStacks()){
cElementalInstanceStack stack = inputHatchContainer.getFirst();
inputHatchContainer.removeAmount(false,new cElementalInstanceStack(stack.definition,1));
if(!essentiaContainerCompat.putElementalInstanceStack(container,stack))
- purgeInstanceStack(stack);
+ cleanInstanceStack(stack);
mMaxProgresstime = 20;
mEfficiencyIncrease = 10000;
eAmpereFlow=1;
- if (stack.definition instanceof dComplexAspectDefinition) {
- mEUt = (int) -V[9];
- } else {
+ if (stack.definition instanceof ePrimalAspectDefinition) {
mEUt = (int) -V[8];
+ } else {
+ mEUt = (int) -V[9];
}
return true;
}
diff --git a/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java b/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java
index 7bb39d5d1f..44e08fe051 100644
--- a/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java
+++ b/src/main/java/com/github/technus/tectech/magicAddon/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java
@@ -3,7 +3,7 @@ package com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi;
import com.github.technus.tectech.CommonValues;
import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStack;
import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStackMap;
-import com.github.technus.tectech.magicAddon.definitions.dComplexAspectDefinition;
+import com.github.technus.tectech.magicAddon.definitions.ePrimalAspectDefinition;
import com.github.technus.tectech.thing.block.QuantumGlassBlock;
import com.github.technus.tectech.thing.metaTileEntity.iConstructible;
import com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_MultiblockBase_EM;
@@ -15,7 +15,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import static com.github.technus.tectech.Util.StructureBuilder;
-import static com.github.technus.tectech.magicAddon.thing.metaTileEntity.multi.EssentiaCompat.essentiaContainerCompat;
+import static com.github.technus.tectech.magicAddon.EssentiaCompat.essentiaContainerCompat;
import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT;
import static gregtech.api.enums.GT_Values.E;
import static gregtech.api.enums.GT_Values.V;
@@ -84,10 +84,10 @@ public class GT_MetaTileEntity_EM_essentiaQuantizer extends GT_MetaTileEntity_Mu
eAmpereFlow=1;
outputEM = new cElementalInstanceStackMap[1];
outputEM[0] = new cElementalInstanceStackMap(newStack);
- if (newStack.definition instanceof dComplexAspectDefinition) {
- mEUt = (int) -V[9];
- } else {
+ if (newStack.definition instanceof ePrimalAspectDefinition) {
mEUt = (int) -V[8];
+ } else {
+ mEUt = (int) -V[9];
}
return true;
}
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java
index 1a0f1bd04d..6e36a8b3a7 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java
@@ -5,10 +5,10 @@ import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.Util;
import com.github.technus.tectech.auxiliary.TecTechConfig;
import com.github.technus.tectech.dataFramework.quantumDataPacket;
-import com.github.technus.tectech.thing.metaTileEntity.iConstructible;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputData;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_OutputData;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_Rack;
+import com.github.technus.tectech.thing.metaTileEntity.iConstructible;
import com.github.technus.tectech.vec3pos;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java
index 3d657091ca..71f9ccfdc0 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java
@@ -1,9 +1,9 @@
package com.github.technus.tectech.thing.metaTileEntity.multi;
import com.github.technus.tectech.CommonValues;
-import com.github.technus.tectech.thing.metaTileEntity.iConstructible;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputElemental;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_OutputElemental;
+import com.github.technus.tectech.thing.metaTileEntity.iConstructible;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import net.minecraft.block.Block;
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 b23032453a..c5ccf73946 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
@@ -3,18 +3,11 @@ package com.github.technus.tectech.thing.metaTileEntity.multi;
import com.github.technus.tectech.CommonValues;
import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.auxiliary.TecTechConfig;
-import com.github.technus.tectech.elementalMatter.classes.cElementalDefinitionStack;
-import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStack;
-import com.github.technus.tectech.elementalMatter.classes.cElementalInstanceStackMap;
-import com.github.technus.tectech.elementalMatter.classes.tElementalException;
-import com.github.technus.tectech.elementalMatter.definitions.dAtomDefinition;
-import com.github.technus.tectech.elementalMatter.definitions.dHadronDefinition;
-import com.github.technus.tectech.elementalMatter.definitions.eLeptonDefinition;
+import com.github.technus.tectech.elementalMatter.classes.*;
+import com.github.technus.tectech.elementalMatter.interfaces.iHasElementalDefinition;
import com.github.technus.tectech.thing.block.QuantumGlassBlock;
import com.github.technus.tectech.thing.metaTileEntity.iConstructible;
import gregtech.api.GregTech_API;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.OrePrefixes;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import net.minecraft.block.Block;
@@ -23,12 +16,9 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
-import java.util.HashMap;
-
import static com.github.technus.tectech.Util.StructureBuilder;
import static com.github.technus.tectech.Util.isInputEqual;
-import static com.github.technus.tectech.elementalMatter.definitions.dAtomDefinition.getBestUnstableIsotope;
-import static com.github.technus.tectech.elementalMatter.definitions.dAtomDefinition.getFirstStableIsotope;
+import static com.github.technus.tectech.elementalMatter.definitions.dAtomDefinition.*;
import static com.github.technus.tectech.thing.casing.GT_Container_CasingsTT.sBlockCasingsTT;
import static gregtech.api.enums.GT_Values.V;
@@ -36,10 +26,6 @@ import static gregtech.api.enums.GT_Values.V;
* Created by danie_000 on 17.12.2016.
*/
public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_MultiblockBase_EM implements iConstructible {
- public static HashMap<Integer, cElementalDefinitionStack> itemBinds = new HashMap<>(32);
- public static HashMap<Integer, cElementalDefinitionStack> fluidBind = new HashMap<>(8);
- private static float refMass, refUnstableMass;
-
//region Structure
//use multi A energy inputs, use less power the longer it runs
private static final String[][] shape = new String[][]{
@@ -88,20 +74,24 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock
}
@Override
- public boolean EM_checkRecipe(ItemStack itemStack) {
+ public boolean EM_checkRecipe(ItemStack itemStack) {//TODO implement by item quantization, implement instance quantization
if (GregTech_API.sPostloadFinished) {
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) {
if (TecTechConfig.DEBUG_MODE)
TecTech.Logger.info("Quantifier-recipe " + is.getItem().getUnlocalizedName() + "." + is.getItemDamage() + " " + OreDictionary.getOreName(ID));
- cElementalDefinitionStack into = itemBinds.get(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(), 1, is.getItemDamage())}, null, inI)) {
+ nothingF, new ItemStack[]{new ItemStack(is.getItem(), aOQI.amount, is.getItemDamage())}, null, inI)) {
mMaxProgresstime = 20;
mEfficiencyIncrease = 10000;
float mass = into.getMass();
@@ -112,8 +102,9 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock
} else {
mEUt = (int) -V[8];
}
- outputEM = new cElementalInstanceStackMap[1];
- outputEM[0] = new cElementalInstanceStackMap(new cElementalInstanceStack(into));
+ outputEM = new cElementalInstanceStackMap[]{
+ new cElementalInstanceStackMap(new cElementalInstanceStack(into.getDefinition(),into.getAmount()))
+ };
return true;
}
}
@@ -122,9 +113,11 @@ 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) {
- cElementalDefinitionStack into = fluidBind.get(fs.getFluid().getID());
- if (into != null && fs.amount >= 144 && isInputEqual(true, false,
- new FluidStack[]{new FluidStack(fs.getFluid(), 144)}, nothingI, inF, (ItemStack[]) null)) {
+ 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();
@@ -135,8 +128,9 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock
} else {
mEUt = (int) -V[8];
}
- outputEM = new cElementalInstanceStackMap[1];
- outputEM[0] = new cElementalInstanceStackMap(new cElementalInstanceStack(into));
+ outputEM = new cElementalInstanceStackMap[]{
+ new cElementalInstanceStackMap(new cElementalInstanceStack(into.getDefinition(),into.getAmount()))
+ };
return true;
}
}
@@ -155,236 +149,4 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock
}
eOutputHatches.get(0).getContainerHandler().putUnifyAll(outputEM[0]);
}
-
- private static int getID(OrePrefixes prefix, Materials material) {
- return OreDictionary.getOreID(prefix.name() + material.mName);
- }
-
- public static void run() {
- refMass = getFirstStableIsotope(1).getMass() * 144F;
- fluidBind.put(Materials.Hydrogen.mGas.getID(), new cElementalDefinitionStack(getFirstStableIsotope(1), 144));
- fluidBind.put(Materials.Helium.mGas.getID(), new cElementalDefinitionStack(getFirstStableIsotope(2), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Lithium),
- new cElementalDefinitionStack(getFirstStableIsotope(3), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Beryllium),
- new cElementalDefinitionStack(getFirstStableIsotope(4), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Boron),
- new cElementalDefinitionStack(getFirstStableIsotope(5), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Carbon),
- new cElementalDefinitionStack(getFirstStableIsotope(6), 144));
- fluidBind.put(Materials.Nitrogen.mGas.getID(), new cElementalDefinitionStack(getFirstStableIsotope(7), 144));
- fluidBind.put(Materials.Oxygen.mGas.getID(), new cElementalDefinitionStack(getFirstStableIsotope(8), 144));
- fluidBind.put(Materials.Fluorine.mGas.getID(), new cElementalDefinitionStack(getFirstStableIsotope(9), 144));
- //fluidBind.put(Materials.Neon.mGas.getID(),new cElementalDefinitionStack(getFirstStableIsotope(10),144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Sodium),
- new cElementalDefinitionStack(getFirstStableIsotope(11), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Magnesium),
- new cElementalDefinitionStack(getFirstStableIsotope(12), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Aluminium),
- new cElementalDefinitionStack(getFirstStableIsotope(13), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Silicon),
- new cElementalDefinitionStack(getFirstStableIsotope(14), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Phosphorus),
- new cElementalDefinitionStack(getFirstStableIsotope(15), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Sulfur),
- new cElementalDefinitionStack(getFirstStableIsotope(16), 144));
- fluidBind.put(Materials.Chlorine.mGas.getID(), new cElementalDefinitionStack(getFirstStableIsotope(17), 144));
- fluidBind.put(Materials.Argon.mGas.getID(), new cElementalDefinitionStack(getFirstStableIsotope(18), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Potassium),
- new cElementalDefinitionStack(getFirstStableIsotope(19), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Calcium),
- new cElementalDefinitionStack(getFirstStableIsotope(20), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Scandium),
- new cElementalDefinitionStack(getFirstStableIsotope(21), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Titanium),
- new cElementalDefinitionStack(getFirstStableIsotope(22), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Vanadium),
- new cElementalDefinitionStack(getFirstStableIsotope(23), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Chrome),
- new cElementalDefinitionStack(getFirstStableIsotope(24), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Manganese),
- new cElementalDefinitionStack(getFirstStableIsotope(25), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Iron),
- new cElementalDefinitionStack(getFirstStableIsotope(26), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.IronMagnetic),
- new cElementalDefinitionStack(getFirstStableIsotope(26), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Cobalt),
- new cElementalDefinitionStack(getFirstStableIsotope(27), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Nickel),
- new cElementalDefinitionStack(getFirstStableIsotope(28), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Copper),
- new cElementalDefinitionStack(getFirstStableIsotope(29), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Zinc),
- new cElementalDefinitionStack(getFirstStableIsotope(30), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Gallium),
- new cElementalDefinitionStack(getFirstStableIsotope(31), 144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Germanium),
- // new cElementalDefinitionStack(getFirstStableIsotope(32),144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Arsenic),
- new cElementalDefinitionStack(getFirstStableIsotope(33), 144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Selenium),
- // new cElementalDefinitionStack(getFirstStableIsotope(34),144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Bromine),
- // new cElementalDefinitionStack(getFirstStableIsotope(35),144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Krypton),
- // new cElementalDefinitionStack(getFirstStableIsotope(36),144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Rubidium),
- new cElementalDefinitionStack(getFirstStableIsotope(37), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Strontium),
- new cElementalDefinitionStack(getFirstStableIsotope(38), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Yttrium),
- new cElementalDefinitionStack(getFirstStableIsotope(39), 144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Zirconium),
- // new cElementalDefinitionStack(getFirstStableIsotope(40),144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Niobium),
- new cElementalDefinitionStack(getFirstStableIsotope(41), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Molybdenum),
- new cElementalDefinitionStack(getFirstStableIsotope(42), 144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Technetium),
- // new cElementalDefinitionStack(getFirstStableIsotope(43),144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Ruthenium),
- // new cElementalDefinitionStack(getFirstStableIsotope(44),144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Rhodium),
- // new cElementalDefinitionStack(getFirstStableIsotope(45),144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Palladium),
- new cElementalDefinitionStack(getFirstStableIsotope(46), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Silver),
- new cElementalDefinitionStack(getFirstStableIsotope(47), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Cadmium),
- new cElementalDefinitionStack(getFirstStableIsotope(48), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Indium),
- new cElementalDefinitionStack(getFirstStableIsotope(49), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Tin),
- new cElementalDefinitionStack(getFirstStableIsotope(50), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Antimony),
- new cElementalDefinitionStack(getFirstStableIsotope(51), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Tellurium),
- new cElementalDefinitionStack(getFirstStableIsotope(52), 144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Iodine),
- // new cElementalDefinitionStack(getFirstStableIsotope(53),144));
- //fluidBind.put(Materials.Xenon.mGas.getID(),new cElementalDefinitionStack(getFirstStableIsotope(54),144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Caesium),
- new cElementalDefinitionStack(getFirstStableIsotope(55), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Barium),
- new cElementalDefinitionStack(getFirstStableIsotope(56), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Lanthanum),
- new cElementalDefinitionStack(getFirstStableIsotope(57), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Cerium),
- new cElementalDefinitionStack(getFirstStableIsotope(58), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Praseodymium),
- new cElementalDefinitionStack(getFirstStableIsotope(59), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Neodymium),
- new cElementalDefinitionStack(getFirstStableIsotope(60), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.NeodymiumMagnetic),
- new cElementalDefinitionStack(getFirstStableIsotope(60), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Promethium),
- new cElementalDefinitionStack(getFirstStableIsotope(61), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Samarium),
- new cElementalDefinitionStack(getFirstStableIsotope(62), 144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.SamariumMagnetic),
- // new cElementalDefinitionStack(getFirstStableIsotope(62),144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Europium),
- new cElementalDefinitionStack(getFirstStableIsotope(63), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Gadolinium),
- new cElementalDefinitionStack(getFirstStableIsotope(64), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Terbium),
- new cElementalDefinitionStack(getFirstStableIsotope(65), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Dysprosium),
- new cElementalDefinitionStack(getFirstStableIsotope(66), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Holmium),
- new cElementalDefinitionStack(getFirstStableIsotope(67), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Erbium),
- new cElementalDefinitionStack(getFirstStableIsotope(68), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Thulium),
- new cElementalDefinitionStack(getFirstStableIsotope(69), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Ytterbium),
- new cElementalDefinitionStack(getFirstStableIsotope(70), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Lutetium),
- new cElementalDefinitionStack(getFirstStableIsotope(71), 144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Hafnum),
- // new cElementalDefinitionStack(getFirstStableIsotope(72),144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Tantalum),
- new cElementalDefinitionStack(getFirstStableIsotope(73), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Tungsten),
- new cElementalDefinitionStack(getFirstStableIsotope(74), 144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Rhenium),
- // new cElementalDefinitionStack(getFirstStableIsotope(75),144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Osmium),
- new cElementalDefinitionStack(getFirstStableIsotope(76), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Iridium),
- new cElementalDefinitionStack(getFirstStableIsotope(77), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Platinum),
- new cElementalDefinitionStack(getFirstStableIsotope(78), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Gold),
- new cElementalDefinitionStack(getFirstStableIsotope(79), 144));
- fluidBind.put(Materials.Mercury.mFluid.getID(), new cElementalDefinitionStack(getFirstStableIsotope(80), 144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Thalium),
- // new cElementalDefinitionStack(getFirstStableIsotope(81),144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Lead),
- new cElementalDefinitionStack(getFirstStableIsotope(82), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Bismuth),
- new cElementalDefinitionStack(getFirstStableIsotope(83), 144));
- //UNSTABLE ATOMS
- refUnstableMass = getFirstStableIsotope(83).getMass() * 144F;
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Polonium),
- // new cElementalDefinitionStack(getBestUnstableIsotope(84),144));
- //fluidBind.put(Materials.Astatine.mPlasma.getID(),new cElementalDefinitionStack(getBestUnstableIsotope(85),144));
- fluidBind.put(Materials.Radon.mGas.getID(), new cElementalDefinitionStack(getBestUnstableIsotope(86), 144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Francium),
- // new cElementalDefinitionStack(getBestUnstableIsotope(87),144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Radium),
- // new cElementalDefinitionStack(getBestUnstableIsotope(88),144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Actinium),
- // new cElementalDefinitionStack(getBestUnstableIsotope(89),144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Thorium),
- new cElementalDefinitionStack(getBestUnstableIsotope(90), 144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Protactinium),
- // new cElementalDefinitionStack(getBestUnstableIsotope(91),144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Uranium),
- new cElementalDefinitionStack(getBestUnstableIsotope(92), 144));
- //itemBinds.put(getID(OrePrefixes.dust, Materials.Neptunium),
- // new cElementalDefinitionStack(getBestUnstableIsotope(93),144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Plutonium),
- new cElementalDefinitionStack(getBestUnstableIsotope(94), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Americium),
- new cElementalDefinitionStack(getBestUnstableIsotope(95), 144));
- /* ... */
- itemBinds.put(getID(OrePrefixes.ingotHot, Materials.Neutronium),
- new cElementalDefinitionStack(dHadronDefinition.hadron_n, 100000));
-
- try {
- fluidBind.put(Materials.Deuterium.mGas.getID(), new cElementalDefinitionStack(
- new dAtomDefinition(
- eLeptonDefinition.lepton_e1,
- dHadronDefinition.hadron_p1,
- dHadronDefinition.hadron_n1
- ), 144));
- fluidBind.put(Materials.Tritium.mGas.getID(), new cElementalDefinitionStack(
- new dAtomDefinition(
- eLeptonDefinition.lepton_e1,
- dHadronDefinition.hadron_p1,
- dHadronDefinition.hadron_n2
- ), 144));
- fluidBind.put(Materials.Helium_3.mGas.getID(), new cElementalDefinitionStack(
- new dAtomDefinition(
- new cElementalDefinitionStack(eLeptonDefinition.lepton_e, 2),
- dHadronDefinition.hadron_p2,
- new cElementalDefinitionStack(dHadronDefinition.hadron_n, 3)
- ), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Uranium235),
- new cElementalDefinitionStack(new dAtomDefinition(
- new cElementalDefinitionStack(eLeptonDefinition.lepton_e, 92),
- new cElementalDefinitionStack(dHadronDefinition.hadron_p, 92),
- new cElementalDefinitionStack(dHadronDefinition.hadron_n, 143)
- ), 144));
- itemBinds.put(getID(OrePrefixes.dust, Materials.Plutonium241),
- new cElementalDefinitionStack(new dAtomDefinition(
- new cElementalDefinitionStack(eLeptonDefinition.lepton_e, 94),
- new cElementalDefinitionStack(dHadronDefinition.hadron_p, 94),
- new cElementalDefinitionStack(dHadronDefinition.hadron_n, 149)
- ), 144));
- } catch (tElementalException e) {
- if (TecTechConfig.DEBUG_MODE) e.printStackTrace();
- }
- }
}
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java
index 26838ba62b..f59e835652 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java
@@ -2,8 +2,8 @@ package com.github.technus.tectech.thing.metaTileEntity.multi;
import com.github.technus.tectech.CommonValues;
import com.github.technus.tectech.auxiliary.TecTechConfig;
-import com.github.technus.tectech.thing.metaTileEntity.iConstructible;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_Holder;
+import com.github.technus.tectech.thing.metaTileEntity.iConstructible;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_MultiblockBase_EM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_MultiblockBase_EM.java
index 1e88ae65b8..bfd32d83b1 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_MultiblockBase_EM.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_MultiblockBase_EM.java
@@ -50,7 +50,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
protected final static Map<String, Method> adderMethodMap = new HashMap<>();
public static Method adderMethod;
- protected cElementalInstanceStackMap[] outputEM = new cElementalInstanceStackMap[0];
+ protected cElementalInstanceStackMap[] outputEM;
public final static ItemStack[] nothingI = new ItemStack[0];
public final static FluidStack[] nothingF = new FluidStack[0];
@@ -542,6 +542,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
if (mMaxProgresstime > 0 && ++mProgresstime >= mMaxProgresstime && recipeAt == Tick) {//progress increase and done
hatchesStatusUpdate();
EM_outputFunction();
+ cleanOutputEM();
if (mOutputItems != null) for (ItemStack tStack : mOutputItems)
if (tStack != null)
addOutput(tStack);
@@ -555,7 +556,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
updateSlots();
mOutputItems = null;
mOutputFluids = null;
- outputEM = new cElementalInstanceStackMap[0];
mProgresstime = 0;
mMaxProgresstime = 0;
mEfficiencyIncrease = 0;
@@ -870,6 +870,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
}
public void cleanHatchContent(GT_MetaTileEntity_Hatch_ElementalContainer target) {
+ if (target == null) return;
float mass = target.getContainerHandler().getMass();
if (mass > 0) {
if (eMufflerHatches.size() < 1) explodeMultiblock();
@@ -881,7 +882,8 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
}
}
- public void purgeInstanceStack(cElementalInstanceStack target) {
+ public void cleanInstanceStack(cElementalInstanceStack target) {
+ if (target == null) return;
float mass = target.getMass();
if (mass > 0) {
if (eMufflerHatches.size() < 1) explodeMultiblock();
@@ -893,6 +895,26 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
}
}
+ private void cleanOutputEM() {
+ if (outputEM == null) return;
+ float mass = 0;
+ for (cElementalInstanceStackMap map : outputEM)
+ mass = map.removeOverflow(0, 0);
+
+ if (mass > 0) {
+ if (eMufflerHatches.size() < 1) {
+ explodeMultiblock();
+ return;
+ }
+ mass /= eMufflerHatches.size();
+ for (GT_MetaTileEntity_Hatch_MufflerElemental dump : eMufflerHatches) {
+ dump.overflowMatter += mass;
+ if (dump.overflowMatter > dump.overflowMax) explodeMultiblock();
+ }
+ }
+ outputEM = null;
+ }
+
@Override
public final boolean checkRecipe(ItemStack itemStack) {//do recipe checks, based on "machine content and state"
hatchesStatusUpdate();