state_machines

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 9, 2023 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Walk   = "Walk"
	Idle   = "Idle"
	Dead   = "Dead"
	Attack = "Attack"
)
View Source
const (
	WalkFunc         = "walkFunc"
	IdleFunc         = "idleFunc"
	DeadFunc         = "deadFunc"
	AttackFunc       = "attackFunc"
	MoveFunc         = "moveFunc"
	UpdateFramesFunc = "updateFramesFunc"
)

Const string/function mapping accommodates marshaling.

Variables

View Source
var BehaviorsMap = map[string]executeBehavior{
	WalkFunc:         walkFunc,
	IdleFunc:         idleFunc,
	DeadFunc:         deadFunc,
	AttackFunc:       attackFunc,
	MoveFunc:         moveFunc,
	UpdateFramesFunc: updateFramesFunc,
}

Functions

func MarshalZombie

func MarshalZombie(data *ZombieData)

Types

type BehaviorTransaction

type BehaviorTransaction interface {
	GetCurrentStateName() string
	GetNextStateName() string
	SetNextStateName(string)
	IsTransition() bool
	GetMouseEvent() bus.MouseEvent
	lib.Navigator
	lib.FrameTracker
}

func NewBehaviorTransaction

func NewBehaviorTransaction(state string, event bus.MouseEvent, navigator lib.Navigator, tracker lib.FrameTracker) BehaviorTransaction

type BehaviorTransactionData

type BehaviorTransactionData struct {
	lib.Navigator
	lib.FrameTracker
	// contains filtered or unexported fields
}

func (*BehaviorTransactionData) GetCurrentStateName

func (b *BehaviorTransactionData) GetCurrentStateName() string

func (*BehaviorTransactionData) GetMouseEvent

func (b *BehaviorTransactionData) GetMouseEvent() bus.MouseEvent

func (*BehaviorTransactionData) GetNextStateName

func (b *BehaviorTransactionData) GetNextStateName() string

func (*BehaviorTransactionData) IsTransition

func (b *BehaviorTransactionData) IsTransition() bool

func (*BehaviorTransactionData) SetNextStateName

func (b *BehaviorTransactionData) SetNextStateName(s string)

type BehaviorsExecutor

type BehaviorsExecutor interface {
	ExecuteBehaviors(BehaviorTransaction)
}

func NewBehaviorExecutor

func NewBehaviorExecutor(behaviorNames []string) BehaviorsExecutor

type Zombie

type Zombie interface {
	Execute(drawEvent bus.DrawLayersEvent, mouseEvent bus.MouseEvent, keyEvent bus.KeyEvent)
	// contains filtered or unexported methods
}

type ZombieData

type ZombieData struct {
	CurrentStateName string                      `yaml:"CurrentStateName"`
	StateMap         map[string]*ZombieStateData `yaml:"StateMap"`
	Navigator        *lib.NavigatorData          `yaml:"Navigator"`
}

func UnmarshalZombie

func UnmarshalZombie(f []byte) *ZombieData

func (*ZombieData) Execute

func (z *ZombieData) Execute(drawEvent bus.DrawLayersEvent, mouseEvent bus.MouseEvent, keyEvent bus.KeyEvent)

type ZombieState

type ZombieState interface {
	// contains filtered or unexported methods
}

type ZombieStateData

type ZombieStateData struct {
	Name          string                `yaml:"Name"`
	Spec          string                `yaml:"Spec"`
	Width         int32                 `yaml:"Width"`
	Height        int32                 `yaml:"Height"`
	Started       bool                  `yaml:"Started"`
	FrameTracker  *lib.FrameTrackerData `yaml:"FrameTracker"`
	AudioState    *lib.AudioStateData   `yaml:"AudioState"`
	BehaviorNames []string              `yaml:"BehaviorList"`
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL