45 std::filesystem::path project_root,
49 gsl::not_null<const UserDiagnostics *> diag,
52 : project_root_{std::move(project_root)}, metadata_provider_{metadata_provider},
53 metadata_writer_{metadata_writer}, infra_config_{infra_config}, diag_{diag},
54 incbin_appender_{incbin_appender}, tileset_anims_modifier_{tileset_anims_modifier}
97 persist_managed_new(
const std::string &tileset_name,
bool is_secondary =
false)
const override;
100 wire_anim_code(
const std::string &tileset_name,
bool is_secondary)
const override;
106 std::filesystem::path project_root_;
A result type that maintains a chainable sequence of errors for debugging and error reporting.
Appends INCBIN declarations for Porytiles-managed tileset assets.
Interface that defines a complete infra layer configuration.
Abstract interface for querying Porytiles tileset ownership.
Manages Porytiles-owned tilesets via TilesetManifest JSON files.
void write(const std::string &tileset_name, const TilesetManifest &artifacts) const
Writes an TilesetManifest object to the porytiles utility directory.
ChainableResult< void > persist_managed_new(const std::string &tileset_name, bool is_secondary=false) const override
Persists managed state for a new tileset.
ChainableResult< TilesetManifest > read(const std::string &tileset_name) const
Reads an TilesetManifest object from the porytiles utility directory.
ProjectPorytilesTilesetManager(std::filesystem::path project_root, const ProjectTilesetMetadataProvider *metadata_provider, const ProjectTilesetMetadataWriter *metadata_writer, const InfraConfig *infra_config, gsl::not_null< const UserDiagnostics * > diag, const IncbinDeclarationAppender *incbin_appender, const ProjectTilesetAnimsModifier *tileset_anims_modifier)
Constructs a ProjectPorytilesTilesetManager with required dependencies.
ChainableResult< void > persist_managed_existing(const std::string &tileset_name) const override
Persists managed state for an existing tileset.
ChainableResult< void > remove_wired_anim_code(const std::string &tileset_name, bool is_secondary) const override
Removes wired animation code for a tileset from the project.
ChainableResult< void > wire_anim_code(const std::string &tileset_name, bool is_secondary) const override
Wires animation code for a tileset that already has its manifest persisted.
bool is_porytiles_managed(const std::string &tileset_name) const override
Checks whether a tileset has an tileset-manifest.json file.
Modifies tileset_anims.c to include Porytiles-managed animation code headers.
Stores manifest metadata for Porytiles-managed tilesets.
Abstract class for structured error reporting and diagnostic output.