package advancedsystemsmanager.tileentities;
import advancedsystemsmanager.api.tileentities.ITileInterfaceProvider;
import advancedsystemsmanager.api.tileentities.IActivateListener;
import advancedsystemsmanager.containers.ContainerVoid;
import advancedsystemsmanager.client.gui.GuiVoid;
import advancedsystemsmanager.network.ASMPacket;
import advancedsystemsmanager.reference.Mods;
import cofh.api.energy.IEnergyReceiver;
import cpw.mods.fml.common.Optional;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler;
import thaumcraft.api.aspects.Aspect;
import thaumcraft.api.aspects.AspectList;
import thaumcraft.api.aspects.IAspectContainer;
@Optional.InterfaceList({
@Optional.Interface(iface = "cofh.api.energy.IEnergyReceiver", modid = Mods.COFH_ENERGY),
@Optional.Interface(iface = "thaumcraft.api.aspects.IAspectContainer", modid = Mods.THAUMCRAFT)})
public class TileEntityVoid extends TileEntityElementBase implements IInventory, IFluidHandler, ITileInterfaceProvider, IEnergyReceiver, IAspectContainer, IActivateListener
{
@Override
public int fill(ForgeDirection from, FluidStack resource, boolean doFill)
{
return resource == null ? 0 : resource.amount;
}
@Override
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain)
{
return null;
}
@Override
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain)
{
return null;
}
@Override
public boolean canFill(ForgeDirection from, Fluid fluid)
{
return true;
}
@Override
public boolean canDrain(ForgeDirection from, Fluid fluid)
{
return false;
}
@Override
public FluidTankInfo[] getTankInfo(ForgeDirection from)
{
return new FluidTankInfo[0];
}
@Override
public int getSizeInventory()
{
return 1;
}
@Override
public ItemStack getStackInSlot(int slot)
{
return null;
}
@Override
public ItemStack decrStackSize(int slot, int amount)
{
return null;
}
@Override
public ItemStack getStackInSlotOnClosing(int p_70304_1_)
{
return null;
}
@Override
public void setInventorySlotContents(int p_70299_1_, ItemStack p_70299_2_)
{
}
@Override
public String getInventoryName()
{
return null;
}
@Override
public boolean hasCustomInventoryName()
{
return false;
}
@Override
public int getInventoryStackLimit()
{
return 64;
}
@Override
public boolean isUseableByPlayer(EntityPlayer player)
{
return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64;
}
@Override
public void openInventory()
{
}
@Override
public void closeInventory()
{
}
@Override
public boolean isItemValidForSlot(int slot, ItemStack stack)
{
return true;
}
@Override
public boolean writeData(ASMPacket packet)
{
return false;
} @Override
public Container getContainer(EntityPlayer player)
{
return new ContainerVoid(this, player.inventory);
}
@Override
public GuiScreen getGui(EntityPlayer player)
{
return new GuiVoid((ContainerVoid)getContainer(player));
}
@Override
public boolean readData(ASMPacket buf, EntityPlayer player)
{
return false;
}
@Override
@Optional.Method(modid = Mods.COFH_ENERGY)
public int receiveEnergy(ForgeDirection forgeDirection, int amount, boolean simulate)
{
return amount;
}
@Override
@Optional.Method(modid = Mods.COFH_ENERGY)
public int getEnergyStored(ForgeDirection forgeDirection)
{
return 0;
}
@Override
@Optional.Method(modid = Mods.COFH_ENERGY)
public int getMaxEnergyStored(ForgeDirection forgeDirection)
{
return Integer.MAX_VALUE;
}
@Override
@Optional.Method(modid = Mods.COFH_ENERGY)
public boolean canConnectEnergy(ForgeDirection forgeDirection)
{
return true;
}
@Override
@Optional.Method(modid = Mods.THAUMCRAFT)
public AspectList getAspects()
{
return new AspectList();
}
@Override
@Optional.Method(modid = Mods.THAUMCRAFT)
public void setAspects(AspectList aspectList)
{
}
@Override
@Optional.Method(modid = Mods.THAUMCRAFT)
public boolean doesContainerAccept(Aspect aspect)
{
return true;
}
@Override
@Optional.Method(modid = Mods.THAUMCRAFT)
public int addToContainer(Aspect aspect, int i)
{
return 0;
}
@Override
@Optional.Method(modid = Mods.THAUMCRAFT)
public boolean takeFromContainer(Aspect aspect, int i)
{
return false;
}
@Override
@Optional.Method(modid = Mods.THAUMCRAFT)
public boolean takeFromContainer(AspectList aspectList)
{
return false;
}
@Override
@Optional.Method(modid = Mods.THAUMCRAFT)
public boolean doesContainerContainAmount(Aspect aspect, int i)
{
return false;
}
@Override
@Optional.Method(modid = Mods.THAUMCRAFT)
public boolean doesContainerContain(AspectList aspectList)
{
return false;
}
@Override
@Optional.Method(modid = Mods.THAUMCRAFT)
public int containerContains(Aspect aspect)
{
return 0;
}
}