extends Node var SCRIPT_proto var objects var door_id_by_map_node_path = {} var painting_id_by_map_node_path = {} var door_id_by_ap_id = {} var map_id_by_name = {} var progressive_id_by_ap_id = {} var letter_id_by_ap_id = {} func _init(proto_script): SCRIPT_proto = proto_script func load(data_bytes): objects = SCRIPT_proto.AllObjects.new() var result_code = objects.from_bytes(data_bytes) if result_code != SCRIPT_proto.PB_ERR.NO_ERRORS: print("Could not load generated data: %d" % result_code) return for map in objects.get_maps(): map_id_by_name[map.get_name()] = map.get_id() for door in objects.get_doors(): var map = objects.get_maps()[door.get_map_id()] if not map.get_name() in door_id_by_map_node_path: door_id_by_map_node_path[map.get_name()] = {} var map_data = door_id_by_map_node_path[map.get_name()] for receiver in door.get_receivers(): map_data[receiver] = door.get_id() for painting_id in door.get_move_paintings(): var painting = objects.get_paintings()[painting_id] map_data[painting.get_path()] = door.get_id() if door.has_ap_id(): door_id_by_ap_id[door.get_ap_id()] = door.get_id() for painting in objects.get_paintings(): var room = objects.get_rooms()[painting.get_room_id()] var map = objects.get_maps()[room.get_map_id()] if not map.get_name() in painting_id_by_map_node_path: painting_id_by_map_node_path[map.get_name()] = {} var _map_data = painting_id_by_map_node_path[map.get_name()] for progressive in objects.get_progressives(): progressive_id_by_ap_id[progressive.get_ap_id()] = progressive.get_id() for letter in objects.get_letters(): letter_id_by_ap_id[letter.get_ap_id()] = letter.get_id() func get_door_for_map_node_path(map_name, node_path): if not door_id_by_map_node_path.has(map_name): return null var map_data = door_id_by_map_node_path[map_name] return map_data.get(node_path, null) func get_door_ap_id(door_id): var door = objects.get_doors()[door_id] if door.has_ap_id(): return door.get_ap_id() else: return null func get_door_receivers(door_id): var door = objects.get_doors()[door_id] return door.get_receivers() func get_door_map_name(door_id): var door = objects.get_doors()[door_id] var map = objects.get_maps()[door.get_map_id()] return map.get_name() idden' name='id' value='7f5f14ddb5a67e1ccfdc7aa3d68d829473d0b745'/>
path: root/data/maps/the_unkempt/rooms/Unsymmetry Room.txtpb
blob: ff96ba1c31cf86a48955d1037d6c47b00fad3284 (plain) (blame)
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