vRp.CD2g_test/game/fsm_state.go

25 lines
698 B
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package game
type (
FSMStateEnterHandle[Data any] func(data Data)
FSMStateUpdateHandle[Data any] func(data Data)
FSMStateExitHandle[Data any] func(data Data)
)
// FSMState 有限状态机状态接口定义
// - 描述了 FSM 中的状态行为
//
// 需要一个可比较的状态类型及相应的数据类型,数据类型在无需使用时支持传入 nil
// - 内置实现builtin.FSMState
// - 构建函数builtin.NewFSMState
type FSMState[State comparable, Data any] interface {
// GetState 获取当前状态
GetState() State
// Enter 状态开始行为
Enter(data Data)
// Update 当前状态行为
Update(data Data)
// Exit 状态退出行为
Exit(data Data)
}