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