Example #1
0
        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;
            }
        }
Example #2
0
        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;
                        }
                    }
                }
            }
        }