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,
const std::vector<std::string>& commands,
81 const std::string& ai_service,
Rom* rom);
106 Rom* before_rom,
Rom* after_rom);
116 const std::string& path);
124 absl::StatusOr<Tile16Proposal>
LoadProposal(
const std::string& path);
142 const std::string& command,
Rom* rom);
153 const std::string& command,
Rom* rom);
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
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.
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)