Files
sbox-public/engine/Sandbox.Engine/Scene/Components/Render/VolumetricFogController.cs
s&box team 71f266059a Open source release
This commit imports the C# engine code and game files, excluding C++ source code.

[Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
2025-11-24 09:05:18 +00:00

30 lines
1.0 KiB
C#

namespace Sandbox;
/// <summary>
/// Internal component for storing the baked fog texture
/// We don't need to expose the volumetric fog controller like we did previously with entities,
/// But we need to be fetch the baked fog texture from the map file
/// </summary>
[Title( "VolumetricFogController" )]
[Hide]
public class VolumetricFogController : Component, Component.ExecuteInEditor
{
public Texture BakedFogTexture { get; set; }
public float GlobalScale { get; set; } = 1.0f;
internal static void InitializeFromLegacy( GameObject go, Sandbox.MapLoader.ObjectEntry kv )
{
// Only one VolumetricFogController per scene
foreach ( var item in go.Scene.GetAllComponents<VolumetricFogController>() )
item.Destroy();
var component = go.Components.Create<VolumetricFogController>();
component.BakedFogTexture = Texture.Load( kv.GetValue( "fogirradiancevolume", "" ) );
var fogStrength = kv.GetValue( "FogStrength", 1.0f );
var fogScale = kv.GetValue( "IndirectStrength", 1.0f );
component.GlobalScale = fogStrength * fogScale;
}
}