diff options
| author | Tec <daniel112092@gmail.com> | 2018-08-15 19:57:20 +0200 |
|---|---|---|
| committer | Tec <daniel112092@gmail.com> | 2018-08-15 19:57:20 +0200 |
| commit | 99e1f573744a844a50ad2e35bfb5be0692f5a6c6 (patch) | |
| tree | b8d5161106d9dd06f241201df679463ce83a7d22 | |
| parent | a135dc53da90be1b0a0e2234833dd4a7c6ca5a35 (diff) | |
| download | GT5-Unofficial-99e1f573744a844a50ad2e35bfb5be0692f5a6c6.tar.gz GT5-Unofficial-99e1f573744a844a50ad2e35bfb5be0692f5a6c6.tar.bz2 GT5-Unofficial-99e1f573744a844a50ad2e35bfb5be0692f5a6c6.zip | |
Change fusion behaviour a bit
6 files changed, 31 insertions, 5 deletions
diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/elementalMatter/definitions/dComplexAspectDefinition.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/elementalMatter/definitions/dComplexAspectDefinition.java index 95671f2515..77dffad225 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/elementalMatter/definitions/dComplexAspectDefinition.java +++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/elementalMatter/definitions/dComplexAspectDefinition.java @@ -195,6 +195,11 @@ public final class dComplexAspectDefinition extends cElementalDefinition impleme } @Override + public boolean fusionMakesEnergy(long energyLevel) { + return false; + } + + @Override public cElementalDecay[] getNaturalDecayInstant() { return noDecay; } diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/cElementalPrimitive.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/cElementalPrimitive.java index 5db86a0349..738301d50c 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/cElementalPrimitive.java +++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/cElementalPrimitive.java @@ -149,6 +149,11 @@ public abstract class cElementalPrimitive extends cElementalDefinition { } @Override + public boolean fusionMakesEnergy(long energyLevel) { + return false; + } + + @Override public cElementalDecay[] getDecayArray() { return elementalDecays; } diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/iElementalDefinition.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/iElementalDefinition.java index c5f7e5afed..6293e9ccf2 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/iElementalDefinition.java +++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/core/templates/iElementalDefinition.java @@ -45,6 +45,8 @@ public abstract class iElementalDefinition implements Comparable<iElementalDefin public abstract boolean decayMakesEnergy(long energyLevel); + public abstract boolean fusionMakesEnergy(long energyLevel); + public abstract float getEnergyDiffBetweenStates(long currentEnergy, long newEnergyLevel);//positive or negative public abstract float getMass();//mass... MeV/c^2 diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/atom/dAtomDefinition.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/atom/dAtomDefinition.java index 5f191a4274..3d9cd58083 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/atom/dAtomDefinition.java +++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/atom/dAtomDefinition.java @@ -1240,6 +1240,11 @@ public final class dAtomDefinition extends cElementalDefinition { } @Override + public boolean fusionMakesEnergy(long energyLevel) { + return iaea!=null || iaeaDefinitionExistsAndHasEnergyLevels; + } + + @Override public cElementalDecay[] getNaturalDecayInstant() { //disembody ArrayList<cElementalDefinitionStack> decaysInto = new ArrayList<>(); diff --git a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/hadron/dHadronDefinition.java b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/hadron/dHadronDefinition.java index f24b9f2d82..6b98cd2a99 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/hadron/dHadronDefinition.java +++ b/src/main/java/com/github/technus/tectech/mechanics/elementalMatter/definitions/complex/hadron/dHadronDefinition.java @@ -233,6 +233,11 @@ public final class dHadronDefinition extends cElementalDefinition {//TODO Optimi } @Override + public boolean fusionMakesEnergy(long energyLevel) { + return false; + } + + @Override public cElementalDecay[] getDecayArray() { cElementalDefinitionStack[] quarkStacks = this.quarkStacks.values(); if (amount == 2 && quarkStacks.length == 2 && quarkStacks[0].definition.getMass() == quarkStacks[1].definition.getMass() && quarkStacks[0].definition.getType() == -quarkStacks[1].definition.getType()) { diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java index dcee60d40b..5e97d82aed 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java @@ -497,11 +497,10 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB protected double fuse(GT_MetaTileEntity_EM_collider partner){ if(partner.stack!=null && stack!=null) {//todo add single event mode as an option - boolean check=stack.definition.decayMakesEnergy(stack.getEnergy()) && - partner.stack.definition.decayMakesEnergy(partner.stack.getEnergy()); + boolean check=stack.definition.fusionMakesEnergy(stack.getEnergy()) && + partner.stack.definition.fusionMakesEnergy(partner.stack.getEnergy()); cElementalInstanceStack stack2 = partner.stack; - partner.stack = null; double preMass = stack2.getMass() + stack.getMass(); //System.out.println("preMass = " + preMass); @@ -515,10 +514,14 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB if (handleRecipe(stack2, map, colliderHandler)) return 0; } for (cElementalInstanceStack newStack : map.values()) { - check &= newStack.definition.decayMakesEnergy(newStack.getEnergy()); + check &= newStack.definition.fusionMakesEnergy(newStack.getEnergy()); } //System.out.println("outputEM[0].getMass() = " + outputEM[0].getMass()); outputEM = new cElementalInstanceStackMap[]{map}; + + partner.stack = stack = null; + //System.out.println("check = " + check); + //System.out.println("preMass-map.getMass() = " + (preMass - map.getMass())); return check ? preMass - map.getMass() : Math.min(preMass - map.getMass(), 0); } @@ -598,7 +601,7 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB if (isMaster()) { switch (getParameterInInt(0,0)){ case FUSE_MODE: - makeEU(fuse(partner)); + fuse(partner); break; case COLLIDE_MODE: //collide(partner);//todo @@ -629,6 +632,7 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB private void makeEU(double massDiff){ plasmaEnergy+=massDiff*MASS_TO_EU_INSTANT; + System.out.println("plasmaEnergy = " + plasmaEnergy); } private cElementalInstanceStackMap tickStack(){ |
