Esempio n. 1
0
        private void SwapStage(LessonStage stage, VisualElement element, bool up)
        {
            if (!m_BaseVisualElement.Contains(element))
            {
                return;
            }

            int elementIndex     = m_BaseVisualElement.IndexOf(element);
            int swapElementIndex = elementIndex + (up ? -1 : 1);

            if (swapElementIndex < 0 || swapElementIndex >= m_BaseVisualElement.childCount)
            {
                return;
            }

            VisualElement swapElement = m_BaseVisualElement.ElementAt(swapElementIndex);

            if (swapElement.GetType() != element.GetType())
            {
                return;
            }

            if (!m_BaseVisualElement.SwapElementsAt(elementIndex, swapElementIndex))
            {
                return;
            }

            m_LessonStageFactory.SwapStages(stage, up);
        }
Esempio n. 2
0
        public LessonBrowser()
        {
            LessonData lessonData = LessonAccess.Instance.CurrentLessonData;

            m_LessonStageFactory = lessonData.LessonStageFactory;

            if (m_LessonStageFactory.LessonStages.Count > 0)
            {
                m_DefaultActiveState = false;
                ApplyDefaultState(lessonData.ShapeDataFactory);

                LessonStage firstStage = m_LessonStageFactory.LessonStages[0];
                m_AppliedActions.Push(firstStage);
                firstStage.ApplyActions();

                HandleLessonStageNumberChanged(LessonAccess.Instance.CurrentLessonStageNumber);
            }
            else
            {
                m_DefaultActiveState = true;
                ApplyDefaultState(lessonData.ShapeDataFactory);
            }

            AddDisposable(EventBus.Subscribe(this));
        }
Esempio n. 3
0
        private void CreateStage()
        {
            LessonStage   lessonStage   = m_LessonStageFactory.CreateLessonStage();
            VisualElement visualElement = new LessonStageEditor(lessonStage, RemoveStage, SwapStage).GetVisualElement();

            m_BaseVisualElement.Add(visualElement);
        }
Esempio n. 4
0
        public LessonStageEditor(LessonStage stage, Action <LessonStage, VisualElement> deleteAction, Action <LessonStage, VisualElement, bool> swapAction)
        {
            m_Stage        = stage;
            m_DeleteAction = deleteAction;
            m_SwapAction   = swapAction;

            m_Stage.BecameDirty += UpdateName;
            m_Stage.BecameDirty += UpdateName;
        }
Esempio n. 5
0
        public void HandleLessonStageNumberChanged(int stageNumber)
        {
            if (stageNumber < 0 || stageNumber >= m_LessonStageFactory.LessonStages.Count)
            {
                return;
            }

            while (stageNumber >= m_AppliedActions.Count)
            {
                LessonStage stage = m_LessonStageFactory.LessonStages[m_AppliedActions.Count];
                m_AppliedActions.Push(stage);
                stage.ApplyActions();
            }

            while (stageNumber < m_AppliedActions.Count - 1)
            {
                m_AppliedActions.Pop().RollbackActions();
            }
        }
 public LessonStageDescriptionVM(LessonStage stage)
 {
     Number      = stage.StageNum;
     Name        = stage.StageName;
     Description = stage.StageDescription;
 }
Esempio n. 7
0
 public NoConflictsBetweenShapeActionsValidator(LessonStage lessonStage)
 {
     m_LessonStage              = lessonStage;
     m_LessonStage.BecameDirty += Update;
     Update();
 }
Esempio n. 8
0
 private void RemoveStage(LessonStage stage, VisualElement blueprintVisualElement)
 {
     m_LessonStageFactory.Remove(stage);
     m_BaseVisualElement.Remove(blueprintVisualElement);
 }