package screens

import (
	"mover/gamedata"

	"github.com/hajimehoshi/ebiten/v2"
)

type ScreenManagerEvent int

const (
	EventNoop      ScreenManagerEvent = iota
	EventReset                        // reset to initial scene
	EventLoad                         // loading elements
	EventReload                       // reload current scene
	EventCompleted                    // current scene has completed
	EventEndgame                      // shutdown all scenes
)

type Screen interface {
	Update() error
	Draw(screen *ebiten.Image)
	SetEventHandler(e ScreenManagerEvent, f func())
	SetDimensions(a gamedata.Area)
}
