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() { 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 package domain
type MenuItem struct { import (
ID string "game/konstructor"
Label string "os"
Handler func() )
}
type Menu struct { func (d Domain) GetMenuMap() konstructor.MenuMap {
MenuItems []MenuItem
}
type MenuManager struct { return map[string]konstructor.Menu{
MainMenu Menu "MainMenu": {
GameMenu Menu MenuItems: []konstructor.MenuItem{
}
func createMenu(menuItems []MenuItem) Menu {
menu := Menu{
MenuItems: menuItems,
}
return menu
}
func (mm MenuManager) Init() {
mo := MenuOperation{}
mm.MainMenu = createMenu([]MenuItem{
{ {
ID: "new", ID: "new",
Label: "New Game", Label: "New Game",
Handler: mo.StartGame, Handler: d.StartGame,
}, },
{ {
ID: "load", ID: "load",
Label: "Load Game", Label: "Load Game",
Handler: mo.LoadtGame, Handler: d.LoadtGame,
}, },
}) {
ID: "exit",
mm.GameMenu = createMenu([]MenuItem{ Label: "Exit Game",
Handler: d.ExitGame,
},
},
},
"GameMenu": {
MenuItems: []konstructor.MenuItem{
{ {
ID: "save", ID: "save",
Label: "Save Game", Label: "Save Game",
Handler: mo.SaveGame, Handler: d.SaveGame,
}, },
{ {
ID: "close", ID: "close",
Label: "Close Game", Label: "Close Game",
Handler: mo.CloseGame, Handler: d.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 package domain
type Screen struct { import "game/konstructor"
}
type ScreenManager struct { type PlaygroundManager struct {
Context Context Context Context
} }
func (sm ScreenManager) GetCurrent() Screen { func (pm PlaygroundManager) GetCurrent() konstructor.Playground {
return Screen{} return konstructor.Playground{}
} }

View File

@@ -10,6 +10,7 @@ type ContextInterface interface {
} }
type DomainInterface interface { type DomainInterface interface {
GetMenuMap() MenuMap
Init() Init()
} }

18
konstructor/menu.go Executable file
View File

@@ -0,0 +1,18 @@
package konstructor
type MenuMap map[string]Menu
type MenuLayout struct {
Background string
}
type MenuItem struct {
ID string
Label string
Handler func()
}
type Menu struct {
MenuLayout MenuLayout
MenuItems []MenuItem
}

12
konstructor/playground.go Executable file
View File

@@ -0,0 +1,12 @@
package konstructor
type PlaygroundObject struct {
Image string
PosX int
PosY int
}
type Playground struct {
Background string
Objects []PlaygroundObject
}