last_light/game/model/player.go

50 lines
730 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 Player struct {
id uuid.UUID
position util.Position
}
func CreatePlayer(x, y int) *Player {
2024-04-24 17:11:33 +03:00
p := new(Player)
p.id = uuid.New()
p.position = util.PositionAt(x, y)
return p
}
func (p *Player) UniqueId() uuid.UUID {
return p.id
}
func (p *Player) Position() util.Position {
return p.position
}
2024-04-24 17:11:33 +03:00
func (p *Player) Move(dir Direction) {
p.position = p.Position().WithOffset(MovementDirectionOffset(dir))
}
2024-04-24 17:11:33 +03:00
func (p *Player) Presentation() rune {
return '@'
2024-04-24 17:11:33 +03:00
}
func (p *Player) Passable() bool {
return false
2024-04-24 17:11:33 +03:00
}
func (p *Player) Input(e *tcell.EventKey) {
}
func (p *Player) Tick(dt int64) {
}