move menu and playground to konstructor

This commit is contained in:
2023-07-01 02:54:03 +02:00
parent 884df7c406
commit 4750437aff
7 changed files with 88 additions and 72 deletions

View File

@@ -5,9 +5,4 @@ type Domain struct {
}
func (d Domain) Init() {
menu_manager := MenuManager{}
menu_manager.Init()
// level_manager := LevelManager{}
screen_manager := ScreenManager{}
screen_manager.GetCurrent()
}

View File

@@ -1,54 +1,61 @@
package domain
type MenuItem struct {
ID string
Label string
Handler func()
}
import (
"game/konstructor"
"os"
)
type Menu struct {
MenuItems []MenuItem
}
func (d Domain) GetMenuMap() konstructor.MenuMap {
type MenuManager struct {
MainMenu Menu
GameMenu Menu
}
func createMenu(menuItems []MenuItem) Menu {
menu := Menu{
MenuItems: menuItems,
return map[string]konstructor.Menu{
"MainMenu": {
MenuItems: []konstructor.MenuItem{
{
ID: "new",
Label: "New Game",
Handler: d.StartGame,
},
{
ID: "load",
Label: "Load Game",
Handler: d.LoadtGame,
},
{
ID: "exit",
Label: "Exit Game",
Handler: d.ExitGame,
},
},
},
"GameMenu": {
MenuItems: []konstructor.MenuItem{
{
ID: "save",
Label: "Save Game",
Handler: d.SaveGame,
},
{
ID: "close",
Label: "Close Game",
Handler: d.CloseGame,
},
},
},
}
return menu
}
func (mm MenuManager) Init() {
mo := MenuOperation{}
mm.MainMenu = createMenu([]MenuItem{
{
ID: "new",
Label: "New Game",
Handler: mo.StartGame,
},
{
ID: "load",
Label: "Load Game",
Handler: mo.LoadtGame,
},
})
mm.GameMenu = createMenu([]MenuItem{
{
ID: "save",
Label: "Save Game",
Handler: mo.SaveGame,
},
{
ID: "close",
Label: "Close Game",
Handler: mo.CloseGame,
},
})
func (d *Domain) CloseGame() {
}
func (d *Domain) LoadtGame() {
}
func (d *Domain) SaveGame() {
}
func (d *Domain) StartGame() {
}
func (d *Domain) ExitGame() {
os.Exit(1)
}

View File

@@ -1,16 +0,0 @@
package domain
type MenuOperation struct {
}
func (mo MenuOperation) CloseGame() {
}
func (mo MenuOperation) LoadtGame() {
}
func (mo MenuOperation) SaveGame() {
}
func (mo MenuOperation) StartGame() {
}

View File

@@ -1,12 +1,11 @@
package domain
type Screen struct {
}
import "game/konstructor"
type ScreenManager struct {
type PlaygroundManager struct {
Context Context
}
func (sm ScreenManager) GetCurrent() Screen {
return Screen{}
func (pm PlaygroundManager) GetCurrent() konstructor.Playground {
return konstructor.Playground{}
}