introduce enums as map keys
This commit is contained in:
@@ -4,9 +4,13 @@ import (
|
|||||||
"game/konstructor"
|
"game/konstructor"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
DialogTest konstructor.DialogMapKey = "DialogTest"
|
||||||
|
)
|
||||||
|
|
||||||
func (d *Domain) InitDialog() {
|
func (d *Domain) InitDialog() {
|
||||||
d.DialogMap = konstructor.DialogMap{
|
d.DialogMap = konstructor.DialogMap{
|
||||||
"TestDialog": {
|
DialogTest: {
|
||||||
Layout: konstructor.DialogLayout{
|
Layout: konstructor.DialogLayout{
|
||||||
ChoiceFont: GetDefaultFontLayout(),
|
ChoiceFont: GetDefaultFontLayout(),
|
||||||
},
|
},
|
||||||
@@ -28,11 +32,11 @@ func (d *Domain) GetDialogMap() konstructor.DialogMap {
|
|||||||
return d.DialogMap
|
return d.DialogMap
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Domain) GetDialog(name string) konstructor.Dialog {
|
func (d *Domain) GetDialog(name konstructor.DialogMapKey) konstructor.Dialog {
|
||||||
value, _ := d.DialogMap[name]
|
value, _ := d.DialogMap[name]
|
||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Domain) SetDialog(name string, dialog konstructor.Dialog) {
|
func (d *Domain) SetDialog(name konstructor.DialogMapKey, dialog konstructor.Dialog) {
|
||||||
d.DialogMap[name] = dialog
|
d.DialogMap[name] = dialog
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ func (d *Domain) GetItemTypeMap() konstructor.ItemTypeMap {
|
|||||||
return d.ItemTypeMap
|
return d.ItemTypeMap
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Domain) GetItemType(name string) konstructor.ItemType {
|
func (d *Domain) GetItemType(name konstructor.ItemTypeMapKey) konstructor.ItemType {
|
||||||
value, _ := d.ItemTypeMap[name]
|
value, _ := d.ItemTypeMap[name]
|
||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,9 +6,14 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
MainMenu konstructor.MenuMapKey = "MainMenu"
|
||||||
|
GameMenu konstructor.MenuMapKey = "GameMenu"
|
||||||
|
)
|
||||||
|
|
||||||
func (d *Domain) InitMenu() {
|
func (d *Domain) InitMenu() {
|
||||||
d.MenuMap = konstructor.MenuMap{
|
d.MenuMap = konstructor.MenuMap{
|
||||||
"MainMenu": {
|
MainMenu: {
|
||||||
CurrentSelected: 0,
|
CurrentSelected: 0,
|
||||||
Layout: konstructor.MenuLayout{
|
Layout: konstructor.MenuLayout{
|
||||||
MenuItemFont: GetDefaultFontLayout(),
|
MenuItemFont: GetDefaultFontLayout(),
|
||||||
@@ -31,7 +36,7 @@ func (d *Domain) InitMenu() {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"GameMenu": {
|
GameMenu: {
|
||||||
CurrentSelected: 0,
|
CurrentSelected: 0,
|
||||||
Layout: konstructor.MenuLayout{
|
Layout: konstructor.MenuLayout{
|
||||||
MenuItemFont: GetDefaultFontLayout(),
|
MenuItemFont: GetDefaultFontLayout(),
|
||||||
@@ -56,12 +61,12 @@ func (d *Domain) GetMenuMap() konstructor.MenuMap {
|
|||||||
return d.MenuMap
|
return d.MenuMap
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Domain) GetMenu(name string) konstructor.Menu {
|
func (d *Domain) GetMenu(name konstructor.MenuMapKey) konstructor.Menu {
|
||||||
value, _ := d.MenuMap[name]
|
value, _ := d.MenuMap[name]
|
||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Domain) SetMenu(name string, menu konstructor.Menu) {
|
func (d *Domain) SetMenu(name konstructor.MenuMapKey, menu konstructor.Menu) {
|
||||||
d.MenuMap[name] = menu
|
d.MenuMap[name] = menu
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ func (d *Domain) GetNPCTypeMap() konstructor.NPCTypeMap {
|
|||||||
return d.NPCTypeMap
|
return d.NPCTypeMap
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Domain) GetNPCType(name string) konstructor.NPCType {
|
func (d *Domain) GetNPCType(name konstructor.NPCTypeMapKey) konstructor.NPCType {
|
||||||
value, _ := d.NPCTypeMap[name]
|
value, _ := d.NPCTypeMap[name]
|
||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ func (d *Domain) GetObjectTypeMap() konstructor.ObjectTypeMap {
|
|||||||
return d.ObjectTypeMap
|
return d.ObjectTypeMap
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Domain) GetObjectType(name string) konstructor.ObjectType {
|
func (d *Domain) GetObjectType(name konstructor.ObjectTypeMapKey) konstructor.ObjectType {
|
||||||
value, _ := d.ObjectTypeMap[name]
|
value, _ := d.ObjectTypeMap[name]
|
||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func (e *Engine) DialogUpdate() {
|
func (e *Engine) DialogUpdate() {
|
||||||
dialog := e.Domain.GetDialog(e.KContext.ScreenValue)
|
dialog := e.Domain.GetDialog(e.KContext.ActiveDialog)
|
||||||
|
|
||||||
if e.UpPressed() && dialog.CurrentSelected != 0 {
|
if e.UpPressed() && dialog.CurrentSelected != 0 {
|
||||||
dialog.CurrentSelected--
|
dialog.CurrentSelected--
|
||||||
@@ -19,11 +19,11 @@ func (e *Engine) DialogUpdate() {
|
|||||||
if e.Action0Pressed() {
|
if e.Action0Pressed() {
|
||||||
dialog.Choices[dialog.CurrentSelected].Handler()
|
dialog.Choices[dialog.CurrentSelected].Handler()
|
||||||
}
|
}
|
||||||
e.Domain.SetDialog(e.KContext.ScreenValue, dialog)
|
e.Domain.SetDialog(e.KContext.ActiveDialog, dialog)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Engine) DialogDraw(screen *ebiten.Image) {
|
func (e *Engine) DialogDraw(screen *ebiten.Image) {
|
||||||
dialog := e.Domain.GetDialog(e.KContext.ScreenValue)
|
dialog := e.Domain.GetDialog(e.KContext.ActiveDialog)
|
||||||
|
|
||||||
face := dialog.Layout.ChoiceFont.GetFontFace()
|
face := dialog.Layout.ChoiceFont.GetFontFace()
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func (e *Engine) MenuUpdate() {
|
func (e *Engine) MenuUpdate() {
|
||||||
menu := e.Domain.GetMenu(e.KContext.ScreenValue)
|
menu := e.Domain.GetMenu(e.KContext.ActiveMenu)
|
||||||
|
|
||||||
if e.UpPressed() && menu.CurrentSelected != 0 {
|
if e.UpPressed() && menu.CurrentSelected != 0 {
|
||||||
menu.CurrentSelected--
|
menu.CurrentSelected--
|
||||||
@@ -20,11 +20,11 @@ func (e *Engine) MenuUpdate() {
|
|||||||
menu.MenuItems[menu.CurrentSelected].Handler()
|
menu.MenuItems[menu.CurrentSelected].Handler()
|
||||||
}
|
}
|
||||||
|
|
||||||
e.Domain.SetMenu(e.KContext.ScreenValue, menu)
|
e.Domain.SetMenu(e.KContext.ActiveMenu, menu)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Engine) MenuDraw(screen *ebiten.Image) {
|
func (e *Engine) MenuDraw(screen *ebiten.Image) {
|
||||||
menu := e.Domain.GetMenu(e.KContext.ScreenValue)
|
menu := e.Domain.GetMenu(e.KContext.ActiveMenu)
|
||||||
face := menu.Layout.MenuItemFont.GetFontFace()
|
face := menu.Layout.MenuItemFont.GetFontFace()
|
||||||
|
|
||||||
for i, menu_item := range menu.MenuItems {
|
for i, menu_item := range menu.MenuItems {
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ package konstructor
|
|||||||
|
|
||||||
import "image/color"
|
import "image/color"
|
||||||
|
|
||||||
type DialogMap map[string]Dialog
|
type DialogMapKey string
|
||||||
|
|
||||||
|
type DialogMap map[DialogMapKey]Dialog
|
||||||
|
|
||||||
type DialogLayout struct {
|
type DialogLayout struct {
|
||||||
Render Render
|
Render Render
|
||||||
|
|||||||
@@ -13,24 +13,24 @@ type DomainInterface interface {
|
|||||||
Init()
|
Init()
|
||||||
|
|
||||||
GetMenuMap() MenuMap
|
GetMenuMap() MenuMap
|
||||||
GetMenu(name string) Menu
|
GetMenu(name MenuMapKey) Menu
|
||||||
SetMenu(name string, menu Menu)
|
SetMenu(name MenuMapKey, menu Menu)
|
||||||
|
|
||||||
GetDialogMap() DialogMap
|
GetDialogMap() DialogMap
|
||||||
GetDialog(name string) Dialog
|
GetDialog(name DialogMapKey) Dialog
|
||||||
SetDialog(name string, menu Dialog)
|
SetDialog(name DialogMapKey, menu Dialog)
|
||||||
|
|
||||||
GetLevels() []Level
|
GetLevels() []Level
|
||||||
GetLevel(index int) Level
|
GetLevel(index int) Level
|
||||||
|
|
||||||
GetObjectTypeMap() ObjectTypeMap
|
GetObjectTypeMap() ObjectTypeMap
|
||||||
GetObjectType(name string) ObjectType
|
GetObjectType(name ObjectTypeMapKey) ObjectType
|
||||||
|
|
||||||
GetItemTypeMap() ItemTypeMap
|
GetItemTypeMap() ItemTypeMap
|
||||||
GetItemType(name string) ItemType
|
GetItemType(name ItemTypeMapKey) ItemType
|
||||||
|
|
||||||
GetNPCTypeMap() NPCTypeMap
|
GetNPCTypeMap() NPCTypeMap
|
||||||
GetNPCType(name string) NPCType
|
GetNPCType(name NPCTypeMapKey) NPCType
|
||||||
|
|
||||||
AddToInventory(item *Item) bool
|
AddToInventory(item *Item) bool
|
||||||
RemoveFromInventory(item *Item) bool
|
RemoveFromInventory(item *Item) bool
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package konstructor
|
package konstructor
|
||||||
|
|
||||||
type ItemTypeMap map[string]ItemType
|
type ItemTypeMapKey string
|
||||||
|
|
||||||
|
type ItemTypeMap map[ItemTypeMapKey]ItemType
|
||||||
|
|
||||||
type ItemType struct {
|
type ItemType struct {
|
||||||
ID string
|
ID string
|
||||||
|
|||||||
@@ -2,7 +2,8 @@ package konstructor
|
|||||||
|
|
||||||
type KContext struct {
|
type KContext struct {
|
||||||
ScreenType ScreenType
|
ScreenType ScreenType
|
||||||
ScreenValue string
|
ActiveMenu MenuMapKey
|
||||||
|
ActiveDialog DialogMapKey
|
||||||
CurrentLevel int
|
CurrentLevel int
|
||||||
CurrentPlayground int
|
CurrentPlayground int
|
||||||
Players []Player
|
Players []Player
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ package konstructor
|
|||||||
|
|
||||||
import "image/color"
|
import "image/color"
|
||||||
|
|
||||||
type MenuMap map[string]Menu
|
type MenuMapKey string
|
||||||
|
|
||||||
|
type MenuMap map[MenuMapKey]Menu
|
||||||
|
|
||||||
type MenuLayout struct {
|
type MenuLayout struct {
|
||||||
MenuItemFont FontLayout
|
MenuItemFont FontLayout
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package konstructor
|
package konstructor
|
||||||
|
|
||||||
type NPCTypeMap map[string]NPCType
|
type NPCTypeMapKey string
|
||||||
|
|
||||||
|
type NPCTypeMap map[NPCTypeMapKey]NPCType
|
||||||
|
|
||||||
type NPCType struct {
|
type NPCType struct {
|
||||||
ID string
|
ID string
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package konstructor
|
package konstructor
|
||||||
|
|
||||||
type ObjectTypeMap map[string]ObjectType
|
type ObjectTypeMapKey string
|
||||||
|
|
||||||
|
type ObjectTypeMap map[ObjectTypeMapKey]ObjectType
|
||||||
|
|
||||||
type ObjectType struct {
|
type ObjectType struct {
|
||||||
ID string
|
ID string
|
||||||
|
|||||||
5
main.go
5
main.go
@@ -13,8 +13,9 @@ func main() {
|
|||||||
EngineWrapper: &easy_ebitengine.EngineWrapper{},
|
EngineWrapper: &easy_ebitengine.EngineWrapper{},
|
||||||
Domain: &domain.Domain{},
|
Domain: &domain.Domain{},
|
||||||
KContext: &konstructor.KContext{
|
KContext: &konstructor.KContext{
|
||||||
ScreenType: konstructor.PlaygroundScreenType,
|
ScreenType: konstructor.DialogScreenType,
|
||||||
ScreenValue: "MainMenu",
|
ActiveMenu: domain.MainMenu,
|
||||||
|
ActiveDialog: domain.DialogTest,
|
||||||
CurrentLevel: 0,
|
CurrentLevel: 0,
|
||||||
CurrentPlayground: 0,
|
CurrentPlayground: 0,
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user