last_light/game/model/entity.go

47 lines
662 B
Go
Raw Normal View History

2024-04-24 17:11:33 +03:00
package model
import (
"mvvasilev/last_light/util"
"github.com/gdamore/tcell/v2"
"github.com/google/uuid"
)
type Direction int
const (
DirectionNone Direction = iota
DirectionUp
DirectionDown
DirectionLeft
DirectionRight
2024-04-24 17:11:33 +03:00
)
func MovementDirectionOffset(dir Direction) (int, int) {
switch dir {
case DirectionUp:
return 0, -1
case DirectionDown:
return 0, 1
case DirectionLeft:
return -1, 0
case DirectionRight:
return 1, 0
}
return 0, 0
}
2024-04-24 17:11:33 +03:00
type Entity interface {
UniqueId() uuid.UUID
Input(e *tcell.EventKey)
Tick(dt int64)
}
type MovableEntity interface {
Position() util.Position
2024-05-06 18:59:14 +03:00
MoveTo(newPosition util.Position)
Entity
2024-04-24 17:11:33 +03:00
}