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

This class allows you to customize the behavior of a custom cloud. Modded clouds can be autoloaded automatically (see Mod.CloudAutoloadingEnabled) or manually registered (CloudLoader.AddCloudFromTexture), but autoloaded clouds default to being normal clouds with the default spawn chance. Make a ModCloud class if custom behavior is needed or use CloudLoader.AddCloudFromTexture if customizing cloud category and spawn chance is all that is needed. This class is not instanced, all clouds of the same type will share the same instance. More...

Inherits ModTexturedType.

Inherited by SimpleModCloud.

Public Member Functions

virtual bool Draw (SpriteBatch spriteBatch, Cloud cloud, int cloudIndex, ref DrawData drawData)
 Return true to draw using vanilla drawing logic. Return false to prevent vanilla drawing logic and use this hook to draw the cloud manually. More...
 
virtual void OnSpawn (Cloud cloud)
 Gets called when the Cloud spawns.
 
sealed override void SetupContent ()
 If you make a new ModType, seal this override, and call SetStaticDefaults in it. More...
 
virtual float SpawnChance ()
 The chance that this cloud can spawn. Return 1f to spawn just as often compared as vanilla clouds. A cloud can be either a "Normal cloud" or a "Rare cloud" if RareCloud is true. The spawn chance is the chance to spawn within each cloud category, so there is no need to return a very small chance value for rare clouds, the logic already takes that into account. If RareCloud is true, the spawn chance already takes into account secret seed adjustments so there is no need to implement that logic in this method either. See the Terraria wiki for more information. If checking for modded biomes using Main.LocalPlayer, be sure to check Main.gameMenu as well to prevent exceptions. Defaults to 1f.
 
- Public Member Functions inherited from ModType< TEntity, TModType >
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...
 
- Public Member Functions inherited from ModType< TEntity >
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...
 

Protected Member Functions

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

override string Name [get]
 The internal name of this instance. More...
 
virtual bool RareCloud [get]
 If true, this cloud will belong to the "Rare clouds" pool instead of the "Normal clouds" (see the Terraria wiki for more information). Rare clouds typically can only spawn after certain world conditions have been met. For example ID.CloudID.Rare_Skeletron can only spawn if NPC.downedBoss3 is true. Rare clouds can be used by mods to highlight achievements such as defeating a boss. Defaults to false.
 
override string Texture [get]
 
int Type [get, set]
 
- Properties inherited from ModTexturedType
virtual string Texture [get]
 The file name of this type's texture file in the mod loader's file space.
 
- Properties inherited from 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 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 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

This class allows you to customize the behavior of a custom cloud.

Modded clouds can be autoloaded automatically (see Mod.CloudAutoloadingEnabled) or manually registered (CloudLoader.AddCloudFromTexture), but autoloaded clouds default to being normal clouds with the default spawn chance. Make a ModCloud class if custom behavior is needed or use CloudLoader.AddCloudFromTexture if customizing cloud category and spawn chance is all that is needed.

This class is not instanced, all clouds of the same type will share the same instance.

Member Function Documentation

◆ Draw()

virtual bool ModCloud.Draw ( SpriteBatch  spriteBatch,
Cloud  cloud,
int  cloudIndex,
ref DrawData  drawData 
)
virtual

Return true to draw using vanilla drawing logic. Return false to prevent vanilla drawing logic and use this hook to draw the cloud manually.

Parameters
spriteBatch
cloud
cloudIndexThe index of the cloud within Main.cloud. Note that clouds are shifted around as clouds spawn and despawn.
drawDataThe calculated draw parameters
Returns

◆ Register()

override void ModCloud.Register ( )
protectedvirtual

If you make a new ModType, seal this override.

Implements ModType< TEntity >.

◆ SetupContent()

sealed override void ModCloud.SetupContent ( )
virtual

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

Reimplemented from ModType< TEntity >.

Property Documentation

◆ Name

override string ModCloud.Name
get

The internal name of this instance.

Implements IModType.