tModLoader v2023.01
A mod to make and play Terraria mods
Terraria.ModLoader.ModBossBar Class Reference

A class that is used to create custom boss health bars for modded and vanilla NPCs. More...

Inherits Terraria.ModLoader.ModTexturedType, and Terraria.GameContent.UI.BigProgressBar.IBigProgressBar.

Public Member Functions

void Draw (ref BigProgressBarInfo info, SpriteBatch spriteBatch)
 
virtual Asset< Texture2D > GetIconTexture (ref Rectangle? iconFrame)
 Allows you to specify the icon texture, and optionally the frame it should be displayed on. The frame defaults to the entire texture otherwise. More...
 
virtual ? bool ModifyInfo (ref BigProgressBarInfo info, ref float lifePercent, ref float shieldPercent)
 Allows you to handle the logic for when and how this ModBossBar should work. You want to override this if you have a multisegment NPC. Returns null by default. Failing to return false otherwise will lead to your bar being displayed at wrong times. More...
 
virtual void PostDraw (SpriteBatch spriteBatch, NPC npc, BossBarDrawParams drawParams)
 Allows you to draw things after the bar has been drawn. skipped is true if you or another mod has skipped drawing the bar in PreDraw (possibly hiding it or in favor of new visuals). More...
 
virtual bool PreDraw (SpriteBatch spriteBatch, NPC npc, ref BossBarDrawParams drawParams)
 Allows you to draw things before the default draw code is ran. Return false to prevent drawing the ModBossBar. Returns true by default. More...
 
sealed override void SetupContent ()
 If you make a new ModType, seal this override, and call SetStaticDefaults in it. More...
 
bool ValidateAndCollectNecessaryInfo (ref BigProgressBarInfo info)
 
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...
 
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...
 
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...
 
void Draw (ref BigProgressBarInfo info, SpriteBatch spriteBatch)
 
bool ValidateAndCollectNecessaryInfo (ref BigProgressBarInfo info)
 

Protected Member Functions

sealed override void Register ()
 If you make a new ModType, seal this override. More...
 
- Protected Member Functions inherited from Terraria.ModLoader.ModType< TEntity, TModType >
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...
 
- Protected Member Functions inherited from Terraria.ModLoader.ModType< TEntity >
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...
 

Properties

float LifePercent [get]
 
float ShieldPercent [get]
 
- Properties inherited from Terraria.ModLoader.ModTexturedType
virtual string Texture [get]
 The file name of this type's texture file in the mod loader's file space.
 
- Properties inherited from Terraria.ModLoader.ModType< TEntity, TModType >
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...
 
- Properties inherited from Terraria.ModLoader.IModType
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...
 
- Properties inherited from Terraria.ModLoader.ModType< TEntity >
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...
 

Detailed Description

A class that is used to create custom boss health bars for modded and vanilla NPCs.

Member Function Documentation

◆ Draw()

void Terraria.ModLoader.ModBossBar.Draw ( ref BigProgressBarInfo  info,
SpriteBatch  spriteBatch 
)

◆ GetIconTexture()

virtual Asset< Texture2D > Terraria.ModLoader.ModBossBar.GetIconTexture ( ref Rectangle?  iconFrame)
virtual

Allows you to specify the icon texture, and optionally the frame it should be displayed on. The frame defaults to the entire texture otherwise.

Parameters
iconFrameThe frame the texture should be displayed on
Returns
The icon texture

◆ ModifyInfo()

virtual ? bool Terraria.ModLoader.ModBossBar.ModifyInfo ( ref BigProgressBarInfo  info,
ref float  lifePercent,
ref float  shieldPercent 
)
virtual

Allows you to handle the logic for when and how this ModBossBar should work. You want to override this if you have a multisegment NPC. Returns null by default. Failing to return false otherwise will lead to your bar being displayed at wrong times.

Return null to let the basic logic run after this hook is called (index validity check and assigning lifePercent to match the health of the NPC) and then allowing it to be drawn.

Return true to allow this ModBossBar to be drawn.

Return false to prevent this ModBossBar from being drawn so that the game will try to pick a different one.

Parameters
infoContains the index of the NPC the game decided to focus on
lifePercentThe % the bar should be filled with
shieldPercentThe % the bar should be filled with (shield)
Returns
null for "single-segment" NPC logic, true for allowing drawing, false for preventing drawing

◆ PostDraw()

virtual void Terraria.ModLoader.ModBossBar.PostDraw ( SpriteBatch  spriteBatch,
NPC  npc,
BossBarDrawParams  drawParams 
)
virtual

Allows you to draw things after the bar has been drawn. skipped is true if you or another mod has skipped drawing the bar in PreDraw (possibly hiding it or in favor of new visuals).

Parameters
spriteBatchThe spriteBatch that is drawn on
npcThe NPC this ModBossBar is focused on
drawParamsThe draw parameters for the boss bar

◆ PreDraw()

virtual bool Terraria.ModLoader.ModBossBar.PreDraw ( SpriteBatch  spriteBatch,
NPC  npc,
ref BossBarDrawParams  drawParams 
)
virtual

Allows you to draw things before the default draw code is ran. Return false to prevent drawing the ModBossBar. Returns true by default.

Parameters
spriteBatchThe spriteBatch that is drawn on
npcThe NPC this ModBossBar is focused on
drawParamsThe draw parameters for the boss bar
Returns
true for allowing drawing, false for preventing drawing

◆ Register()

sealed override void Terraria.ModLoader.ModBossBar.Register ( )
protectedvirtual

If you make a new ModType, seal this override.

Implements Terraria.ModLoader.ModType< TEntity, TModType >.

◆ SetupContent()

sealed override void Terraria.ModLoader.ModBossBar.SetupContent ( )
virtual

If you make a new ModType, seal this override, and call SetStaticDefaults in it.

Reimplemented from Terraria.ModLoader.ModType< TEntity, TModType >.

◆ ValidateAndCollectNecessaryInfo()

bool Terraria.ModLoader.ModBossBar.ValidateAndCollectNecessaryInfo ( ref BigProgressBarInfo  info)