package zmaster587.advancedRocketry.item;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ChatComponentText;
import net.minecraft.world.World;
import net.minecraftforge.fluids.IFluidBlock;
import zmaster587.advancedRocketry.util.SealableBlockHandler;
import zmaster587.libVulpes.util.BlockPosition;
/**
* Detects if a block can be used to seal a room.
* Created by Dark(DarkGuardsman, Robert) on 1/6/2016.
*/
public class ItemSealDetector extends Item
{
//TODO make consume power?
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
{
//AtmosphereHandler.getOxygenHandler(this.worldObj.provider.dimensionId)
//TODO test atmosphere
return stack;
}
@Override
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float xx, float yy, float zz)
{
if (!world.isRemote)
{
if (SealableBlockHandler.INSTANCE.isBlockSealed(world, x, y, z))
{
player.addChatComponentMessage(new ChatComponentText("Should hold a nice seal."));
}
else
{
Block block = world.getBlock(x, y, z);
Material mat = block.getMaterial();
if (SealableBlockHandler.INSTANCE.isMaterialBanned(mat))
{
player.addChatComponentMessage(new ChatComponentText("Material will not hold a seal."));
}
else if (SealableBlockHandler.INSTANCE.isBlockBanned(block))
{
player.addChatComponentMessage(new ChatComponentText("Block will not hold a seal."));
}
else if (SealableBlockHandler.isFulBlock(world, block, new BlockPosition(x, y, z)))
{
player.addChatComponentMessage(new ChatComponentText("Air will pass around this block."));
}
else if (block instanceof IFluidBlock)
{
player.addChatComponentMessage(new ChatComponentText("Air will bubble through this block"));
}
else
{
player.addChatComponentMessage(new ChatComponentText("Air will leak through this block."));
}
}
}
return true;
}
}