package net.minecraft.entity.projectile;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.Blocks;
import net.minecraft.util.BlockPos;
import net.minecraft.util.DamageSource;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
public class EntitySmallFireball extends EntityFireball
{
private static final String __OBFID = "CL_00001721";
public EntitySmallFireball(World worldIn)
{
super(worldIn);
this.setSize(0.3125F, 0.3125F);
}
public EntitySmallFireball(World worldIn, EntityLivingBase p_i1771_2_, double p_i1771_3_, double p_i1771_5_, double p_i1771_7_)
{
super(worldIn, p_i1771_2_, p_i1771_3_, p_i1771_5_, p_i1771_7_);
this.setSize(0.3125F, 0.3125F);
}
public EntitySmallFireball(World worldIn, double p_i1772_2_, double p_i1772_4_, double p_i1772_6_, double p_i1772_8_, double p_i1772_10_, double p_i1772_12_)
{
super(worldIn, p_i1772_2_, p_i1772_4_, p_i1772_6_, p_i1772_8_, p_i1772_10_, p_i1772_12_);
this.setSize(0.3125F, 0.3125F);
}
/**
* Called when this EntityFireball hits a block or entity.
*/
protected void onImpact(MovingObjectPosition p_70227_1_)
{
if (!this.worldObj.isRemote)
{
boolean var2;
if (p_70227_1_.entityHit != null)
{
var2 = p_70227_1_.entityHit.attackEntityFrom(DamageSource.causeFireballDamage(this, this.shootingEntity), 5.0F);
if (var2)
{
this.func_174815_a(this.shootingEntity, p_70227_1_.entityHit);
if (!p_70227_1_.entityHit.isImmuneToFire())
{
p_70227_1_.entityHit.setFire(5);
}
}
}
else
{
var2 = true;
if (this.shootingEntity != null && this.shootingEntity instanceof EntityLiving)
{
var2 = this.worldObj.getGameRules().getGameRuleBooleanValue("mobGriefing");
}
if (var2)
{
BlockPos var3 = p_70227_1_.func_178782_a().offset(p_70227_1_.field_178784_b);
if (this.worldObj.isAirBlock(var3))
{
this.worldObj.setBlockState(var3, Blocks.fire.getDefaultState());
}
}
}
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 source, float amount)
{
return false;
}
}