package edx.core.fx;

import net.minecraft.client.Minecraft;
import net.minecraft.client.particle.EntityFX;
import net.minecraft.world.World;
import resonantengine.lib.transform.vector.Vector3;

import java.util.Random;

/**
 * A spawner used to spawn in multiple electrical bolts for a specific duration.
 */
public class FXElectricBoltSpawner extends EntityFX
{
	private Vector3 start;
	private Vector3 end;

	public FXElectricBoltSpawner(World world, Vector3 startVec, Vector3 targetVec, long seed, int duration)
	{
		super(world, startVec.x(), startVec.y(), startVec.z(), 0.0D, 0.0D, 0.0D);

		if (seed == 0)
		{
			this.rand = new Random();
		}
		else
		{
			this.rand = new Random(seed);
		}

		this.start = startVec;
		this.end = targetVec;
		this.particleMaxAge = duration;
	}

	@Override
	public void onUpdate()
	{
		Minecraft.getMinecraft().effectRenderer.addEffect(new FXElectricBolt(this.worldObj, this.start, this.end));
		if (this.particleAge++ >= this.particleMaxAge)
		{
			this.setDead();
		}
	}

}
