From 1eacf01378d4dff3aed73fffcc42e0352b93835e Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 7 Aug 2025 10:48:01 -0400 Subject: Trying out protobuf I guess --- proto/data.proto | 101 ++++++++++++++++++++++++++++++++++++ proto/human.proto | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 251 insertions(+) create mode 100644 proto/data.proto create mode 100644 proto/human.proto (limited to 'proto') 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 @@ +edition = "2023"; + +package com.fourisland.lingo2_archipelago; + +message ProxyIdentifier { + uint64 panel = 1; + string answer = 2; +} + +message Connection { + uint64 id = 7; + + uint64 from_room = 1; + uint64 to_room = 2; + repeated uint64 required_door = 3; + + oneof trigger { + uint64 port = 4; + uint64 painting = 5; + ProxyIdentifier panel = 6; + } +} + +message Door { + uint64 id = 1; + uint64 map_id = 10; + string name = 2; + + repeated string receivers = 3; + repeated uint64 move_paintings = 4; + + repeated ProxyIdentifier panels = 5; + string control_center_color = 6; + repeated string switches = 7; + + repeated string location_tags = 8; + repeated string item_tags = 9; +} + +message Panel { + uint64 id = 1; + uint64 room_id = 2; + string name = 3; + + string nodepath = 4; + + string clue = 5; + string answer = 6; + repeated string symbols = 7; + + repeated Proxy proxies = 8; + + uint64 required_door = 9; +} + +message Painting { + uint64 id = 1; + uint64 room_id = 2; + string name = 9; + + string path = 10; + string display_name = 4; + + string orientation = 3; + bool move = 6; + bool enter_only = 7; + bool flipped = 8; + + uint64 required_door = 5; +} + +message Port { + uint64 id = 1; + uint64 room_id = 2; + string name = 3; + + string path = 4; + string orientation = 5; + + uint64 required_door = 6; +} + +message Room { + uint64 id = 1; + string name = 2; + string display_name = 3; + + repeated uint64 panels = 4; + repeated uint64 paintings = 5; + repeated Letter letters = 6; + repeated uint64 ports = 7; +} + +message AllObjects { + repeated Room rooms = 1; + repeated Door doors = 2; + repeated Panel panels = 3; + repeated Painting paintings = 4; + repeated Port ports = 5; + repeated Connection connections = 6; +} 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 @@ +edition = "2023"; + +package com.fourisland.lingo2_archipelago; + +message RoomIdentifier { + string map = 1; + string name = 2; +} + +message DoorIdentifier { + string map = 1; + string name = 2; +} + +message PortIdentifier { + string map = 1; + string room = 2; + string name = 3; +} + +message PaintingIdentifier { + string map = 1; + string room = 2; + string name = 3; +} + +message PanelIdentifier { + string map = 1; + string room = 2; + string name = 3; + string answer = 4; +} + +message HumanConnection { + message Endpoint { + oneof endpoint { + RoomIdentifier room = 1; + PortIdentifier port = 2; + PaintingIdentifier painting = 3; + PanelIdentifier panel = 4; + } + } + + oneof From { + Endpoint from = 1; + string from_room = 5; + } + + oneof To { + Endpoint to = 2; + string to_room = 6; + } + + bool oneway = 3; + DoorIdentifier door = 4; +} + +message HumanConnections { + repeated HumanConnection connections = 1; +} + +message HumanDoor { + enum DoorType { + DOOR_TYPE_UNKNOWN = 0; + + // This door is a location unless panelsanity is on, and it is an item as long as door shuffle is on. + STANDARD = 1; + + // This door is never an item or a location. + EVENT = 2; + + // This door is never a location, and is an item as long as door shuffle is on. + ITEM_ONLY = 3; + + // This door is never a location, and is an item as long as control center color shuffle is on. + CONTROL_CENTER_COLOR = 4; + } + + string name = 1; + + repeated string receivers = 2; + repeated PaintingIdentifier move_paintings = 8; + + repeated PanelIdentifier panels = 3; + string control_center_color = 6; + repeated string switches = 7; + + repeated string location_tags = 4; + repeated string item_tags = 5; +} + +message HumanDoors { + repeated HumanDoor doors = 1; +} + +message Proxy { + string answer = 1; + string path = 2; +} + +message HumanPanel { + string name = 1; + string path = 5; + + string clue = 2; + string answer = 3; + repeated string symbols = 4; + + repeated Proxy proxies = 6; + + DoorIdentifier required_door = 7; +} + +message HumanPainting { + string name = 1; + string path = 2; + + string display_name = 4; + + string orientation = 3; + bool move = 6; + bool enter_only = 7; + bool flipped = 8; + + DoorIdentifier required_door = 5; +} + +message Letter { + string letter = 1; + bool double = 2; +} + +message HumanPort { + string name = 1; + string path = 2; + + string orientation = 3; + + DoorIdentifier required_door = 4; +} + +message HumanRoom { + string name = 1; + string display_name = 2; + + repeated HumanPanel panels = 3; + repeated HumanPainting paintings = 4; + repeated Letter letters = 5; + repeated HumanPort ports = 6; +} -- cgit 1.4.1