about summary refs log tree commit diff stats
path: root/proto/data.proto
diff options
context:
space:
mode:
Diffstat (limited to 'proto/data.proto')
-rw-r--r--proto/data.proto134
1 files changed, 127 insertions, 7 deletions
diff --git a/proto/data.proto b/proto/data.proto index 88e17d0..e9cc7d7 100644 --- a/proto/data.proto +++ b/proto/data.proto
@@ -27,6 +27,36 @@ enum DoorType {
27 27
28 // This door is an item if gravestone shuffle is enabled, and is a location as long as panelsanity is not on. 28 // This door is an item if gravestone shuffle is enabled, and is a location as long as panelsanity is not on.
29 GRAVESTONE = 6; 29 GRAVESTONE = 6;
30
31 // This door is never a location, and is an item as long as gallery painting shuffle is on.
32 GALLERY_PAINTING = 7;
33}
34
35enum DoorGroupType {
36 DOOR_GROUP_TYPE_UNKNOWN = 0;
37
38 // These doors border a worldport. They should be grouped when connections are
39 // not shuffled.
40 CONNECTOR = 1;
41
42 // Similar to CONNECTOR, but these doors are also ordinarily opened by solving
43 // the COLOR panel in the Control Center. These should be grouped when
44 // connections are not shuffled, but are not items at all when control center
45 // colors are not shuffled.
46 COLOR_CONNECTOR = 2;
47
48 // Groups with this type become an item if cyan door behavior is set to item.
49 CYAN_DOORS = 3;
50
51 // Groups with this type always become an item if door shuffle is on.
52 SHUFFLE_GROUP = 4;
53}
54
55enum MapType {
56 NORMAL_MAP = 0;
57 ICARUS = 1;
58 GIFT_MAP = 2;
59 DEMO = 3;
30} 60}
31 61
32enum AxisDirection { 62enum AxisDirection {
@@ -40,6 +70,42 @@ enum AxisDirection {
40 Z_MINUS = 6; 70 Z_MINUS = 6;
41} 71}
42 72
73enum PuzzleSymbol {
74 PUZZLE_SYMBOL_UNKNOWN = 0;
75
76 SUN = 1;
77 SPARKLES = 2;
78 ZERO = 3;
79 EXAMPLE = 4;
80 BOXES = 5;
81 PLANET = 6;
82 PYRAMID = 7;
83 CROSS = 8;
84 SWEET = 9;
85 GENDER = 10;
86 AGE = 11;
87 SOUND = 12;
88 ANAGRAM = 13;
89 JOB = 14;
90 STARS = 15;
91 NULL = 16;
92 EVAL = 17;
93 LINGO = 18;
94 QUESTION = 19;
95}
96
97message Vec3d {
98 optional double x = 1;
99 optional double y = 2;
100 optional double z = 3;
101}
102
103message VersionNumber {
104 optional uint64 major = 1;
105 optional uint64 minor = 2;
106 optional uint64 patch = 3;
107}
108
43message ProxyIdentifier { 109message ProxyIdentifier {
44 optional uint64 panel = 1; 110 optional uint64 panel = 1;
45 optional string answer = 2; 111 optional string answer = 2;
@@ -60,6 +126,11 @@ message Connection {
60 uint64 painting = 5; 126 uint64 painting = 5;
61 ProxyIdentifier panel = 6; 127 ProxyIdentifier panel = 6;
62 } 128 }
129
130 optional bool roof_access = 7;
131 optional bool purple_ending = 8;
132 optional bool cyan_ending = 9;
133 optional bool vanilla_only = 10;
63} 134}
64 135
65message Door { 136message Door {
@@ -76,12 +147,18 @@ message Door {
76 optional uint64 complete_at = 12; 147 optional uint64 complete_at = 12;
77 148
78 optional string control_center_color = 6; 149 optional string control_center_color = 6;
79 repeated string switches = 7;
80 repeated KeyholderAnswer keyholders = 13; 150 repeated KeyholderAnswer keyholders = 13;
81 repeated uint64 rooms = 14; 151 repeated uint64 rooms = 14;
82 repeated uint64 doors = 15; 152 repeated uint64 doors = 15;
153 optional bool white_ending = 16;
154 optional bool double_letters = 18;
155 repeated string senders = 19;
83 156
84 optional DoorType type = 8; 157 optional DoorType type = 8;
158 optional bool latch = 20;
159 optional bool legacy_location = 21;
160
161 optional string location_name = 17;
85} 162}
86 163
87message PanelData { 164message PanelData {
@@ -93,15 +170,17 @@ message PanelData {
93 optional string path = 4; 170 optional string path = 4;
94 optional string clue = 5; 171 optional string clue = 5;
95 optional string answer = 6; 172 optional string answer = 6;
96 repeated string symbols = 7; 173 repeated PuzzleSymbol symbols = 7;
97 174
98 repeated Proxy proxies = 8; 175 repeated Proxy proxies = 8;
99 176
100 optional uint64 required_door = 9; 177 optional uint64 required_door = 9;
101 optional uint64 required_room = 11; 178 optional uint64 required_room = 11;
179
180 optional string display_name = 12;
102} 181}
103 182
104message Painting { 183message PaintingData {
105 optional uint64 id = 1; 184 optional uint64 id = 1;
106 optional uint64 room_id = 2; 185 optional uint64 room_id = 2;
107 optional string name = 9; 186 optional string name = 9;
@@ -120,22 +199,28 @@ message Painting {
120 199
121message Port { 200message Port {
122 optional uint64 id = 1; 201 optional uint64 id = 1;
202 optional uint64 ap_id = 11;
123 optional uint64 room_id = 2; 203 optional uint64 room_id = 2;
124 optional string name = 3; 204 optional string name = 3;
125 205
206 optional string display_name = 10;
126 optional string path = 4; 207 optional string path = 4;
127 optional string orientation = 5; 208 optional Vec3d destination = 5;
209 optional double rotation = 8;
128 optional AxisDirection gravity = 7; 210 optional AxisDirection gravity = 7;
211 optional bool no_shuffle = 9;
129 212
130 optional uint64 required_door = 6; 213 optional uint64 required_door = 6;
131} 214}
132 215
133message Keyholder { 216message KeyholderData {
134 optional uint64 id = 1; 217 optional uint64 id = 1;
218 optional uint64 ap_id = 6;
135 optional uint64 room_id = 2; 219 optional uint64 room_id = 2;
136 220
137 optional string name = 3; 221 optional string name = 3;
138 optional string path = 4; 222 optional string path = 4;
223 optional string key = 5;
139} 224}
140 225
141message Letter { 226message Letter {
@@ -158,11 +243,22 @@ message Mastery {
158 optional string path = 5; 243 optional string path = 5;
159} 244}
160 245
246message Ending {
247 optional uint64 id = 1;
248 optional uint64 ap_id = 2;
249 optional uint64 room_id = 3;
250
251 optional string name = 4;
252
253 optional string path = 5;
254}
255
161message Room { 256message Room {
162 optional uint64 id = 1; 257 optional uint64 id = 1;
163 optional uint64 map_id = 8; 258 optional uint64 map_id = 8;
164 optional string name = 2; 259 optional string name = 2;
165 optional string display_name = 3; 260 optional string display_name = 3;
261 optional string panel_display_name = 13;
166 262
167 repeated uint64 panels = 4; 263 repeated uint64 panels = 4;
168 repeated uint64 paintings = 5; 264 repeated uint64 paintings = 5;
@@ -171,23 +267,47 @@ message Room {
171 repeated uint64 doors = 9; 267 repeated uint64 doors = 9;
172 repeated uint64 masteries = 10; 268 repeated uint64 masteries = 10;
173 repeated uint64 keyholders = 11; 269 repeated uint64 keyholders = 11;
270 repeated uint64 endings = 12;
174} 271}
175 272
176message Map { 273message Map {
177 optional uint64 id = 1; 274 optional uint64 id = 1;
178 optional string name = 2; 275 optional string name = 2;
276 optional string display_name = 3;
277 optional uint64 worldport_entrance = 4;
278 optional MapType type = 5;
279}
280
281message Progressive {
282 optional uint64 id = 1;
283 optional string name = 2;
284 optional uint64 ap_id = 3;
285 repeated uint64 doors = 4;
286}
287
288message DoorGroup {
289 optional uint64 id = 1;
290 optional string name = 2;
291 optional uint64 ap_id = 3;
292 optional DoorGroupType type = 4;
293 repeated uint64 doors = 5;
179} 294}
180 295
181message AllObjects { 296message AllObjects {
297 optional VersionNumber version = 15;
298
182 repeated Map maps = 7; 299 repeated Map maps = 7;
183 repeated Room rooms = 1; 300 repeated Room rooms = 1;
184 repeated Door doors = 2; 301 repeated Door doors = 2;
185 repeated PanelData panels = 3; 302 repeated PanelData panels = 3;
186 repeated Painting paintings = 4; 303 repeated PaintingData paintings = 4;
187 repeated Port ports = 5; 304 repeated Port ports = 5;
188 repeated Keyholder keyholders = 11; 305 repeated KeyholderData keyholders = 11;
189 repeated Letter letters = 9; 306 repeated Letter letters = 9;
190 repeated Mastery masteries = 10; 307 repeated Mastery masteries = 10;
308 repeated Ending endings = 12;
191 repeated Connection connections = 6; 309 repeated Connection connections = 6;
310 repeated Progressive progressives = 13;
311 repeated DoorGroup door_groups = 14;
192 map<string, uint64> special_ids = 8; 312 map<string, uint64> special_ids = 8;
193} 313}