private void AddTransitionGUI(SMTransition transition)
        {
            TabPage tpTransition = new TabPage();

            tpTransition.Controls.Add(new TransitionEditorCtrl(_actTransFlowItem, transition));
            tcTransitions.TabPages.Add(tpTransition);
        }
        public TransitionEditorCtrl(SMActTransFlow actTransFlow, SMTransition transitionItem)
        {
            //_containerPanel = containerPanel;
            _actTransFlow   = actTransFlow;
            _transitionItem = transitionItem;
            InitializeComponent();

            tbText.Text = _transitionItem.Text;
            Text        = transitionItem.Name;

            GetFlowList(_transitionItem.StateMachine);
            cmbTransitionID.DataSource = null;
            cmbTransitionID.DataSource = _flowNameList;

            if (_transitionItem.TransitionTargetID != "")
            {
                cmbTransitionID.SelectedItem = _transitionItem.TransitionTargetID;
            }

            //smPropID.ScopeID = _transitionItem.ParentContainer.ScopeID;
            smPropID.BindTwoWay(() => DummyID);

            //smValueID.ScopeID = _transitionItem.ParentContainer.ScopeID;
            smValueID.BindTwoWay(() => ConditionaValue);

            Rebuild();
            cbOperator.SelectedIndex = 0;
        }
Beispiel #3
0
    /// <summary>
    /// Loads the screen with the given screen id. ses the given transition to do the transition between the screens.
    /// </summary>
    /// <param name="screenId">
    /// the id of the screen to be loaded.
    /// </param>
    /// <param name="transitionPrefab">
    /// The path of the transition to use.
    /// </param>
    public void LoadScreen(string screenId, string transitionPrefab)
    {
        if (string.IsNullOrEmpty(transitionPrefab))
        {
            Debug.LogWarning("given transition prefab must not be null or empty.");
            transitionPrefab = defaultTransitionPrefab;
        }
        GameObject prefab = (GameObject)Resources.Load(transitionPrefab);

        if (prefab == null)
        {
            throw new ArgumentException("no transition prefab found at path " + transitionPrefab);
        }

        GameObject   instance   = (GameObject)GameObject.Instantiate(prefab);
        SMTransition transition = instance.GetComponent <SMTransition>();

        if (transition == null)
        {
            throw new ArgumentException("no transition found at prefab " + transitionPrefab);
        }
        currentLevel            = screenId;
        transition.screenId     = screenId;
        transition.SceneLoaded += this.OnSceneLoaded;
    }
        private void btnAddTransition_Click(object sender, EventArgs e)
        {
            SMTransition transition = new SMTransition();

            transition.ParentContainer = _actTransFlowItem.ParentContainer;
            transition.StateMachine    = _actTransFlowItem.StateMachine;
            _actTransFlowItem.AddTransition(transition);
            AddTransitionGUI(transition);
        }
Beispiel #5
0
    public static void ShowTranstion(SceneTransType type = SceneTransType.Null, System.Action inAction = null, System.Action holdAciton = null)
    {
        if (type != SceneTransType.Null)
        {
            //FieldInfo fieldInfo = type.GetType().GetField(type.ToString());
            //object[] attribArray = fieldInfo.GetCustomAttributes(false);
            //if (attribArray.Length > 0)
            //{
            //    DescriptionAttribute attrib = (DescriptionAttribute)attribArray[0];
            //    //通过枚举描述来判断生成类型
            //    if (attrib.Description == GUI)
            //    {
            //        SMTransition smtranstion = GameObject.Instantiate(Resources.Load<GameObject>(sceneDic[type])).GetComponent<SMTransition>();
            //        smtranstion.InAction = inAction;
            //        smtranstion.HoldAction = holdAciton;
            //    }
            //    else
            //    {
            //        SMPostEffectsTransition smpostransition = GameObject.Instantiate(Resources.Load<GameObject>(sceneDic[type])).GetComponent<SMPostEffectsTransition>();
            //        smpostransition.ShaderName = type.ToString();
            //        smpostransition.InAction = inAction;
            //        smpostransition.HoldAction = holdAciton;
            //    }
            //}

            if (sceneDic.ContainsKey(type))
            {
                SMTransition smtranstion = GameObject.Instantiate(Resources.Load <GameObject>(sceneDic[type])).GetComponent <SMTransition>();
                smtranstion.InAction   = inAction;
                smtranstion.HoldAction = holdAciton;
            }
            else
            {
                string path = UguiNormalPath;
                if (type == SceneTransType.MaskTexWipe)
                {
                    path = UguiMaskTexPath;
                }
                SMPostEffectsTransition smpostransition = GameObject.Instantiate(Resources.Load <GameObject>(path)).GetComponent <SMPostEffectsTransition>();
                smpostransition.ShaderName = type.ToString();
                smpostransition.InAction   = inAction;
                smpostransition.HoldAction = holdAciton;
            }
        }
        else
        {
            if (holdAciton != null)
            {
                holdAciton();
            }
        }
    }
        private void btnNewTrans_Click(object sender, EventArgs e)
        {
            SMTransition transition = new SMTransition("");
            string       newName    = transition.ValidateName(_actTransFlow, "");

            transition.Name            = newName;
            transition.ParentContainer = _actTransFlow.ParentContainer;
            transition.StateMachine    = _actTransFlow.StateMachine;
            _actTransFlow.AddTransition(transition);
            treeComponents.Nodes.Clear();
            _actTransFlow.Rebuild();
            Rebuild();
        }
Beispiel #7
0
 public void ShowScenEffect(SwitchScenEffect ScenEffect)
 {
     SceneLoader.Instance.LoadScene(StageMgr.Scene_name, () =>
     {
         string transitionPrefab  = "Transitions/" + ScenEffect.ToString();
         GameObject prefab        = (GameObject)Resources.Load(transitionPrefab);
         GameObject instance      = (GameObject)GameObject.Instantiate(prefab);
         SMTransition transition  = instance.GetComponent <SMTransition>();
         transition.screenId      = StageMgr.Scene_name;
         transition.loadAsync     = true;
         transition.prefetchLevel = true;
     });
 }
        private void treeComponents_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            if (e.Node.Tag is SMTransition)
            {
                _currentTransitionItem = e.Node.Tag as SMTransition;

                if (_currentTransitionItem.TransitionTargetID != "")
                {
                    cmbTransitionID.SelectedItem = _currentTransitionItem.TransitionTargetID;
                }
                return;
            }

            SMSubCondBase selSubCond = e.Node.Tag as SMSubCondBase;

            if (!(selSubCond is SMSubCond))
            {
                return;
            }
            SMSubCond subCond = selSubCond as SMSubCond;

            DummyID = subCond.ConditionID;
            smPropID.UnBind();
            //smPropID.ScopeID = _transitionItem.ParentContainer.ScopeID;
            smPropID.BindTwoWay(() => DummyID);
            cbOperator.SelectedItem = subCond.OperatorString;

            ConditionaValue = subCond.ConditionValueString;
            smValueID.UnBind();
            //smValueID.ScopeID = _transitionItem.ParentContainer.ScopeID;
            smValueID.BindTwoWay(() => ConditionaValue);

            _currentTransitionItem = GetTransitionParent(selSubCond);
            if (_currentTransitionItem.TransitionTargetID != "")
            {
                cmbTransitionID.SelectedItem = _currentTransitionItem.TransitionTargetID;
            }

            //if (!ConditionaValue.Contains("(Object)"))
            //{
            //    smValueID.UnBind();
            //    smValueID.BindTwoWay(() => ConditionaValue);
            //    smValueID.ReturnType = MCore.Controls.MPIDCtl.eTypes.Object;
            //}
            //else
            //{
            //    smValueID.UnBind();
            //    smValueID.BindTwoWay(() => ConditionaValue);
            //    smValueID.ReturnType = MCore.Controls.MPIDCtl.eTypes.Object;
            //}
        }
        public TransitionEditorForm(SMContainerPanel containerPanel, SMTransition transitionItem)
        {
            _containerPanel = containerPanel;
            _transitionItem = transitionItem;
            InitializeComponent();

            mcbTimeoutToStopPath.BindTwoWay(() => _transitionItem.FlowTimeoutToStopPath);
            mCbLoopTransition.BindTwoWay(() => _transitionItem.LoopTransition);
            strTimeOutCaption.BindTwoWay(() => _transitionItem.TimeOutCaption);
            strTimeOutMsg.BindTwoWay(() => _transitionItem.TimeOutMessage);
            mDoubleTimeOut.BindTwoWay(() => _transitionItem.TransTimeOut);
            mDoubleLoopTime.BindTwoWay(() => _transitionItem.TransLoopTime);
            mcbUseDryRunTrans.BindTwoWay(() => _transitionItem.UseDryRunTrans);

            tbText.Text = _transitionItem.Text;
            Text        = transitionItem.Name;

            GetFlowList(_transitionItem.StateMachine);
            cmbTransitionID.DataSource = null;
            cmbTransitionID.DataSource = _flowNameList;

            if (_transitionItem.TransitionTargetID != "")
            {
                cmbTransitionID.SelectedItem = _transitionItem.TransitionTargetID;
            }

            cmbDryRunTransitionID.DataSource = null;
            cmbDryRunTransitionID.DataSource = _flowNameList2;

            if (_transitionItem != null)
            {
                if (cmbDryRunTransitionID.Items.Contains(_transitionItem.DryRunTransitionTargetID))
                {
                    cmbDryRunTransitionID.SelectedItem = _transitionItem.DryRunTransitionTargetID;
                }
                else
                {
                    cmbDryRunTransitionID.SelectedItem = null;
                }
            }

            smPropID.ScopeID = _transitionItem.ParentContainer.ScopeID;
            smPropID.BindTwoWay(() => DummyID);

            smValueID.ScopeID = _transitionItem.ParentContainer.ScopeID;
            smValueID.BindTwoWay(() => ConditionaValue);

            Rebuild();
            cbOperator.SelectedIndex = 0;
        }
 private void btnDeleteTrans_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("This Flow item will be deleted.  Are you sure?", "Warning", MessageBoxButtons.YesNo) == DialogResult.Yes)
     {
         if (_currentTransitionItem != null)
         {
             _actTransFlow.RemoveTransition(_currentTransitionItem);
             _currentTransitionItem = null;
             treeComponents.Nodes.Clear();
             _actTransFlow.Rebuild();
             Rebuild();
         }
     }
 }
        private void btnLessPriority_Click(object sender, EventArgs e)
        {
            if (_currentTransitionItem == null)
            {
                return;
            }

            int currentIndex = _actTransFlow.TransitionList.IndexOf(_currentTransitionItem);

            if (currentIndex >= _actTransFlow.TransitionList.Count - 1)
            {
                return;
            }

            SMTransition nextTrans = _actTransFlow.TransitionList[currentIndex + 1];

            _actTransFlow.TransitionList[currentIndex + 1] = _currentTransitionItem;
            _actTransFlow.TransitionList[currentIndex]     = nextTrans;
            treeComponents.Nodes.Clear();
            _actTransFlow.Rebuild();
            Rebuild();
        }
        private void btnMorePrioruty_Click(object sender, EventArgs e)
        {
            if (_currentTransitionItem == null)
            {
                return;
            }

            int currentIndex = _actTransFlow.TransitionList.IndexOf(_currentTransitionItem);

            if (currentIndex <= 0)
            {
                return;
            }

            SMTransition previousTrans = _actTransFlow.TransitionList[currentIndex - 1];

            _actTransFlow.TransitionList[currentIndex - 1] = _currentTransitionItem;
            _actTransFlow.TransitionList[currentIndex]     = previousTrans;
            treeComponents.Nodes.Clear();
            _actTransFlow.Rebuild();
            Rebuild();
        }
        private void btnAddAND_Click(object sender, EventArgs e)
        {
            CompBase selComp = null;

            if (treeComponents.SelectedNode == null)
            {
                selComp = null;
            }
            else
            {
                selComp = treeComponents.SelectedNode.Tag as CompBase;
                if (selComp is SMTransition)
                {
                    _currentTransitionItem = selComp as SMTransition;
                }
                else
                {
                    _currentTransitionItem = GetTransitionParent(selComp);
                }
            }

            if (selComp == null)
            {
                return;
            }

            //Prevent incorrect added
            if (((selComp is SMTransition) && ((selComp as SMTransition).ChildArray != null && (selComp as SMTransition).ChildArray.Length != 0)) ||
                selComp is SMSubCond)
            {
                return;
            }


            selComp.Add(new SMAndCond());
            treeComponents.Nodes.Clear();
            Rebuild();
        }