initial commit
This commit is contained in:
parent
3c9ee26b06
commit
22186c33b9
1458 changed files with 282792 additions and 0 deletions
80
java/src/game/entity/projectile/EntityDynamite.java
Executable file
80
java/src/game/entity/projectile/EntityDynamite.java
Executable file
|
@ -0,0 +1,80 @@
|
|||
package game.entity.projectile;
|
||||
|
||||
import game.entity.DamageSource;
|
||||
import game.entity.types.EntityLiving;
|
||||
import game.entity.types.EntityThrowable;
|
||||
import game.entity.types.IObjectData;
|
||||
import game.init.Config;
|
||||
import game.init.ItemRegistry;
|
||||
import game.init.Items;
|
||||
import game.nbt.NBTTagCompound;
|
||||
import game.renderer.particle.ParticleType;
|
||||
import game.world.HitPosition;
|
||||
import game.world.World;
|
||||
|
||||
public class EntityDynamite extends EntityThrowable implements IObjectData
|
||||
{
|
||||
public int explosionSize;
|
||||
|
||||
public EntityDynamite(World worldIn)
|
||||
{
|
||||
super(worldIn);
|
||||
}
|
||||
|
||||
public EntityDynamite(World worldIn, EntityLiving throwerIn, int power)
|
||||
{
|
||||
super(worldIn, throwerIn);
|
||||
this.explosionSize = power & 7;
|
||||
}
|
||||
|
||||
public EntityDynamite(World worldIn, double x, double y, double z, int power)
|
||||
{
|
||||
super(worldIn, x, y, z);
|
||||
this.explosionSize = power & 7;
|
||||
}
|
||||
|
||||
protected void onImpact(HitPosition pos)
|
||||
{
|
||||
if (pos.entity != null && Config.knockDynamite)
|
||||
{
|
||||
pos.entity.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), 0);
|
||||
}
|
||||
|
||||
if (!this.worldObj.client)
|
||||
{
|
||||
float f = 4.0F * (((float)this.explosionSize)+1.0f);
|
||||
EntityLiving thrower = this.getThrower();
|
||||
this.worldObj.createAltExplosion(thrower == null ? this : thrower, this.posX, this.posY + (double)(this.height / 2.0F), this.posZ, f, true);
|
||||
}
|
||||
|
||||
for (int k = 0; k < 8; ++k)
|
||||
{
|
||||
this.worldObj.spawnParticle(ParticleType.ITEM_CRACK, this.posX, this.posY, this.posZ, ((double)this.rand.floatv() - 0.5D) * 0.08D, ((double)this.rand.floatv() - 0.5D) * 0.08D, ((double)this.rand.floatv() - 0.5D) * 0.08D, ItemRegistry.getIdFromItem(Items.dynamite), this.explosionSize);
|
||||
}
|
||||
|
||||
if (!this.worldObj.client)
|
||||
{
|
||||
this.setDead();
|
||||
}
|
||||
}
|
||||
|
||||
public void writeEntityToNBT(NBTTagCompound tagCompound)
|
||||
{
|
||||
super.writeEntityToNBT(tagCompound);
|
||||
tagCompound.setByte("Power", (byte)this.explosionSize);
|
||||
}
|
||||
|
||||
public void readEntityFromNBT(NBTTagCompound tagCompund)
|
||||
{
|
||||
super.readEntityFromNBT(tagCompund);
|
||||
this.explosionSize = ((int)tagCompund.getByte("Power")) & 7;
|
||||
}
|
||||
|
||||
public int getPacketData() {
|
||||
return this.explosionSize;
|
||||
}
|
||||
|
||||
// public boolean hasSpawnVelocity() {
|
||||
// return false;
|
||||
// }
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue