Files
2026-03-03 05:27:03 +05:00

56 lines
1.5 KiB
C#

using UnityEngine;
using ThunderWire.Attributes;
using Newtonsoft.Json.Linq;
namespace UHFPS.Runtime
{
[InspectorHeader("Simple Light")]
public class SimpleLight : MonoBehaviour, ISaveable
{
public Light Light;
[Header("Settings")]
public bool UseEmission = true;
public bool LightState = false;
[Header("Emission")]
public RendererMaterial LightRenderer;
public string EmissionKeyword = "_EMISSION";
private void Awake()
{
if (LightState && !SaveGameManager.GameWillLoad)
SetLightState(true);
}
public void SetLightState(bool state)
{
if (state)
{
if (Light) Light.enabled = true;
if (UseEmission) LightRenderer.ClonedMaterial.EnableKeyword(EmissionKeyword);
}
else
{
if (Light) Light.enabled = false;
if (UseEmission) LightRenderer.ClonedMaterial.DisableKeyword(EmissionKeyword);
}
LightState = state;
}
public StorableCollection OnSave()
{
return new StorableCollection()
{
{ "lightState", LightState }
};
}
public void OnLoad(JToken data)
{
bool lightState = (bool)data["lightState"];
SetLightState(lightState);
}
}
}