package be.isach.ultracosmetics.cosmetics.gadgets;
import be.isach.ultracosmetics.UltraCosmetics;
import be.isach.ultracosmetics.player.UltraPlayer;
import be.isach.ultracosmetics.cosmetics.type.GadgetType;
import org.bukkit.Color;
import org.bukkit.FireworkEffect;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Firework;
import org.bukkit.inventory.meta.FireworkMeta;
import java.util.Random;
/**
* Represents an instance of a firework gadget summoned by a player.
*
* @author iSach
* @since 11-11-2015
*/
public class GadgetFirework extends Gadget {
private static Random random = new Random();
public GadgetFirework(UltraPlayer owner, UltraCosmetics ultraCosmetics) {
super(owner, GadgetType.FIREWORK, ultraCosmetics);
}
@Override
void onRightClick() {
Firework fw = (Firework) getPlayer().getWorld().spawnEntity(getPlayer().getLocation(), EntityType.FIREWORK);
FireworkMeta fwm = fw.getFireworkMeta();
int rt = random.nextInt(5);
FireworkEffect.Type type = FireworkEffect.Type.values()[rt];
Color c1 = Color.fromRGB(random.nextInt(256), random.nextInt(256), random.nextInt(256));
Color c2 = Color.fromRGB(random.nextInt(256), random.nextInt(256), random.nextInt(256));
FireworkEffect effect = FireworkEffect.builder().flicker(random.nextBoolean())
.withColor(c1).withFade(c2).with(type)
.trail(random.nextBoolean()).build();
fwm.addEffect(effect);
fwm.setPower(random.nextInt(3));
fw.setFireworkMeta(fwm);
}
@Override
public void onUpdate() {
}
@Override
public void onClear() {
}
@Override
void onLeftClick() {
}
}