-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathTemplateLoader.cs
More file actions
111 lines (81 loc) · 3.57 KB
/
TemplateLoader.cs
File metadata and controls
111 lines (81 loc) · 3.57 KB
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
// =======================================================================================
// Wovencore
// by Weaver (Fhiz)
// MIT licensed
// =======================================================================================
using Wovencode;
using Wovencode.DebugManager;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TemplateLoader : MonoBehaviour
{
/*
This is just a example to demonstrate how template loading and caching works
In a real project you DO NOT require the TemplateLoader, as the templates are
simply loaded into memory the first time they are accessed.
Add this script to a GameObject in your scene and hit Play, then take a look
at the log.
*/
public string templateNameFoo = "FooTemplate1";
public string templateNameBar = "BarTemplate1";
[Header("Debug Mode")]
public DebugHelper debug = new DebugHelper();
// -----------------------------------------------------------------------------------
// Awake
// -----------------------------------------------------------------------------------
void Awake()
{
if (debug.debugMode)
{
LoadFoo();
LoadBar();
LoadSingleton();
}
}
// -----------------------------------------------------------------------------------
// LoadSpells
// This example triggers caching of templates by accessing one of it by its name
// -----------------------------------------------------------------------------------
void LoadFoo()
{
debug.Log("----- LOAD FOO -----");
debug.Log("Trying to load all FooTemplates by accessing one by name...");
debug.StartProfile("LoadFoo");
FooTemplate.data.TryGetValue(templateNameFoo.GetDeterministicHashCode(), out FooTemplate template);
debug.StopProfile("LoadFoo");
if (template)
debug.Log("The FooTemplate '"+template.title+"' was found in the 'FooTemplate' Dictionary");
else
debug.Log("No FooTemplate named '"+templateNameFoo+"' was found!");
debug.Log("A total of '"+FooTemplate.data.Count+"' FooTemplates have been cached from '"+FooTemplate._folderName+"' into the Dictionary.");
debug.PrintProfile("LoadFoo");
}
// -----------------------------------------------------------------------------------
// LoadBar
// This example uses the 'BuildCache' method on the template class to cache them
// -----------------------------------------------------------------------------------
void LoadBar()
{
debug.Log("----- LOAD BAR -----");
debug.Log("Trying to load all BarTemplates by using 'BuildCache'...");
debug.StartProfile("LoadBar");
BarTemplate.BuildCache();
debug.StopProfile("LoadBar");
debug.Log("A total of '"+BarTemplate.data.Count+"' BarTemplates have been cached from '"+BarTemplate._folderName+"' into the Dictionary.");
debug.PrintProfile("LoadBar");
}
// -----------------------------------------------------------------------------------
// LoadSingleton
//
// -----------------------------------------------------------------------------------
void LoadSingleton()
{
debug.Log("----- LOAD GAME RULES -----");
debug.Log("Trying to access GameRulesTemplate via Singleton...");
debug.Log("maxPlayersPerUser: "+GameRulesTemplate.singleton.maxPlayersPerUser);
debug.Log("maxUsersPerDevice: "+GameRulesTemplate.singleton.maxUsersPerDevice);
debug.Log("maxUsersPerEmail: "+GameRulesTemplate.singleton.maxUsersPerEmail);
}
// -----------------------------------------------------------------------------------
}