package net.minecraft.entity.projectile;
import net.minecraft.block.Block;
import net.minecraft.entity.EntityLiving;
import net.minecraft.util.DamageSource;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
public class EntitySmallFireball extends EntityFireball
{
public EntitySmallFireball(World par1World)
{
super(par1World);
this.setSize(0.3125F, 0.3125F);
}
public EntitySmallFireball(World par1World, EntityLiving par2EntityLiving, double par3, double par5, double par7)
{
super(par1World, par2EntityLiving, par3, par5, par7);
this.setSize(0.3125F, 0.3125F);
}
public EntitySmallFireball(World par1World, double par2, double par4, double par6, double par8, double par10, double par12)
{
super(par1World, par2, par4, par6, par8, par10, par12);
this.setSize(0.3125F, 0.3125F);
}
/**
* Called when this EntityFireball hits a block or entity.
*/
protected void onImpact(MovingObjectPosition par1MovingObjectPosition)
{
if (!this.worldObj.isRemote)
{
if (par1MovingObjectPosition.entityHit != null)
{
if (!par1MovingObjectPosition.entityHit.isImmuneToFire() && par1MovingObjectPosition.entityHit.attackEntityFrom(DamageSource.causeFireballDamage(this, this.shootingEntity), 5))
{
par1MovingObjectPosition.entityHit.setFire(5);
}
}
else
{
int var2 = par1MovingObjectPosition.blockX;
int var3 = par1MovingObjectPosition.blockY;
int var4 = par1MovingObjectPosition.blockZ;
switch (par1MovingObjectPosition.sideHit)
{
case 0:
--var3;
break;
case 1:
++var3;
break;
case 2:
--var4;
break;
case 3:
++var4;
break;
case 4:
--var2;
break;
case 5:
++var2;
}
if (this.worldObj.isAirBlock(var2, var3, var4))
{
this.worldObj.setBlockWithNotify(var2, var3, var4, Block.fire.blockID);
}
}
this.setDead();
}
}
/**
* Returns true if other Entities should be prevented from moving through this Entity.
*/
public boolean canBeCollidedWith()
{
return false;
}
/**
* Called when the entity is attacked.
*/
public boolean attackEntityFrom(DamageSource par1DamageSource, int par2)
{
return false;
}
}