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

Stores manifest metadata for Porytiles-managed tilesets. More...

#include <tileset_manifest.hpp>

Public Member Functions

 TilesetManifest ()=default
 
 TilesetManifest (std::uint32_t version, std::string tiles, std::string palettes, std::string metatiles, std::string metatile_attributes, std::string callback)
 Constructs a TilesetManifest for an imported tileset with all original field values.
 
std::uint32_t version () const
 Returns the schema version for format migration support.
 
bool imported () const
 Returns whether this tileset was imported from vanilla pokeemerald.
 
const std::string & tiles () const
 Returns the original .tiles field value.
 
const std::string & palettes () const
 Returns the original .palettes field value.
 
const std::string & metatiles () const
 Returns the original .metatiles field value.
 
const std::string & metatile_attributes () const
 Returns the original .metatileAttributes field value.
 
const std::string & callback () const
 Returns the original .callback field value.
 

Static Public Member Functions

static TilesetManifest for_created_tileset (std::uint32_t version)
 Creates a TilesetManifest for a tileset created from scratch by Porytiles.
 

Detailed Description

Stores manifest metadata for Porytiles-managed tilesets.

This class represents the contents of tileset-manifest.json, which is the source of truth for whether a tileset is Porytiles-managed. The presence of this file in porytiles/tilesets/{tileset_name}/ indicates the tileset is managed by Porytiles.

Two cases are supported:

  • Imported tileset (imported()==true): The tileset was imported from vanilla pokeemerald. The original field values from src/data/tilesets/headers.h are stored, enabling the restore-tileset command to revert to vanilla.
  • Created tileset (imported()==false): The tileset was created from scratch by Porytiles. There are no original values to restore, so restore-tileset will error with a clear message.
Invariant
When imported()==true, all original field values (tiles, palettes, etc.) are non-empty
When imported()==false, original field values are empty strings and should not be used

Definition at line 25 of file tileset_manifest.hpp.

Constructor & Destructor Documentation

◆ TilesetManifest() [1/2]

porytiles::TilesetManifest::TilesetManifest ( )
default

◆ TilesetManifest() [2/2]

porytiles::TilesetManifest::TilesetManifest ( std::uint32_t  version,
std::string  tiles,
std::string  palettes,
std::string  metatiles,
std::string  metatile_attributes,
std::string  callback 
)
inline

Constructs a TilesetManifest for an imported tileset with all original field values.

Parameters
versionSchema version for future format migrations
tilesOriginal .tiles field value (e.g., "gTilesetTiles_General")
palettesOriginal .palettes field value (e.g., "gTilesetPalettes_General")
metatilesOriginal .metatiles field value (e.g., "gMetatiles_General")
metatile_attributesOriginal .metatileAttributes field value
callbackOriginal .callback field value (e.g., "InitTilesetAnim_General")
Postcondition
imported() returns true

Definition at line 40 of file tileset_manifest.hpp.

Member Function Documentation

◆ callback()

const std::string & porytiles::TilesetManifest::callback ( ) const
inline

Returns the original .callback field value.

Precondition
imported() should be true for this value to be meaningful

Definition at line 136 of file tileset_manifest.hpp.

◆ for_created_tileset()

static TilesetManifest porytiles::TilesetManifest::for_created_tileset ( std::uint32_t  version)
inlinestatic

Creates a TilesetManifest for a tileset created from scratch by Porytiles.

Use this factory method when creating a new tileset that doesn't originate from vanilla pokeemerald. The resulting object will have imported()==false and empty original field values.

Parameters
versionSchema version for future format migrations
Returns
TilesetManifest with imported()==false

Definition at line 63 of file tileset_manifest.hpp.

◆ imported()

bool porytiles::TilesetManifest::imported ( ) const
inline

Returns whether this tileset was imported from vanilla pokeemerald.

When true, the original field values are meaningful and can be used for restoration. When false, the tileset was created by Porytiles and cannot be restored to vanilla.

Definition at line 86 of file tileset_manifest.hpp.

◆ metatile_attributes()

const std::string & porytiles::TilesetManifest::metatile_attributes ( ) const
inline

Returns the original .metatileAttributes field value.

Precondition
imported() should be true for this value to be meaningful

Definition at line 126 of file tileset_manifest.hpp.

◆ metatiles()

const std::string & porytiles::TilesetManifest::metatiles ( ) const
inline

Returns the original .metatiles field value.

Precondition
imported() should be true for this value to be meaningful

Definition at line 116 of file tileset_manifest.hpp.

◆ palettes()

const std::string & porytiles::TilesetManifest::palettes ( ) const
inline

Returns the original .palettes field value.

Precondition
imported() should be true for this value to be meaningful

Definition at line 106 of file tileset_manifest.hpp.

◆ tiles()

const std::string & porytiles::TilesetManifest::tiles ( ) const
inline

Returns the original .tiles field value.

Precondition
imported() should be true for this value to be meaningful

Definition at line 96 of file tileset_manifest.hpp.

◆ version()

std::uint32_t porytiles::TilesetManifest::version ( ) const
inline

Returns the schema version for format migration support.

Definition at line 74 of file tileset_manifest.hpp.


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