public override string Summary()
        {
            var graph = transition.nest.graph;

            if (graph != null)
            {
                if (!StringUtility.IsNullOrWhiteSpace(graph.summary))
                {
                    return(graph.summary);
                }

                using (var recursion = Recursion.New(1))
                {
                    var events = graph.GetUnitsRecursive(recursion).OfType <IEventUnit>().ToList();

                    if (events.Count == 0)
                    {
                        return("Open the transition graph to add an event.");
                    }
                    else if (events.Count == 1)
                    {
                        return(events[0].Description().summary);
                    }
                    else // if (events.Count > 1)
                    {
                        return("Open the transition graph to see the full transition.");
                    }
                }
            }
            else
            {
                return("Choose a source in the graph inspector.");
            }
        }
        public override EditorTexture Icon()
        {
            var graph = transition.nest.graph;

            using (var recursion = Recursion.New(1))
            {
                if (graph != null)
                {
                    var events = graph.GetUnitsRecursive(recursion).OfType <IEventUnit>().ToList();

                    if (events.Count == 1)
                    {
                        return(events[0].Description().icon);
                    }
                    else
                    {
                        return(typeof(IStateTransition).Icon());
                    }
                }
                else
                {
                    return(typeof(IStateTransition).Icon());
                }
            }
        }
 protected virtual bool IsEntered()
 {
     using (var recursion = Recursion.New(1))
     {
         return(IsEntered(state, recursion));
     }
 }
        public override string Title()
        {
            var graph = transition.nest.graph;

            if (graph != null)
            {
                if (!StringUtility.IsNullOrWhiteSpace(graph.title))
                {
                    return(graph.title);
                }

                using (var recursion = Recursion.New(1))
                {
                    var events = graph.GetUnitsRecursive(recursion).OfType <IEventUnit>().ToList();

                    if (events.Count == 0)
                    {
                        return("(No Event)");
                    }
                    else if (events.Count == 1)
                    {
                        return(events[0].Description().title);
                    }
                    else // if (events.Count > 1)
                    {
                        return("(Multiple Events)");
                    }
                }
            }
            else
            {
                return("(No Transition)");
            }
        }
Example #5
0
 protected bool IsEntered()
 {
     using (var recursion = Recursion.New(1))
     {
         return(IsEntered(unit, recursion));
     }
 }
        protected override IEnumerable <Warning> Warnings()
        {
            foreach (var baseWarning in base.Warnings())
            {
                yield return(baseWarning);
            }

            var graph = transition.nest.graph;

            if (graph == null)
            {
                yield break;
            }

            using (var recursion = Recursion.New(1))
            {
                if (!graph.GetUnitsRecursive(recursion).OfType <IEventUnit>().Any())
                {
                    yield return(Warning.Caution("Transition graph is missing an event."));
                }
            }

            using (var recursion = Recursion.New(1))
            {
                if (!graph.GetUnitsRecursive(recursion).OfType <TriggerStateTransition>().Any())
                {
                    yield return(Warning.Caution("Transition graph is missing a trigger unit."));
                }
            }
        }
        public static IEnumerable <string> GetScriptGuids(Type type)
        {
            EnsureAnalyzed();

            using (var recursion = Recursion.New(1))
            {
                return(GetScriptGuids(recursion, type).ToArray()); // No delayed execution for recursion disposal
            }
        }
Example #8
0
        public static IEnumerable <string> GetScriptGuids(Type type)
        {
            if (typesToGuids == null)
            {
                UpdateTypeMappings();
            }

            using (var recursion = Recursion.New(1))
            {
                return(GetScriptGuids(recursion, type).ToArray()); // No delayed execution for recursion disposal
            }
        }
        protected override bool IsTraversed()
        {
            var graph = transition.nest.graph;

            if (graph == null)
            {
                return(false);
            }

            using (var recursion = Recursion.New(1))
            {
                foreach (var trigger in graph.GetUnitsRecursive(recursion).OfType <TriggerStateTransition>())
                {
                    if (trigger.Analysis <UnitAnalysis>(context).isEntered)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Example #10
0
        void IPoolable.New()
        {
            disposed = false;

            recursion = Recursion <RecursionNode> .New();
        }