tModLoader v2025.09
A mod to make and play Terraria mods
LiquidRenderer Class Reference

Classes

struct  LiquidCache
 
struct  LiquidDrawCache
 
struct  LiquidEdgeData
 

Public Member Functions

unsafe void DrawNormalLiquids (SpriteBatch spriteBatch, Vector2 drawOffset, int waterStyle, float globalAlpha, bool isBackgroundDraw)
 
unsafe void DrawShimmer (SpriteBatch spriteBatch, Vector2 drawOffset, bool isBackgroundDraw)
 
Rectangle GetCachedDrawArea ()
 
int GetShimmerFrame (bool top, float worldPositionX, float worldPositionY)
 
float GetVisibleLiquid (int x, int y)
 
bool HasFullWater (int x, int y)
 
void PrepareDraw (Rectangle drawArea)
 
void SetWaveMaskData (ref Texture2D texture)
 
void Update (GameTime gameTime)
 

Static Public Member Functions

static Vector4 GetShimmerBaseColor (float worldPositionX, float worldPositionY)
 
static Color GetShimmerGlitterColor (bool top, float worldPositionX, float worldPositionY)
 
static float GetShimmerGlitterOpacity (bool top, float worldPositionX, float worldPositionY)
 
static float GetShimmerWave (ref float worldPositionX, ref float worldPositionY)
 
static void Initialize_LiquidData ()
 
static void LoadContent ()
 
static void SetShimmerVertexColors (ref VertexColors colors, float opacity, int x, int y)
 
static VertexColors SetShimmerVertexColors_Sparkle (ref VertexColors colors, float opacity, int x, int y, bool top)
 

Public Attributes

Asset< Texture2D >[] _liquidTextures = new Asset<Texture2D>[15]
 

Static Public Attributes

static float[] DEFAULT_OPACITY = new float[LiquidID.Count]
 How strong a liquid's opacity.
Liquids like lava and honey use this to make them look more viscous by making things inside the liquid less visible.

 
static LiquidRenderer Instance
 
const float MIN_LIQUID_SIZE = 0.25f
 
static byte[] VISCOSITY_MASK = new byte[5]
 This is how powerful the ripples are for liquids.
Lava and honey use this to have ripples be less strong.
Can cause weird visual issues with ripples if set to large numbers like 255.
 
static int[] WATERFALL_LENGTH = new int[LiquidID.Count]
 Liquids use this to control how many tiles long their liquidfall is.
Liquidfalls are drawn whenever there is not a solid block underneath a liquid, most visible when a liquid is overtop of a half block.
This makes liquids look less akward when falling downwards.
 

Events

Action< Color[], Rectangle > WaveFilters