![]() |
tModLoader v2025.03
A mod to make and play Terraria mods
|
This is the superclass for ModTile and ModWall, combining common code More...
Inherits ModTexturedType, and ILocalizedModType.
Inherited by ModTile, and ModWall.
Public Member Functions | |
virtual bool | CanExplode (int i, int j) |
Whether or not the tile/wall at the given coordinates can be killed by an explosion (ie. bombs). Returns true by default; return false to stop an explosion from destroying it. More... | |
virtual bool | CanPlace (int i, int j) |
Allows you to stop this tile/wall from being placed at the given coordinates. This method is called on the local client. For tiles this is also checked during block replacement, but ModTile.CanReplace(int, int, int) should be used for replace-specific logic. Return false to stop the tile/wall from being placed. Returns true by default. More... | |
virtual void | Convert (int i, int j, int conversionType) |
Allows you to change what happens when this tile/wall is converted into another biome. If you need to override or add a new conversion to a vailla tile, use TileLoader.RegisterConversion and WallLoader.RegisterConversion. Purification powder uses a separate conversionType, as it doesn't convert hallowed tiles back to purity tiles. Be sure to check for BiomeConversionID.PurificationPowder as well as BiomeConversionID.Purity when handling corruption/crimson tiles. You can use WorldGen.ConvertTile or WorldGen.ConvertWall to automatically handle tile framing and multiplayer syncing. More... | |
virtual bool | CreateDust (int i, int j, ref int type) |
Allows you to modify the default type of dust created when the tile/wall at the given coordinates is hit. Return false to stop the default dust (the type parameter) from being created. Returns true by default. The type parameter defaults to DustType. More... | |
LocalizedText | CreateMapEntryName () |
Legacy helper method for creating a localization sub-key MapEntry More... | |
virtual ushort | GetMapOption (int i, int j) |
Allows you to choose which minimap entry the tile/wall at the given coordinates will use. 0 is the first entry added by AddMapEntry, 1 is the second entry, etc. Returns 0 by default. More... | |
virtual bool | KillSound (int i, int j, bool fail) |
Allows you to customize which sound you want to play when the tile/wall at the given coordinates is hit. Return false to stop the game from playing its default sound for the tile/wall. Returns true by default. More... | |
virtual void | ModifyLight (int i, int j, ref float r, ref float g, ref float b) |
Allows you to determine how much light this tile/wall emits. If it is a tile, make sure you set Main.tileLighted[Type] to true in SetDefaults for this to work. If it is a wall, it can also let you light up the block in front of this wall. See Terraria.Graphics.Light.TileLightScanner.ApplyTileLight(Tile, int, int, ref Terraria.Utilities.FastRandom, ref Microsoft.Xna.Framework.Vector3) for vanilla tile light values to use as a reference. More... | |
virtual void | NumDust (int i, int j, bool fail, ref int num) |
Allows you to change how many dust particles are created when the tile/wall at the given coordinates is hit. Use CreateDust(int, int, ref int) to customize the dust spawned. More... | |
virtual void | PlaceInWorld (int i, int j, Item item) |
Allows you to do something when this tile/wall is placed. Called on the local Client and Single Player. Note that the coordinates in this method account for the placement origin and are not necessarily the coordinates of the top left tile of a multi-tile. More... | |
virtual void | PostDraw (int i, int j, SpriteBatch spriteBatch) |
Allows you to draw things in front of the tile/wall at the given coordinates. This can also be used to do things such as creating dust.Note that this method will be called for tiles even when the tile is Tile.IsTileInvisible due to Echo Coating. Use the GameContent.Drawing.TileDrawing.IsVisible(Tile) method to skip effects that shouldn't show when the tile is invisible. This method won't be called for invisible walls. More... | |
virtual bool | PreDraw (int i, int j, SpriteBatch spriteBatch) |
Allows you to draw things behind the tile/wall at the given coordinates. Return false to stop the game from drawing the tile normally. Returns true by default. More... | |
virtual void | RandomUpdate (int i, int j) |
Called whenever the world randomly decides to update this tile/wall in a given tick. Useful for things such as growing or spreading. More... | |
override void | SetStaticDefaults () |
Allows you to modify the properties after initial loading has completed. This is where you would set the properties of this tile/wall. Many properties are stored as arrays throughout Terraria's code. For example:
| |
![]() | |
virtual TModType | Clone (TEntity newEntity) |
Create a copy of this instanced global. Called when an entity is cloned. More... | |
virtual bool | IsLoadingEnabled (Mod mod) |
Allows you to stop Mod.AddContent from actually adding this content. Useful for items that can be disabled by a config. More... | |
virtual void | Load () |
Allows you to perform one-time loading tasks. Beware that mod content has not finished loading here, things like ModContent lookup tables or ID Sets are not fully populated. More... | |
virtual TModType | NewInstance (TEntity entity) |
Create a new instance of this ModType for a specific entity More... | |
string | PrettyPrintName () |
virtual void | SetStaticDefaults () |
Allows you to modify the properties after initial loading has completed. More... | |
virtual void | SetupContent () |
If you make a new ModType, seal this override, and call SetStaticDefaults in it. More... | |
virtual void | Unload () |
Allows you to safely unload things you added in Load. More... | |
virtual bool | IsLoadingEnabled (Mod mod) |
Whether or not this type should be loaded when it's told to. Returning false disables Mod.AddContent from actually loading this type. More... | |
abstract void | Load (Mod mod) |
Called when loading the type. More... | |
abstract void | Unload () |
Called during unloading when needed. More... | |
![]() | |
virtual TModType | Clone (TEntity newEntity) |
Create a copy of this instanced global. Called when an entity is cloned. More... | |
virtual bool | IsLoadingEnabled (Mod mod) |
Allows you to stop Mod.AddContent from actually adding this content. Useful for items that can be disabled by a config. More... | |
virtual void | Load () |
Allows you to perform one-time loading tasks. Beware that mod content has not finished loading here, things like ModContent lookup tables or ID Sets are not fully populated. More... | |
virtual TModType | NewInstance (TEntity entity) |
Create a new instance of this ModType for a specific entity More... | |
string | PrettyPrintName () |
virtual void | SetStaticDefaults () |
Allows you to modify the properties after initial loading has completed. More... | |
virtual void | SetupContent () |
If you make a new ModType, seal this override, and call SetStaticDefaults in it. More... | |
virtual void | Unload () |
Allows you to safely unload things you added in Load. More... | |
Properties | |
int | DustType [get, set] |
The default type of dust made when this tile/wall is hit. Defaults to 0, which is DustID.Dirt. To prevent spawning any hit dust, set this to -1 instead. | |
SoundStyle? | HitSound = SoundID.Dig [get, set] |
The default style of sound made when this tile/wall is hit. Defaults to SoundID.Dig, which is the sound used for tiles such as dirt and sand. | |
abstract string | LocalizationCategory [get] |
The category used by this modded content for use in localization keys. Localization keys follow the pattern of "Mods.{ModName}.{Category}.{ContentName}.{DataName}". The Localization wiki pageexplains how custom ModType classes can utilize this. More... | |
ushort | Type [get, set] |
The internal ID of this type of tile/wall. | |
ushort | VanillaFallbackOnModDeletion = 0 [get, set] |
The vanilla ID of what should replace the instance when a user unloads and subsequently deletes data from your mod in their save file. Defaults to 0. | |
![]() | |
virtual string | Texture [get] |
The file name of this type's texture file in the mod loader's file space. | |
![]() | |
virtual bool | CloneNewInstances [get] |
Whether to create new instances of this mod type via Clone(TEntity) or via the default constructor Defaults to false (default constructor). | |
TEntity | Entity [get, set] |
string | FullName [get] |
The internal name of this, including the mod it is from. More... | |
virtual bool | IsCloneable [get] |
Whether or not this type is cloneable. Cloning is supported if all reference typed fields in each sub-class which doesn't override Clone are marked with [CloneByReference] | |
Mod | Mod [get, set] |
The mod this belongs to. More... | |
virtual string | Name [get] |
The internal name of this. More... | |
![]() | |
string | FullName [get] |
=> $"{Mod.Name}/{Name}" More... | |
Mod | Mod [get] |
The mod this belongs to. More... | |
string | Name [get] |
The internal name of this instance. More... | |
![]() | |
virtual bool | CloneNewInstances [get] |
Whether to create new instances of this mod type via Clone(TEntity) or via the default constructor Defaults to false (default constructor). | |
TEntity | Entity [get, set] |
string | FullName [get] |
The internal name of this, including the mod it is from. More... | |
virtual bool | IsCloneable [get] |
Whether or not this type is cloneable. Cloning is supported if all reference typed fields in each sub-class which doesn't override Clone are marked with [CloneByReference] | |
Mod | Mod [get, set] |
The mod this belongs to. More... | |
virtual string | Name [get] |
The internal name of this. More... | |
![]() | |
abstract string | LocalizationCategory [get] |
The category used by this modded content for use in localization keys. Localization keys follow the pattern of "Mods.{ModName}.{Category}.{ContentName}.{DataName}". The Localization wiki pageexplains how custom ModType classes can utilize this. More... | |
Additional Inherited Members | |
![]() | |
abstract TEntity | CreateTemplateEntity () |
virtual void | InitTemplateInstance () |
Create dummy objects for instanced mod-types More... | |
override void | InitTemplateInstance () |
Create dummy objects for instanced mod-types More... | |
abstract void | Register () |
If you make a new ModType, seal this override. More... | |
virtual void | ValidateType () |
Check for the correct overrides of different hook methods and fields and properties More... | |
![]() | |
abstract TEntity | CreateTemplateEntity () |
virtual void | InitTemplateInstance () |
Create dummy objects for instanced mod-types More... | |
override void | InitTemplateInstance () |
Create dummy objects for instanced mod-types | |
abstract void | Register () |
If you make a new ModType, seal this override. More... | |
virtual void | ValidateType () |
Check for the correct overrides of different hook methods and fields and properties More... | |
|
virtual |
Whether or not the tile/wall at the given coordinates can be killed by an explosion (ie. bombs). Returns true by default; return false to stop an explosion from destroying it.
i | The x position in tile coordinates. |
j | The y position in tile coordinates. |
|
virtual |
Allows you to stop this tile/wall from being placed at the given coordinates. This method is called on the local client. For tiles this is also checked during block replacement, but ModTile.CanReplace(int, int, int) should be used for replace-specific logic. Return false to stop the tile/wall from being placed. Returns true by default.
i | The x position in tile coordinates. |
j | The y position in tile coordinates. |
|
virtual |
Allows you to change what happens when this tile/wall is converted into another biome. If you need to override or add a new conversion to a vailla tile, use TileLoader.RegisterConversion and WallLoader.RegisterConversion. Purification powder uses a separate conversionType, as it doesn't convert hallowed tiles back to purity tiles. Be sure to check for BiomeConversionID.PurificationPowder as well as BiomeConversionID.Purity when handling corruption/crimson tiles. You can use WorldGen.ConvertTile or WorldGen.ConvertWall to automatically handle tile framing and multiplayer syncing.
i | |
j | |
conversionType | The BiomeConversionID of the conversion |
|
virtual |
Allows you to modify the default type of dust created when the tile/wall at the given coordinates is hit. Return false to stop the default dust (the type parameter) from being created. Returns true by default. The type parameter defaults to DustType.
i | The x position in tile coordinates. |
j | The y position in tile coordinates. |
type | The dust type that will be spawned by the calling code |
LocalizedText ModBlockType.CreateMapEntryName | ( | ) |
Legacy helper method for creating a localization sub-key MapEntry
|
virtual |
Allows you to choose which minimap entry the tile/wall at the given coordinates will use. 0 is the first entry added by AddMapEntry, 1 is the second entry, etc. Returns 0 by default.
i | The x position in tile coordinates. |
j | The y position in tile coordinates. |
Reimplemented in UnloadedChest.
|
virtual |
Allows you to customize which sound you want to play when the tile/wall at the given coordinates is hit. Return false to stop the game from playing its default sound for the tile/wall. Returns true by default.
i | The x position in tile coordinates. |
j | The y position in tile coordinates. |
fail | If true, the tile/wall is only partially damaged. If false, the tile/wall is fully destroyed. |
|
virtual |
Allows you to determine how much light this tile/wall emits.
If it is a tile, make sure you set Main.tileLighted[Type] to true in SetDefaults for this to work.
If it is a wall, it can also let you light up the block in front of this wall.
See Terraria.Graphics.Light.TileLightScanner.ApplyTileLight(Tile, int, int, ref Terraria.Utilities.FastRandom, ref Microsoft.Xna.Framework.Vector3) for vanilla tile light values to use as a reference.
i | The x position in tile coordinates. |
j | The y position in tile coordinates. |
r | The red component of light, usually a value between 0 and 1 |
g | The green component of light, usually a value between 0 and 1 |
b | The blue component of light, usually a value between 0 and 1 |
|
virtual |
Allows you to change how many dust particles are created when the tile/wall at the given coordinates is hit. Use CreateDust(int, int, ref int) to customize the dust spawned.
i | The x position in tile coordinates. |
j | The y position in tile coordinates. |
fail | If true, the tile is spawning dust for reasons other than the tile actually being destroyed. Worms, projectiles, and other effects cause dust to spawn aside from the usual case of the tile breaking. |
num | The number of dust that will be spawned by the calling code |
|
virtual |
Allows you to do something when this tile/wall is placed. Called on the local Client and Single Player. Note that the coordinates in this method account for the placement origin and are not necessarily the coordinates of the top left tile of a multi-tile.
i | The x position in tile coordinates. Equal to Player.tileTargetX |
j | The y position in tile coordinates. Equal to Player.tileTargetY |
item | The item used to place this tile/wall. |
|
virtual |
Allows you to draw things in front of the tile/wall at the given coordinates. This can also be used to do things such as creating dust.Note that this method will be called for tiles even when the tile is Tile.IsTileInvisible due to Echo Coating. Use the GameContent.Drawing.TileDrawing.IsVisible(Tile) method to skip effects that shouldn't show when the tile is invisible. This method won't be called for invisible walls.
i | The x position in tile coordinates. |
j | The y position in tile coordinates. |
spriteBatch |
|
virtual |
Allows you to draw things behind the tile/wall at the given coordinates. Return false to stop the game from drawing the tile normally. Returns true by default.
i | The x position in tile coordinates. |
j | The y position in tile coordinates. |
spriteBatch |
Reimplemented in ModBannerTile.
|
virtual |
Called whenever the world randomly decides to update this tile/wall in a given tick. Useful for things such as growing or spreading.
i | The x position in tile coordinates. |
j | The y position in tile coordinates. |
|
virtual |
Allows you to modify the properties after initial loading has completed.
This is where you would set the properties of this tile/wall. Many properties are stored as arrays throughout Terraria's code.
For example:
Reimplemented from ModType< TEntity >.
|
get |
The category used by this modded content for use in localization keys. Localization keys follow the pattern of "Mods.{ModName}.{Category}.{ContentName}.{DataName}". The Localization wiki pageexplains how custom ModType classes can utilize this.
Implements ILocalizedModType.