3434namespace StateMachine
3535{
3636 [ PublicAPI ]
37- public class Fsm < TState , TTrigger > : Fsm < TState , TTrigger , float >
37+ public class Fsm < TS , TT > : Fsm < TS , TT , float >
3838 {
39- public Fsm ( FsmModel < TState , TTrigger , float > model ) : base ( model )
39+ public Fsm ( FsmModel < TS , TT , float > model ) : base ( model )
4040 {
4141 }
4242
43- public Fsm ( State < TState , TTrigger , float > current , bool stackEnabled = false ) : base ( current , stackEnabled )
43+ public Fsm ( State < TS , TT , float > current , bool stackEnabled = false ) : base ( current , stackEnabled )
4444 {
4545 }
4646
4747 public void Update ( )
4848 {
49- Model . Current . RaiseUpdated ( new UpdateArgs < TState , TTrigger , float > ( this , Current , 0f ) ) ;
49+ Model . Current . RaiseUpdated ( new UpdateArgs < TS , TT , float > ( this , Current , 0f ) ) ;
5050 }
5151 }
5252
5353 [ PublicAPI ]
54- public class Fsm < TState , TTrigger , TData >
54+ public class Fsm < TS , TT , TD >
5555 {
56- protected FsmModel < TState , TTrigger , TData > Model { get ; set ; } = new FsmModel < TState , TTrigger , TData > ( ) ;
56+ protected FsmModel < TS , TT , TD > Model { get ; set ; } = new FsmModel < TS , TT , TD > ( ) ;
5757
58- public State < TState , TTrigger , TData > Current => Model . Current ;
59- public Stack < State < TState , TTrigger , TData > > Stack => Model . Stack ;
58+ public State < TS , TT , TD > Current => Model . Current ;
59+ public Stack < State < TS , TT , TD > > Stack => Model . Stack ;
6060
6161 /// <exception cref="FsmBuilderException">When the model is null</exception>
62- public Fsm ( FsmModel < TState , TTrigger , TData > model )
62+ public Fsm ( FsmModel < TS , TT , TD > model )
6363 {
6464 if ( model == null ) throw FsmBuilderException . ModelCannotBeNull ( ) ;
6565
@@ -71,7 +71,7 @@ public Fsm(FsmModel<TState, TTrigger, TData> model)
7171 }
7272
7373 /// <exception cref="FsmBuilderException">When the initial state is null</exception>
74- public Fsm ( State < TState , TTrigger , TData > current , bool stackEnabled = false )
74+ public Fsm ( State < TS , TT , TD > current , bool stackEnabled = false )
7575 {
7676 Model . StackEnabled = stackEnabled ;
7777 if ( current == null ) throw FsmBuilderException . StateCannotBeNull ( ) ;
@@ -84,18 +84,18 @@ public Fsm(State<TState, TTrigger, TData> current, bool stackEnabled = false)
8484 }
8585
8686 /// <summary>
87- /// Gets you a builder for a Finite-State-Machine (FSM).
87+ /// Gets you a builder for a Finite-State-Machine (FSM).
8888 /// </summary>
8989 /// <param name="startState">The start state's key.</param>
9090 /// <returns></returns>
91- public static BuilderFluent < TState , TTrigger , TData > Builder ( TState startState )
91+ public static BuilderFluent < TS , TT , TD > Builder ( TS startState )
9292 {
93- return new FluentImplementation < TState , TTrigger , TData > ( startState ) ;
93+ return new FluentImplementation < TS , TT , TD > ( startState ) ;
9494 }
9595
9696 /// <exception cref="FsmBuilderException">When the handler is null</exception>
97- public Fsm < TState , TTrigger , TData > AddStateChangeHandler (
98- EventHandler < StateChangeArgs < TState , TTrigger , TData > > e )
97+ public Fsm < TS , TT , TD > AddStateChangeHandler (
98+ EventHandler < StateChangeArgs < TS , TT , TD > > e )
9999 {
100100 if ( e == null ) throw FsmBuilderException . HandlerCannotBeNull ( ) ;
101101
@@ -104,7 +104,7 @@ public Fsm<TState, TTrigger, TData> AddStateChangeHandler(
104104 }
105105
106106 /// <exception cref="FsmBuilderException">When the state is null or the state has already been added before</exception>
107- public Fsm < TState , TTrigger , TData > Add ( State < TState , TTrigger , TData > state )
107+ public Fsm < TS , TT , TD > Add ( State < TS , TT , TD > state )
108108 {
109109 if ( state == null ) throw FsmBuilderException . StateCannotBeNull ( ) ;
110110 if ( Model . States . ContainsKey ( state . Identifier ) ) throw FsmBuilderException . StateCanOnlyBeAddedOnce ( state ) ;
@@ -117,28 +117,28 @@ public Fsm<TState, TTrigger, TData> Add(State<TState, TTrigger, TData> state)
117117 /// When the transition is null or another transition already leads to the same
118118 /// target state
119119 /// </exception>
120- public Fsm < TState , TTrigger , TData > Add ( Transition < TState , TTrigger , TData > t )
120+ public Fsm < TS , TT , TD > Add ( Transition < TS , TT , TD > t )
121121 {
122122 if ( t == null ) throw FsmBuilderException . TransitionCannotBeNull ( ) ;
123123
124124 Model . GlobalTransitions . Add ( t . Target , t ) ;
125125 return this ;
126126 }
127127
128- public void JumpTo ( TState state , bool isPop = false )
128+ public void JumpTo ( TS state , bool isPop = false )
129129 {
130- State < TState , TTrigger , TData > s ;
130+ State < TS , TT , TD > s ;
131131 if ( Model . States . TryGetValue ( state , out s ) )
132132 {
133- DoTransition ( state , default ( TTrigger ) , isPop ) ;
133+ DoTransition ( state , default ( TT ) , isPop ) ;
134134 }
135135 }
136-
137- private void DoTransition ( TState state , TTrigger input , bool isPop )
136+
137+ private void DoTransition ( TS state , TT input , bool isPop )
138138 {
139139 if ( state == null || input == null ) return ;
140140
141- State < TState , TTrigger , TData > old = Model . Current ;
141+ State < TS , TT , TD > old = Model . Current ;
142142 if ( Model . StackEnabled && isPop )
143143 {
144144 Model . Stack . Pop ( ) ;
@@ -158,15 +158,15 @@ private void DoTransition(TState state, TTrigger input, bool isPop)
158158
159159 if ( ! Model . Current . Equals ( old ) )
160160 {
161- StateChangeArgs < TState , TTrigger , TData > args =
162- new StateChangeArgs < TState , TTrigger , TData > ( this , old , Model . Current , input ) ;
161+ StateChangeArgs < TS , TT , TD > args =
162+ new StateChangeArgs < TS , TT , TD > ( this , old , Model . Current , input ) ;
163163 old . RaiseExited ( args ) ;
164164 Model . Current . RaiseEntered ( args ) ;
165165 Model . RaiseStateChanged ( args ) ;
166166 }
167167 }
168168
169- public void Trigger ( TTrigger input )
169+ public void Trigger ( TT input )
170170 {
171171 if ( input == null ) return ;
172172
@@ -179,16 +179,16 @@ public void Trigger(TTrigger input)
179179 }
180180 }
181181
182- Transition < TState , TTrigger , TData > t = Model . Current . Process ( input ) ;
182+ Transition < TS , TT , TD > t = Model . Current . Process ( input ) ;
183183 if ( t != null )
184184 {
185185 DoTransition ( t . Target , input , t . Pop ) ;
186186 }
187187 }
188188
189- public void Update ( TData data )
189+ public void Update ( TD data )
190190 {
191- Model . Current . RaiseUpdated ( new UpdateArgs < TState , TTrigger , TData > ( this , Current , data ) ) ;
191+ Model . Current . RaiseUpdated ( new UpdateArgs < TS , TT , TD > ( this , Current , data ) ) ;
192192 }
193193 }
194194}
0 commit comments