From 3445e5ace4bc5349000cb30b27b4617b48ec4119 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sat, 13 Sep 2025 11:05:13 -0400 Subject: Add anti-collectable location --- data/ids.yaml | 1 + data/maps/the_repetitive/doors.txtpb | 6 ++++++ data/maps/the_repetitive/rooms/Anti Room.txtpb | 1 - proto/data.proto | 1 + proto/human.proto | 4 ++++ tools/datapacker/main.cpp | 3 +++ 6 files changed, 15 insertions(+), 1 deletion(-) diff --git a/data/ids.yaml b/data/ids.yaml index e38dfcc..7120168 100644 --- a/data/ids.yaml +++ b/data/ids.yaml @@ -2759,6 +2759,7 @@ maps: W: 1117 ZEROING: 1118 doors: + Anti-Collectable: 2812 Anti-Collectable Room: 1025 Black Hallway: 2780 Cyan Door: 1028 diff --git a/data/maps/the_repetitive/doors.txtpb b/data/maps/the_repetitive/doors.txtpb index 8171dc4..d964928 100644 --- a/data/maps/the_repetitive/doors.txtpb +++ b/data/maps/the_repetitive/doors.txtpb @@ -194,3 +194,9 @@ doors { panels { room: "Yellow Room" name: "ASSESSES" } panels { room: "Yellow Room" name: "TINTING" } } +doors { + name: "Anti-Collectable" + type: LOCATION_ONLY + senders: "Components/Collectables/anticollectable" + location_room: "Anti Room" +} diff --git a/data/maps/the_repetitive/rooms/Anti Room.txtpb b/data/maps/the_repetitive/rooms/Anti Room.txtpb index 641fede..11e1468 100644 --- a/data/maps/the_repetitive/rooms/Anti Room.txtpb +++ b/data/maps/the_repetitive/rooms/Anti Room.txtpb @@ -1,5 +1,4 @@ name: "Anti Room" -# Ignore the collectible. The mod should remove it and the back wall too. panels { name: "HA (1)" path: "Panels/Entry/panel_7" diff --git a/proto/data.proto b/proto/data.proto index bf216b9..7a1918a 100644 --- a/proto/data.proto +++ b/proto/data.proto @@ -130,6 +130,7 @@ message Door { repeated uint64 doors = 15; repeated uint64 endings = 16; optional bool double_letters = 18; + repeated string senders = 19; optional DoorType type = 8; diff --git a/proto/human.proto b/proto/human.proto index 615ac86..f9517bd 100644 --- a/proto/human.proto +++ b/proto/human.proto @@ -96,6 +96,10 @@ message HumanDoor { repeated string endings = 13; optional bool double_letters = 15; + // Sender nodes to be added to the list of requirements for triggering the + // location. Only for senders that have no logic requirements. + repeated string senders = 16; + optional DoorType type = 4; optional string location_room = 5; optional string location_name = 14; diff --git a/tools/datapacker/main.cpp b/tools/datapacker/main.cpp index 6bbb461..c13a4df 100644 --- a/tools/datapacker/main.cpp +++ b/tools/datapacker/main.cpp @@ -345,6 +345,9 @@ class DataPacker { std::copy( h_door.receivers().begin(), h_door.receivers().end(), google::protobuf::RepeatedFieldBackInserter(door.mutable_receivers())); + std::copy( + h_door.senders().begin(), h_door.senders().end(), + google::protobuf::RepeatedFieldBackInserter(door.mutable_senders())); for (const PaintingIdentifier& pi : h_door.move_paintings()) { std::optional map_name = -- cgit 1.4.1