130 lines
3.2 KiB
Java
Executable file
130 lines
3.2 KiB
Java
Executable file
package game.entity.item;
|
|
|
|
import game.entity.DamageSource;
|
|
import game.entity.Entity;
|
|
import game.entity.EntityType;
|
|
import game.nbt.NBTTagCompound;
|
|
import game.world.World;
|
|
|
|
public class EntityCrystal extends Entity
|
|
{
|
|
public int innerRotation;
|
|
// public int health;
|
|
|
|
public EntityCrystal(World worldIn)
|
|
{
|
|
super(worldIn);
|
|
this.preventSpawning = true;
|
|
this.setSize(2.0F, 2.0F);
|
|
// this.health = 5;
|
|
this.innerRotation = this.rand.zrange(100000);
|
|
}
|
|
|
|
public EntityCrystal(World worldIn, double x, double y, double z)
|
|
{
|
|
this(worldIn);
|
|
this.setPosition(x, y, z);
|
|
}
|
|
|
|
/**
|
|
* returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to
|
|
* prevent them from trampling crops
|
|
*/
|
|
protected boolean canTriggerWalking()
|
|
{
|
|
return false;
|
|
}
|
|
|
|
protected void entityInit()
|
|
{
|
|
// this.dataWatcher.addObject(8, Integer.valueOf(this.health));
|
|
}
|
|
|
|
/**
|
|
* Called to update the entity's position/logic.
|
|
*/
|
|
public void onUpdate()
|
|
{
|
|
this.prevX = this.posX;
|
|
this.prevY = this.posY;
|
|
this.prevZ = this.posZ;
|
|
++this.innerRotation;
|
|
// this.dataWatcher.updateObject(8, Integer.valueOf(this.health));
|
|
// int i = MathHelper.floor_double(this.posX);
|
|
// int j = MathHelper.floor_double(this.posY);
|
|
// int k = MathHelper.floor_double(this.posZ);
|
|
//
|
|
// if (this.worldObj.dimension instanceof AreaEnd && this.worldObj.getBlockState(new BlockPos(i, j, k)).getBlock() != Blocks.fire)
|
|
// {
|
|
// this.worldObj.setBlockState(new BlockPos(i, j, k), Blocks.fire.getDefaultState());
|
|
// }
|
|
}
|
|
|
|
/**
|
|
* (abstract) Protected helper method to write subclass entity data to NBT.
|
|
*/
|
|
protected void writeEntityToNBT(NBTTagCompound tagCompound)
|
|
{
|
|
}
|
|
|
|
/**
|
|
* (abstract) Protected helper method to read subclass entity data from NBT.
|
|
*/
|
|
protected void readEntityFromNBT(NBTTagCompound tagCompund)
|
|
{
|
|
}
|
|
|
|
/**
|
|
* Returns true if other Entities should be prevented from moving through this Entity.
|
|
*/
|
|
public boolean canBeCollidedWith()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Called when the entity is attacked.
|
|
*/
|
|
public boolean attackEntityFrom(DamageSource source, int amount)
|
|
{
|
|
// if (this.isEntityInvulnerable(source))
|
|
// {
|
|
// return false;
|
|
// }
|
|
// else
|
|
// {
|
|
if (!this.dead && !this.worldObj.client)
|
|
{
|
|
// this.health = 0;
|
|
//
|
|
// if (this.health <= 0)
|
|
// {
|
|
this.setDead();
|
|
|
|
// if (!this.worldObj.client)
|
|
// {
|
|
this.worldObj.createExplosion(null, this.posX, this.posY, this.posZ, 6.0F, true);
|
|
// }
|
|
// }
|
|
}
|
|
|
|
return true;
|
|
// }
|
|
}
|
|
|
|
public int getTrackingRange() {
|
|
return 256;
|
|
}
|
|
|
|
public int getUpdateFrequency() {
|
|
return Integer.MAX_VALUE;
|
|
}
|
|
|
|
public boolean isSendingVeloUpdates() {
|
|
return false;
|
|
}
|
|
|
|
public EntityType getType() {
|
|
return EntityType.OBJECT;
|
|
}
|
|
}
|