From 85666467056ccae2011128e0d38ea2dbd1efee8a Mon Sep 17 00:00:00 2001 From: Physcik Date: Fri, 6 Feb 2026 01:55:27 +0500 Subject: Menu description pt. 1 --- engine/main.go | 78 +++++++++++++++++++++++++++++++++------------------------- 1 file changed, 45 insertions(+), 33 deletions(-) (limited to 'engine/main.go') diff --git a/engine/main.go b/engine/main.go index de8ff34..b9fb611 100644 --- a/engine/main.go +++ b/engine/main.go @@ -1,11 +1,14 @@ package main import ( + "encoding/json" "log" + "os" components "github.com/DegustatorPonos/RuinesOfRafdolon/Components" coreobjects "github.com/DegustatorPonos/RuinesOfRafdolon/CoreObjects" dynamic "github.com/DegustatorPonos/RuinesOfRafdolon/Dynamic" + descriptors "github.com/DegustatorPonos/RuinesOfRafdolon/Dynamic/Descriptors" render "github.com/DegustatorPonos/RuinesOfRafdolon/Render" settings "github.com/DegustatorPonos/RuinesOfRafdolon/Settings" ui "github.com/DegustatorPonos/RuinesOfRafdolon/UI" @@ -28,55 +31,64 @@ func main() { } log.Printf("Resource manager: %s", &components.Resources) - // var field = descriptor.GenerateMap() - - var manager = coreobjects.InitSceneManager() // render.StartLoop(manager, components.Resources.Worlds["MainWorld"]) var menu = menu_test() render.StartLoop(manager, menu) } +func test_desc() (ui.UIElement, error) { + var file, fErr = os.ReadFile("MainMenu.json") + if fErr != nil { + return nil, fErr + } + var desc = descriptors.UIElementDescriptor{} + if jsonErr := json.Unmarshal(file, &desc); jsonErr != nil { + return nil, jsonErr + } + var parsed, parseErr = desc.Parse() + if parseErr != nil { + return nil, parseErr + } + return parsed, nil +} + func menu_test() *ui.Menu { + var loadedMenu, loadErr = test_desc() + if loadErr != nil { + panic(loadErr.Error()) + } + + var prerender = false + + if !prerender { + return &ui.Menu { + PaddingX: 0.05, + PaddingY: 0.1, + Contents: loadedMenu, + } + } + return &ui.Menu { PaddingX: 0.05, PaddingY: 0.1, - Contents: &ui.GridColumn{ - Spacing: 0.025, + Contents: &ui.GridColumn { + Weight: 2, Objects: []ui.UIElement { - &ui.GridRow { - HeightWeight: 1, - Spacing: 0.01, - Objects: []ui.UIElement { - &ui.Label{ Text: "First piece" }, - &ui.Label{ Text: "Wide piece", WidthWeight: 2 }, - &ui.Label{ Text: "Another piece" }, + &ui.Label { + Text: "xdx", + Style: ui.Style { + BacgroundColor: &rl.Pink, }, }, - &ui.GridRow { - HeightWeight: 2, - Objects: []ui.UIElement { - &ui.Button { - EventType: ui.OnClick, - DisplayElement: &ui.Label { - Text: "Center button", - Alignment: ui.Center, - Style: ui.Style { - BacgroundColor: &rl.Pink, - }, - }, - }, - }, - }, - &ui.GridRow { - HeightWeight: 1, - Objects: []ui.UIElement { - &ui.Label{ Text: "A very very long text that is bigger than a window" }, + &ui.Label { + Text: "xdx", + Style: ui.Style { + BacgroundColor: &rl.Pink, }, }, }, }, - // Rows: []ui.UIElement { - // }, } + } -- cgit v1.3