package game

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

const (
	Welcome   = iota // startup
	Menu             // main top level menu
	Play             // actual playing happens here
	About            // about the game
	Settings         // options
	Popup            // in-game options
	Select           // select which level to play
	Nextlevel        // displayed after loose or win
)

// Wrapper for  different screens  to be  shown, as  Welcome, Options,
// About, Menu Level and of course the actual Levels.
// Scenes are responsible for screen clearing! That way a scene is able
// to render its content onto the running level, e.g. the options scene
// etc.
type Scene interface {
	SetNext(SceneName)
	GetNext() SceneName
	ResetNext()
	Clearscreen() bool
	Update() error
	SetLevel(int)
	Draw(screen *ebiten.Image)
}

type SceneName int
