Porytiles
Loading...
Searching...
No Matches
project_tileset_metadata_writer.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <filesystem>
4#include <map>
5#include <string>
6
7#include "gsl/pointers"
8
11
12namespace porytiles {
13
26 public:
27 ProjectTilesetMetadataWriter(std::filesystem::path project_root, gsl::not_null<const TextFormatter *> format);
28
42 [[nodiscard]] ChainableResult<void>
43 update_callback(const std::string &tileset_name, const std::string &new_callback_value) const;
44
59 [[nodiscard]] ChainableResult<void>
60 update_fields(const std::string &tileset_name, const std::map<std::string, std::string> &field_updates) const;
61
77 [[nodiscard]] ChainableResult<void> update_to_porytiles_managed(const std::string &tileset_name) const;
78
106 [[nodiscard]] ChainableResult<void> create_tileset_struct(const std::string &tileset_name, bool is_secondary) const;
107
108 private:
109 std::filesystem::path project_root_;
110 const TextFormatter *format_;
111};
112
113} // namespace porytiles
A result type that maintains a chainable sequence of errors for debugging and error reporting.
Provides surgical update capability for tileset metadata in headers.h files.
ChainableResult< void > create_tileset_struct(const std::string &tileset_name, bool is_secondary) const
Creates a new tileset struct and appends it to headers.h.
ChainableResult< void > update_to_porytiles_managed(const std::string &tileset_name) const
Updates asset fields to Porytiles-managed values.
ChainableResult< void > update_callback(const std::string &tileset_name, const std::string &new_callback_value) const
Updates the .callback field for a specific tileset.
ChainableResult< void > update_fields(const std::string &tileset_name, const std::map< std::string, std::string > &field_updates) const
Updates multiple fields for a specific tileset in headers.h.
Abstract base class for applying text styling with context-aware formatting.