73 lines
2.2 KiB
Java
73 lines
2.2 KiB
Java
package com.legacy.aether.entities.projectile;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.block.BlockBush;
|
|
import net.minecraft.entity.EntityLivingBase;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.util.DamageSource;
|
|
import net.minecraft.util.MovingObjectPosition;
|
|
import net.minecraft.util.MovingObjectPosition.MovingObjectType;
|
|
import net.minecraft.world.World;
|
|
|
|
import com.legacy.aether.api.player.util.IAetherBoss;
|
|
import com.legacy.aether.entities.util.EntitySaddleMount;
|
|
|
|
public class EntityHammerProjectile extends EntityProjectileBase {
|
|
|
|
public ArrayList<Block> harvestBlockBans = new ArrayList<Block>();
|
|
|
|
public EntityHammerProjectile(World worldIn) {
|
|
super(worldIn);
|
|
}
|
|
|
|
public EntityHammerProjectile(World worldIn, EntityLivingBase shooter) {
|
|
super(worldIn, shooter);
|
|
}
|
|
|
|
@Override
|
|
public void onUpdate() {
|
|
super.onUpdate();
|
|
|
|
this.worldObj.spawnParticle("reddust", this.posX, this.posY + 0.2F, this.posZ, 1.0D, 1.0D, 1.0D);
|
|
|
|
if (this.ticksInAir > 100) {
|
|
this.setDead();
|
|
} else {
|
|
this.ticksInAir++;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
@SuppressWarnings("deprecation")
|
|
protected void onImpact(MovingObjectPosition object) {
|
|
if (object.typeOfHit == MovingObjectType.ENTITY) {
|
|
if (object.entityHit instanceof EntitySaddleMount && ((EntitySaddleMount) object.entityHit).isSaddled()) {
|
|
|
|
} else if (object.entityHit != this.getThrower() && !(object.entityHit instanceof IAetherBoss)) {
|
|
object.entityHit.attackEntityFrom(DamageSource.causeMobDamage(this.getThrower()), 5);
|
|
object.entityHit.addVelocity(this.motionX, 0.6D, this.motionZ);
|
|
}
|
|
}
|
|
|
|
for (int j = 0; j < 8; j++) {
|
|
this.worldObj.spawnParticle("explode", this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D);
|
|
this.worldObj.spawnParticle("explode", this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D);
|
|
this.worldObj.spawnParticle("smoke", this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D);
|
|
this.worldObj.spawnParticle("largesmoke", this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D);
|
|
this.worldObj.spawnParticle("flame", this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected float getBoundingBoxExpansion() {
|
|
return 2.5F;
|
|
}
|
|
|
|
@Override
|
|
protected float getGravityVelocity() {
|
|
return 0.0F;
|
|
}
|
|
|
|
} |