All checks were successful
Старые Roblox-карты (Crossroads, ROBLOX Battle, и др. из эры 2007-2010) сохранены в XML-формате (<roblox version=4>... вместо binary <roblox!...). Наш парсер падал на 'missing <roblox! magic'. Новое: - rbxl_xml_parser.py: парсит XML-формат через стандартный xml.etree. Поддерживает все типичные property-теги: string, bool, int, float, Vector3, Vector2, CoordinateFrame, Color3, Color3uint8, BrickColor, Ref, BinaryString, UDim/UDim2, PhysicalProperties, OptionalCFrame. - В _parse_property: <int name=BrickColor> заворачивается в BrickColor объект — converter ожидает .code атрибут. - Алиасы PascalCase: name→Name, size→Size, shape→Shape (старый XML использовал camelCase с маленькой первой буквой). app.py: - /analyze: авто-детект XML vs Binary по magic bytes. Если XML — используем parse_xml(), иначе старый parse(). Тест на arch1_Original_Crossroads.rbxl: 877 instances, 777 Part, 83 Model — конвертится в 777 примитивов без warnings.
20 KiB
20 KiB