Merge remote-tracking branch 'origin/master'

This commit is contained in:
Anuken
2025-02-04 14:49:38 -05:00
2 changed files with 25 additions and 13 deletions

View File

@@ -10,24 +10,25 @@ import mindustry.gen.*;
public class DrawParticles extends DrawBlock{
public Color color = Color.valueOf("f2d585");
public int sides = 12;
public float x = 0, y = 0;
public float alpha = 0.5f;
public int particles = 30;
public float particleLife = 70f, particleRad = 7f, particleSize = 3f, fadeMargin = 0.4f, rotateScl = 3f;
public boolean reverse = false;
public float particleRotation = 0, particleLife = 70f, particleRad = 7f, particleSize = 3f, fadeMargin = 0.4f, rotateScl = 3f;
public boolean reverse = false, poly = false;
public Interp particleInterp = new PowIn(1.5f);
public Interp particleSizeInterp = Interp.slope;
public Blending blending = Blending.normal;
@Override
public void draw(Building build){
if(build.warmup() > 0f){
float a = alpha * build.warmup();
Draw.blend(blending);
Draw.color(color);
float base = (Time.time / particleLife);
float base = Time.time / particleLife;
rand.setSeed(build.id);
for(int i = 0; i < particles; i++){
float fin = (rand.random(2f) + base) % 1f;
@@ -35,12 +36,23 @@ public class DrawParticles extends DrawBlock{
float fout = 1f - fin;
float angle = rand.random(360f) + (Time.time / rotateScl) % 360f;
float len = particleRad * particleInterp.apply(fout);
Draw.alpha(a * (1f - Mathf.curve(fin, 1f - fadeMargin)));
Fill.circle(
build.x + Angles.trnsx(angle, len),
build.y + Angles.trnsy(angle, len),
particleSize * particleSizeInterp.apply(fin) * build.warmup()
);
if(poly){
Fill.poly(
build.x + x + Angles.trnsx(angle, len),
build.y + y + Angles.trnsy(angle, len),
sides,
particleSize * particleSizeInterp.apply(fin) * build.warmup(),
particleRotation
);
}else{
Fill.circle(
build.x + x + Angles.trnsx(angle, len),
build.y + y + Angles.trnsy(angle, len),
particleSize * particleSizeInterp.apply(fin) * build.warmup()
);
}
}
Draw.blend();

View File

@@ -13,7 +13,7 @@ public class DrawSoftParticles extends DrawBlock{
public TextureRegion region;
public Color color = Color.valueOf("e3ae6f"), color2 = Color.valueOf("d04d46");
public float x = 0, y = 0;
public float alpha = 0.5f;
public int particles = 30;
public float particleLife = 70f, particleRad = 7f, particleSize = 3f, fadeMargin = 0.4f, rotateScl = 1.5f;
@@ -43,8 +43,8 @@ public class DrawSoftParticles extends DrawBlock{
float r = particleSize * fin * build.warmup()*2f;
Draw.rect(
region,
build.x + Angles.trnsx(angle, len),
build.y + Angles.trnsy(angle, len),
build.x + x + Angles.trnsx(angle, len),
build.y + y + Angles.trnsy(angle, len),
r, r
);
}