1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
package main
import (
"encoding/json"
"fmt"
"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"
)
const CorePackageName string = "core"
func main() {
settings.ReadSettings()
components.InitManager()
dynamic.ReadPackages()
// The core package contains the main menu and necessary logic.
// It should be loaded for the game to boot
if (!dynamic.Manager.IsPackageAvaliable(CorePackageName)) {
panic("The core package was not loaded")
}
render.InitWindow()
defer render.DeinitWindow()
// TEMPORARY SECTION
// for _, v := range dynamic.Manager.AvaliablePackages {
// log.Printf("%s: %s", k, &v)
//components.Resources.LoadedPackages[v.Description.Name] = v.Description.Version
//v.LoadTextures()
//v.LoadObjects()
//v.LoadWorlds()
//v.LoadMenus()
//}
var coreLoadErr = dynamic.Manager.LoadPackage(CorePackageName)
if coreLoadErr != nil {
panic(fmt.Sprintf("Failed to load core package: %s", coreLoadErr.Error()))
}
// _ = dynamic.Manager.LoadPackage("testPackage")
log.Printf("Resource manager: %s", &components.Resources)
var manager = coreobjects.InitSceneManager()
// render.StartLoop(manager, components.Resources.Worlds["MainWorld"])
render.StartLoop(manager, components.Resources.Menus["core/MainMenu"])
// render.StartLoop(manager, builtin.MainMenu())
}
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
}
|