package net.fourbytes.shadow.particles; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.math.MathUtils; import net.fourbytes.shadow.Images; import net.fourbytes.shadow.Particle; import net.fourbytes.shadow.ParticleType; import net.fourbytes.shadow.Shadow; public class GrassParticle extends ParticleType { public GrassParticle() { } @Override public void create(Particle particle, Color color, float size, float time) { size = 0.0625f + 0.05f*Shadow.rand.nextFloat(); particle.setSize(size, size); particle.objgravity = Shadow.rand.nextFloat()-0.4f; particle.time = 6f + MathUtils.random(3f); particle.spawntime = particle.time; particle.light.set(0f, 0.4f + 0.5f*Shadow.rand.nextFloat(), 0.225f + 0.2f*Shadow.rand.nextFloat(), 1f); particle.light.mul(0.4f); particle.light.a = 0.0775f; if (particle.baseColors[particle.imgIDs[0]] == null) { particle.baseColors[particle.imgIDs[0]] = new Color(particle.light); } else { particle.baseColors[particle.imgIDs[0]].set(particle.light); } particle.solid = false; } @Override public TextureRegion getTexture(Particle particle, int id) { return Images.getTextureRegion("white"); } @Override public void tick(Particle particle) { super.tick(particle); particle.light.set(particle.baseColors[particle.imgIDs[0]]); particle.light.mul(0.4f); particle.light.a = 0.0775f; particle.light.mul(particle.time / particle.spawntime); particle.imgupdate = true; particle.movement.x = (Shadow.rand.nextFloat()-0.5f)*particle.rec.width * 2f; particle.movement.y = (Shadow.rand.nextFloat()-0.5f)*particle.rec.height * 0.75f; } }