diff options
| author | Tec <daniel112092@gmail.com> | 2018-04-08 21:41:11 +0200 |
|---|---|---|
| committer | Tec <daniel112092@gmail.com> | 2018-04-08 21:41:11 +0200 |
| commit | 05699ec787d0a74694cab873617281df075d8b52 (patch) | |
| tree | 0424587444e07dd2c440281c024378820427b782 /src | |
| parent | 2a196a659ccfe0d33f90eefd4f121ee6d07f678f (diff) | |
| download | GT5-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.java | 11 |
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; } |
