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.UtilParticles; import org.bukkit.util.Vector; /** * Represents an instance of inferno particles summoned by a player. * * @author iSach * @since 10-18-2015 */ public class ParticleEffectInferno extends ParticleEffect { float[] height = {0, 0, 2, 2}; boolean[] up = {true, false, true, false}; int[] steps = {0, 0, 0, 0}; public ParticleEffectInferno(UltraPlayer owner, UltraCosmetics ultraCosmetics) { super(ultraCosmetics, owner, ParticleEffectType.INFERNO); } @Override public void onUpdate() { for (int i = 0; i < 4; i++) { if (up[i]) { if (height[i] < 2) height[i] += 0.05; else up[i] = false; } else { if (height[i] > 0) height[i] -= 0.05; else up[i] = true; } double inc = (2 * Math.PI) / 100; double angle = steps[i] * inc + ((i + 1) % 2 == 0 ? 45 : 0); Vector v = new Vector(); v.setX(Math.cos(angle) * 1.1); v.setZ(Math.sin(angle) * 1.1); try { UtilParticles.display(getType().getEffect(), 0.15f, 0.15f, 0.15f, getPlayer().getLocation().clone().add(v).add(0, height[i], 0), 4); } catch (Exception exc) { } if (i == 0 || i == 3) steps[i] -= 4; else steps[i] += 4; } } }