lib

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: 10 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func InitConfigurator

func InitConfigurator()

TODO Refactor and remove Viper... Could add Reset or Reinitialize TBD...

func LoadConfiguration

func LoadConfiguration(fileName string)

func Marshal

func Marshal(file string, data interface{})

func MarshalImageLayer

func MarshalImageLayer(fileName string, value *ImageLayerData)

func MarshalImageMetadata

func MarshalImageMetadata(fileName string, imgLayer *ImageMetadata)

func MarshalNavigator

func MarshalNavigator(fileName string, value *NavigatorData)

func MarshalScene

func MarshalScene(fileName string, value *Scene)

func ReadFile

func ReadFile(fileName string) []byte

func UnmarshalBytes

func UnmarshalBytes(contents []byte, toType interface{})

func UnmarshalFile

func UnmarshalFile(fileName string, toType interface{})

func WriteFile

func WriteFile(fileName string, data interface{})

Types

type ActionStageController

type ActionStageController interface {
	CheckBehaviorColorAt(x, y int32) color.Color
	SetControlMap(image *image.Image, width, height int) ActionStageController
	Load(data *ImageLayerData) ActionStageController
}

type ActionStageControllerData

type ActionStageControllerData struct {
	// contains filtered or unexported fields
}

func (*ActionStageControllerData) CheckBehaviorColorAt

func (a *ActionStageControllerData) CheckBehaviorColorAt(x, y int32) color.Color

func (*ActionStageControllerData) Load

TODO This shoudl probably be the ImageMetadata and not layer. Not sure if a behavior map would have more than one layer but it is possible. In that case we'll likely need different behavior map types.

func (*ActionStageControllerData) SetControlMap

func (a *ActionStageControllerData) SetControlMap(i *image.Image, width, height int) ActionStageController

type AudioState

type AudioState interface {
	SetAudioFile(fileName string) AudioState
	SetAudioLoop(shouldLoop bool) AudioState
	IsAudioOnLoop() bool
	GetAudioFile() string
	IncrementAudio() int32
	ResetAudioCount() AudioState
}

func NewAudioState

func NewAudioState(fileName string, loop bool) AudioState

type AudioStateData

type AudioStateData struct {
	AudioFile string `yaml:"AudioFile"`
	LoopAudio bool   `yaml:"LoopAudio"`
	// contains filtered or unexported fields
}

func CreateTestAudioData

func CreateTestAudioData() AudioStateData

func (*AudioStateData) GetAudioFile

func (s *AudioStateData) GetAudioFile() string

func (*AudioStateData) IncrementAudio

func (s *AudioStateData) IncrementAudio() int32

func (*AudioStateData) IsAudioOnLoop

func (s *AudioStateData) IsAudioOnLoop() bool

func (*AudioStateData) ResetAudioCount

func (s *AudioStateData) ResetAudioCount() AudioState

func (*AudioStateData) SetAudioFile

func (s *AudioStateData) SetAudioFile(fileName string) AudioState

func (*AudioStateData) SetAudioLoop

func (s *AudioStateData) SetAudioLoop(shouldLoop bool) AudioState

type Engine

type Engine interface {
	Start()
}

TODO Determine common lifecycle or handler mechanisms that any Engine implementation must provide.

type Font

type Font interface {
	GetFont() string
	GetFontSize() int32
	SetFont(font string) Font
	SetFontSize(int32) Font
}

func NewFont

func NewFont(font string, size int32) Font

type FontData

type FontData struct {
	Font     string `yaml:"Font"`
	FontSize int32  `yaml:"FontSize"`
}

///////////////////////////////////////////////////////////////////////////////

func (*FontData) GetFont

func (f *FontData) GetFont() string

func (*FontData) GetFontSize

func (f *FontData) GetFontSize() int32

func (*FontData) SetFont

func (f *FontData) SetFont(font string) Font

func (*FontData) SetFontSize

func (f *FontData) SetFontSize(size int32) Font

type FrameTracker

type FrameTracker interface {
	SetMaxFrame(maxFrame int32) FrameTracker
	SetRepeatFrame(repeatPerFrame int32) FrameTracker
	GetCurrentFrame() int32
	GetMaxFrame() int32
	SetToLoop(bool) FrameTracker
	UpdateIdleFrames(x, y int32) int32
	GetIdleFrames() int32
	IsFrameOnLoop() bool
	IncrementFrameCount() FrameTracker
	ResetFrameCount()
}

func NewFrameData

func NewFrameData() FrameTracker

Most data is set once at start up so limited Setters.

type FrameTrackerData

type FrameTrackerData struct {
	CurrentFrame        int32 `yaml:"CurrentFrame"`
	MaxFrame            int32 `yaml:"MaxFrame"`
	RepeatPerFrame      int32 `yaml:"RepeatPerFrame"`
	CurrentFrameRepeats int32 `yaml:"CurrentFrameRepeats"`
	IdleFrames          int32 `yaml:"IdleFrames"`
	LoopFrames          bool  `yaml:"LoopFrames"`
}

func CreateTestFrameTrackerData

func CreateTestFrameTrackerData() FrameTrackerData

func (*FrameTrackerData) GetCurrentFrame

func (fd *FrameTrackerData) GetCurrentFrame() int32

func (*FrameTrackerData) GetIdleFrames

func (fd *FrameTrackerData) GetIdleFrames() int32

func (*FrameTrackerData) GetMaxFrame

func (fd *FrameTrackerData) GetMaxFrame() int32

func (*FrameTrackerData) IncrementFrameCount

func (fd *FrameTrackerData) IncrementFrameCount() FrameTracker

func (*FrameTrackerData) IsFrameOnLoop

func (fd *FrameTrackerData) IsFrameOnLoop() bool

func (*FrameTrackerData) ResetFrameCount

func (fd *FrameTrackerData) ResetFrameCount()

func (*FrameTrackerData) SetMaxFrame

func (fd *FrameTrackerData) SetMaxFrame(maxFrame int32) FrameTracker

func (*FrameTrackerData) SetRepeatFrame

func (fd *FrameTrackerData) SetRepeatFrame(repeatPerFrame int32) FrameTracker

func (*FrameTrackerData) SetToLoop

func (fd *FrameTrackerData) SetToLoop(repeat bool) FrameTracker

func (*FrameTrackerData) UpdateIdleFrames

func (fd *FrameTrackerData) UpdateIdleFrames(x, y int32) int32

type ImageLayerData

type ImageLayerData struct {
	LayerMetadata []*ImageMetadata `yaml:"LayerMetadata"`
}

func UnmarshalImageLayer

func UnmarshalImageLayer(fileName string) *ImageLayerData

type ImageMetadata

type ImageMetadata struct {
	ImageFileName  string `yaml:"ImageFileName"`
	X              int32  `yaml:"X"`
	Y              int32  `yaml:"Y"`
	Width          int32  `yaml:"Width"`
	Height         int32  `yaml:"Height"`
	HorizontalFlip bool   `yaml:"HorizontalFlip"`
}

func UnmarshalImageMetadata

func UnmarshalImageMetadata(fileName string) *ImageMetadata
type Navigator interface {
	MoveTowardMouse(x, y int32)
	MoveByIncrement(x, y int32)
	CalculateMoveIncrement(moveToX, moveToY int32) (x, y int32)
	GetCurrentPoint() (x, y int32)
	ActionStageController
}

func CreateTestNavigator

func CreateTestNavigator() Navigator

func NewLocation

func NewLocation() Navigator

func NewNavigator

func NewNavigator(x, y, xMove, yMove, maxXOffset, maxYOffset int32, controller ActionStageController) Navigator
type NavigatorData struct {
	X                     int32 `yaml:"CurrentX"`
	Y                     int32 `yaml:"CurrentY"`
	XMove                 int32 `yaml:"XMove"`
	YMove                 int32 `yaml:"YMove"`
	MaxXOffset            int32 `yaml:"MaxXOffset"`
	MaxYOffset            int32 `yaml:"MaxYOffset"`
	ActionStageController `yaml:"-"`
}

/////////////////////////////////////////////////////////////////////////////

func UnmarshalNavigator

func UnmarshalNavigator(fileName string) *NavigatorData
func (cl *NavigatorData) Add(x, y int32)
func (cl *NavigatorData) CalculateMoveIncrement(moveToX, moveToY int32) (x, y int32)

This is in the middle of refactoring.

func (cl *NavigatorData) GetCurrentPoint() (x, y int32)

Clone

func (cl *NavigatorData) MoveByIncrement(x, y int32)
func (cl *NavigatorData) MoveTowardMouse(x, y int32)

type Scene

type Scene struct {
	WindowTitle  string          `yaml:"WindowTitle"`
	WindowWidth  int             `yaml:"WindowWidth"`
	WindowHeight int             `yaml:"WindowHeight"`
	RegisterKeys []rune          `yaml:"RegisterKeys"`
	Background   *ImageLayerData `yaml:"Background"`
	BehaviorMap  *ImageLayerData `yaml:"BehaviorMap"`
	Foreground   *ImageLayerData `yaml:"Foreground"`
	Actors       []string        `yaml:"Actors"`
}

///////////////////////////////////////////////////////////////////////////////

func UnmarshalScene

func UnmarshalScene(fileName string) *Scene

type TextLine

type TextLine interface {
	Font
	GetText() string
}

func NewTextLine

func NewTextLine(text string, font Font) TextLine

type TextLineData

type TextLineData struct {
	Test string `yaml:"Text"`
	Font
}

///////////////////////////////////////////////////////////////////////////////

func (*TextLineData) GetText

func (p *TextLineData) GetText() string

Jump to

Keyboard shortcuts

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