64 lines
1.7 KiB
Java

package com.hbm.entity.projectile;
import com.hbm.main.MainRegistry;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class EntityLaser extends Entity {
public EntityLaser(World world) {
super(world);
this.ignoreFrustumCheck = true;
}
public EntityLaser(World world, EntityPlayer player) {
super(world);
this.ignoreFrustumCheck = true;
Vec3 vec1 = player.getLook(1.0F);
vec1.rotateAroundY(-90);
Vec3 vec2 = player.getLook(1.0F);
double x = player.posX + (vec1.xCoord * 0.3) + (vec2.xCoord * 0.4);
double y = player.posY + (vec1.yCoord * 0.3) + (vec2.yCoord * 0.4) + player.eyeHeight;
double z = player.posZ + (vec1.zCoord * 0.3) + (vec2.zCoord * 0.4);
this.setPlayerCoord((float)x, (float)y, (float)z);
}
@Override
protected void entityInit() {
this.dataWatcher.addObject(20, Float.valueOf((float)0));
this.dataWatcher.addObject(21, Float.valueOf((float)0));
this.dataWatcher.addObject(22, Float.valueOf((float)0));
}
@Override
public void onUpdate() {
if(!worldObj.isRemote && this.ticksExisted > 1)
this.setDead();
}
@Override
protected void readEntityFromNBT(NBTTagCompound p_70037_1_) {
}
@Override
protected void writeEntityToNBT(NBTTagCompound p_70014_1_) {
}
private void setPlayerCoord(float x, float y, float z) {
this.dataWatcher.updateObject(20, x);
this.dataWatcher.updateObject(21, y);
this.dataWatcher.updateObject(22, z);
}
public float[] getPlayerCoord() {
return new float[]{ this.dataWatcher.getWatchableObjectFloat(20),
this.dataWatcher.getWatchableObjectFloat(21),
this.dataWatcher.getWatchableObjectFloat(22) };
}
}