summaryrefslogtreecommitdiff
path: root/engine/main.go
blob: 932b787d95253e021e0f2c0aa62e9a880c5e55a3 (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
package main

import (
	"fmt"
	"log"

	components "github.com/DegustatorPonos/RuinesOfRafdolon/Components"
	coreobjects "github.com/DegustatorPonos/RuinesOfRafdolon/CoreObjects"
	dynamic "github.com/DegustatorPonos/RuinesOfRafdolon/Dynamic"
	render "github.com/DegustatorPonos/RuinesOfRafdolon/Render"
	settings "github.com/DegustatorPonos/RuinesOfRafdolon/Settings"
)

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()))
	}

	log.Printf("Resource manager: %s", &components.Resources)

	var manager = coreobjects.InitSceneManager()
	render.StartLoop(manager, components.Resources.Scenes[MainMenuName])
}