Porytiles
Loading...
Searching...
No Matches
porytiles::TilesetCommandServices Class Reference

The schema-driven service graph shared by the compile, create, import, and decompile commands. More...

#include <tileset_command_setup.hpp>

Collaboration diagram for porytiles::TilesetCommandServices:
[legend]

Public Member Functions

 TilesetCommandServices (TilesetCommandEnv &env, ResolvedAttributeContext context)
 
 TilesetCommandServices (const TilesetCommandServices &)=delete
 
TilesetCommandServicesoperator= (const TilesetCommandServices &)=delete
 
 TilesetCommandServices (TilesetCommandServices &&)=delete
 
TilesetCommandServicesoperator= (TilesetCommandServices &&)=delete
 

Public Attributes

std::unique_ptr< TilePrintertile_printer
 
std::unique_ptr< PalettePrinterpalette_printer
 
PngRgbaImageLoader png_rgba_loader {}
 
PngIndexedImageLoader png_indexed_loader {}
 
PngRgbaImageSaver png_rgba_saver {}
 
PngIndexedImageSaver png_indexed_saver {}
 
JascPaletteLoader jasc_loader
 
JascPaletteSaver jasc_saver
 
AnimJsonParser anim_json_parser
 
AnimCodeParser anim_code_parser
 
AnimCodeGenerator anim_code_generator {}
 
ProjectTilesetMetadataProvider metadata_provider
 
ProjectLayoutMetadataProvider layout_metadata_provider
 
ProjectTilesetMetadataWriter metadata_writer
 
IncbinDeclarationAppender incbin_appender
 
ProjectTilesetAnimsModifier tileset_anims_modifier
 
LoadedMetatileAttributeSchema resolved
 
ProviderMap provider_map
 
ProjectPorytilesTilesetManager tileset_manager
 
AttributesCsvLoader attributes_csv_loader
 
ProjectTilesetArtifactKeyProvider key_provider
 
ProjectTilesetArtifactReader artifact_reader
 
ProjectTilesetArtifactWriter artifact_writer
 
ProjectArtifactChecksumProvider checksum_provider
 
TilesetRepo repo
 
TilesetCompiler compiler
 

Detailed Description

The schema-driven service graph shared by the compile, create, import, and decompile commands.

Consumes the resolved attribute context (the attribute layout is a project-global property, so every tileset a command touches decodes with the same schema) and wires the services that consume it: the attributes CSV loader, the artifact reader/writer, the tileset repo, the tileset manager, and the compiler. This is the single home for that wiring so the commands cannot drift apart.

Declaration order is dependency order: the resolved schema and its provider map come before the artifact reader/writer, manager, and compiler, which hold pointers into them. That makes the graph self-pinning: not copyable, not movable, constructed once on the stack after the env.

Construction cannot fail: the fallible schema resolution happens in resolve_attribute_context, whose error the command wraps with its own context before this graph is built.

Definition at line 224 of file tileset_command_setup.hpp.

Constructor & Destructor Documentation

◆ TilesetCommandServices() [1/3]

porytiles::TilesetCommandServices::TilesetCommandServices ( TilesetCommandEnv env,
ResolvedAttributeContext  context 
)
inline

Definition at line 226 of file tileset_command_setup.hpp.

◆ TilesetCommandServices() [2/3]

porytiles::TilesetCommandServices::TilesetCommandServices ( const TilesetCommandServices )
delete

◆ TilesetCommandServices() [3/3]

porytiles::TilesetCommandServices::TilesetCommandServices ( TilesetCommandServices &&  )
delete

Member Function Documentation

◆ operator=() [1/2]

TilesetCommandServices & porytiles::TilesetCommandServices::operator= ( const TilesetCommandServices )
delete

◆ operator=() [2/2]

TilesetCommandServices & porytiles::TilesetCommandServices::operator= ( TilesetCommandServices &&  )
delete

Member Data Documentation

◆ anim_code_generator

AnimCodeGenerator porytiles::TilesetCommandServices::anim_code_generator {}

Definition at line 304 of file tileset_command_setup.hpp.

◆ anim_code_parser

AnimCodeParser porytiles::TilesetCommandServices::anim_code_parser

Definition at line 303 of file tileset_command_setup.hpp.

◆ anim_json_parser

AnimJsonParser porytiles::TilesetCommandServices::anim_json_parser

Definition at line 302 of file tileset_command_setup.hpp.

◆ artifact_reader

ProjectTilesetArtifactReader porytiles::TilesetCommandServices::artifact_reader

Definition at line 317 of file tileset_command_setup.hpp.

◆ artifact_writer

ProjectTilesetArtifactWriter porytiles::TilesetCommandServices::artifact_writer

Definition at line 318 of file tileset_command_setup.hpp.

◆ attributes_csv_loader

AttributesCsvLoader porytiles::TilesetCommandServices::attributes_csv_loader

Definition at line 315 of file tileset_command_setup.hpp.

◆ checksum_provider

ProjectArtifactChecksumProvider porytiles::TilesetCommandServices::checksum_provider

Definition at line 319 of file tileset_command_setup.hpp.

◆ compiler

TilesetCompiler porytiles::TilesetCommandServices::compiler

Definition at line 321 of file tileset_command_setup.hpp.

◆ incbin_appender

IncbinDeclarationAppender porytiles::TilesetCommandServices::incbin_appender

Definition at line 308 of file tileset_command_setup.hpp.

◆ jasc_loader

JascPaletteLoader porytiles::TilesetCommandServices::jasc_loader

Definition at line 300 of file tileset_command_setup.hpp.

◆ jasc_saver

JascPaletteSaver porytiles::TilesetCommandServices::jasc_saver

Definition at line 301 of file tileset_command_setup.hpp.

◆ key_provider

ProjectTilesetArtifactKeyProvider porytiles::TilesetCommandServices::key_provider

Definition at line 316 of file tileset_command_setup.hpp.

◆ layout_metadata_provider

ProjectLayoutMetadataProvider porytiles::TilesetCommandServices::layout_metadata_provider

Definition at line 306 of file tileset_command_setup.hpp.

◆ metadata_provider

ProjectTilesetMetadataProvider porytiles::TilesetCommandServices::metadata_provider

Definition at line 305 of file tileset_command_setup.hpp.

◆ metadata_writer

ProjectTilesetMetadataWriter porytiles::TilesetCommandServices::metadata_writer

Definition at line 307 of file tileset_command_setup.hpp.

◆ palette_printer

std::unique_ptr<PalettePrinter> porytiles::TilesetCommandServices::palette_printer

Definition at line 295 of file tileset_command_setup.hpp.

◆ png_indexed_loader

PngIndexedImageLoader porytiles::TilesetCommandServices::png_indexed_loader {}

Definition at line 297 of file tileset_command_setup.hpp.

◆ png_indexed_saver

PngIndexedImageSaver porytiles::TilesetCommandServices::png_indexed_saver {}

Definition at line 299 of file tileset_command_setup.hpp.

◆ png_rgba_loader

PngRgbaImageLoader porytiles::TilesetCommandServices::png_rgba_loader {}

Definition at line 296 of file tileset_command_setup.hpp.

◆ png_rgba_saver

PngRgbaImageSaver porytiles::TilesetCommandServices::png_rgba_saver {}

Definition at line 298 of file tileset_command_setup.hpp.

◆ provider_map

ProviderMap porytiles::TilesetCommandServices::provider_map

Definition at line 313 of file tileset_command_setup.hpp.

◆ repo

TilesetRepo porytiles::TilesetCommandServices::repo

Definition at line 320 of file tileset_command_setup.hpp.

◆ resolved

LoadedMetatileAttributeSchema porytiles::TilesetCommandServices::resolved

Definition at line 312 of file tileset_command_setup.hpp.

◆ tile_printer

std::unique_ptr<TilePrinter> porytiles::TilesetCommandServices::tile_printer

Definition at line 294 of file tileset_command_setup.hpp.

◆ tileset_anims_modifier

ProjectTilesetAnimsModifier porytiles::TilesetCommandServices::tileset_anims_modifier

Definition at line 309 of file tileset_command_setup.hpp.

◆ tileset_manager

ProjectPorytilesTilesetManager porytiles::TilesetCommandServices::tileset_manager

Definition at line 314 of file tileset_command_setup.hpp.


The documentation for this class was generated from the following file: