package tiles import ( "git.solsynth.dev/highland/codingland/pkg/internal/land" "github.com/veandco/go-sdl2/sdl" "log" ) type Tile struct { land.BaseObject Position land.Vector2D Size land.Vector2D } func (p *Tile) Draw(pen *sdl.Renderer) { pen.SetDrawColor(255, 255, 255, 255) pen.FillRect(&sdl.Rect{ X: int32(p.Position.X), Y: int32(p.Position.Y), W: int32(p.Size.X), H: int32(p.Size.Y), }) for _, child := range p.Children { if drawableChild, ok := child.(land.DrawableObject); ok { drawableChild.Draw(pen) } } } func (p *Tile) GetPosition() land.Vector2D { return p.Position } func (p *Tile) GetSize() land.Vector2D { return p.Size } func (p *Tile) OnCollide(other land.CollidableObject) { } func (p *Tile) OnEvent(event land.UserEventType, args ...any) { if event == land.UserEventMouseDown { log.Printf("user clicked tile: %s", args[0].(land.Vector2D).String()) } }