Partial 7.0 merge - API preview
This commit is contained in:
47
core/src/mindustry/entities/effect/ExplosionEffect.java
Normal file
47
core/src/mindustry/entities/effect/ExplosionEffect.java
Normal file
@@ -0,0 +1,47 @@
|
||||
package mindustry.entities.effect;
|
||||
|
||||
import arc.graphics.*;
|
||||
import arc.graphics.g2d.*;
|
||||
import arc.math.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.graphics.*;
|
||||
|
||||
import static arc.graphics.g2d.Draw.*;
|
||||
import static arc.graphics.g2d.Lines.*;
|
||||
import static arc.math.Angles.*;
|
||||
|
||||
public class ExplosionEffect extends Effect{
|
||||
public Color waveColor = Pal.missileYellow, smokeColor = Color.gray, sparkColor = Pal.missileYellowBack;
|
||||
public float waveLife = 6f, waveStroke = 3f, waveRad = 15f, waveRadBase = 2f, sparkStroke = 1f, sparkRad = 23f, sparkLen = 3f, smokeSize = 4f, smokeSizeBase = 0.5f, smokeRad = 23f;
|
||||
public int smokes = 5, sparks = 4;
|
||||
|
||||
public ExplosionEffect(){
|
||||
clip = 100f;
|
||||
lifetime = 22;
|
||||
|
||||
renderer = e -> {
|
||||
color(waveColor);
|
||||
|
||||
e.scaled(waveLife, i -> {
|
||||
stroke(waveStroke * i.fout());
|
||||
Lines.circle(e.x, e.y, waveRadBase + i.fin() * waveRad);
|
||||
});
|
||||
|
||||
color(smokeColor);
|
||||
|
||||
if(smokeSize > 0){
|
||||
randLenVectors(e.id, smokes, 2f + smokeRad * e.finpow(), (x, y) -> {
|
||||
Fill.circle(e.x + x, e.y + y, e.fout() * smokeSize + smokeSizeBase);
|
||||
});
|
||||
}
|
||||
|
||||
color(sparkColor);
|
||||
stroke(e.fout() * sparkStroke);
|
||||
|
||||
randLenVectors(e.id + 1, sparks, 1f + sparkRad * e.finpow(), (x, y) -> {
|
||||
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * sparkLen);
|
||||
Drawf.light(e.x + x, e.y + y, e.fout() * sparkLen * 4f, sparkColor, 0.7f);
|
||||
});
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user