1#ifndef YAZE_CLI_SERVICE_TILE16_PROPOSAL_GENERATOR_H_
2#define YAZE_CLI_SERVICE_TILE16_PROPOSAL_GENERATOR_H_
8#include "absl/status/status.h"
9#include "absl/status/statusor.h"
53 std::string
ToJson()
const;
54 static absl::StatusOr<Tile16Proposal>
FromJson(
const std::string& json);
80 const std::string& prompt,
81 const std::vector<std::string>& commands,
82 const std::string& ai_service,
120 const std::string& path);
128 absl::StatusOr<Tile16Proposal>
LoadProposal(
const std::string& path);
137 const std::string& command,
146 const std::string& command,
156 const std::string& command,
The Rom class is used to load, save, and modify Rom data.
Generates and manages tile16 editing proposals.
std::string GenerateProposalId() const
Generate a unique proposal ID.
absl::StatusOr< Tile16Proposal > GenerateFromCommands(const std::string &prompt, const std::vector< std::string > &commands, const std::string &ai_service, Rom *rom)
Generate a tile16 proposal from an AI-generated command list.
absl::StatusOr< Tile16Proposal > LoadProposal(const std::string &path)
Load a proposal from a JSON file.
absl::StatusOr< std::vector< Tile16Change > > ParseReplaceTileCommand(const std::string &command, Rom *rom)
Parse a "overworld replace-tile" command into multiple Tile16Changes.
absl::StatusOr< gfx::Bitmap > GenerateDiff(const Tile16Proposal &proposal, Rom *before_rom, Rom *after_rom)
Generate a visual diff bitmap for a proposal.
absl::Status ApplyProposal(const Tile16Proposal &proposal, Rom *rom)
Apply a proposal to a ROM (typically a sandbox).
absl::Status SaveProposal(const Tile16Proposal &proposal, const std::string &path)
Save a proposal to a JSON file for later review.
absl::StatusOr< std::vector< Tile16Change > > ParseSetAreaCommand(const std::string &command, Rom *rom)
Parse a "overworld set-area" command into multiple Tile16Changes.
friend class Tile16ProposalGeneratorTest
Tile16ProposalGenerator()=default
absl::StatusOr< Tile16Change > ParseSetTileCommand(const std::string &command, Rom *rom)
Parse a single "overworld set-tile" command into a Tile16Change.
Main namespace for the application.
Represents a single tile16 change in a proposal.
std::string ToString() const
Represents a proposal for tile16 edits on the overworld.
std::chrono::system_clock::time_point created_at
std::vector< Tile16Change > changes
std::string ToJson() const
static absl::StatusOr< Tile16Proposal > FromJson(const std::string &json)