From 4750437afff2abfbbe5d9605a1ccd2ff1d5b56a2 Mon Sep 17 00:00:00 2001 From: Zsolt Tasnadi Date: Sat, 1 Jul 2023 02:54:03 +0200 Subject: [PATCH] move menu and playground to konstructor --- domain/domain.go | 5 -- domain/menu.go | 99 ++++++++++++++++++++------------------ domain/menu.operation.go | 16 ------ domain/screen.go | 9 ++-- konstructor/konstructor.go | 1 + konstructor/menu.go | 18 +++++++ konstructor/playground.go | 12 +++++ 7 files changed, 88 insertions(+), 72 deletions(-) delete mode 100755 domain/menu.operation.go create mode 100755 konstructor/menu.go create mode 100755 konstructor/playground.go diff --git a/domain/domain.go b/domain/domain.go index 3dbc39b..79046dd 100755 --- a/domain/domain.go +++ b/domain/domain.go @@ -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() } diff --git a/domain/menu.go b/domain/menu.go index b1a6232..534024e 100755 --- a/domain/menu.go +++ b/domain/menu.go @@ -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) } diff --git a/domain/menu.operation.go b/domain/menu.operation.go deleted file mode 100755 index b5e1401..0000000 --- a/domain/menu.operation.go +++ /dev/null @@ -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() { -} diff --git a/domain/screen.go b/domain/screen.go index b7f68b0..9f7a075 100755 --- a/domain/screen.go +++ b/domain/screen.go @@ -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{} } diff --git a/konstructor/konstructor.go b/konstructor/konstructor.go index a9dde72..5089b16 100755 --- a/konstructor/konstructor.go +++ b/konstructor/konstructor.go @@ -10,6 +10,7 @@ type ContextInterface interface { } type DomainInterface interface { + GetMenuMap() MenuMap Init() } diff --git a/konstructor/menu.go b/konstructor/menu.go new file mode 100755 index 0000000..1cc5ecb --- /dev/null +++ b/konstructor/menu.go @@ -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 +} diff --git a/konstructor/playground.go b/konstructor/playground.go new file mode 100755 index 0000000..35102c6 --- /dev/null +++ b/konstructor/playground.go @@ -0,0 +1,12 @@ +package konstructor + +type PlaygroundObject struct { + Image string + PosX int + PosY int +} + +type Playground struct { + Background string + Objects []PlaygroundObject +}