private static void exportSubGraphNode(StringBuilder dotGraph, StateDetails <TState, TTrigger> state) { dotGraph.Append($"{createIndent(state.StateLevel + 1)}{state.State} "); dotGraph.AppendLine(state.TransitionsFrom.Any(t => t.ToState?.SuperState == state) ? "[shape=circle label=\"\" style=filled color=black]" : "[shape=point color=white];"); }
public StateDetails <TState, TTrigger> AddSubState(StateDetails <TState, TTrigger> subStateDetails) { if (_subStates.Contains(subStateDetails)) { return(this); } _subStates.Add(subStateDetails); subStateDetails.AddSuperState(this); return(this); }
public StateDetails <TState, TTrigger> AddSubState(StateDetails <TState, TTrigger> subStateDetails) { if (_subStates.Contains(subStateDetails)) { return(this); } //!!! Console.WriteLine($"adding {subStateDetails.State} as subState of {State}"); _subStates.Add(subStateDetails); subStateDetails.AddSuperState(this); return(this); }
public TransitionDetails(string name , StateDetails <TState, TTrigger> fromState , TTrigger trigger , StateDetails <TState, TTrigger> toState = null , bool hasCondition = false , uint priority = 1 , bool isDynamic = false) { Name = name; FromState = fromState; Trigger = trigger; ToState = toState; HasCondition = hasCondition; Priority = priority; IsDynamic = isDynamic; }
public TransitionDetails <TState, TTrigger> CreateTransitionFrom(string name , TTrigger trigger , StateDetails <TState, TTrigger> toState = null , bool hasCondition = false , uint priority = 1 , bool isDynamic = false) { var transition = new TransitionDetails <TState, TTrigger>(name , this , trigger , toState , hasCondition , priority , isDynamic); AddTransition(transition); return(transition); }
public StateDetails <TState, TTrigger> AddSuperState(StateDetails <TState, TTrigger> superStateDetails) { if (SuperState != null) { if (SuperState != superStateDetails) { throw new InvalidOperationException($"State '{State}' already has a super state of '{SuperState.State}'."); } } else { SuperState = superStateDetails; HasSuperState = true; superStateDetails.AddSubState(this); } return(this); }
public TransitionDetails <TState, TTrigger> CreateTransitionTo(string name , StateDetails <TState, TTrigger> fromState , TTrigger trigger , bool hasCondition = false , uint priority = 1 , bool isDynamic = false) { var transition = new TransitionDetails <TState, TTrigger>(name , fromState , trigger , this , hasCondition , priority , isDynamic); addTransition(transition); return(transition); }