aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTec <daniel112092@gmail.com>2018-04-08 21:41:11 +0200
committerTec <daniel112092@gmail.com>2018-04-08 21:41:11 +0200
commit05699ec787d0a74694cab873617281df075d8b52 (patch)
tree0424587444e07dd2c440281c024378820427b782 /src
parent2a196a659ccfe0d33f90eefd4f121ee6d07f678f (diff)
downloadGT5-Unofficial-05699ec787d0a74694cab873617281df075d8b52.tar.gz
GT5-Unofficial-05699ec787d0a74694cab873617281df075d8b52.tar.bz2
GT5-Unofficial-05699ec787d0a74694cab873617281df075d8b52.zip
better energy mixing to fix infinite photons...
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/core/stacks/cElementalInstanceStack.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/core/stacks/cElementalInstanceStack.java b/src/main/java/com/github/technus/tectech/elementalMatter/core/stacks/cElementalInstanceStack.java
index 0575c2b8a5..83dc2e1817 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/core/stacks/cElementalInstanceStack.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/core/stacks/cElementalInstanceStack.java
@@ -371,13 +371,17 @@ public final class cElementalInstanceStack implements iHasElementalDefinition {
return this;
}
//returns with the definition from the first object passed
- long energy = this.energy * amount;
+ double energy = this.energy * amount;
+ long maxEnergy=this.energy;
float lifeTimeMul = lifeTimeMult;
for (cElementalInstanceStack instance : instances) {
if (instance != null && compareTo(instance) == 0) {
amount += instance.amount;
energy += instance.energy * instance.amount;
+ if(instance.energy>maxEnergy){
+ maxEnergy=instance.energy;
+ }
lifeTimeMul = Math.min(lifeTimeMul, instance.lifeTimeMult);
age = Math.max(age, instance.age);
}
@@ -386,7 +390,10 @@ public final class cElementalInstanceStack implements iHasElementalDefinition {
if (amount != 0) {
energy /= Math.abs(amount);
}
- setEnergy(energy);
+
+ double wholeParts=Math.floor(energy);
+ energy=Math.min(energy-wholeParts,1);
+ setEnergy(Math.min(maxEnergy,(long)wholeParts+(energy>TecTech.Rnd.nextDouble()?1:0)));
return this;
}