#ifndef TOOLS_DATAPACKER_CONTAINER_H_ #define TOOLS_DATAPACKER_CONTAINER_H_ #include #include #include #include #include "proto/data.pb.h" namespace com::fourisland::lingo2_archipelago { class Container { public: uint64_t FindOrAddMap(std::string map_name); uint64_t FindOrAddRoom(std::optional map_name, std::string room_name, std::optional map_fallback); uint64_t FindOrAddPainting(std::optional map_name, std::optional room_name, std::string painting_name, std::optional map_fallback, std::optional room_fallback); uint64_t FindOrAddPort(std::optional map_name, std::optional room_name, std::string port_name, std::optional map_fallback, std::optional room_fallback); uint64_t FindOrAddPanel(std::optional map_name, std::optional room_name, std::string panel_name, std::optional map_fallback, std::optional room_fallback); uint64_t FindOrAddLetter(std::string key, bool level2); uint64_t FindLetterByName(std::string letter_name); uint64_t FindOrAddEnding(std::string ending_name); uint64_t FindOrAddMastery(std::optional map_name, std::optional room_name, std::string mastery_name, std::optional map_fallback, std::optional room_fallback); uint64_t FindOrAddKeyholder(std::optional map_name, std::optional room_name, std::string keyholder_name, std::optional map_fallback, std::optional room_fallback); uint64_t FindOrAddDoor(std::optional map_name, std::string door_name, std::optional map_fallback); void AddConnection(const Connection& connection); uint64_t FindOrAddProgressive(std::string prog_name); uint64_t FindOrAddDoorGroup(std::string group_name); AllObjects& all_objects() { return all_objects_; } private: AllObjects all_objects_; std::map map_id_by_name_; std::map> room_id_by_map_room_names_; std::map>> painting_id_by_map_room_painting_names_; std::map>> port_id_by_map_room_port_names_; std::map>> panel_id_by_map_room_panel_names_; std::map letter_id_by_name_; std::map>> mastery_id_by_map_room_mastery_names_; std::map>> keyholder_id_by_map_room_keyholder_names_; std::map> door_id_by_map_door_names_; std::map ending_id_by_name_; std::map progressive_id_by_name_; std::map door_group_id_by_name_; }; } // namespace com::fourisland::lingo2_archipelago #endif /* TOOLS_DATAPACKER_CONTAINER_H_ */ vagant/rooms/Engine%20Room.txtpb?h=v8.0.2&id=b9147997260a6e9ebe291353978830c8741711b9'>blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
name: "Engine Room"
panels {
  name: "ENGINE"
  path: "Panels/panel_8"
  clue: "engine"
  answer: "train"
  symbols: BOXES
}
panels {
  name: "CABOOSE"
  path: "Panels/panel_9"
  clue: "caboose"
  answer: "train"
  symbols: BOXES
}
paintings {
  name: "UNDUE"
  path: "Components/Paintings/undue3"
  gravity: Z_PLUS
  orientation: "south" # TODO: this is meaningless with Z-axis gravity :/
  display_name: "E Side Painting On E"
}
ports {
  name: "GALLERY"
  path: "Components/Warps/worldport2"
  gravity: Z_PLUS
  # TODO: entrance shuffling for non Y axis gravity
  no_shuffle: true
}