about summary refs log tree commit diff stats
path: root/client/Archipelago/gamedata.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/Archipelago/gamedata.gd')
-rw-r--r--client/Archipelago/gamedata.gd140
1 files changed, 0 insertions, 140 deletions
diff --git a/client/Archipelago/gamedata.gd b/client/Archipelago/gamedata.gd deleted file mode 100644 index 41d966a..0000000 --- a/client/Archipelago/gamedata.gd +++ /dev/null
@@ -1,140 +0,0 @@
1extends Node
2
3var SCRIPT_proto
4
5var objects
6var door_id_by_map_node_path = {}
7var painting_id_by_map_node_path = {}
8var panel_id_by_map_node_path = {}
9var door_id_by_ap_id = {}
10var map_id_by_name = {}
11var progressive_id_by_ap_id = {}
12var letter_id_by_ap_id = {}
13var symbol_item_ids = []
14var anti_trap_ids = {}
15
16var kSYMBOL_ITEMS
17
18
19func _init(proto_script):
20 SCRIPT_proto = proto_script
21
22 kSYMBOL_ITEMS = {
23 SCRIPT_proto.PuzzleSymbol.SUN: "Sun Symbol",
24 SCRIPT_proto.PuzzleSymbol.SPARKLES: "Sparkles Symbol",
25 SCRIPT_proto.PuzzleSymbol.ZERO: "Zero Symbol",
26 SCRIPT_proto.PuzzleSymbol.EXAMPLE: "Example Symbol",
27 SCRIPT_proto.PuzzleSymbol.BOXES: "Boxes Symbol",
28 SCRIPT_proto.PuzzleSymbol.PLANET: "Planet Symbol",
29 SCRIPT_proto.PuzzleSymbol.PYRAMID: "Pyramid Symbol",
30 SCRIPT_proto.PuzzleSymbol.CROSS: "Cross Symbol",
31 SCRIPT_proto.PuzzleSymbol.SWEET: "Sweet Symbol",
32 SCRIPT_proto.PuzzleSymbol.GENDER: "Gender Symbol",
33 SCRIPT_proto.PuzzleSymbol.AGE: "Age Symbol",
34 SCRIPT_proto.PuzzleSymbol.SOUND: "Sound Symbol",
35 SCRIPT_proto.PuzzleSymbol.ANAGRAM: "Anagram Symbol",
36 SCRIPT_proto.PuzzleSymbol.JOB: "Job Symbol",
37 SCRIPT_proto.PuzzleSymbol.STARS: "Stars Symbol",
38 SCRIPT_proto.PuzzleSymbol.NULL: "Null Symbol",
39 SCRIPT_proto.PuzzleSymbol.EVAL: "Eval Symbol",
40 SCRIPT_proto.PuzzleSymbol.LINGO: "Lingo Symbol",
41 SCRIPT_proto.PuzzleSymbol.QUESTION: "Question Symbol",
42 }
43
44
45func load(data_bytes):
46 objects = SCRIPT_proto.AllObjects.new()
47
48 var result_code = objects.from_bytes(data_bytes)
49 if result_code != SCRIPT_proto.PB_ERR.NO_ERRORS:
50 print("Could not load generated data: %d" % result_code)
51 return
52
53 for map in objects.get_maps():
54 map_id_by_name[map.get_name()] = map.get_id()
55
56 for door in objects.get_doors():
57 var map = objects.get_maps()[door.get_map_id()]
58
59 if not map.get_name() in door_id_by_map_node_path:
60 door_id_by_map_node_path[map.get_name()] = {}
61
62 var map_data = door_id_by_map_node_path[map.get_name()]
63 for receiver in door.get_receivers():
64 map_data[receiver] = door.get_id()
65
66 for painting_id in door.get_move_paintings():
67 var painting = objects.get_paintings()[painting_id]
68 map_data[painting.get_path()] = door.get_id()
69
70 if door.has_ap_id():
71 door_id_by_ap_id[door.get_ap_id()] = door.get_id()
72
73 for painting in objects.get_paintings():
74 var room = objects.get_rooms()[painting.get_room_id()]
75 var map = objects.get_maps()[room.get_map_id()]
76
77 if not map.get_name() in painting_id_by_map_node_path:
78 painting_id_by_map_node_path[map.get_name()] = {}
79
80 var _map_data = painting_id_by_map_node_path[map.get_name()]
81
82 for progressive in objects.get_progressives():
83 progressive_id_by_ap_id[progressive.get_ap_id()] = progressive.get_id()
84
85 for letter in objects.get_letters():
86 letter_id_by_ap_id[letter.get_ap_id()] = letter.get_id()
87
88 for panel in objects.get_panels():
89 var room = objects.get_rooms()[panel.get_room_id()]
90 var map = objects.get_maps()[room.get_map_id()]
91
92 if not map.get_name() in panel_id_by_map_node_path:
93 panel_id_by_map_node_path[map.get_name()] = {}
94
95 var map_data = panel_id_by_map_node_path[map.get_name()]
96 map_data[panel.get_path()] = panel.get_id()
97
98 for symbol_name in kSYMBOL_ITEMS.values():
99 symbol_item_ids.append(objects.get_special_ids()[symbol_name])
100
101 for special_name in objects.get_special_ids().keys():
102 if special_name.begins_with("Anti "):
103 anti_trap_ids[objects.get_special_ids()[special_name]] = (
104 special_name.substr(5).to_lower()
105 )
106
107
108func get_door_for_map_node_path(map_name, node_path):
109 if not door_id_by_map_node_path.has(map_name):
110 return null
111
112 var map_data = door_id_by_map_node_path[map_name]
113 return map_data.get(node_path, null)
114
115
116func get_panel_for_map_node_path(map_name, node_path):
117 if not panel_id_by_map_node_path.has(map_name):
118 return null
119
120 var map_data = panel_id_by_map_node_path[map_name]
121 return map_data.get(node_path, null)
122
123
124func get_door_ap_id(door_id):
125 var door = objects.get_doors()[door_id]
126 if door.has_ap_id():
127 return door.get_ap_id()
128 else:
129 return null
130
131
132func get_door_receivers(door_id):
133 var door = objects.get_doors()[door_id]
134 return door.get_receivers()
135
136
137func get_door_map_name(door_id):
138 var door = objects.get_doors()[door_id]
139 var map = objects.get_maps()[door.get_map_id()]
140 return map.get_name()