package mcp.mobius.waila.api;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
/**
* The Accessor is used to get some basic data out of the game without having to request direct access to the game engine.<br>
* It will also return things that are unmodified by the overriding systems (like getWailaStack).<br>
* Common accessor for both Entity and Block/TileEntity.<br>
* Available data depends on what it is called upon (ie : getEntity() will return null if looking at a block, etc).<br>
*
*/
public interface IWailaCommonAccessor {
World getWorld();
EntityPlayer getPlayer();
Block getBlock();
int getBlockID();
String getBlockQualifiedName();
int getMetadata();
TileEntity getTileEntity();
Entity getEntity();
MovingObjectPosition getPosition();
Vec3 getRenderingPosition();
NBTTagCompound getNBTData();
int getNBTInteger(NBTTagCompound tag, String keyname);
double getPartialFrame();
ForgeDirection getSide();
ItemStack getStack();
}