39 return "column_absent";
41 return "column_present";
43 panic(
"unhandled PriorPinColumnState value");
60 [[nodiscard]] std::optional<MetatileAttribute>
get_attribute(std::size_t metatile_id)
const;
76 [[nodiscard]]
const std::optional<Palette<Rgba32, palette::max_size>> &
palette_at(std::size_t palette_index)
const;
86 return anims_.contains(
name);
91 return anims_.at(
name);
126 return metatile_attributes_;
129 [[nodiscard]]
const std::array<std::optional<Palette<Rgba32, palette::max_size>>,
palette::num_palettes> &
135 [[nodiscard]]
const std::map<std::string, Animation<Rgba32>> &
anims()
const
140 [[nodiscard]] std::map<std::string, Animation<Rgba32>> &
anims()
147 return primary_anim_overrides_;
152 primary_anim_overrides_ = std::move(overrides);
159 std::map<std::size_t, MetatileAttribute> metatile_attributes_;
160 std::map<FieldRole, PriorPinColumnState> prior_pin_column_states_;
162 std::map<std::string, Animation<Rgba32>> anims_;
163 std::map<std::string, std::vector<AnimOverrideEntry>> primary_anim_overrides_;
A complete tileset animation with name, configuration, and frame data.
A result type that maintains a chainable sequence of errors for debugging and error reporting.
A template for two-dimensional images with arbitrarily typed pixel values.
A generic palette container for colors that support transparency checking.
void top(const Image< Rgba32 > &top)
std::map< std::string, Animation< Rgba32 > > & anims()
const std::optional< Palette< Rgba32, palette::max_size > > & palette_at(std::size_t palette_index) const
const Image< Rgba32 > & bottom() const
const Animation< Rgba32 > & anim_for_name(const std::string &name) const
void bottom(const Image< Rgba32 > &bottom)
void set_palette(std::size_t palette_index, Palette< Rgba32, palette::max_size > palette)
std::optional< MetatileAttribute > get_attribute(std::size_t metatile_id) const
const Image< Rgba32 > & middle() const
PriorPinColumnState prior_pin_column_state(FieldRole role) const
Returns the recorded prior pin-column state for a role, or no_csv when none was recorded.
const std::map< std::string, Animation< Rgba32 > > & anims() const
const std::map< std::size_t, MetatileAttribute > & metatile_attributes() const
ChainableResult< LayerMode > detect_layer_mode(const Rgba32 &extrinsic) const
const Image< Rgba32 > & top() const
void middle(const Image< Rgba32 > &middle)
void primary_anim_overrides(std::map< std::string, std::vector< AnimOverrideEntry > > overrides)
PorytilesTilesetComponent()=default
void insert_attribute(std::size_t metatile_id, MetatileAttribute attribute)
Insert a MetatileAttribute to the end of the attribute vector.
bool has_anim(const std::string &name) const
const std::array< std::optional< Palette< Rgba32, palette::max_size > >, palette::num_palettes > & palettes() const
void add_anim(Animation< Rgba32 > anim)
const std::map< std::string, std::vector< AnimOverrideEntry > > & primary_anim_overrides() const
Represents a 32-bit RGBA color.
constexpr std::size_t num_palettes
void panic(const StringViewSourceLoc &s)
Unconditionally terminates the program with a panic message.
PriorPinColumnState
What an attributes.csv (if any) said about a role's pin column when this component was loaded.
FieldRole
Semantic roles a schema field can carry beyond holding a plain per-metatile value.
std::string to_string(const PrimaryPairingMode m)
Converts a PrimaryPairingMode to its canonical string representation.