aether-legacy/src/main/java/com/legacy/aether/entities/projectile/EntityHammerProjectile.java
2020-07-18 22:07:48 -07:00

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;
}
}