summary refs log tree commit diff stats
path: root/proto/human.proto
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-08-12 16:55:17 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-08-12 16:55:17 -0400
commit4c8a38dfc0121343396d2a0d734cf1445d05b60c (patch)
treeccaf6dd1dc6fee60ced5ae19c5d0bb5db1217fcb /proto/human.proto
parent447a222b57e498f7904033c59e68d21d6a246abd (diff)
downloadlingo2-archipelago-4c8a38dfc0121343396d2a0d734cf1445d05b60c.tar.gz
lingo2-archipelago-4c8a38dfc0121343396d2a0d734cf1445d05b60c.tar.bz2
lingo2-archipelago-4c8a38dfc0121343396d2a0d734cf1445d05b60c.zip
Converted to proto2
This will let us use an older version of protobuf in Python, and allows
us to use the Godot protobuf implementation at all. Scalar fields with
custom defaults in data.proto were changed to not have a default,
because Godot doesn't handle it properly. The equivalent fields in
human.proto still have the defaults, and datapacker copies the default
value in if necessary. The Panel message in data.proto was also renamed
to PanelData because otherwise it conflicts with the native Godot class
named Panel. The double field in Letter was renamed to level2, because
Godot couldn't handle it well. Finally, common.proto was removed and
its contents were moved into data.proto, which allows us to generate
code for Python without needing to edit it.

NOTE: I had to slightly modify the Godot protobuf code generator. I'll
need to upload that somewhere.
Diffstat (limited to 'proto/human.proto')
-rw-r--r--proto/human.proto112
1 files changed, 56 insertions, 56 deletions
diff --git a/proto/human.proto b/proto/human.proto index 858c88f..b420cb4 100644 --- a/proto/human.proto +++ b/proto/human.proto
@@ -1,43 +1,43 @@
1edition = "2023"; 1syntax = "proto2";
2 2
3import "common.proto"; 3import "data.proto";
4 4
5package com.fourisland.lingo2_archipelago; 5package com.fourisland.lingo2_archipelago;
6 6
7message RoomIdentifier { 7message RoomIdentifier {
8 string map = 1; 8 optional string map = 1;
9 string name = 2; 9 optional string name = 2;
10} 10}
11 11
12message DoorIdentifier { 12message DoorIdentifier {
13 string map = 1; 13 optional string map = 1;
14 string name = 2; 14 optional string name = 2;
15} 15}
16 16
17message PortIdentifier { 17message PortIdentifier {
18 string map = 1; 18 optional string map = 1;
19 string room = 2; 19 optional string room = 2;
20 string name = 3; 20 optional string name = 3;
21} 21}
22 22
23message PaintingIdentifier { 23message PaintingIdentifier {
24 string map = 1; 24 optional string map = 1;
25 string room = 2; 25 optional string room = 2;
26 string name = 3; 26 optional string name = 3;
27} 27}
28 28
29message PanelIdentifier { 29message PanelIdentifier {
30 string map = 1; 30 optional string map = 1;
31 string room = 2; 31 optional string room = 2;
32 string name = 3; 32 optional string name = 3;
33 string answer = 4; 33 optional string answer = 4;
34} 34}
35 35
36message KeyholderIdentifier { 36message KeyholderIdentifier {
37 string map = 1; 37 optional string map = 1;
38 string room = 2; 38 optional string room = 2;
39 string name = 3; 39 optional string name = 3;
40 string key = 4; 40 optional string key = 4;
41} 41}
42 42
43message HumanConnection { 43message HumanConnection {
@@ -60,8 +60,8 @@ message HumanConnection {
60 string to_room = 6; 60 string to_room = 6;
61 } 61 }
62 62
63 bool oneway = 3; 63 optional bool oneway = 3;
64 DoorIdentifier door = 4; 64 optional DoorIdentifier door = 4;
65} 65}
66 66
67message HumanConnections { 67message HumanConnections {
@@ -69,7 +69,7 @@ message HumanConnections {
69} 69}
70 70
71message HumanDoor { 71message HumanDoor {
72 string name = 1; 72 optional string name = 1;
73 73
74 repeated string receivers = 2; 74 repeated string receivers = 2;
75 repeated PaintingIdentifier move_paintings = 8; 75 repeated PaintingIdentifier move_paintings = 8;
@@ -79,15 +79,15 @@ message HumanDoor {
79 79
80 // If set, the number of panels from the above set that need to be solved. 80 // If set, the number of panels from the above set that need to be solved.
81 // Warning: this is a messy kind of OR logic! Consider if there's another way. 81 // Warning: this is a messy kind of OR logic! Consider if there's another way.
82 uint64 complete_at = 9; 82 optional uint64 complete_at = 9;
83 83
84 string control_center_color = 6; 84 optional string control_center_color = 6;
85 repeated string switches = 7; 85 repeated string switches = 7;
86 repeated KeyholderIdentifier keyholders = 10; 86 repeated KeyholderIdentifier keyholders = 10;
87 repeated RoomIdentifier rooms = 11; 87 repeated RoomIdentifier rooms = 11;
88 88
89 DoorType type = 4; 89 optional DoorType type = 4;
90 string location_room = 5; 90 optional string location_room = 5;
91} 91}
92 92
93message HumanDoors { 93message HumanDoors {
@@ -95,64 +95,64 @@ message HumanDoors {
95} 95}
96 96
97message HumanPanel { 97message HumanPanel {
98 string name = 1; 98 optional string name = 1;
99 string path = 5; 99 optional string path = 5;
100 100
101 string clue = 2; 101 optional string clue = 2;
102 string answer = 3; 102 optional string answer = 3;
103 repeated string symbols = 4; 103 repeated string symbols = 4;
104 104
105 repeated Proxy proxies = 6; 105 repeated Proxy proxies = 6;
106 106
107 DoorIdentifier required_door = 7; 107 optional DoorIdentifier required_door = 7;
108 RoomIdentifier required_room = 8; 108 optional RoomIdentifier required_room = 8;
109} 109}
110 110
111message HumanPainting { 111message HumanPainting {
112 string name = 1; 112 optional string name = 1;
113 string path = 2; 113 optional string path = 2;
114 114
115 string display_name = 4; 115 optional string display_name = 4;
116 116
117 string orientation = 3; 117 optional string orientation = 3;
118 bool move = 6; 118 optional bool move = 6;
119 bool enter_only = 7; 119 optional bool enter_only = 7;
120 AxisDirection gravity = 8 [default = Y_MINUS]; 120 optional AxisDirection gravity = 8 [default = Y_MINUS];
121 bool exit_only = 9; 121 optional bool exit_only = 9;
122 122
123 DoorIdentifier required_door = 5; 123 optional DoorIdentifier required_door = 5;
124} 124}
125 125
126message HumanPort { 126message HumanPort {
127 string name = 1; 127 optional string name = 1;
128 string path = 2; 128 optional string path = 2;
129 129
130 string orientation = 3; 130 optional string orientation = 3;
131 AxisDirection gravity = 5 [default = Y_MINUS]; 131 optional AxisDirection gravity = 5 [default = Y_MINUS];
132 132
133 DoorIdentifier required_door = 4; 133 optional DoorIdentifier required_door = 4;
134} 134}
135 135
136message HumanKeyholder { 136message HumanKeyholder {
137 string name = 1; 137 optional string name = 1;
138 string path = 2; 138 optional string path = 2;
139} 139}
140 140
141message HumanLetter { 141message HumanLetter {
142 string key = 1; 142 optional string key = 1;
143 bool double = 2; 143 optional bool level2 = 2;
144 144
145 string path = 3; 145 optional string path = 3;
146} 146}
147 147
148message HumanMastery { 148message HumanMastery {
149 string name = 1; 149 optional string name = 1;
150 string path = 2; 150 optional string path = 2;
151} 151}
152 152
153message HumanRoom { 153message HumanRoom {
154 string name = 1; 154 optional string name = 1;
155 string display_name = 2; 155 optional string display_name = 2;
156 156
157 repeated HumanPanel panels = 3; 157 repeated HumanPanel panels = 3;
158 repeated HumanPainting paintings = 4; 158 repeated HumanPainting paintings = 4;