package com.mrcrayfish.furniture.util;
import java.util.List;
import com.mrcrayfish.furniture.entity.EntitySittableBlock;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.world.World;
public class SittableUtil {
public static boolean sitOnBlock(World par1World, double x, double y, double z, EntityPlayer par5EntityPlayer, double par6)
{
if (!checkForExistingEntity(par1World, x, y, z, par5EntityPlayer))
{
EntitySittableBlock nemb = new EntitySittableBlock(par1World, x, y, z, par6);
par1World.spawnEntity(nemb);
par5EntityPlayer.startRiding(nemb);
}
return true;
}
public static boolean sitOnBlockWithRotationOffset(World par1World, double x, double y, double z, EntityPlayer par5EntityPlayer, double par6, int metadata, double offset)
{
if (!checkForExistingEntity(par1World, x, y, z, par5EntityPlayer) && !par1World.isRemote)
{
EntitySittableBlock nemb = new EntitySittableBlock(par1World, x, y, z, par6, metadata, offset);
par1World.spawnEntity(nemb);
par5EntityPlayer.startRiding(nemb);
}
return true;
}
public static boolean checkForExistingEntity(World par1World, double x, double y, double z, EntityPlayer par5EntityPlayer)
{
List<EntitySittableBlock> listEMB = par1World.getEntitiesWithinAABB(EntitySittableBlock.class, new AxisAlignedBB(x, y, z, x + 1.0D, y + 1.0D, z + 1.0D).expand(1D, 1D, 1D));
for (EntitySittableBlock mount : listEMB)
{
if (mount.blockPosX == x && mount.blockPosY == y && mount.blockPosZ == z)
{
if (!mount.isBeingRidden())
{
par5EntityPlayer.startRiding(mount);
}
return true;
}
}
return false;
}
public static boolean isSomeoneSitting(World world, double x, double y, double z)
{
List<EntitySittableBlock> listEMB = world.getEntitiesWithinAABB(EntitySittableBlock.class, new AxisAlignedBB(x, y, z, x + 1.0D, y + 1.0D, z + 1.0D).expand(1D, 1D, 1D));
for (EntitySittableBlock mount : listEMB)
{
if (mount.blockPosX == x && mount.blockPosY == y && mount.blockPosZ == z)
{
return mount.isBeingRidden();
}
}
return false;
}
}