mirror of
https://github.com/Facepunch/sbox-public.git
synced 2026-01-20 12:19:32 -05:00
This commit imports the C# engine code and game files, excluding C++ source code. [Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
30 lines
1.0 KiB
C#
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;
|
|
}
|
|
|
|
}
|