fix: fms 包迁移问题处理
This commit is contained in:
parent
688a86bf3c
commit
996f5af8bd
|
@ -2,12 +2,11 @@ package fms
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/kercylan98/minotaur/game"
|
||||
)
|
||||
|
||||
func NewFSM[State comparable, Data any](data Data) *FSM[State, Data] {
|
||||
return &FSM[State, Data]{
|
||||
states: map[State]game.FSMState[State, Data]{},
|
||||
states: map[State]*FSMState[State, Data]{},
|
||||
data: data,
|
||||
}
|
||||
}
|
||||
|
@ -15,7 +14,7 @@ func NewFSM[State comparable, Data any](data Data) *FSM[State, Data] {
|
|||
type FSM[State comparable, Data any] struct {
|
||||
current State
|
||||
data Data
|
||||
states map[State]game.FSMState[State, Data]
|
||||
states map[State]*FSMState[State, Data]
|
||||
}
|
||||
|
||||
func (slf *FSM[State, Data]) Update() {
|
||||
|
@ -23,7 +22,7 @@ func (slf *FSM[State, Data]) Update() {
|
|||
state.Update(slf.data)
|
||||
}
|
||||
|
||||
func (slf *FSM[State, Data]) Register(state game.FSMState[State, Data]) {
|
||||
func (slf *FSM[State, Data]) Register(state *FSMState[State, Data]) {
|
||||
slf.states[state.GetState()] = state
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
package fms
|
||||
|
||||
import "github.com/kercylan98/minotaur/game"
|
||||
type (
|
||||
FSMStateEnterHandle[Data any] func(data Data)
|
||||
FSMStateUpdateHandle[Data any] func(data Data)
|
||||
FSMStateExitHandle[Data any] func(data Data)
|
||||
)
|
||||
|
||||
func NewFSMState[State comparable, Data any](state State, enter game.FSMStateEnterHandle[Data], update game.FSMStateUpdateHandle[Data], exit game.FSMStateExitHandle[Data]) *FSMState[State, Data] {
|
||||
func NewFSMState[State comparable, Data any](state State, enter FSMStateEnterHandle[Data], update FSMStateUpdateHandle[Data], exit FSMStateExitHandle[Data]) *FSMState[State, Data] {
|
||||
return &FSMState[State, Data]{
|
||||
enter: enter,
|
||||
update: update,
|
||||
|
@ -12,9 +16,9 @@ func NewFSMState[State comparable, Data any](state State, enter game.FSMStateEnt
|
|||
|
||||
type FSMState[State comparable, Data any] struct {
|
||||
state State
|
||||
enter game.FSMStateEnterHandle[Data]
|
||||
update game.FSMStateUpdateHandle[Data]
|
||||
exit game.FSMStateExitHandle[Data]
|
||||
enter FSMStateEnterHandle[Data]
|
||||
update FSMStateUpdateHandle[Data]
|
||||
exit FSMStateExitHandle[Data]
|
||||
}
|
||||
|
||||
func (slf *FSMState[State, Data]) GetState() State {
|
||||
|
|
Loading…
Reference in New Issue