// Deploy Panels
        public void Deploy()
        {
            if (!Deployable)
                return;

            for (int i = 0; i < deployStates.Length ; i++)
            {
                deployStates[i].speed = 1;
            }
            State = ModuleDeployablePart.DeployState.EXTENDING;
        }
        public void Update()
        {
            if (Deployable)
            {
                for (int i = 0; i < deployStates.Length ; i++)
                {
                    deployStates[i].normalizedTime = Mathf.Clamp01(deployStates[i].normalizedTime);
                }
                if (State == ModuleDeployablePart.DeployState.RETRACTING)
                {
                    if (EvalAnimationCompletionReversed(deployStates) == 0f)
                        State = ModuleDeployablePart.DeployState.RETRACTED;
                }

                if (State == ModuleDeployablePart.DeployState.EXTENDING)
                {
                    if (EvalAnimationCompletion(deployStates) == 1f)
                        State = ModuleDeployablePart.DeployState.EXTENDED;
                }

                if ((State == ModuleDeployablePart.DeployState.EXTENDED && Events["DeployPanels"].active) || (State == ModuleDeployablePart.DeployState.RETRACTED && Events["RetractPanels"].active))
                {
                    Events["DeployPanels"].active = !Events["DeployPanels"].active;
                    Events["RetractPanels"].active = !Events["RetractPanels"].active;
                }
            }
        }
        // Retract Panels
        public void Retract()
        {
            if (!Deployable)
                return;

            for (int i = 0; i < deployStates.Length ; i++)
            {
                deployStates[i].speed = -1;
            }
            State = ModuleDeployablePart.DeployState.RETRACTING;
        }