yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::cli::ResourceContextBuilder Class Reference

Builds contextual information from ROM resources for AI prompts. More...

#include <resource_context_builder.h>

Collaboration diagram for yaze::cli::ResourceContextBuilder:

Public Member Functions

 ResourceContextBuilder (Rom *rom)
 
absl::StatusOr< std::string > BuildResourceContext ()
 Build a complete resource context string for AI prompts.
 
absl::StatusOr< std::map< std::string, std::string > > GetLabels (const std::string &category)
 Get labels for a specific resource category.
 
absl::StatusOr< std::string > ExportToJson ()
 Export all labels to JSON format.
 

Private Member Functions

std::string ExtractOverworldLabels ()
 Extract overworld map labels.
 
std::string ExtractDungeonLabels ()
 Extract dungeon labels.
 
std::string ExtractEntranceLabels ()
 Extract entrance labels.
 
std::string ExtractRoomLabels ()
 Extract room labels.
 
std::string ExtractSpriteLabels ()
 Extract sprite labels.
 
std::string GetCommonTile16Reference ()
 Add common tile16 reference for AI.
 

Private Attributes

Romrom_
 

Detailed Description

Builds contextual information from ROM resources for AI prompts.

This class extracts user-defined labels from the ROM's ResourceLabelManager and formats them into human-readable context that can be injected into AI prompts. This enables AI to use meaningful names like "eastern_palace" instead of opaque IDs like "0x02".

Example usage: ResourceContextBuilder builder(rom); std::string context = builder.BuildResourceContext().value(); // Context contains formatted labels for all resource types

Definition at line 26 of file resource_context_builder.h.

Constructor & Destructor Documentation

◆ ResourceContextBuilder()

yaze::cli::ResourceContextBuilder::ResourceContextBuilder ( Rom rom)
inlineexplicit

Definition at line 28 of file resource_context_builder.h.

Member Function Documentation

◆ BuildResourceContext()

absl::StatusOr< std::string > yaze::cli::ResourceContextBuilder::BuildResourceContext ( )

Build a complete resource context string for AI prompts.

Extracts all ResourceLabels from the ROM and formats them into a structured text format suitable for AI consumption.

Example output:

=== AVAILABLE RESOURCES ===
Overworld Maps:
- 0: "Light World" (user: "hyrule_overworld")
- 1: "Dark World" (user: "dark_world")
Dungeons:
- 0x00: "Hyrule Castle" (user: "castle")
- 0x02: "Eastern Palace" (user: "east_palace")
Common Tile16s:
- 0x020: Grass
- 0x02E: Tree
- 0x14C: Water (top)
Returns
Formatted resource context string

Definition at line 165 of file resource_context_builder.cc.

References ExtractDungeonLabels(), ExtractEntranceLabels(), ExtractOverworldLabels(), ExtractRoomLabels(), ExtractSpriteLabels(), GetCommonTile16Reference(), and rom_.

◆ GetLabels()

absl::StatusOr< std::map< std::string, std::string > > yaze::cli::ResourceContextBuilder::GetLabels ( const std::string &  category)

Get labels for a specific resource category.

Parameters
categoryResource type ("overworld", "dungeon", "entrance", etc.)
Returns
Map of ID -> label for that category

Definition at line 202 of file resource_context_builder.cc.

References yaze::Rom::is_loaded(), yaze::Rom::resource_label(), and rom_.

Referenced by yaze::cli::handlers::ResourceListCommandHandler::Execute(), and yaze::cli::handlers::ResourceSearchCommandHandler::Execute().

Here is the call graph for this function:

◆ ExportToJson()

absl::StatusOr< std::string > yaze::cli::ResourceContextBuilder::ExportToJson ( )

Export all labels to JSON format.

Creates a structured JSON representation of all resources for potential use by AI services.

Returns
JSON string with all resource labels

Definition at line 228 of file resource_context_builder.cc.

References yaze::Rom::is_loaded(), yaze::Rom::resource_label(), and rom_.

Here is the call graph for this function:

◆ ExtractOverworldLabels()

std::string yaze::cli::ResourceContextBuilder::ExtractOverworldLabels ( )
private

Extract overworld map labels.

Returns formatted string like:

Overworld Maps:
- 0: "Light World" (user: "hyrule_overworld")
- 1: "Dark World" (user: "dark_world")

Definition at line 24 of file resource_context_builder.cc.

References yaze::Rom::is_loaded(), yaze::core::ResourceLabelManager::labels_, yaze::Rom::resource_label(), and rom_.

Referenced by BuildResourceContext().

Here is the call graph for this function:

◆ ExtractDungeonLabels()

std::string yaze::cli::ResourceContextBuilder::ExtractDungeonLabels ( )
private

Extract dungeon labels.

Returns formatted string like:

Dungeons:
- 0x00: "Hyrule Castle" (user: "castle")
- 0x02: "Eastern Palace" (user: "east_palace")

Definition at line 53 of file resource_context_builder.cc.

References yaze::Rom::is_loaded(), yaze::core::ResourceLabelManager::labels_, yaze::Rom::resource_label(), and rom_.

Referenced by BuildResourceContext().

Here is the call graph for this function:

◆ ExtractEntranceLabels()

std::string yaze::cli::ResourceContextBuilder::ExtractEntranceLabels ( )
private

Extract entrance labels.

Returns formatted string like:

Entrances:
- 0x00: "Link's House" (user: "starting_house")
- 0x01: "Sanctuary" (user: "church")

Definition at line 83 of file resource_context_builder.cc.

References yaze::Rom::is_loaded(), yaze::core::ResourceLabelManager::labels_, yaze::Rom::resource_label(), and rom_.

Referenced by BuildResourceContext().

Here is the call graph for this function:

◆ ExtractRoomLabels()

std::string yaze::cli::ResourceContextBuilder::ExtractRoomLabels ( )
private

Extract room labels.

Returns formatted string like:

Rooms:
- 0x00_0x10: "Eastern Palace Boss Room"
- 0x04_0x05: "Desert Palace Treasure Room"

Definition at line 111 of file resource_context_builder.cc.

References yaze::Rom::is_loaded(), yaze::core::ResourceLabelManager::labels_, yaze::Rom::resource_label(), and rom_.

Referenced by BuildResourceContext().

Here is the call graph for this function:

◆ ExtractSpriteLabels()

std::string yaze::cli::ResourceContextBuilder::ExtractSpriteLabels ( )
private

Extract sprite labels.

Returns formatted string like:

Sprites:
- 0x00: "Soldier" (user: "green_soldier")
- 0x01: "Octorok" (user: "red_octorok")

Definition at line 137 of file resource_context_builder.cc.

References yaze::Rom::is_loaded(), yaze::core::ResourceLabelManager::labels_, yaze::Rom::resource_label(), and rom_.

Referenced by BuildResourceContext().

Here is the call graph for this function:

◆ GetCommonTile16Reference()

std::string yaze::cli::ResourceContextBuilder::GetCommonTile16Reference ( )
private

Add common tile16 reference for AI.

Provides a quick reference of common tile16 IDs that AI can use without needing to search through the entire tileset.

Returns formatted string like:

Common Tile16s:
- 0x020: Grass
- 0x022: Dirt
- 0x02E: Tree
- 0x14C: Water (top edge)
- 0x14D: Water (middle)

Definition at line 8 of file resource_context_builder.cc.

Referenced by BuildResourceContext().

Member Data Documentation

◆ rom_


The documentation for this class was generated from the following files: