ProjectZombie/src/projectzombie/entity/EntityParticle.java

40 lines
911 B
Java
Executable File

package projectzombie.entity;
import bdf.types.BdfObject;
import gl_engine.vec.Vec3d;
import projectzombie.Main;
import projectzombie.model.IModel;
import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer;
public abstract class EntityParticle extends Entity
{
public abstract int getParticleCount();
public abstract EntityParticlePart getParticleAt(int id);
public EntityParticle(BdfObject bdf) {
super(bdf);
}
public EntityParticle(Vec3d pos, Vec3d velocity) {
super(pos, velocity);
}
@Override
public void tick(Chunk chunk, Layer layer) {
super.tick(chunk, layer);
// Kill the particle if the player can't see it to reduce lag
if(shouldKillParticle()) this.kill();
}
public boolean shouldKillParticle() {
return Main.player.getPos().squareDistance(getPos()) > Chunk.RENDER_DISTANCE * 16;
}
@Override
public IModel getModel() {
return null;
}
}