summaryrefslogtreecommitdiff
path: root/engine/main.go
blob: 4410d6b5bb6caf4635473a41a9fc433a8c0ce472 (plain)
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
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"
const MainMenuName string = "core/MainMenu"

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)
		// v.Load()
	// }

	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.Scenes[MainMenuName])
	// render.StartLoop(manager, builtin.MainMenu())
}