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

Use case for creating a new primary Tileset from scratch. More...

#include <create_primary_tileset.hpp>

Public Member Functions

 CreatePrimaryTileset (gsl::not_null< const TilesetCreator * > creator, gsl::not_null< const TilesetCompiler * > compiler, gsl::not_null< const TilesetRepo * > tileset_repo, gsl::not_null< const TilesetMetadataProvider * > metadata_provider, gsl::not_null< const PorytilesTilesetManager * > tileset_manager, gsl::not_null< DomainConfig * > domain_config, gsl::not_null< const AppConfig * > app_config, gsl::not_null< const UserDiagnostics * > diag)
 Constructs a CreatePrimaryTileset use case with the given dependencies.
 
ChainableResult< void > create (const std::string &tileset_name) const
 Creates a new primary Tileset with the given name.
 

Detailed Description

Use case for creating a new primary Tileset from scratch.

This use case creates a brand new Porytiles-managed primary tileset. Unlike import, which converts existing vanilla pokeemerald tilesets, this creates a tileset from nothing with empty assets.

The workflow:

  1. Check if tileset already exists (error if so)
  2. Create blank PorytilesTilesetComponent via TilesetCreator
  3. Create blank PorymapTilesetComponent and wrap in Tileset
  4. Compile (generates minimal valid Porymap assets)
  5. Save via TilesetRepo
  6. Persist managed state with brand_new=true (creates headers.h entry + manifest)

Definition at line 34 of file create_primary_tileset.hpp.

Constructor & Destructor Documentation

◆ CreatePrimaryTileset()

porytiles::CreatePrimaryTileset::CreatePrimaryTileset ( gsl::not_null< const TilesetCreator * >  creator,
gsl::not_null< const TilesetCompiler * >  compiler,
gsl::not_null< const TilesetRepo * >  tileset_repo,
gsl::not_null< const TilesetMetadataProvider * >  metadata_provider,
gsl::not_null< const PorytilesTilesetManager * >  tileset_manager,
gsl::not_null< DomainConfig * >  domain_config,
gsl::not_null< const AppConfig * >  app_config,
gsl::not_null< const UserDiagnostics * >  diag 
)
inline

Constructs a CreatePrimaryTileset use case with the given dependencies.

Parameters
creatorService for creating blank primary PorytilesTilesetComponent
compilerService for compiling PorytilesTilesetComponent to PorymapTilesetComponent
tileset_repoRepository for persisting Tileset aggregates
metadata_providerProvider for checking if tilesets exist
tileset_managerService for persisting managed state and headers.h entries
domain_configConfiguration for domain layer operations
app_configConfiguration for app layer operations
diagUser diagnostics for warnings and errors

Definition at line 48 of file create_primary_tileset.hpp.

Member Function Documentation

◆ create()

ChainableResult< void > porytiles::CreatePrimaryTileset::create ( const std::string &  tileset_name) const

Creates a new primary Tileset with the given name.

Creates a brand-new primary tileset from scratch. The tileset will have:

  • A new entry in src/data/tilesets/headers.h with Porytiles-managed field values
  • Minimal valid Porymap assets (metatiles.bin, metatile_attributes.bin, tiles.png, palettes)
  • A tileset-manifest.json marking it as Porytiles-managed (imported=false)
Parameters
tileset_nameThe name for the new tileset (e.g., "gTileset_MyNewTileset")
Precondition
name must not correspond to an existing tileset in headers.h
Returns
Success or error result with details

Definition at line 16 of file create_primary_tileset.cpp.


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