tModLoader v2024.10
A mod to make and play Terraria mods
TileEntity Class Reference

Inherited by ModTileEntity, TEDisplayDoll, TEFoodPlatter, TEHatRack, TEItemFrame, TELogicSensor, TETeleportationPylon, TETrainingDummy, and TEWeaponsRack.

Public Member Functions

virtual TileEntity GenerateInstance ()
 
virtual string GetItemGamepadInstructions (int slot=0)
 
virtual bool IsTileValidForEntity (int x, int y)
 
virtual void LoadData (TagCompound tag)
 Allows you to load custom data that you have saved for this tile entity.
Try to write defensive loading code that won't crash if something's missing. More...
 
virtual void NetPlaceEntityAttempt (int x, int y)
 
virtual void NetReceive (BinaryReader reader)
 Receives custom data sent in the NetSend hook.
Called while receiving tile data (!lightReceive) and when MessageID.TileEntitySharing is received (lightReceive).
Only called on the client. More...
 
virtual void NetSend (BinaryWriter writer)
 Allows you to send custom data for this tile entity between client and server, which will be handled in NetReceive.
Called while sending tile data (!lightSend) and when MessageID.TileEntitySharing is sent (lightSend).
Only called on the server. More...
 
virtual void OnInventoryDraw (Player player, SpriteBatch spriteBatch)
 
virtual void OnPlayerUpdate (Player player)
 
virtual bool OverrideItemSlotHover (Item[] inv, int context=0, int slot=0)
 
virtual bool OverrideItemSlotLeftClick (Item[] inv, int context=0, int slot=0)
 
virtual void ReadExtraData (BinaryReader reader, bool networkSend)
 
virtual void RegisterTileEntityID (int assignedID)
 
virtual void SaveData (TagCompound tag)
 Allows you to save custom data for this tile entity.

NOTE: The provided tag is always empty by default, and is provided as an argument only for the sake of convenience and optimization.
NOTE: Try to only save data that isn't default values. More...
 
virtual bool TryGetItemGamepadOverrideInstructions (Item[] inv, int context, int slot, out string instruction)
 
virtual void Update ()
 
virtual void WriteExtraData (BinaryWriter writer, bool networkSend)
 

Static Public Member Functions

static int AssignNewID ()
 
static void BasicOpenCloseInteraction (Player player, int x, int y, int id)
 
static void Clear ()
 
static void InitializeAll ()
 
static bool IsOccupied (int id, out int interactingPlayer)
 
static void PlaceEntityNet (int x, int y, int type)
 
static TileEntity Read (BinaryReader reader, bool networkSend=false, bool lightSend=false)
 
static void SetInteractionAnchor (Player player, int x, int y, int id)
 
static void UpdateEnd ()
 
static void UpdateStart ()
 
static void Write (BinaryWriter writer, TileEntity ent, bool networkSend=false, bool lightSend=false)
 

Public Attributes

int ID
 A unique ID for each TileEntity instance in the world.
 
Point16 Position
 The tile coordinate location of this TileEntity. Will typically be the top left corner of the corresponding multitile, but not necessarily.
 
byte type
 

Static Public Attributes

static Dictionary< int, TileEntityByID = new Dictionary<int, TileEntity>()
 Maps ID to TileEntity instances.
 
static Dictionary< Point16, TileEntityByPosition = new Dictionary<Point16, TileEntity>()
 Maps tile coordinate locations to the TileEntity at that location.
 
static object EntityCreationLock = new object()
 
static TileEntitiesManager manager
 
const int MaxEntitiesPerChunk = 1000
 
static int TileEntitiesNextID
 

Events

static Action _UpdateEnd
 
static Action _UpdateStart
 

Member Function Documentation

◆ IsTileValidForEntity()

virtual bool TileEntity.IsTileValidForEntity ( int  x,
int  y 
)
virtual

◆ LoadData()

virtual void TileEntity.LoadData ( TagCompound  tag)
virtual

Allows you to load custom data that you have saved for this tile entity.
Try to write defensive loading code that won't crash if something's missing.

Parameters
tagThe TagCompound to load data from.

Reimplemented in TEDisplayDoll, TEFoodPlatter, TEHatRack, TEItemFrame, TEWeaponsRack, and UnloadedTileEntity.

◆ NetPlaceEntityAttempt()

virtual void TileEntity.NetPlaceEntityAttempt ( int  x,
int  y 
)
virtual

Reimplemented in ModTileEntity.

◆ NetReceive()

virtual void TileEntity.NetReceive ( BinaryReader  reader)
virtual

Receives custom data sent in the NetSend hook.
Called while receiving tile data (!lightReceive) and when MessageID.TileEntitySharing is received (lightReceive).
Only called on the client.

Parameters
readerThe reader.

Reimplemented in TEDisplayDoll, TEFoodPlatter, TEHatRack, TEItemFrame, TEWeaponsRack, and ModTileEntity.

◆ NetSend()

virtual void TileEntity.NetSend ( BinaryWriter  writer)
virtual

Allows you to send custom data for this tile entity between client and server, which will be handled in NetReceive.
Called while sending tile data (!lightSend) and when MessageID.TileEntitySharing is sent (lightSend).
Only called on the server.

Parameters
writerThe writer.

Reimplemented in TEDisplayDoll, TEFoodPlatter, TEHatRack, TEItemFrame, TEWeaponsRack, and ModTileEntity.

◆ ReadExtraData()

virtual void TileEntity.ReadExtraData ( BinaryReader  reader,
bool  networkSend 
)
virtual

Reimplemented in ModTileEntity.

◆ SaveData()

virtual void TileEntity.SaveData ( TagCompound  tag)
virtual

Allows you to save custom data for this tile entity.

NOTE: The provided tag is always empty by default, and is provided as an argument only for the sake of convenience and optimization.
NOTE: Try to only save data that isn't default values.

Parameters
tagThe TagCompound to save data into. Note that this is always empty by default, and is provided as an argument only for the sake of convenience and optimization.

Reimplemented in TEDisplayDoll, TEFoodPlatter, TEHatRack, TEItemFrame, TEWeaponsRack, and UnloadedTileEntity.

◆ WriteExtraData()

virtual void TileEntity.WriteExtraData ( BinaryWriter  writer,
bool  networkSend 
)
virtual

Reimplemented in ModTileEntity.