aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/github/technus/tectech/TecTech.java6
-rw-r--r--src/main/java/com/github/technus/tectech/Util.java46
-rw-r--r--src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/dComplexAspectDefinition.java2
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/core/commands/GiveEM.java159
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/core/commands/ListEM.java96
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/core/templates/cElementalDefinition.java10
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/core/templates/cElementalPrimitive.java12
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/core/templates/iElementalDefinition.java4
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/definitions/complex/atom/dAtomDefinition.java8
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/definitions/complex/hadron/dHadronDefinition.java2
-rw-r--r--src/main/java/com/github/technus/tectech/loader/BloodyRecipeLoader.java4
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java6
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java6
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java31
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_ElectromagneticSeparator.java32
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Scanner.java (renamed from src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Mixer.java)4
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java103
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/other todo2
18 files changed, 458 insertions, 75 deletions
diff --git a/src/main/java/com/github/technus/tectech/TecTech.java b/src/main/java/com/github/technus/tectech/TecTech.java
index 21c8d6dd39..9a4e803f67 100644
--- a/src/main/java/com/github/technus/tectech/TecTech.java
+++ b/src/main/java/com/github/technus/tectech/TecTech.java
@@ -2,6 +2,8 @@ package com.github.technus.tectech;
import com.github.technus.tectech.auxiliary.Reference;
import com.github.technus.tectech.auxiliary.TecTechConfig;
+import com.github.technus.tectech.elementalMatter.core.commands.ListEM;
+import com.github.technus.tectech.elementalMatter.core.commands.GiveEM;
import com.github.technus.tectech.loader.MainLoader;
import com.github.technus.tectech.loader.ModGuiHandler;
import com.github.technus.tectech.proxy.CommonProxy;
@@ -97,6 +99,10 @@ public class TecTech {
@Mod.EventHandler
public void serverLoad(FMLServerStartingEvent pEvent) {
+ if(DEBUG_MODE) {
+ pEvent.registerServerCommand(new GiveEM());
+ pEvent.registerServerCommand(new ListEM());
+ }
}
@Mod.EventHandler
diff --git a/src/main/java/com/github/technus/tectech/Util.java b/src/main/java/com/github/technus/tectech/Util.java
index e8786e4b84..c699077110 100644
--- a/src/main/java/com/github/technus/tectech/Util.java
+++ b/src/main/java/com/github/technus/tectech/Util.java
@@ -5,7 +5,6 @@ import cpw.mods.fml.common.registry.GameRegistry;
import gregtech.api.GregTech_API;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.objects.GT_ItemStack;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
import net.minecraft.block.Block;
@@ -911,7 +910,7 @@ public final class Util {
return (testedValue&setBits)==setBits;
}
- public static class TT_ItemStack {
+ public static class TT_ItemStack implements Comparable<TT_ItemStack>{
public final Item mItem;
public final int mStackSize;
public final int mMetaData;
@@ -925,40 +924,43 @@ public final class Util {
public TT_ItemStack(ItemStack aStack) {
if(aStack==null){
mItem=null;
- mStackSize=0;
- mMetaData=0;
+ mStackSize=mMetaData=0;
}else{
mItem=aStack.getItem();
mStackSize=aStack.stackSize;
- mMetaData=aStack.getItemDamage();
+ mMetaData=Items.feather.getDamage(aStack);
}
}
- public TT_ItemStack(int aHashCode) {
- this(GT_Utility.intToStack(aHashCode));
- }
-
- public final ItemStack toStack() {
- return this.mItem == null?null:new ItemStack(this.mItem, 1, this.mMetaData);
- }
-
- public final boolean isStackEqual(ItemStack aStack) {
- return GT_Utility.areStacksEqual(this.toStack(), aStack);
- }
-
- public final boolean isStackEqual(GT_ItemStack aStack) {
- return GT_Utility.areStacksEqual(this.toStack(), aStack.toStack());
+ @Override
+ public int compareTo(TT_ItemStack o) {
+ if(mMetaData>o.mMetaData) return 1;
+ if(mMetaData<o.mMetaData) return -1;
+ if(mStackSize>o.mStackSize) return 1;
+ if(mStackSize<o.mStackSize) return -1;
+ if(mItem!=null && o.mItem!=null) return mItem.getUnlocalizedName().compareTo(o.mItem.getUnlocalizedName());
+ if(mItem==null && o.mItem==null) return 0;
+ if(mItem!=null) return 1;
+ return -1;
}
+ @Override
public boolean equals(Object aStack) {
return aStack == this ||
(aStack instanceof TT_ItemStack &&
- (((TT_ItemStack) aStack).mItem == this.mItem &&
- ((TT_ItemStack) aStack).mMetaData == this.mMetaData));
+ ((mItem==((TT_ItemStack) aStack).mItem) || ((TT_ItemStack) aStack).mItem.getUnlocalizedName().equals(this.mItem.getUnlocalizedName())) &&
+ ((TT_ItemStack) aStack).mStackSize == this.mStackSize &&
+ ((TT_ItemStack) aStack).mMetaData == this.mMetaData);
}
+ @Override
public int hashCode() {
- return GT_Utility.stackToInt(this.toStack());
+ return (mItem!=null?mItem.getUnlocalizedName().hashCode():0) ^ (mMetaData << 16) ^ (mStackSize<<24);
+ }
+
+ @Override
+ public String toString() {
+ return Integer.toString(hashCode())+' '+(mItem==null?"null":mItem.getUnlocalizedName())+' '+mMetaData+' '+mStackSize;
}
}
}
diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/dComplexAspectDefinition.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/dComplexAspectDefinition.java
index e513240dac..3d29927a6c 100644
--- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/dComplexAspectDefinition.java
+++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/definitions/dComplexAspectDefinition.java
@@ -121,7 +121,7 @@ public final class dComplexAspectDefinition extends cElementalDefinition impleme
return nbt;
}
- public static iElementalDefinition fromNBT(NBTTagCompound nbt) {
+ public static dComplexAspectDefinition fromNBT(NBTTagCompound nbt) {
cElementalDefinitionStack[] stacks = new cElementalDefinitionStack[nbt.getInteger("i")];
for (int i = 0; i < stacks.length; i++) {
stacks[i] = cElementalDefinitionStack.fromNBT(nbt.getCompoundTag(Integer.toString(i)));
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/core/commands/GiveEM.java b/src/main/java/com/github/technus/tectech/elementalMatter/core/commands/GiveEM.java
new file mode 100644
index 0000000000..36a41ca323
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/core/commands/GiveEM.java
@@ -0,0 +1,159 @@
+package com.github.technus.tectech.elementalMatter.core.commands;
+
+import com.github.technus.tectech.TecTech;
+import com.github.technus.tectech.elementalMatter.core.cElementalInstanceStackMap;
+import com.github.technus.tectech.elementalMatter.core.cElementalMutableDefinitionStackMap;
+import com.github.technus.tectech.elementalMatter.core.stacks.cElementalDefinitionStack;
+import com.github.technus.tectech.elementalMatter.core.stacks.cElementalInstanceStack;
+import com.github.technus.tectech.elementalMatter.core.templates.cElementalDefinition;
+import com.github.technus.tectech.elementalMatter.core.templates.cElementalPrimitive;
+import com.github.technus.tectech.elementalMatter.core.templates.iElementalDefinition;
+import com.github.technus.tectech.thing.item.DebugElementalInstanceContainer_EM;
+import net.minecraft.command.ICommand;
+import net.minecraft.command.ICommandSender;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.ChatComponentText;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import static com.github.technus.tectech.auxiliary.TecTechConfig.DEBUG_MODE;
+import static com.github.technus.tectech.elementalMatter.definitions.primitive.cPrimitiveDefinition.nbtE__;
+
+/**
+ * Created by danie_000 on 30.12.2017.
+ */
+public class GiveEM implements ICommand {
+ ArrayList<String> aliases=new ArrayList<>();
+
+ public GiveEM(){
+ aliases.add("em_give");
+ aliases.add("give_em");
+ }
+
+ @Override
+ public void processCommand(ICommandSender sender, String[] args) {
+ if (sender instanceof EntityPlayerMP && !sender.getEntityWorld().isRemote) {
+ if(args.length < 3) {
+ sender.addChatMessage(new ChatComponentText(getCommandUsage(sender)));
+ }else{
+ TecTech.Logger.info("Spawninig EM for "+((EntityPlayerMP) sender).getDisplayName()+" - "+Arrays.toString(args));
+
+ ArrayList<String> list=new ArrayList<>();
+ list.addAll(Arrays.asList(args));
+ String energy=list.remove(0);
+
+ cElementalDefinitionStack def= getDefinitionStack(list);
+ cElementalInstanceStack instanceStack=new cElementalInstanceStack(def,1,0,Long.parseLong(energy));
+
+ sender.addChatMessage(new ChatComponentText(instanceStack.definition.getSymbol()+" - "+instanceStack.definition.getName()));
+
+ cElementalInstanceStackMap instanceMap=new cElementalInstanceStackMap(instanceStack);
+
+ ItemStack itemStack=new ItemStack(DebugElementalInstanceContainer_EM.INSTANCE);
+ NBTTagCompound contents=new NBTTagCompound();
+ contents.setTag("info", instanceMap.getInfoNBT());
+ contents.setTag("content", instanceMap.toNBT());
+ itemStack.setTagCompound(contents);
+
+ ((EntityPlayerMP) sender).inventory.addItemStackToInventory(itemStack);
+ }
+ }
+ }
+
+ private cElementalDefinitionStack getDefinitionStack(ArrayList<String> args){
+ if(args.get(0).equals("<")){
+ args.remove(0);
+ return null;
+ }
+ long amount=Long.parseLong(args.remove(0));
+ try{
+ int id=Integer.parseInt(args.get(0));
+ args.remove(0);
+ iElementalDefinition primitive=cElementalPrimitive.getBindsPrimitive().get(id);
+ return new cElementalDefinitionStack(primitive,amount);
+ }catch (NumberFormatException e){
+ byte clazz = (byte) args.remove(0).charAt(0);
+ Method constructor = cElementalDefinition.getBindsComplex().get(clazz);
+
+ cElementalMutableDefinitionStackMap stacks=new cElementalMutableDefinitionStackMap();
+ while(args.size()>0){
+ cElementalDefinitionStack tempStack=getDefinitionStack(args);
+ if(tempStack==null) {
+ break;
+ }else {
+ stacks.putUnify(tempStack);
+ }
+ }
+
+ try {
+ return ((iElementalDefinition) constructor.invoke(null, stacks.toNBT())).getStackForm(amount);
+ } catch (Exception e1) {
+ if (DEBUG_MODE) {
+ e.printStackTrace();
+ }
+ return nbtE__.getStackForm(amount);
+ }
+ }
+ }
+
+ @Override
+ public boolean isUsernameIndex(String[] p_82358_1_, int p_82358_2_) {
+ return false;
+ }
+
+ @Override
+ public List<String> getCommandAliases() {
+ return aliases;
+ }
+
+ @Override
+ public String getCommandName() {
+ return aliases.get(0);
+ }
+
+ @Override
+ public List<String> addTabCompletionOptions(ICommandSender sender, String[] args) {
+ if(args.length==2){
+ return completionsForClassOrID();
+ }
+ return null;
+ }
+
+ private List<String> completionsForClassOrID(){
+ ArrayList<String> strings=new ArrayList<>(8);
+ Map<Byte,Method> binds= cElementalDefinition.getBindsComplex();
+ for (Map.Entry<Byte,Method> e:binds.entrySet()) {
+ strings.add(String.valueOf((char)e.getKey().byteValue()));
+ }
+ Map<Integer, cElementalPrimitive> bindsBO = cElementalPrimitive.getBindsPrimitive();
+ for (Map.Entry<Integer,cElementalPrimitive> e:bindsBO.entrySet()) {
+ strings.add(String.valueOf(e.getKey().byteValue()));
+ }
+ return strings;
+ }
+
+ @Override
+ public String getCommandUsage(ICommandSender p_71518_1_) {
+ return "em_give energy count classOrId (count classOrId , ... <) if complex";
+ }
+
+ @Override
+ public int compareTo(Object o) {
+ if(o instanceof ICommand){
+ return getCommandName().compareTo(((ICommand) o).getCommandName());
+ }
+ return 0;
+ }
+
+ @Override
+ public boolean canCommandSenderUseCommand(ICommandSender sender) {
+ return true;
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/core/commands/ListEM.java b/src/main/java/com/github/technus/tectech/elementalMatter/core/commands/ListEM.java
new file mode 100644
index 0000000000..2d296c1c9c
--- /dev/null
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/core/commands/ListEM.java
@@ -0,0 +1,96 @@
+package com.github.technus.tectech.elementalMatter.core.commands;
+
+import com.github.technus.tectech.elementalMatter.core.templates.cElementalDefinition;
+import com.github.technus.tectech.elementalMatter.core.templates.cElementalPrimitive;
+import com.github.technus.tectech.elementalMatter.core.templates.iElementalDefinition;
+import net.minecraft.command.ICommand;
+import net.minecraft.command.ICommandSender;
+import net.minecraft.util.ChatComponentText;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by danie_000 on 30.12.2017.
+ */
+public class ListEM implements ICommand {
+ ArrayList<String> aliases=new ArrayList<>();
+
+ public ListEM(){
+ aliases.add("em_list");
+ aliases.add("list_em");
+ }
+
+ @Override
+ public void processCommand(ICommandSender sender, String[] args) {
+ if (!sender.getEntityWorld().isRemote) {
+ if(args.length == 0) {
+ sender.addChatMessage(new ChatComponentText(" Available Classes: tag - name"));
+ Map<Byte,Method> binds= cElementalDefinition.getBindsComplex();
+ for (Map.Entry<Byte,Method> e:binds.entrySet()) {
+ sender.addChatMessage(new ChatComponentText(String.valueOf((char)e.getKey().byteValue())+" - "+e.getValue().getReturnType().getSimpleName()));
+ }
+ }else if(args.length==1){
+ sender.addChatMessage(new ChatComponentText(" Available Primitives: symbol - name"));
+ if(args[0].equals(String.valueOf((char)cElementalPrimitive.nbtType))){
+ Map<Integer, cElementalPrimitive> bindsBO = cElementalPrimitive.getBindsPrimitive();
+ for (Map.Entry<Integer,cElementalPrimitive> e:bindsBO.entrySet()) {
+ sender.addChatMessage(new ChatComponentText(e.getKey() + " - "+e.getValue().getName()));
+ }
+ }else{
+ sender.addChatMessage(new ChatComponentText("Complex definition - needs contents"));
+ }
+ }else{
+ sender.addChatMessage(new ChatComponentText(getCommandUsage(sender)));
+ }
+ }
+ }
+
+ @Override
+ public boolean isUsernameIndex(String[] p_82358_1_, int p_82358_2_) {
+ return false;
+ }
+
+ @Override
+ public List<String> getCommandAliases() {
+ return aliases;
+ }
+
+ @Override
+ public String getCommandName() {
+ return aliases.get(0);
+ }
+
+ @Override
+ public List<String> addTabCompletionOptions(ICommandSender sender, String[] args) {
+ if(args.length==0){
+ Map<Byte,Method> binds= cElementalDefinition.getBindsComplex();
+ ArrayList<String> strings=new ArrayList<>(binds.size());
+ for (Map.Entry<Byte,Method> e:binds.entrySet()) {
+ strings.add(String.valueOf((char)e.getKey().byteValue())+' '+e.getValue().getReturnType().getSimpleName());
+ }
+ return strings;
+ }
+ return null;
+ }
+
+ @Override
+ public String getCommandUsage(ICommandSender p_71518_1_) {
+ return "em_list (optional class tag)";
+ }
+
+ @Override
+ public int compareTo(Object o) {
+ if(o instanceof ICommand){
+ return getCommandName().compareTo(((ICommand) o).getCommandName());
+ }
+ return 0;
+ }
+
+ @Override
+ public boolean canCommandSenderUseCommand(ICommandSender sender) {
+ return true;
+ }
+}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/core/templates/cElementalDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/core/templates/cElementalDefinition.java
index 6ae32c00c3..505bb5ab48 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/core/templates/cElementalDefinition.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/core/templates/cElementalDefinition.java
@@ -25,13 +25,17 @@ public abstract class cElementalDefinition extends iElementalDefinition {
protected static void addCreatorFromNBT(byte shortcutNBT, Method constructorFromNBT,byte classID) {
if(nbtCreationBind.put(shortcutNBT, constructorFromNBT)!=null) {
- throw new Error("Duplicate NBT shortcut! " + shortcutNBT);
+ throw new Error("Duplicate NBT shortcut! " + shortcutNBT + " used for NBT based creation");
}
if(!classSet.add(classID)) {
- throw new Error("Duplicate Class ID! " + classID);
+ throw new Error("Duplicate Class ID! " + classID + " used for class comparison");
}
}
+ public static Map<Byte, Method> getBindsComplex(){
+ return nbtCreationBind;
+ }
+
@Override
public final cElementalDefinition clone() {
return this;//IMMUTABLE
@@ -96,7 +100,7 @@ public abstract class cElementalDefinition extends iElementalDefinition {
}
@Override
- public final cElementalDefinitionStack getStackForm(int i) {
+ public final cElementalDefinitionStack getStackForm(long i) {
return new cElementalDefinitionStack(this,i);
}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/core/templates/cElementalPrimitive.java b/src/main/java/com/github/technus/tectech/elementalMatter/core/templates/cElementalPrimitive.java
index b6a877a024..ab571e9d4c 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/core/templates/cElementalPrimitive.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/core/templates/cElementalPrimitive.java
@@ -25,9 +25,13 @@ import static com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileE
* 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 {
- private static final byte nbtType = (byte) 'p';
+ public static final byte nbtType = (byte) 'p';
- public static final Map<Integer, iElementalDefinition> bindsBO = new HashMap<>();
+ private static final Map<Integer, cElementalPrimitive> bindsBO = new HashMap<>();
+
+ public static Map<Integer, cElementalPrimitive> getBindsPrimitive() {
+ return bindsBO;
+ }
public final String name;
public final String symbol;
@@ -173,8 +177,8 @@ public abstract class cElementalPrimitive extends cElementalDefinition {
return nbt;
}
- public static iElementalDefinition fromNBT(NBTTagCompound content) {
- iElementalDefinition primitive = bindsBO.get(content.getInteger("c"));
+ public static cElementalPrimitive fromNBT(NBTTagCompound content) {
+ cElementalPrimitive primitive = bindsBO.get(content.getInteger("c"));
return primitive == null ? null__ : primitive;
}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/core/templates/iElementalDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/core/templates/iElementalDefinition.java
index 034c90c72e..23d2df06a8 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/core/templates/iElementalDefinition.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/core/templates/iElementalDefinition.java
@@ -64,12 +64,12 @@ public abstract class iElementalDefinition implements Comparable<iElementalDefin
public abstract NBTTagCompound toNBT();
- public abstract cElementalDefinitionStack getStackForm(int i);
+ public abstract cElementalDefinitionStack getStackForm(long i);
@Override
public abstract iElementalDefinition clone();
- final int compareClassID(iElementalDefinition obj) {
+ final /*default*/ int compareClassID(iElementalDefinition obj) {
return (int) getClassType() - obj.getClassType();
}
}
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/complex/atom/dAtomDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/complex/atom/dAtomDefinition.java
index df795bd9ed..4fc6594a40 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/complex/atom/dAtomDefinition.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/complex/atom/dAtomDefinition.java
@@ -361,19 +361,19 @@ public final class dAtomDefinition extends cElementalDefinition {
int element = Math.abs(this.element);
boolean negative = element < 0;
try {
- return (negative ? "~" : "") + nomenclature.Symbol[element] + " N:" + neutralCount + " I:" + (neutralCount+element) + " C: " + getCharge();
+ return (negative ? "~" : "") + nomenclature.Symbol[element] + " N:" + neutralCount + " I:" + (neutralCount+element) + " C:" + getCharge();
} catch (Exception e) {
if (DEBUG_MODE) {
e.printStackTrace();
}
try {
int s100 = element / 100, s1 = element / 10 % 10, s10 = element % 10;
- return (negative ? "~" : "") + nomenclature.SymbolIUPAC[10 + s100] + nomenclature.SymbolIUPAC[s10] + nomenclature.SymbolIUPAC[s1] + " N:" + neutralCount + " I:" + (neutralCount+element) + " C: " + getCharge();
+ return (negative ? "~" : "") + nomenclature.SymbolIUPAC[10 + s100] + nomenclature.SymbolIUPAC[s10] + nomenclature.SymbolIUPAC[s1] + " N:" + neutralCount + " I:" + (neutralCount+element) + " C:" + getCharge();
} catch (Exception E) {
if (DEBUG_MODE) {
e.printStackTrace();
}
- return (negative ? "~" : "") + "? N:" + neutralCount + " I:" + (neutralCount+element) + " C: " + getCharge();
+ return (negative ? "~" : "") + "? N:" + neutralCount + " I:" + (neutralCount+element) + " C:" + getCharge();
}
}
}
@@ -1295,7 +1295,7 @@ public final class dAtomDefinition extends cElementalDefinition {
return nbt;
}
- public static iElementalDefinition fromNBT(NBTTagCompound nbt) {
+ public static dAtomDefinition fromNBT(NBTTagCompound nbt) {
cElementalDefinitionStack[] stacks = new cElementalDefinitionStack[nbt.getInteger("i")];
for (int i = 0; i < stacks.length; i++) {
stacks[i] = cElementalDefinitionStack.fromNBT(nbt.getCompoundTag(Integer.toString(i)));
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/complex/hadron/dHadronDefinition.java b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/complex/hadron/dHadronDefinition.java
index 29d583d613..34fa55bb04 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/definitions/complex/hadron/dHadronDefinition.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/definitions/complex/hadron/dHadronDefinition.java
@@ -346,7 +346,7 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi
return nbt;
}
- public static iElementalDefinition fromNBT(NBTTagCompound nbt) {
+ public static dHadronDefinition fromNBT(NBTTagCompound nbt) {
cElementalDefinitionStack[] stacks = new cElementalDefinitionStack[nbt.getInteger("i")];
for (int i = 0; i < stacks.length; i++) {
stacks[i] = cElementalDefinitionStack.fromNBT(nbt.getCompoundTag(Integer.toString(i)));
diff --git a/src/main/java/com/github/technus/tectech/loader/BloodyRecipeLoader.java b/src/main/java/com/github/technus/tectech/loader/BloodyRecipeLoader.java
index 67e1eef9a1..38f6610e48 100644
--- a/src/main/java/com/github/technus/tectech/loader/BloodyRecipeLoader.java
+++ b/src/main/java/com/github/technus/tectech/loader/BloodyRecipeLoader.java
@@ -21,6 +21,8 @@ import net.minecraftforge.fluids.FluidStack;
public class BloodyRecipeLoader implements Runnable {
@Override
public void run() {
+ //todo fix recipes (of assembler)
+
//Quantum Glass
GT_Values.RA.addAssemblerRecipe(new ItemStack[]{
CustomItemList.eM_Containment.get(1),
@@ -377,7 +379,7 @@ public class BloodyRecipeLoader implements Runnable {
GT_MetaTileEntity_EM_machine.registerBehaviour(new Behaviour_Centrifuge(11),ItemList.Machine_IV_Centrifuge.get(32));
GT_MetaTileEntity_EM_machine.registerBehaviour(new Behaviour_Centrifuge(12),ItemList.Machine_IV_Centrifuge.get(64));
}
-
+
GT_MetaTileEntity_EM_machine.registerBehaviour(new Behaviour_ElectromagneticSeparator(6),ItemList.Machine_IV_ElectromagneticSeparator.get(1));
try {
GT_MetaTileEntity_EM_machine.registerBehaviour(new Behaviour_ElectromagneticSeparator(7),ItemList.valueOf("Machine_LuV_ElectromagneticSeparator").get(1));
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 896746b359..ffe9b45a94 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
@@ -95,7 +95,7 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock
}
@Override
- public boolean checkRecipe_EM(ItemStack itemStack) {//TODO implement by item quantization, implement instance quantization
+ public boolean checkRecipe_EM(ItemStack itemStack) {//TODO implement instance quantization
if (GregTech_API.sPostloadFinished) {
ArrayList<ItemStack> storedInputs = getStoredInputs();
ItemStack[] inI = storedInputs.toArray(new ItemStack[storedInputs.size()]);
@@ -104,10 +104,10 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock
//ITEM STACK quantization
aItemQuantizationInfo aIQI = bTransformationInfo.itemQuantization.get(new aItemQuantizationInfo(is, false, null));
if (aIQI == null) {
- aIQI = bTransformationInfo.itemQuantization.get(new aItemQuantizationInfo(is, true, null));
+ aIQI = bTransformationInfo.itemQuantization.get(new aItemQuantizationInfo(is, true, null));//todo check if works?
}
if (aIQI == null) {
- //ORE DICT quantization
+ //ORE DICT quantization //todo fix for uranium?
int[] oreIDs = OreDictionary.getOreIDs(is);
for (int ID : oreIDs) {
if (DEBUG_MODE) {
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java
index 4672640770..eab87fe71a 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java
@@ -385,9 +385,9 @@ public class GT_MetaTileEntity_EM_scanner extends GT_MetaTileEntity_MultiblockBa
}else if(objectsScanned!=null && CustomItemList.scanContainer.isStackEqual(mInventory[1], false, true)){
ElementalDefinitionScanStorage_EM.setContent(mInventory[1],objectsScanned,scanComplexity);
}
- quantumStuff(false);
objectResearched=null;
totalComputationRemaining =0;
+ quantumStuff(false);
}
@Override
@@ -434,16 +434,16 @@ public class GT_MetaTileEntity_EM_scanner extends GT_MetaTileEntity_MultiblockBa
@Override
public void onRemoval() {
- super.onRemoval();
quantumStuff(false);
+ super.onRemoval();
}
@Override
public void stopMachine() {
+ quantumStuff(false);
super.stopMachine();
totalComputationRequired = totalComputationRemaining =0;
objectResearched=null;
- quantumStuff(false);
}
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java
index be582e1d87..c1ca644c56 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java
@@ -11,6 +11,7 @@ import java.util.Arrays;
import java.util.Comparator;
import static com.github.technus.tectech.Util.V;
+import static com.github.technus.tectech.auxiliary.TecTechConfig.DEBUG_MODE;
/**
* Created by danie_000 on 24.12.2017.
@@ -98,21 +99,24 @@ public class Behaviour_Centrifuge implements GT_MetaTileEntity_EM_machine.Behavi
cElementalInstanceStack[] stacks = input.values();
- float inputMass = input.getMass();
+ double inputMass = 0;
+ for (cElementalInstanceStack stack : stacks) {
+ inputMass += Math.abs(stack.getMass());
+ }
float excessMass = 0;
- while (inputMass > maxCapacity || -inputMass > maxCapacity) {
+ while (inputMass > maxCapacity) {
cElementalInstanceStack randomStack = stacks[TecTech.Rnd.nextInt(stacks.length)];
int amountToRemove = TecTech.Rnd.nextInt((int) randomStack.getAmount()) + 1;
randomStack.amount -= amountToRemove;//mutates the parent InstanceStackMap
if (randomStack.amount <= 0) {
input.remove(randomStack.definition);
}
- float mass = randomStack.getDefinition().getMass() * amountToRemove;
+ float mass = Math.abs(randomStack.getDefinition().getMass()) * amountToRemove;
excessMass += mass;
inputMass -= mass;
}
- inputMass = Math.abs(inputMass);
+ inputMass = Math.abs(input.getMass());
double RCF = getRCF(checkedAndFixedParameters[0]);
if (inputMass * RCF > maxForce) return new MultiblockControl<>(excessMass);//AND THEN IT EXPLODES
@@ -149,7 +153,13 @@ public class Behaviour_Centrifuge implements GT_MetaTileEntity_EM_machine.Behavi
for (cElementalInstanceStack stack : stacks) {
absMassPerOutput += Math.abs(stack.getMass());
}
+ if(DEBUG_MODE){
+ TecTech.Logger.info("absMass "+absMassPerOutput);
+ }
absMassPerOutput /= fractionCount;
+ if(DEBUG_MODE){
+ TecTech.Logger.info("absMassPerOutput "+absMassPerOut