コード例 #1
0
ファイル: Transition.cs プロジェクト: phobos2077/Game.FSM
 /// <summary>
 /// Adds target state with a transition data source function.
 /// </summary>
 /// <param name="state">The state to transition.</param>
 /// <param name="dataSource">Where to get the output data for the target state.</param>
 /// <returns></returns>
 public void AddTarget <TOut>(IStateWithInput <TOut> state, Func <TOut> dataSource)
 {
     AddTarget(state, () =>
     {
         state.SetTransitionData(dataSource());
     });
 }
コード例 #2
0
 /// <summary>
 /// Adds transition to a target state with transition data of type different from the trigger data.
 /// </summary>
 /// <param name="transition"></param>
 /// <param name="state"></param>
 /// <param name="convert">Convertion between the trigger data and state transition data.</param>
 /// <typeparam name="TIn"></typeparam>
 /// <typeparam name="TOut"></typeparam>
 public static Transition <TIn> With <TIn, TOut>(this Transition <TIn> transition, IStateWithInput <TOut> state, Func <TIn, TOut> convert)
 {
     transition.AddTarget(state, convert);
     return(transition);
 }
コード例 #3
0
 /// <summary>
 /// Adds transition to a target state with transition data of the same type as the trigger data.
 /// </summary>
 /// <param name="transition"></param>
 /// <param name="state"></param>
 public static Transition <TIn> With <TIn>(this Transition <TIn> transition, IStateWithInput <TIn> state)
 {
     transition.AddTarget(state);
     return(transition);
 }
コード例 #4
0
 /// <summary>
 /// Adds target state with a transition data source function.
 /// </summary>
 /// <param name="transition"></param>
 /// <param name="state">The state to transition.</param>
 /// <param name="dataSource">Where to get the output data for the target state.</param>
 /// <returns></returns>
 public static Transition With <TOut>(this Transition transition, IStateWithInput <TOut> state, Func <TOut> dataSource)
 {
     transition.AddTarget(state, dataSource);
     return(transition);
 }
コード例 #5
0
 /// <summary>
 /// Creates transition into a state with different transition data types.
 /// </summary>
 /// <param name="context"></param>
 /// <param name="target">Target state.</param>
 /// <param name="convert">Transition data convertion function.</param>
 /// <typeparam name="TIn"></typeparam>
 /// <typeparam name="TOut"></typeparam>
 /// <returns></returns>
 public static Transition <TIn> Transition <TIn, TOut>(this IStateContext context, IStateWithInput <TOut> target, Func <TIn, TOut> convert)
 {
     return(new Transition <TIn>(context).With(target, convert));
 }
コード例 #6
0
 /// <summary>
 /// Creates transition into a state of matching transition data type.
 /// </summary>
 /// <param name="context"></param>
 /// <param name="target">Target state.</param>
 /// <typeparam name="TIn"></typeparam>
 /// <returns></returns>
 public static Transition <TIn> Transition <TIn>(this IStateContext context, IStateWithInput <TIn> target)
 {
     return(new Transition <TIn>(context).With(target));
 }
コード例 #7
0
 /// <summary>
 /// Creates transition into a state with data source function.
 /// </summary>
 /// <param name="context"></param>
 /// <param name="target">Target state.</param>
 /// <param name="dataSource">Where to get the data for the target state from.</param>
 /// <typeparam name="TOut"></typeparam>
 /// <returns></returns>
 public static Transition Transition <TOut>(this IStateContext context, IStateWithInput <TOut> target, Func <TOut> dataSource)
 {
     return(new Transition(context).With(target, dataSource));
 }