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{
} {
ID: "new",
func createMenu(menuItems []MenuItem) Menu { Label: "New Game",
menu := Menu{ Handler: d.StartGame,
MenuItems: menuItems, },
{
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() { func (d *Domain) CloseGame() {
}
mo := MenuOperation{}
func (d *Domain) LoadtGame() {
mm.MainMenu = createMenu([]MenuItem{ }
{
ID: "new", func (d *Domain) SaveGame() {
Label: "New Game", }
Handler: mo.StartGame,
}, func (d *Domain) StartGame() {
{ }
ID: "load",
Label: "Load Game", func (d *Domain) ExitGame() {
Handler: mo.LoadtGame, os.Exit(1)
},
})
mm.GameMenu = createMenu([]MenuItem{
{
ID: "save",
Label: "Save Game",
Handler: mo.SaveGame,
},
{
ID: "close",
Label: "Close Game",
Handler: mo.CloseGame,
},
})
} }

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
}