-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathlevel_test.gd
More file actions
60 lines (52 loc) · 1.55 KB
/
level_test.gd
File metadata and controls
60 lines (52 loc) · 1.55 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
tool
extends Node
class_name LevelTest
const FILE: String = "user://editor.json"
var data: Dictionary = {
"enabled": false,
"world": 0,
"level": 0,
"pos_x": 0,
"pos_y": 0,
}
func _ready() -> void:
var main: Node = get_parent()
if main.runtime_start_level:
yield(GlobalEvents, "ui_faded")
GlobalEvents.emit_signal("level_changed", main.runtime_world, main.runtime_level)
yield(GlobalEvents, "ui_faded")
yield(GlobalEvents, "ui_faded")
yield(get_tree(), "physics_frame")
var player: KinematicBody2D = get_node(GlobalPaths.PLAYER)
player.global_position = main.runtime_pos
else:
load_file()
if data.enabled:
data.enabled = false
save_file()
if GlobalSave.data[0].size() > 0:
yield(GlobalEvents, "ui_faded")
yield(get_tree().create_timer(0.5), "timeout")
GlobalEvents.emit_signal("level_changed", data.world, data.level)
yield(GlobalEvents, "ui_faded")
yield(GlobalEvents, "ui_faded")
yield(get_tree(), "physics_frame")
var player: KinematicBody2D = get_node(GlobalPaths.PLAYER)
player.global_position.x = data.pos_x
player.global_position.y = data.pos_y
func save_file() -> void:
var file: File = File.new()
var __: int = file.open(FILE, File.WRITE)
file.store_string(to_json(data))
file.close()
load_file()
func load_file() -> void:
var file: File = File.new()
if file.file_exists(FILE):
var __: int = file.open(FILE, File.READ)
var loaded_data = parse_json(file.get_as_text())
file.close()
if typeof(loaded_data) == TYPE_DICTIONARY:
data = loaded_data
else: save_file()
else: save_file()