/// <summary>
        /// On interaction (if not jammed) the radiator increases its power level and adjusts the optical representation (animation
        /// and amount of enabled lamps) as well as the temperatur reducement at spawn and the power consumption. If the
        /// maximum power level is running, it switches off and increases again on next interaction.
        /// </summary>
        void Activated()
        {
            if (!isJammed)
            {
                if (powerLevel == MAXPOWERLEVEL)
                {
                    this.SwitchOff();
                }
                else
                {
                    ++powerLevel;
                    switch (powerLevel)
                    {
                    case 1:
                        animator.SetFloat("animSpeed", 0.5f);
                        lamps[0].GetComponent <Renderer>().material.SetColor("_EmissionColor", Color.green);
                        break;

                    case 2:
                        animator.SetFloat("animSpeed", 1.0f);
                        lamps[1].GetComponent <Renderer>().material.SetColor("_EmissionColor", Color.green);
                        break;

                    case 3:
                        animator.SetFloat("animSpeed", 1.5f);
                        lamps[2].GetComponent <Renderer>().material.SetColor("_EmissionColor", Color.green);
                        break;

                    default:
                        animator.SetFloat("animSpeed", 1.0f);
                        lamps[0].GetComponent <Renderer>().material.SetColor("_EmissionColor", Color.green);
                        lamps[1].GetComponent <Renderer>().material.SetColor("_EmissionColor", Color.green);
                        lamps[2].GetComponent <Renderer>().material.SetColor("_EmissionColor", Color.blue);
                        break;
                    }
                    powerConsume            = powerLevel * 30;
                    spawn.temperatureAmount = powerLevel * -temperatureReducementFactor;
                    powerManager.UpdatePowerConsume('R', powerConsume);
                }
            }
        }
        /// <summary>
        /// On interaction the pump increases its power level and adjusts the optical representation (animation
        /// and amount of enabled lamps) as well as the molecule speed and the power consumption. If the
        /// maximum power level is running, it switches off and increases again on next interaction.
        /// </summary>
        void Activated()
        {
            if (powerLevel == MAXPOWERLEVEL)
            {
                this.SwitchOff();
            }
            else
            {
                ++powerLevel;
                switch (powerLevel)
                {
                case 1:
                    animator.SetFloat("animSpeed", 0.3f);
                    lamps[0].GetComponent <Renderer>().material.SetColor("_EmissionColor", Color.green);
                    break;

                case 2:
                    animator.SetFloat("animSpeed", 0.6f);
                    lamps[1].GetComponent <Renderer>().material.SetColor("_EmissionColor", Color.green);
                    break;

                case 3:
                    animator.SetFloat("animSpeed", 1.2f);
                    lamps[2].GetComponent <Renderer>().material.SetColor("_EmissionColor", Color.green);
                    break;

                case 4:
                    animator.SetFloat("animSpeed", 1.8f);
                    lamps[3].GetComponent <Renderer>().material.SetColor("_EmissionColor", Color.green);
                    break;

                default:
                    animator.SetFloat("animSpeed", 1.0f);
                    break;
                }
                powerConsume = powerLevel * 30;
                powerManager.UpdatePowerConsume('P', powerConsume);
                moleculeManager.ChangeMoleculeSpeed(powerLevel);
            }
        }
        void Start()
        {
            animator = GetComponent <Animator>();
            GameObject manager = GameObject.Find("CoolingGameManager");

            moleculeManager = manager.GetComponent <CoolingMoleculeManager>();
            powerManager    = manager.GetComponent <CoolingPowerManager>();
            // Initialize starting state
            animator.SetFloat("animSpeed", 0.6f);
            lamps[0].GetComponent <Renderer>().material.SetColor("_EmissionColor", Color.green);
            lamps[1].GetComponent <Renderer>().material.SetColor("_EmissionColor", Color.green);
            powerLevel   = 2;
            powerConsume = powerLevel * 30;
            powerManager.UpdatePowerConsume('P', powerConsume);
        }
        void Start()
        {
            animator          = GetComponent <Animator>();
            spawn             = GetComponent <CoolingSpawnScript>();
            powerManager      = GameObject.Find("CoolingGameManager").GetComponent <CoolingPowerManager>();
            radiatorPowerText = GameObject.Find("RadiatorPowerText").GetComponent <Text>();
            // Initialize starting state
            animator.SetFloat("animSpeed", 1.0f);
            lamps[0].GetComponent <Renderer>().material.SetColor("_EmissionColor", Color.green);
            lamps[1].GetComponent <Renderer>().material.SetColor("_EmissionColor", Color.green);
            powerLevel              = 2;
            powerConsume            = powerLevel * 30;
            spawn.temperatureAmount = powerLevel * -temperatureReducementFactor;

            powerManager.UpdatePowerConsume('R', powerConsume);
        }