Ejemplo n.º 1
0
 public static void CallSaveToBase()
 {
     if (GlobalScheduler.InstanceExists() && Application.isPlaying)
     {
         GlobalScheduler.CallFunction(GlobalScheduler.Instance.gameObject, new Delegates.FunctionPointer(SaveToBase), 0.2f, false);
     }
     else
     {
         SaveToBase();
     }
 }
Ejemplo n.º 2
0
 protected virtual void OnPanelStateChanged(PanelStateEnum p_panelState)
 {
     if (p_panelState == PanelStateEnum.Opening || p_panelState == PanelStateEnum.Opened || p_panelState == PanelStateEnum.Closing)
     {
         CheckFocus(p_panelState);
     }
     else
     {
         List <object> v_parameters = new List <object>();
         v_parameters.Add(p_panelState);
         GlobalScheduler.CallFunction(this.gameObject, new Delegates.FunctionPointer <PanelStateEnum>(CheckFocus), v_parameters, 0.1f, true);
     }
 }
Ejemplo n.º 3
0
 protected virtual void InitialRecalcCorrector()
 {
     //Prevent Bugs when other objects mass change after this late update cycle
     //When not paused
     if (GlobalScheduler.InstanceExists())
     {
         GlobalScheduler.CallFunction(this.gameObject, new Delegates.FunctionPointer(RecalcSelfMass), 0.7f, false);
         GlobalScheduler.CallFunction(this.gameObject, new Delegates.FunctionPointer(RecalcOthersMass), 0.7f, false);
         GlobalScheduler.CallFunction(this.gameObject, new Delegates.FunctionPointer(RecalcRopesMass), 0.7f, false);
     }
     //and after Pause
     Invoke("RecalcSelfMass", 0.05f);
     Invoke("RecalcOthersMass", 0.05f);
 }
    public void ForceSetPanelStateValue(PanelStateEnum p_value, bool p_updateEffect, bool p_underDisableOrEnable = false)
    {
        if (Scheduler == null || !EnableScheduler)
        {
            if (p_value == PanelStateEnum.Opening)
            {
                p_value = PanelStateEnum.Opened;
            }
            if (p_value == PanelStateEnum.Closing)
            {
                p_value = PanelStateEnum.Closed;
            }
        }
        bool p_changed = CheckIfStateWillChange(p_value);

        m_panelState = p_value;
        _panelState  = m_panelState;

        if (p_changed)
        {
            if (CloseSpecialAction != CloseSpecialActionEnum.Deactivate || m_panelState != PanelStateEnum.Closed)
            {
                if (!p_underDisableOrEnable)
                {
                    SetActiveAndEnable(true, true);
                }
                if (Application.isPlaying)
                {
                    gameObject.SendMessage("OnPanelStateChanged", m_panelState, SendMessageOptions.DontRequireReceiver);
                }
            }
        }
        if (Application.isPlaying && (CloseSpecialAction != CloseSpecialActionEnum.Deactivate || m_panelState != PanelStateEnum.Closed))
        {
            gameObject.SendMessage("CallEventsInternal", m_panelState, SendMessageOptions.DontRequireReceiver);
        }
        else
        {
            CallEventsInternal(m_panelState);
        }

        if (p_updateEffect)
        {
            UpdateEffect();
        }

        //Used to Prevent Bugs while activating
        if (p_underDisableOrEnable)
        {
            if (Application.isPlaying && (CloseSpecialAction != CloseSpecialActionEnum.Deactivate || m_panelState != PanelStateEnum.Closed))
            {
                gameObject.SendMessage("CallControlSpecialAction", SendMessageOptions.DontRequireReceiver);
                gameObject.SendMessage("UpdateObjectsToShowOrHideByState", SendMessageOptions.DontRequireReceiver);
            }
            else
            {
                CallControlSpecialAction();
                UpdateObjectsToShowOrHideByState();
            }
        }
        else
        {
            CallControlSpecialAction();
            UpdateObjectsToShowOrHideByState();
            if (!gameObject.activeSelf)
            {
                if (Application.isPlaying)
                {
                    GlobalScheduler.CallFunction(this.gameObject, new Delegates.FunctionPointer(CheckNeedActivate), 0.01f, true);
                }
            }
        }
        if (!Application.isPlaying)
        {
            ControlSpecialAction();
            CheckNeedActivate();
        }
    }