about summary refs log tree commit diff stats
path: root/proto/human.proto
diff options
context:
space:
mode:
Diffstat (limited to 'proto/human.proto')
-rw-r--r--proto/human.proto46
1 files changed, 43 insertions, 3 deletions
diff --git a/proto/human.proto b/proto/human.proto index f9517bd..c586599 100644 --- a/proto/human.proto +++ b/proto/human.proto
@@ -70,6 +70,17 @@ message HumanConnection {
70 // This means that the connection intentionally skips the target object's 70 // This means that the connection intentionally skips the target object's
71 // required door. 71 // required door.
72 optional bool bypass_target_door = 8; 72 optional bool bypass_target_door = 8;
73
74 // This means that the connection should additionally require all purple
75 // letters when the Strict Purple Ending option is on.
76 optional bool purple_ending = 9;
77
78 // This means that the connection should additionally require all cyan letters
79 // when the Strict Cyan Ending option is on.
80 optional bool cyan_ending = 10;
81
82 // This means that the connection only exists when doors are not shuffled.
83 optional bool vanilla_only = 11;
73} 84}
74 85
75message HumanConnections { 86message HumanConnections {
@@ -93,7 +104,7 @@ message HumanDoor {
93 repeated KeyholderIdentifier keyholders = 10; 104 repeated KeyholderIdentifier keyholders = 10;
94 repeated RoomIdentifier rooms = 11; 105 repeated RoomIdentifier rooms = 11;
95 repeated DoorIdentifier doors = 12; 106 repeated DoorIdentifier doors = 12;
96 repeated string endings = 13; 107 optional bool white_ending = 13;
97 optional bool double_letters = 15; 108 optional bool double_letters = 15;
98 109
99 // Sender nodes to be added to the list of requirements for triggering the 110 // Sender nodes to be added to the list of requirements for triggering the
@@ -103,6 +114,16 @@ message HumanDoor {
103 optional DoorType type = 4; 114 optional DoorType type = 4;
104 optional string location_room = 5; 115 optional string location_room = 5;
105 optional string location_name = 14; 116 optional string location_name = 14;
117
118 // Non-item doors that are latched will stay open once opened, even if the
119 // opening trigger is deactivated. This applies to EVENT/LOCATION_ONLY doors,
120 // as well as item-locked doors when not shuffling doors.
121 optional bool latch = 17;
122
123 // If true, the client will treat this door like a location, even though no
124 // location is created for it in the generator. This helps provide backwards
125 // compatability with older worlds.
126 optional bool legacy_location = 18;
106} 127}
107 128
108message HumanDoors { 129message HumanDoors {
@@ -142,9 +163,16 @@ message HumanPainting {
142 163
143message HumanPort { 164message HumanPort {
144 optional string name = 1; 165 optional string name = 1;
166 optional string display_name = 8;
145 optional string path = 2; 167 optional string path = 2;
146 168
147 optional string orientation = 3; 169 optional bool no_shuffle = 7;
170
171 // These specify how the player should be placed when a randomized entrance
172 // sends them to this port. "rotation" is in degrees and is counter-clockwise
173 // from the positive X axis.
174 optional Vec3d destination = 3;
175 optional double rotation = 6;
148 optional AxisDirection gravity = 5 [default = Y_MINUS]; 176 optional AxisDirection gravity = 5 [default = Y_MINUS];
149 177
150 optional DoorIdentifier required_door = 4; 178 optional DoorIdentifier required_door = 4;
@@ -198,7 +226,18 @@ message HumanRoom {
198 226
199message HumanMap { 227message HumanMap {
200 optional string display_name = 1; 228 optional string display_name = 1;
229 optional MapType type = 4;
230
231 optional PortIdentifier worldport_entrance = 3;
232
233 // These two fields are used by the validator and nothing else. excluded_nodes
234 // are objects in the tscn that are intentionally not mentioned in the txtpb.
235 // custom_nodes are the reverse of that; objects that are mentioned in the
236 // txtpb but not present in the tscn. These are generally created dynamically
237 // by the game mod, but may also be used for places where the validator is
238 // just wrong about the contents of the map file.
201 repeated string excluded_nodes = 2; 239 repeated string excluded_nodes = 2;
240 repeated string custom_nodes = 5;
202} 241}
203 242
204message HumanProgressive { 243message HumanProgressive {
@@ -222,7 +261,7 @@ message HumanDoorGroups {
222 261
223message HumanGlobalMetadata { 262message HumanGlobalMetadata {
224 repeated string special_names = 1; 263 repeated string special_names = 1;
225 optional uint64 version = 2; 264 optional VersionNumber version = 2;
226} 265}
227 266
228message IdMappings { 267message IdMappings {
@@ -230,6 +269,7 @@ message IdMappings {
230 map<string, uint64> panels = 1; 269 map<string, uint64> panels = 1;
231 map<string, uint64> masteries = 2; 270 map<string, uint64> masteries = 2;
232 map<string, uint64> keyholders = 3; 271 map<string, uint64> keyholders = 3;
272 map<string, uint64> ports = 4;
233 } 273 }
234 274
235 message MapIds { 275 message MapIds {