package be.isach.ultracosmetics.cosmetics.particleeffects;
import be.isach.ultracosmetics.UltraCosmetics;
import be.isach.ultracosmetics.cosmetics.type.ParticleEffectType;
import be.isach.ultracosmetics.player.UltraPlayer;
import be.isach.ultracosmetics.util.MathUtils;
import be.isach.ultracosmetics.util.UtilParticles;
import org.bukkit.Location;
/**
* Represents an instance of particles summoned by a player.
*
* @author iSach
* @since 11-28-2015
*/
public class ParticleEffectSantaHat extends ParticleEffect {
public int particles = 12;
public ParticleEffectSantaHat(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
super(ultraCosmetics, owner, ParticleEffectType.SANTAHAT);
this.ignoreMove = true;
}
@Override
public void onUpdate() {
Location location = getPlayer().getEyeLocation().add(0, 0.3, 0);
float radius = 0.25f;
drawCircle(radius + 0.1f, -0.05f, location, false);
for (int i = 0; i < 5; i++) {
double x = MathUtils.randomDouble(-0.05, 0.05);
double z = MathUtils.randomDouble(-0.05, 0.05);
location.add(x, 0.46f, z);
UtilParticles.display(255, 255, 255, location);
location.subtract(x, 0.46f, z);
}
for (float f = 0; f <= 0.4f; f += 0.1f) {
if (radius >= 0) {
drawCircle(radius, f, location, true);
radius -= 0.09f;
}
}
}
private void drawCircle(float radius, float height, Location location, boolean red) {
for (int i = 0; i < particles; i++) {
double inc = (2 * Math.PI) / particles;
float angle = (float) (i * inc);
float x = MathUtils.cos(angle) * radius;
float z = MathUtils.sin(angle) * radius;
location.add(x, height, z);
UtilParticles.display(255, red ? 0 : 255, red ? 0 : 255, location);
location.subtract(x, height, z);
}
}
}