engine layer

This commit is contained in:
2023-07-04 23:32:17 +02:00
parent 386bee5cd4
commit 374f7a9acc
10 changed files with 23 additions and 23 deletions

View File

@@ -0,0 +1,53 @@
package engine
import (
"game/konstructor/entity"
"os"
"github.com/hajimehoshi/ebiten"
)
type Engine struct {
Domain entity.DomainInterface
Controller *Controller
Settings *entity.Settings
KContext *entity.KContext
}
func (e *Engine) Layout(outsideWidth, outsideHeight int) (int, int) {
return e.Settings.Screen.Width, e.Settings.Screen.Height
}
func (e *Engine) ScreenTypeIs(name string) bool {
return e.KContext.Screen.Type == name
}
func (e *Engine) Update(screen *ebiten.Image) error {
e.Controller.Watch()
if e.ScreenTypeIs("menu") {
e.MenuUpdate()
}
if e.ScreenTypeIs("dialog") {
e.DialogUpdate()
}
if e.ScreenTypeIs("playground") {
e.PlaygroundUpdate()
}
return nil
}
func (e *Engine) Draw(screen *ebiten.Image) {
if e.ScreenTypeIs("menu") {
e.MenuDraw(screen)
}
if e.ScreenTypeIs("dialog") {
e.DialogDraw(screen)
}
if e.ScreenTypeIs("playground") {
e.PlaygroundDraw(screen)
}
if e.Controller.Action3Pressed() {
os.Exit(1)
}
e.Controller.Clear()
}