70 lines
1.9 KiB
Java

package com.hbm.entity.item;
import com.hbm.handler.threading.PacketThreading;
import com.hbm.packet.toclient.AuxParticlePacketNT;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class EntityFireworks extends Entity {
int color;
int character;
public EntityFireworks(World world) {
super(world);
}
public EntityFireworks(World world, double x, double y, double z, int color, int character) {
super(world);
this.setPositionAndRotation(x, y, z, 0.0F, 0.0F);
this.color = color;
this.character = character;
}
@Override
protected void entityInit() { }
@Override
public void onUpdate() {
this.moveEntity(0.0, 3.0D, 0.0);
this.worldObj.spawnParticle("flame", posX, posY, posZ, 0.0, -0.3, 0.0);
this.worldObj.spawnParticle("smoke", posX, posY, posZ, 0.0, -0.2, 0.0);
if(!worldObj.isRemote) {
ticksExisted++;
if(this.ticksExisted > 30) {
this.worldObj.playSoundEffect(posX, posY, posZ, "fireworks.blast", 20, 1F + this.rand.nextFloat() * 0.2F);
this.setDead();
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "fireworks");
data.setInteger("color", color);
data.setInteger("char", character);
PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(this.worldObj.provider.dimensionId, posX, posY, posZ, 300));
}
}
}
@Override
protected void readEntityFromNBT(NBTTagCompound nbt) {
this.character = nbt.getInteger("char");
this.color = nbt.getInteger("color");
this.ticksExisted = nbt.getInteger("ticksExisted");
}
@Override
protected void writeEntityToNBT(NBTTagCompound nbt) {
nbt.setInteger("char", character);
nbt.setInteger("color", color);
nbt.setInteger("ticksExisted", ticksExisted);
}
}