public void GetFrom(Light light) { name = light.name; modThis = true; isActive = light.gameObject.activeSelf; Transform t = light.transform; position = t.localPosition; rotation = t.localRotation.eulerAngles; type = light.type; range = light.range; spotAngle = light.spotAngle; color = light.color; intensity = light.intensity; shadows = light.shadows; GameStateLight gameStateLight = light.GetComponent <GameStateLight>(); dependentOnGameState = gameStateLight != null && gameStateLight.enabled; if (dependentOnGameState) { intensityWaiting = gameStateLight.intensityWaiting; intensityPlaying = gameStateLight.intensityPlaying; } }
public void ApplyTo(Light light) { if (original == null) { original = new ArenaModLight(); original.GetFrom(light); } if (modThis) { //Debug.Log($"[Modding] setting light active: {isActive}"); light.gameObject.SetActive(isActive); light.enabled = isActive; if (isActive) { Transform t = light.transform; t.localPosition = position; t.localRotation = Quaternion.Euler(rotation); light.type = type; light.range = range; light.spotAngle = spotAngle; light.color = color; light.intensity = intensity; light.shadows = shadows; GameStateLight gameStateLight = light.GetComponent <GameStateLight>(); if (dependentOnGameState) { if (gameStateLight == null) { Debug.LogWarning($"Light '{light.name}' cannot depend on Game State; ignored!"); return; } gameStateLight.enabled = true; gameStateLight.intensityWaiting = intensityWaiting; gameStateLight.intensityPlaying = intensityPlaying; } else { if (gameStateLight != null) { gameStateLight.enabled = false; } } } } }