public override void OnLoad(ConfigNode node)
 {
     base.OnLoad (node);
     try
     {
         currentAnimState = (SSTUAnimState) Enum.Parse (typeof(SSTUAnimState), persistentState);
     }
     catch(Exception e)
     {
         currentAnimState = SSTUAnimState.STOPPED_START;
         persistentState = currentAnimState.ToString();
         print (e.Message);
     }
     locateAnimation();
     restorePreviousAnimationState(currentAnimState);
 }
Ejemplo n.º 2
0
        public override void OnLoad(ConfigNode node)
        {
            base.OnLoad(node);
            print("SSTUAnimate OnLoad");

            //parse any previously saved deployedStatus value, or fallback to RETRACTED if none found/errors occur
            try
            {
                animationState = (SSTUAnimState)Enum.Parse(typeof(SSTUAnimState), deployedStatus);
            }
            catch (Exception ex)
            {
                Debug.LogError("[ORS] - InterstellarAnimate in OnLoad: " + ex.Message);
                animationState = SSTUAnimState.RETRACTED;
            }
            updateGuiLabels();
        }
 private void setAnimState(SSTUAnimState newState, bool callback)
 {
     switch (newState)
     {
     case SSTUAnimState.PLAYING_BACKWARD:
     {
         setAnimSpeed(-1f);
         if(currentAnimState==SSTUAnimState.STOPPED_END)//enforce play backwards from end
         {
             setAnimTime(1f);
         }
         playAnimation();
         break;
     }
     case SSTUAnimState.PLAYING_FORWARD:
     {
         setAnimSpeed(1f);
         if(currentAnimState==SSTUAnimState.STOPPED_START)//enforce play forwards from beginning
         {
             setAnimTime(0f);
         }
         playAnimation();
         break;
     }
     case SSTUAnimState.STOPPED_END:
     {
         setAnimTime(1f);
         setAnimSpeed(1);
         playAnimation();
         break;
     }
     case SSTUAnimState.STOPPED_START:
     {
         setAnimTime(0);
         setAnimSpeed(-1);
         playAnimation();
         break;
     }
     }
     currentAnimState = newState;
     persistentState = currentAnimState.ToString();
     if (callback && onAnimStateChangeCallbacks!=null)
     {
         int len = onAnimStateChangeCallbacks.Count;
         for(int i = 0; i < len; i++)
         {
             onAnimStateChangeCallbacks[i].Invoke(currentAnimState);
         }
     }
 }
 private void restorePreviousAnimationState(SSTUAnimState state)
 {
     if (state == SSTUAnimState.PLAYING_BACKWARD)
     {
         state = SSTUAnimState.STOPPED_START;
     }
     else if (state == SSTUAnimState.PLAYING_FORWARD)
     {
         state = SSTUAnimState.STOPPED_END;
     }
     setAnimState (state, false);
 }
 //External method to set the state; does not callback on this state change, as this is supposed to originate -from- the callback;
 //it should be aware of its own instigated state changes
 public void setToState(SSTUAnimState newState)
 {
     setAnimState (newState, false);
 }
 private void setAnimationState(SSTUAnimState state)
 {
     if(animationController!=null){animationController.setToState(state);}
 }
 public void onAnimationStatusChanged(SSTUAnimState state)
 {
     if(state==SSTUAnimState.STOPPED_END)
     {
         setPanelState(SSTUPanelState.EXTENDED);
     }
     else if(state==SSTUAnimState.STOPPED_START)
     {
         setPanelState(SSTUPanelState.RETRACTED);
     }
 }
Ejemplo n.º 8
0
 //internal call to set animationState enum value
 private void setAnimationState(SSTUAnimState newState)
 {
     print("SSTUAnimate setAnimationState");
     animationState = newState;
     deployedStatus = animationState.ToString();
 }
 //DONE
 public void onAnimationStatusChanged(SSTUAnimState state)
 {
     if(state==SSTUAnimState.STOPPED_END)
     {
         base.Activate();
     }
 }
Ejemplo n.º 10
0
 public void onAnimationStatusChanged(SSTUAnimState state)
 {
     if(state==SSTUAnimState.STOPPED_START)
     {
         setLegState(LegState.RETRACTED);
     }
     else if(state==SSTUAnimState.STOPPED_END)
     {
         setLegState(LegState.DEPLOYED);
     }
 }
        //TODO - stuff for non-restartable and non-stoppable engines
        private void setupGuiFields(SSTUAnimState state, bool engineActive)
        {
            bool hasAnim = animationControl!=null;
            bool isEditor = HighLogic.LoadedSceneIsEditor;
            switch (state)
            {

            case SSTUAnimState.PLAYING_BACKWARD://retracting
            {
                Events["Activate"].active = false;
                Events["Shutdown"].active = false;
                Actions["ActivateAction"].active = isEditor;
                Actions["ShutdownAction"].active = isEditor;
                Actions["OnAction"].active = isEditor;
                Events["deployEngineEvent"].active = hasAnim;
                Events["retractEngineEvent"].active = false;
                break;
            }

            case SSTUAnimState.PLAYING_FORWARD://deploying
            {
                Events["Activate"].active = false;
                Events["Shutdown"].active = false;
                Actions["ActivateAction"].active = isEditor;
                Actions["ShutdownAction"].active = isEditor;
                Actions["OnAction"].active = isEditor;
                Events["deployEngineEvent"].active = false;
                Events["retractEngineEvent"].active = hasAnim;
                break;
            }

            case SSTUAnimState.STOPPED_END://deployed or no anim
            {
                Events["Activate"].active = !engineActive;
                Events["Shutdown"].active = engineActive;
                Actions["ActivateAction"].active = true;
                Actions["ShutdownAction"].active = true;
                Actions["OnAction"].active = true;
                Events["deployEngineEvent"].active = false;
                Events["retractEngineEvent"].active = hasAnim;
                break;
            }

            case SSTUAnimState.STOPPED_START://retracted
            {
                Events["Activate"].active = false;
                Events["Shutdown"].active = false;
                Actions["ActivateAction"].active = isEditor;
                Actions["ShutdownAction"].active = isEditor;
                Actions["OnAction"].active = isEditor;
                Events["deployEngineEvent"].active = hasAnim;
                Events["retractEngineEvent"].active = false;
                break;
            }

            }
        }
 //DONE
 private void setAnimationState(SSTUAnimState state)
 {
     if(animationControl!=null)
     {
         SSTUAnimState currentState = animationControl.getAnimationState();
         //exceptions below fix issues of OnActive being called by moduleEngine during startup
         if(currentState==SSTUAnimState.STOPPED_END && state==SSTUAnimState.PLAYING_FORWARD){return;}//don't allow deploying from deployed
         else if(currentState == SSTUAnimState.STOPPED_START && state == SSTUAnimState.PLAYING_BACKWARD){return;}//don't allow retracting from retracted
         animationControl.setToState(state);
         throw new NotImplementedException();
     }
 }
Ejemplo n.º 13
0
 //DONE
 public void onAnimationStatusChanged(SSTUAnimState state)
 {
     updateGuiDataFromState(state);
 }
Ejemplo n.º 14
0
 //DONE
 private void updateGuiDataFromState(SSTUAnimState state)
 {
     if (!moduleControlEnabled)
     {
         Events["deployEvent"].active = false;
         Events["retractEvent"].active = false;
         Actions["deployAction"].active = false;
         Actions["retractAction"].active = false;
         Fields["displayState"].guiActiveEditor = Fields["displayState"].guiActive = false;
         return;
     }
     switch(state)
     {
     case SSTUAnimState.PLAYING_BACKWARD:
     {
         Events["deployEvent"].active = true;
         Events["retractEvent"].active = false;
         Actions["deployAction"].active = true;
         Actions["retractAction"].active = true;
         displayState = retractingStateName;
         break;
     }
     case SSTUAnimState.PLAYING_FORWARD:
     {
         Events["deployEvent"].active = false;
         Events["retractEvent"].active = true;
         Actions["deployAction"].active = true;
         Actions["retractAction"].active = true;
         displayState = deployingStateName;
         break;
     }
     case SSTUAnimState.STOPPED_END:
     {
         Events["deployEvent"].active = false;
         Events["retractEvent"].active = true;
         Actions["deployAction"].active = true;
         Actions["retractAction"].active = true;
         displayState = deployedStateName;
         break;
     }
     case SSTUAnimState.STOPPED_START:
     {
         Events["deployEvent"].active = true;
         Events["retractEvent"].active = false;
         Actions["deployAction"].active = true;
         Actions["retractAction"].active = true;
         displayState = retractedStateName;
         break;
     }
     }
 }
Ejemplo n.º 15
0
 //DONE
 private void setAnimationState(SSTUAnimState state)
 {
     if(animationControl!=null){animationControl.setToState(state);}
     updateGuiDataFromState(state);
 }