package com.nisovin.magicspells.spelleffects;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
import com.nisovin.magicspells.MagicSpells;
public class ParticleLineEffect extends ParticlesEffect {
@Override
public void loadFromString(String string) {
if (string != null && !string.isEmpty()) {
String[] data = string.split(" ");
if (data.length >= 1) {
distanceBetween = Float.parseFloat(data[0]);
}
if (data.length >= 2) {
name = data[1];
}
if (data.length >= 3) {
xSpread = Float.parseFloat(data[2]);
zSpread = xSpread;
}
if (data.length >= 4) {
ySpread = Float.parseFloat(data[3]);
}
if (data.length >= 5) {
speed = Float.parseFloat(data[4]);
}
if (data.length >= 6) {
count = Integer.parseInt(data[5]);
}
if (data.length >= 7) {
yOffset = Float.parseFloat(data[6]);
}
}
}
@Override
protected void playEffectLine(Location location1, Location location2) {
int c = (int)Math.ceil(location1.distance(location2) / distanceBetween) - 1;
if (c <= 0) return;
Vector v = location2.toVector().subtract(location1.toVector()).normalize().multiply(distanceBetween);
Location l = location1.clone();
for (int i = 0; i < c; i++) {
l.add(v);
MagicSpells.getVolatileCodeHandler().playParticleEffect(l, name, xSpread, ySpread, zSpread, speed, count, 15, yOffset);
}
}
}