aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
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);
+ transformat