コード例 #1
0
        public static bool CanDeleteAction(TimelineActionNode action)
        {
            BeginActionNode beginActionNode = action as BeginActionNode;

            if (beginActionNode == null || beginActionNode.TargetTimeline == null)
            {
                return(true);
            }
            bool flag1 = false;
            bool flag2 = false;

            foreach (TimelineActionNode timelineActionNode in action.TargetTimeline.ControllingActions)
            {
                if (timelineActionNode is BeginActionNode && timelineActionNode != beginActionNode)
                {
                    flag2 = true;
                }
                else if (timelineActionNode is ControllableStoryboardActionNode)
                {
                    flag1 = true;
                }
            }
            if (!flag2)
            {
                return(!flag1);
            }
            return(true);
        }
コード例 #2
0
        public static bool CanDeleteTrigger(TriggerBaseNode triggerNode)
        {
            List <SceneNode> list = new List <SceneNode>();

            foreach (SceneNode sceneNode in (IEnumerable <TriggerActionNode>)triggerNode.EnterActions)
            {
                list.Add(sceneNode);
            }
            foreach (SceneNode sceneNode in (IEnumerable <TriggerActionNode>)triggerNode.ExitActions)
            {
                list.Add(sceneNode);
            }
            EventTriggerNode eventTriggerNode = triggerNode as EventTriggerNode;

            if (eventTriggerNode != null)
            {
                list.AddRange((IEnumerable <SceneNode>)eventTriggerNode.Actions);
            }
            foreach (SceneNode sceneNode in list)
            {
                BeginActionNode beginActionNode = sceneNode as BeginActionNode;
                if (beginActionNode != null && beginActionNode.TargetTimeline != null)
                {
                    bool flag1 = false;
                    bool flag2 = false;
                    foreach (TimelineActionNode timelineActionNode in beginActionNode.TargetTimeline.ControllingActions)
                    {
                        if (!list.Contains((SceneNode)timelineActionNode))
                        {
                            if (timelineActionNode is BeginActionNode && timelineActionNode != beginActionNode)
                            {
                                flag2 = true;
                            }
                            else if (timelineActionNode is ControllableStoryboardActionNode)
                            {
                                flag1 = true;
                            }
                        }
                    }
                    if (!flag2 && flag1)
                    {
                        return(false);
                    }
                }
            }
            return(true);
        }