From c0c5431800d0306d01814e9902566c9b4fc9220b Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 7 Aug 2025 17:18:47 -0400 Subject: Assign AP IDs to doors and panels --- apworld/static_logic.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'apworld/static_logic.py') diff --git a/apworld/static_logic.py b/apworld/static_logic.py index 6c38f1f..d3ed85c 100644 --- a/apworld/static_logic.py +++ b/apworld/static_logic.py @@ -1,9 +1,30 @@ +from .generated import common_pb2 as common_pb2 from .generated import data_pb2 as data_pb2 import pkgutil class Lingo2StaticLogic: + item_id_to_name: dict[int, str] + location_id_to_name: dict[int, str] + + item_name_to_id: dict[str, int] + location_name_to_id: dict[str, int] + def __init__(self): - file = pkgutil.get_data(__name__, "generated/data.binpb") + self.item_id_to_name = {} + self.location_id_to_name = {} + file = pkgutil.get_data(__name__, "generated/data.binpb") self.objects = data_pb2.AllObjects() self.objects.ParseFromString(bytearray(file)) + + for door in self.objects.doors: + if door.type == common_pb2.DoorType.STANDARD: + location_name = f"{self.objects.rooms[door.room_id].display_name} - {door.name}" + self.location_id_to_name[door.ap_id] = location_name + + if door.type != common_pb2.DoorType.EVENT: + item_name = f"{self.objects.rooms[door.room_id].display_name} - {door.name}" + self.item_id_to_name[door.ap_id] = item_name + + self.item_name_to_id = {name: ap_id for ap_id, name in self.item_id_to_name.items()} + self.location_name_to_id = {name: ap_id for ap_id, name in self.location_id_to_name.items()} -- cgit 1.4.1