/**
* Copyright (c) Lambda Innovation, 2013-2016
* This file is part of the AcademyCraft mod.
* https://github.com/LambdaInnovation/AcademyCraft
* Licensed under GPLv3, see project root for more information.
*/
package cn.academy.vanilla.electromaster.entity;
import cn.academy.vanilla.electromaster.client.effect.SubArc;
import cn.lambdalib.annoreg.core.Registrant;
import cn.lambdalib.annoreg.mc.RegEntity;
import cn.lambdalib.util.entityx.EntityCallback;
import cn.lambdalib.util.generic.RandUtils;
import cn.lambdalib.util.generic.VecUtils;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.player.EntityPlayer;
/**
* @author WeAthFolD
*/
@Registrant
@SideOnly(Side.CLIENT)
@RegEntity(clientOnly = true)
public class EntityIntensifyEffect extends EntitySurroundArc {
public EntityIntensifyEffect(EntityPlayer player) {
super(player);
this.setArcType(ArcType.THIN);
initEvents();
}
private void initEvents() {
genAtHt(2, 0);
genAtHt(1.8, 1);
genAtHt(1.5, 3);
genAtHt(1, 4);
genAtHt(0.5, 6);
genAtHt(0, 7);
genAtHt(-0.1, 8);
this.life = 15;
}
// Disable the original generation
@Override
protected void doGenerate() {}
private void genAtHt(double ht, int after) {
this.executeAfter(new EntityCallback<EntityIntensifyEffect>() {
@Override
public void execute(EntityIntensifyEffect target) {
//arcHandler.clear();
int gen = RandUtils.rangei(3, 4);
while(gen-- > 0) {
double phi = RandUtils.ranged(0.5, 0.6);
double theta = RandUtils.ranged(0, Math.PI * 2);
SubArc arc = arcHandler.generateAt(
VecUtils.vec(phi * Math.sin(theta), ht, phi * Math.cos(theta)));
arc.life = 3;
}
}
}, after);
}
}