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

@@ -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)
}