Files
Wizardry/src/main/java/electroblob/wizardry/entity/EntityArc.java
T
2018-02-07 21:15:50 +00:00

74 lines
1.7 KiB
Java

package electroblob.wizardry.entity;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.IEntityAdditionalSpawnData;
public class EntityArc extends Entity implements IEntityAdditionalSpawnData {
public int textureIndex = 0;
public double x1, y1, z1, x2, y2, z2;
// The number of ticks the arc lasts for before disappearing
public int lifetime = 3;
public double offsetX, offsetZ;
public EntityArc(World par1World){
super(par1World);
textureIndex = this.rand.nextInt(16);
this.ignoreFrustumCheck = true;
}
public void setEndpointCoords(double x1, double y1, double z1, double x2, double y2, double z2){
this.x1 = x1;
this.y1 = y1;
this.z1 = z1;
this.x2 = x2;
this.y2 = y2;
this.z2 = z2;
this.setPosition(x2, y2, z2);
}
@Override
public void onUpdate(){
if(this.ticksExisted >= lifetime){
this.setDead();
}
}
protected void entityInit(){
}
@Override
protected void readEntityFromNBT(NBTTagCompound nbttagcompound){
}
@Override
protected void writeEntityToNBT(NBTTagCompound nbttagcompound){
// Nothing needed here; arc is merely a graphic effect that only exists for a few ticks; as such there is no
// need to save it.
}
@Override
public boolean isInRangeToRenderDist(double distance){
return true;
}
@Override
public void writeSpawnData(ByteBuf data){
data.writeDouble(this.x1);
data.writeDouble(this.y1);
data.writeDouble(this.z1);
}
@Override
public void readSpawnData(ByteBuf data){
this.x1 = data.readDouble();
this.y1 = data.readDouble();
this.z1 = data.readDouble();
}
}