Esempio n. 1
0
        /// <summary>
        /// Construction routine.
        /// </summary>
        //dont like the fact that this has to be public, unfortunately c# has no chill for friends :/ :p
        public void Construct(int configurationVariant = 0, UnityAction <BaseMenu> onComplete = null)
        {
            _baseMenuFSM = new FSM <BaseMenuStates>();
            _baseMenuFSM.Initialize(this, Constants._frameworkFsmInitPrefix, Constants._frameworkFsmUpdatePrefix, Constants._frameworkFsmTerminatePrefix);

            TemporaryVariableManager.SetTemporaryVariable <UnityAction <BaseMenu> >(this, _onConstructionCompleteCBIndex, onComplete, true);

            ConfigurationApplicator.Instance.ApplyConfiguration(this.GetType(), this.gameObject, configurationVariant);

            _baseMenuFSM.SetState(BaseMenuStates.Construction);
            _baseMenuFSM.UpdateStateMachine();
        }
Esempio n. 2
0
 /// <summary>
 /// sets menu state to transitioning out
 /// </summary>
 /// <param name="onComplete"></param>
 public virtual void TransitionOut(bool skipTransition = false, UnityAction <BaseMenu> onComplete = null)
 {
     TemporaryVariableManager.SetTemporaryVariable <UnityAction <BaseMenu> >(this, _onTransitionOutCBIndex, onComplete, true);
     if (skipTransition)
     {
         OnSkipTransition(BaseMenuStates.TransitionOut);
         onComplete?.Invoke(this);
         _baseMenuFSM.SetState(BaseMenuStates.Disabled);
         return;
     }
     _baseMenuFSM.SetState(BaseMenuStates.TransitionOut);
 }
Esempio n. 3
0
 public virtual void Destruct(UnityAction <BaseMenu> onComplete = null)
 {
     TemporaryVariableManager.SetTemporaryVariable <UnityAction <BaseMenu> >(this, _onDestructionCompleteCBIndex, onComplete, true);
     _baseMenuFSM.SetState(BaseMenuStates.Destruction);
 }