graph LR
Converter_Driver["Converter Driver"]
Game_Asset_Reader["Game Asset Reader"]
Value_Object_Model["Value Object Model"]
Conversion_Pipeline["Conversion Pipeline"]
Entity_Object_Model["Entity Object Model"]
Modpack_Exporter["Modpack Exporter"]
Converter_Driver -- "invokes" --> Game_Asset_Reader
Game_Asset_Reader -- "creates" --> Value_Object_Model
Converter_Driver -- "passes data to" --> Conversion_Pipeline
Value_Object_Model -- "is processed by" --> Conversion_Pipeline
Conversion_Pipeline -- "transforms into" --> Entity_Object_Model
Converter_Driver -- "instructs" --> Modpack_Exporter
Entity_Object_Model -- "is serialized by" --> Modpack_Exporter
An analysis of the openage.convert class hierarchy reveals a structured and modular architecture for the Asset Converter subsystem. The components are designed to handle the complex process of reading proprietary game data, transforming it into an engine-specific format, and exporting it as a modpack.
The central orchestrator that manages the entire asset conversion workflow. It initializes the process, discovers the source game's version, and directs the flow of data between the other components.
Related Classes/Methods:
openage.convert.tool.driver.Driver
A collection of specialized modules responsible for reading and parsing the various proprietary file formats used by the source game (e.g., Age of Empires). This component handles low-level data extraction from formats like .dat, .drs, and .slp.
Related Classes/Methods:
openage.convert.value_object.read.media.datfile.EmpiresDatopenage.convert.value_object.read.media.drs.DRS(106:171)openage.convert.value_object.read.genie_structure.GenieStructure(60:673)
A set of Python classes that represent the raw data extracted from the game files. These objects mirror the structure of the original game's data and serve as the input for the conversion process.
Related Classes/Methods:
openage.convert.value_object.read.media.datfile.unit.UnitObject(263:553)openage.convert.value_object.read.media.datfile.graphic.Graphic(119:226)openage.convert.value_object.read.media.datfile.terrain.Terrain(136:298)
The heart of the converter, this component is responsible for transforming the Value Objects into Entity Objects. It contains the business logic for mapping the source game's data structures to the openage engine's data model.
Related Classes/Methods:
openage.convert.entity_object.conversion.aoc.genie_object_container.GenieObjectContainer(41:125)openage.convert.entity_object.conversion.converter_object.ConverterObject(24:140)
A set of Python classes that represent the game assets in a format that is compatible with the openage engine's data definition schema (.nyan files). These objects are the output of the Conversion Pipeline.
Related Classes/Methods:
openage.convert.entity_object.export.formats.nyan_file.NyanFile(20:155)openage.nyan.nyan_structs.NyanObject(32:469)
This component takes the Entity Objects and packages them into a distributable modpack. This includes serializing the data to .nyan files, exporting media assets, and creating a manifest file.
Related Classes/Methods: