package entities

import (
"github.com/go-gl/mathgl/mgl64"
"github.com/hajimehoshi/ebiten/v2"
)

type Tile struct {
pos     mgl64.Vec3
health  int
SideImg *ebiten.Image
TopImg  *ebiten.Image
}

func (t *Tile) Pos() mgl64.Vec3       { return t.pos }
func (t *Tile) SetPos(pos mgl64.Vec3) { t.pos = pos }
func (t *Tile) IsBlocking() bool      { return true }
func (t *Tile) IsMovable() bool       { return false }
func (t *Tile) Move(dx, dy, dz float64) {
// Not feasible for soil etc.
}
func (t *Tile) Damage(am int)  { t.health -= am }
func (t *Tile) Pickup() bool   { return false }
func (t *Tile) GetHealth() int { return t.health }

func (t *Tile) DrawSide(screen interface{}, x, y float64) {
scr := screen.(*ebiten.Image)
if t.SideImg != nil {
op := &ebiten.DrawImageOptions{}
op.GeoM.Translate(x, y)
scr.DrawImage(t.SideImg, op)
}
}

func (t *Tile) DrawTop(screen interface{}, x, y float64) {
scr := screen.(*ebiten.Image)
if t.TopImg != nil {
op := &ebiten.DrawImageOptions{}
op.GeoM.Translate(x, y)
scr.DrawImage(t.TopImg, op)
}
}
