-
Notifications
You must be signed in to change notification settings - Fork 108
/
Copy pathlazy_loader.gd
34 lines (25 loc) · 960 Bytes
/
lazy_loader.gd
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
@tool
# ------------------------------------------------------------------------------
# Static
# ------------------------------------------------------------------------------
static var usage_counter = load('res://addons/gut/thing_counter.gd').new()
static var WarningsManager = load('res://addons/gut/warnings_manager.gd')
static func load_all():
for key in usage_counter.things:
key.get_loaded()
static func print_usage():
for key in usage_counter.things:
print(key._path, ' (', usage_counter.things[key], ')')
# ------------------------------------------------------------------------------
# Class
# ------------------------------------------------------------------------------
var _loaded = null
var _path = null
func _init(path):
_path = path
usage_counter.add_thing_to_count(self)
func get_loaded():
if(_loaded == null):
_loaded = WarningsManager.load_script_ignoring_all_warnings(_path)
usage_counter.add(self)
return _loaded