GT5-Unofficial/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
2015-06-27 03:26:08 +02:00

124 lines
3.4 KiB
Java

package gregtech.api.interfaces.tileentity;
import gregtech.api.interfaces.IDescribable;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.fluids.IFluidHandler;
/**
* A simple compound Interface for all my TileEntities.
*
* Also delivers most of the Informations about my TileEntities.
*
* It can cause Problems to include this Interface!
*/
public interface IGregTechTileEntity extends ITexturedTileEntity, IGearEnergyTileEntity, ICoverable, IFluidHandler, ITurnable, IGregTechDeviceInformation, IUpgradableMachine, IDigitalChest, IDescribable, IMachineBlockUpdateable {
/**
* gets the Error displayed on the GUI
*/
public int getErrorDisplayID();
/**
* sets the Error displayed on the GUI
*/
public void setErrorDisplayID(int aErrorID);
/**
* @return the MetaID of the Block or the MetaTileEntity ID.
*/
public int getMetaTileID();
/**
* Internal Usage only!
*/
public int setMetaTileID(short aID);
/**
* @return the MetaTileEntity which is belonging to this, or null if it doesnt has one.
*/
public IMetaTileEntity getMetaTileEntity();
/**
* Sets the MetaTileEntity.
* Even though this uses the Universal Interface, certain BaseMetaTileEntities only accept one kind of MetaTileEntity
* so only use this if you are sure its the correct one or you will get a Class cast Error.
* @param aMetaTileEntity
*/
public void setMetaTileEntity(IMetaTileEntity aMetaTileEntity);
/**
* Causes a general Texture update.
*
* Only used Client Side to mark Blocks dirty.
*/
public void issueTextureUpdate();
/**
* Causes the Machine to send its initial Data, like Covers and its ID.
*/
public void issueClientUpdate();
/**
* causes Explosion. Strength in Overload-EU
*/
public void doExplosion(long aExplosionEU);
/**
* Sets the Block on Fire in all 6 Directions
*/
public void setOnFire();
/**
* Sets the Block to Fire
*/
public void setToFire();
/**
* Sets the Owner of the Machine. Returns the set Name.
*/
public String setOwnerName(String aName);
/**
* gets the Name of the Machines Owner or "Player" if not set.
*/
public String getOwnerName();
/**
* Sets initial Values from NBT
* @param tNBT is the NBTTag of readFromNBT
* @param aID is the MetaTileEntityID
*/
public void setInitialValuesAsNBT(NBTTagCompound aNBT, short aID);
/**
* Called when leftclicking the TileEntity
*/
public void onLeftclick(EntityPlayer aPlayer);
/**
* Called when rightclicking the TileEntity
*/
public boolean onRightclick(EntityPlayer aPlayer, byte aSide, float par1, float par2, float par3);
public float getBlastResistance(byte aSide);
public ArrayList<ItemStack> getDrops();
/**
* 255 = 100%
*/
public int getLightOpacity();
public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List<AxisAlignedBB> outputAABB, Entity collider);
public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ);
public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider);
}