public Sequence CreateSequenceFromBase(SequenceBase sequenceBase)
        {
            Sequence seq = new Sequence();

            switch (sequenceBase.SeqType)
            {
            case SequenceType.Animation:
                seq.AttractAnimation = (AttractAnimation)sequenceBase;
                break;

            case SequenceType.AnimationLayer:
                seq.animation_layer = (AttractAnimation)sequenceBase;
                break;

            case SequenceType.Combo:
                seq.Combo = (Combo)sequenceBase;
                break;

            case SequenceType.Credits:
                seq.Credits = (Credits)sequenceBase;
                break;

            case SequenceType.GroupLayer:
                seq.GroupLayer = (GroupLayer)sequenceBase;
                break;

            case SequenceType.HighScores:
                seq.HighScores = (HighScores)sequenceBase;
                break;

            case SequenceType.LastScores:
                seq.LastScores = (LastScores)sequenceBase;
                break;

            case SequenceType.MarkupLayer:
                seq.MarkupLayer = (MarkupLayer)sequenceBase;
                break;

            case SequenceType.PanningLayer:
                seq.panning_layer = (PanningLayer)sequenceBase;
                break;

            case SequenceType.RandomText:
                seq.RandomText = (RandomText)sequenceBase;
                break;

            case SequenceType.ScriptedText:
                seq.ScriptedText = (ScriptedText)sequenceBase;
                break;

            case SequenceType.TextLayer:
                seq.text_layer = (TextLayer)sequenceBase;
                break;

            default:
                break;
            }

            return(seq);
        }
    protected override void Start()
    {
        base.Start();

        currentIndex = startIndex;

        if (transform.childCount > 0)
        {
            sequences = new SequenceBase[transform.childCount];

            for (int i = 0; i < transform.childCount; i++)
            {
                SequenceBase sequence = transform.GetChild(i).GetComponent <SequenceBase>();
                sequence.sequenceIndex = i;

                if (sequence)
                {
                    sequences[i] = sequence;
                }
            }
        }
        else
        {
            Debug.Log("Place the sequences as children of the sequence manager object");
        }


        //After a certain delay, start the sequence. Remove the delay at the release
        Invoke("TempStepActivation", 0.5f);

        sequenceFinisedEvent += FinishSequence;
    }
Example #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="seq_"></param>
        public void OpenGraphInNewTab(SequenceBase seq_)
        {
            foreach (TabItem item in tabControl.Items)
            {
                if ((item.DataContext as FlowGraphControlViewModel).ID == seq_.Id)
                {
                    tabControl.SelectedItem = item;
                    return;
                }
            }

            TabItem tab = new TabItem();
            FlowGraphControlViewModel fgvm = FlowGraphManager.Instance.GetViewModelByID(seq_.Id);

            tab.DataContext = fgvm;

            FlowGraphControl fgc = new FlowGraphControl();

            fgc.DataContext = fgvm;
            tab.Content     = fgc;

            Binding bind = new Binding("Name");

            bind.Source = fgvm;
            tab.SetBinding(TabItem.HeaderProperty, bind);

            tabControl.SelectedIndex = tabControl.Items.Add(tab);
        }
Example #4
0
 /// <summary>
 /// Returns a string containing a C# declaration of the result variable of the sequence (or sequence computation) construct
 /// </summary>
 public static string DeclareResultVar(SequenceBase seq)
 {
     if (seq is Sequence)
     {
         return("bool res_" + seq.Id + ";\n");
     }
     else
     {
         return("object res_" + seq.Id + ";\n");
     }
 }
Example #5
0
 /// <summary>
 /// Returns a string containing a C# assignment to set the result variable of the sequence or sequence computation construct
 /// to the value as computed by the C# expression in the string given
 /// (every sequence part writes a success-value which is read by other parts determining execution flow)
 /// </summary>
 public static string SetResultVar(SequenceBase seq, String valueToWrite)
 {
     if (seq is Sequence)
     {
         return("res_" + seq.Id + " = (bool)(" + valueToWrite + ");\n");
     }
     else
     {
         return("res_" + seq.Id + " = " + valueToWrite + ";\n");
     }
 }
Example #6
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="seq_"></param>
        /// <param name="stack_"></param>
        /// <param name="parent_"></param>
        public ProcessingContext(SequenceBase seq_, MemoryStackFrameManager stack_, ProcessingContext parent_ = null)
        {
            State = ProcessingContextState.Stop;

            m_FreeCallID++;
            CallID = m_FreeCallID;

            Parent = parent_;
            SequenceBase = seq_;
            MemoryStackFrame = stack_;
        }
Example #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="seq_"></param>
        /// <param name="stack_"></param>
        /// <param name="parent_"></param>
        public ProcessingContext(SequenceBase seq_, MemoryStackFrameManager stack_, ProcessingContext parent_ = null)
        {
            State = ProcessingContextState.Stop;

            m_FreeCallID++;
            CallID = m_FreeCallID;

            Parent           = parent_;
            SequenceBase     = seq_;
            MemoryStackFrame = stack_;
        }
Example #8
0
        /// <summary>
        /// Call after Load() to connect nodes each others
        /// </summary>
        /// <param name="node_"></param>
        /// <param name="connectionListNode_"></param>
        internal virtual void ResolveLinks(XmlNode connectionListNode_, SequenceBase sequence_)
        {
            foreach (XmlNode connNode in connectionListNode_.SelectNodes("Connection[@srcNodeID='" + Id + "']"))
            {
                int outputSlotID    = int.Parse(connNode.Attributes["srcNodeSlotID"].Value);
                int destNodeID      = int.Parse(connNode.Attributes["destNodeID"].Value);
                int destNodeInputID = int.Parse(connNode.Attributes["destNodeSlotID"].Value);

                SequenceNode destNode = sequence_.GetNodeById(destNodeID);
                GetSlotById(outputSlotID).ConnectTo(destNode.GetSlotById(destNodeInputID));
            }
        }
Example #9
0
        protected override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            m_inner_sequence = DataContext as SequenceBase;

            m_items             = GetTemplateChild("Items") as ItemsControl;
            m_items.ItemsSource = m_inner_sequence.Items;

            m_border = GetTemplateChild("Border") as Border;

            m_border.DragOver += m_inner_sequence.OnDropOver;
            m_border.Drop     += m_inner_sequence.OnDrop;
        }
Example #10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="seq_"></param>
        /// <param name="eventType_"></param>
        /// <param name="index_"></param>
        /// <param name="param_"></param>
        public void LaunchSequence(SequenceBase seq_, Type eventType_, int index_, object param_)
        {
            MemoryStackFrameManager stackFrames = new MemoryStackFrameManager();

            //stackFrames.Clear();
            stackFrames.AddStackFrame(); // 1st frame
            seq_.AllocateAllVariables(stackFrames.CurrentFrame);
            ProcessingContext processContext = new ProcessingContext(seq_, stackFrames);

            seq_.OnEvent(processContext, eventType_, index_, param_);
            m_CallStacks.Add(processContext);

            Resume();
        }
Example #11
0
        protected override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            items              = GetTemplateChild("Sequences") as ListView;
            items.SizeChanged += (sender, e) =>
            {
                if (controller == null || currentScene == null)
                {
                    return;
                }

                var frameScale = (e.NewSize.Width - borderSize) / currentScene.FrameDuration;
                foreach (var sequence in controller.Sequences)
                {
                    sequence.UpdateScale(frameScale);
                }
            };

            items.DragItemsStarting += (sender, e) =>
            {
                var item = e.Items.FirstOrDefault() as ISequence;
                if (item != null)
                {
                    e.Data.Properties.Add("Context", item);
                }
            };

            items.DragOver += (sender, e) => {
                e.AcceptedOperation = Windows.ApplicationModel.DataTransfer.DataPackageOperation.Copy;
            };

            items.Drop += (sender, e) => {
                if (controller == null || currentScene == null)
                {
                    return;
                }

                var seq = new SequenceBase();
                seq.Items.Add(new SequenceElementBase(currentScene));

                var frameScale = (items.ActualWidth - 40) / currentScene.FrameDuration;
                seq.UpdateScale(frameScale);

                controller.Sequences.Add(seq);
            };
            // Получаем слайдер
            slider = GetTemplateChild("DurationSlider") as Slider;
            slider.ValueChanged += SceneDurationChange;
        }
Example #12
0
    // ================================================================ //
    // MonoBehaviour에서 상속.

    void    Awake()
    {
        // 시퀀스 모듈이 설정되어 있지 않으면 기본 모듈을 추가한다.
        if (this.sequence == null)
        {
            this.sequence = this.gameObject.AddComponent <SequenceBase>();
        }

        // Network 클래스 컴포넌트 획득.
        GameObject obj = GameObject.Find("Network");

        if (obj != null)
        {
            this.network = obj.GetComponent <Network>();
        }
    }
Example #13
0
        /// <summary>
        /// 创建一个新的顺序播放器,加到ShowList列表中
        /// </summary>
        /// <param name="type"></param>
        private void NewShow(enumSequenceType type)
        {
            SequenceBase sequence;

            switch (type)
            {
            case enumSequenceType.e_Sequence_Skill:
            case enumSequenceType.e_Sequence_Equip:
                sequence = new SequenceShow();
                break;

            default:
                sequence = new SequenceShow();
                break;
            }
            sequence.type = type;
            if (this.ShowList.Count == 0)
            {
                sequence.StartTime       = Time.time;
                sequence.LastAnimEndTime = Time.time;
            }
            else
            {
                SequenceBase curSequence = this.GetCurrentShow();
                try
                {
                    sequence.StartTime       = curSequence.EndTime + 0.1f;
                    sequence.LastAnimEndTime = curSequence.LastAnimEndTime;
                    if (Time.time > sequence.StartTime)
                    {
                        sequence.StartTime = Time.time;
                    }
                    if (Time.time > sequence.LastAnimEndTime)
                    {
                        sequence.LastAnimEndTime = Time.time;
                    }
                }
                catch (Exception e)
                {
                    this.m_log.Fatal(e);
                }
            }
            this.ShowList.Add(sequence);
        }
Example #14
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (SelectedGraphChanged != null)
            {
                SequenceBase seq = null;

                if (tabControl.SelectedItem is TabItem)
                {
                    TabItem item = (tabControl.SelectedItem as TabItem);

                    if (item.Content is FlowGraphControl)
                    {
                        seq = (item.Content as FlowGraphControl).ViewModel.Sequence;
                    }
                }

                SelectedGraphChanged(this, new EventArg1Param <SequenceBase>(seq));
            }
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="seq_"></param>
        public void OpenGraphInNewTab(SequenceBase seq_)
        {
            foreach (TabItem item in tabControl.Items)
            {
                if ((item.DataContext as FlowGraphControlViewModel).ID == seq_.Id)
                {
                    tabControl.SelectedItem = item;
                    return;
                }
            }

            TabItem tab = new TabItem();
            FlowGraphControlViewModel fgvm = FlowGraphManager.Instance.GetViewModelByID(seq_.Id);
            tab.DataContext = fgvm;

            FlowGraphControl fgc = new FlowGraphControl();
            fgc.DataContext = fgvm;
            tab.Content = fgc;

            Binding bind = new Binding("Name");
            bind.Source = fgvm;
            tab.SetBinding(TabItem.HeaderProperty, bind);

            tabControl.SelectedIndex = tabControl.Items.Add(tab);
        }
 public static CombatGameState GetCombat(this SequenceBase s)
 {
     return(null);
 }
 /// <summary>
 ///
 /// </summary>
 public FlowGraphControlViewModel(SequenceBase seq_) :
     this()
 {
     Sequence = seq_;
 }
 /// <summary>
 /// 
 /// </summary>
 public FlowGraphControlViewModel(SequenceBase seq_)
     : this()
 {
     Sequence = seq_;
 }
Example #19
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="seq_"></param>
 /// <param name="stack_"></param>
 /// <param name="slot_"></param>
 public ProcessingContextStep(SequenceBase seq_, MemoryStack stack_, NodeSlot slot_)
 {
     SequenceBase = seq_;
     MemoryStack  = stack_;
     Slot         = slot_;
 }
Example #20
0
 /// <summary>
 /// Returns a string containing a C# expression to get the value of the result variable of the sequence or sequence computation construct
 /// (every sequence part writes a success-value which is read by other parts determining execution flow)
 /// </summary>
 public static string GetResultVar(SequenceBase seq)
 {
     return("res_" + seq.Id);
 }
Example #21
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="seq_"></param>
        /// <param name="eventType_"></param>
        /// <param name="index_"></param>
        /// <param name="param_"></param>
        public void LaunchSequence(SequenceBase seq_, Type eventType_, int index_, object param_)
        {
            MemoryStackFrameManager stackFrames = new MemoryStackFrameManager();
            //stackFrames.Clear();
            stackFrames.AddStackFrame(); // 1st frame
            seq_.AllocateAllVariables(stackFrames.CurrentFrame);
            ProcessingContext processContext = new ProcessingContext(seq_, stackFrames);
            seq_.OnEvent(processContext, eventType_, index_, param_);
            m_CallStacks.Add(processContext);

            Resume();
        }
Example #22
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="seq_"></param>
 /// <param name="eventType_"></param>
 public void RegisterNextSequence(SequenceBase seq_, Type eventType_, object param_)
 {
     CurrentProcessingContext.MemoryStackFrame.AddStackFrame();
     seq_.AllocateAllVariables(CurrentProcessingContext.MemoryStackFrame.CurrentFrame);
     seq_.OnEvent(this, eventType_, 0, param_);
 }
Example #23
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="seq_"></param>
 /// <param name="eventType_"></param>
 public void RegisterNextSequence(SequenceBase seq_, Type eventType_, object param_)
 {
     CurrentProcessingContext.MemoryStackFrame.AddStackFrame();
     seq_.AllocateAllVariables(CurrentProcessingContext.MemoryStackFrame.CurrentFrame);
     seq_.OnEvent(this, eventType_, 0, param_);
 }
Example #24
0
 public GroupLayer(SequenceBase sequenceBase) : base()
 {
 }
        public SequenceItemViewModel(SequenceBase sequence)
        {
            Sequence = sequence;

            Sequence.SequenceName = Sequence.SeqType + "SequenceStyle";
        }
Example #26
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="connectionListNode_"></param>
 /// <param name="sequence_"></param>
 internal override void ResolveLinks(XmlNode connectionListNode_, SequenceBase sequence_)
 {
     GetScriptElement();
     base.ResolveLinks(connectionListNode_, sequence_);
 }
Example #27
0
        /// <summary>
        /// Call after Load() to connect nodes each others
        /// </summary>
        /// <param name="node_"></param>
        /// <param name="connectionListNode_"></param>
        internal virtual void ResolveLinks(XmlNode connectionListNode_, SequenceBase sequence_)
        {
            foreach (XmlNode connNode in connectionListNode_.SelectNodes("Connection[@srcNodeID='" + Id + "']"))
            {
                int outputSlotID = int.Parse(connNode.Attributes["srcNodeSlotID"].Value);
                int destNodeID = int.Parse(connNode.Attributes["destNodeID"].Value);
                int destNodeInputID = int.Parse(connNode.Attributes["destNodeSlotID"].Value);

                SequenceNode destNode = sequence_.GetNodeById(destNodeID);
                GetSlotById(outputSlotID).ConnectTo(destNode.GetSlotById(destNodeInputID));
            }
        }
Example #28
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="connectionListNode_"></param>
 /// <param name="sequence_"></param>
 internal override void ResolveLinks(XmlNode connectionListNode_, SequenceBase sequence_)
 {
     GetScriptElement();
     base.ResolveLinks(connectionListNode_, sequence_);
 }