diff options
| author | Technus <daniel112092@gmail.com> | 2017-12-30 14:41:48 +0100 |
|---|---|---|
| committer | Technus <daniel112092@gmail.com> | 2017-12-30 14:41:48 +0100 |
| commit | dafe0cdaa493797c87463619828932acd138922b (patch) | |
| tree | 9614e0f1746b6ddcfb1d58f29ba3974b2d63f8df /src/main/java | |
| parent | 701be18f07ad3562a059cf934c00fa2fb2bb53ef (diff) | |
| download | GT5-Unofficial-dafe0cdaa493797c87463619828932acd138922b.tar.gz GT5-Unofficial-dafe0cdaa493797c87463619828932acd138922b.tar.bz2 GT5-Unofficial-dafe0cdaa493797c87463619828932acd138922b.zip | |
Commands fixes changes.
Diffstat (limited to 'src/main/java')
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 amountTo |
