3#include "absl/strings/numbers.h"
4#include "absl/strings/str_format.h"
12 auto tile_id_str = parser.
GetString(
"tile").value();
13 auto x_str = parser.
GetString(
"x").value();
14 auto y_str = parser.
GetString(
"y").value();
17 if (!absl::SimpleHexAtoi(tile_id_str, &tile_id) ||
18 !absl::SimpleAtoi(x_str, &x) ||
19 !absl::SimpleAtoi(y_str, &y)) {
20 return absl::InvalidArgumentError(
21 "Invalid tile ID or coordinate format.");
25 formatter.
AddField(
"tile_id", absl::StrFormat(
"0x%03X", tile_id));
28 formatter.
AddField(
"status",
"GUI automation requires YAZE_WITH_GRPC=ON");
29 formatter.
AddField(
"note",
"Connect to running YAZE instance to execute");
32 return absl::OkStatus();
37 auto target = parser.
GetString(
"target").value();
38 auto click_type = parser.
GetString(
"click-type").value_or(
"left");
41 formatter.
AddField(
"target", target);
42 formatter.
AddField(
"click_type", click_type);
43 formatter.
AddField(
"status",
"GUI automation requires YAZE_WITH_GRPC=ON");
44 formatter.
AddField(
"note",
"Connect to running YAZE instance to execute");
47 return absl::OkStatus();
52 auto window = parser.
GetString(
"window").value_or(
"Overworld");
53 auto type = parser.
GetString(
"type").value_or(
"all");
56 formatter.
AddField(
"window", window);
57 formatter.
AddField(
"type_filter", type);
58 formatter.
AddField(
"total_widgets", 4);
59 formatter.
AddField(
"status",
"GUI automation requires YAZE_WITH_GRPC=ON");
60 formatter.
AddField(
"note",
"Connect to running YAZE instance for live data");
65 formatter.
AddArrayItem(
"ToolbarAction:Toggle Tile16 Selector - button");
66 formatter.
AddArrayItem(
"ToolbarAction:Open Tile16 Editor - button");
70 return absl::OkStatus();
75 auto region = parser.
GetString(
"region").value_or(
"full");
76 auto image_format = parser.
GetString(
"format").value_or(
"PNG");
79 formatter.
AddField(
"region", region);
80 formatter.
AddField(
"image_format", image_format);
81 formatter.
AddField(
"output_path",
"/tmp/yaze_screenshot.png");
82 formatter.
AddField(
"status",
"GUI automation requires YAZE_WITH_GRPC=ON");
83 formatter.
AddField(
"note",
"Connect to running YAZE instance to execute");
86 return absl::OkStatus();
The Rom class is used to load, save, and modify Rom data.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
Utility for parsing common CLI argument patterns.
std::optional< std::string > GetString(const std::string &name) const
Parse a named argument (e.g., –format=json or –format json)
Main namespace for the application.