summary refs log tree commit diff stats
path: root/proto
diff options
context:
space:
mode:
Diffstat (limited to 'proto')
-rw-r--r--proto/data.proto101
-rw-r--r--proto/human.proto150
2 files changed, 251 insertions, 0 deletions
diff --git a/proto/data.proto b/proto/data.proto new file mode 100644 index 0000000..71c3aeb --- /dev/null +++ b/proto/data.proto
@@ -0,0 +1,101 @@
1edition = "2023";
2
3package com.fourisland.lingo2_archipelago;
4
5message ProxyIdentifier {
6 uint64 panel = 1;
7 string answer = 2;
8}
9
10message Connection {
11 uint64 id = 7;
12
13 uint64 from_room = 1;
14 uint64 to_room = 2;
15 repeated uint64 required_door = 3;
16
17 oneof trigger {
18 uint64 port = 4;
19 uint64 painting = 5;
20 ProxyIdentifier panel = 6;
21 }
22}
23
24message Door {
25 uint64 id = 1;
26 uint64 map_id = 10;
27 string name = 2;
28
29 repeated string receivers = 3;
30 repeated uint64 move_paintings = 4;
31
32 repeated ProxyIdentifier panels = 5;
33 string control_center_color = 6;
34 repeated string switches = 7;
35
36 repeated string location_tags = 8;
37 repeated string item_tags = 9;
38}
39
40message Panel {
41 uint64 id = 1;
42 uint64 room_id = 2;
43 string name = 3;
44
45 string nodepath = 4;
46
47 string clue = 5;
48 string answer = 6;
49 repeated string symbols = 7;
50
51 repeated Proxy proxies = 8;
52
53 uint64 required_door = 9;
54}
55
56message Painting {
57 uint64 id = 1;
58 uint64 room_id = 2;
59 string name = 9;
60
61 string path = 10;
62 string display_name = 4;
63
64 string orientation = 3;
65 bool move = 6;
66 bool enter_only = 7;
67 bool flipped = 8;
68
69 uint64 required_door = 5;
70}
71
72message Port {
73 uint64 id = 1;
74 uint64 room_id = 2;
75 string name = 3;
76
77 string path = 4;
78 string orientation = 5;
79
80 uint64 required_door = 6;
81}
82
83message Room {
84 uint64 id = 1;
85 string name = 2;
86 string display_name = 3;
87
88 repeated uint64 panels = 4;
89 repeated uint64 paintings = 5;
90 repeated Letter letters = 6;
91 repeated uint64 ports = 7;
92}
93
94message AllObjects {
95 repeated Room rooms = 1;
96 repeated Door doors = 2;
97 repeated Panel panels = 3;
98 repeated Painting paintings = 4;
99 repeated Port ports = 5;
100 repeated Connection connections = 6;
101}
diff --git a/proto/human.proto b/proto/human.proto new file mode 100644 index 0000000..06c89cd --- /dev/null +++ b/proto/human.proto
@@ -0,0 +1,150 @@
1edition = "2023";
2
3package com.fourisland.lingo2_archipelago;
4
5message RoomIdentifier {
6 string map = 1;
7 string name = 2;
8}
9
10message DoorIdentifier {
11 string map = 1;
12 string name = 2;
13}
14
15message PortIdentifier {
16 string map = 1;
17 string room = 2;
18 string name = 3;
19}
20
21message PaintingIdentifier {
22 string map = 1;
23 string room = 2;
24 string name = 3;
25}
26
27message PanelIdentifier {
28 string map = 1;
29 string room = 2;
30 string name = 3;
31 string answer = 4;
32}
33
34message HumanConnection {
35 message Endpoint {
36 oneof endpoint {
37 RoomIdentifier room = 1;
38 PortIdentifier port = 2;
39 PaintingIdentifier painting = 3;
40 PanelIdentifier panel = 4;
41 }
42 }
43
44 oneof From {
45 Endpoint from = 1;
46 string from_room = 5;
47 }
48
49 oneof To {
50 Endpoint to = 2;
51 string to_room = 6;
52 }
53
54 bool oneway = 3;
55 DoorIdentifier door = 4;
56}
57
58message HumanConnections {
59 repeated HumanConnection connections = 1;
60}
61
62message HumanDoor {
63 enum DoorType {
64 DOOR_TYPE_UNKNOWN = 0;
65
66 // This door is a location unless panelsanity is on, and it is an item as long as door shuffle is on.
67 STANDARD = 1;
68
69 // This door is never an item or a location.
70 EVENT = 2;
71
72 // This door is never a location, and is an item as long as door shuffle is on.
73 ITEM_ONLY = 3;
74
75 // This door is never a location, and is an item as long as control center color shuffle is on.
76 CONTROL_CENTER_COLOR = 4;
77 }
78
79 string name = 1;
80
81 repeated string receivers = 2;
82 repeated PaintingIdentifier move_paintings = 8;
83
84 repeated PanelIdentifier panels = 3;
85 string control_center_color = 6;
86 repeated string switches = 7;
87
88 repeated string location_tags = 4;
89 repeated string item_tags = 5;
90}
91
92message HumanDoors {
93 repeated HumanDoor doors = 1;
94}
95
96message Proxy {
97 string answer = 1;
98 string path = 2;
99}
100
101message HumanPanel {
102 string name = 1;
103 string path = 5;
104
105 string clue = 2;
106 string answer = 3;
107 repeated string symbols = 4;
108
109 repeated Proxy proxies = 6;
110
111 DoorIdentifier required_door = 7;
112}
113
114message HumanPainting {
115 string name = 1;
116 string path = 2;
117
118 string display_name = 4;
119
120 string orientation = 3;
121 bool move = 6;
122 bool enter_only = 7;
123 bool flipped = 8;
124
125 DoorIdentifier required_door = 5;
126}
127
128message Letter {
129 string letter = 1;
130 bool double = 2;
131}
132
133message HumanPort {
134 string name = 1;
135 string path = 2;
136
137 string orientation = 3;
138
139 DoorIdentifier required_door = 4;
140}
141
142message HumanRoom {
143 string name = 1;
144 string display_name = 2;
145
146 repeated HumanPanel panels = 3;
147 repeated HumanPainting paintings = 4;
148 repeated Letter letters = 5;
149 repeated HumanPort ports = 6;
150}