dotzuki-renderer 0.1.1

A general-purpose JRPG renderer built from Game Boy tile rendering principles
Documentation
// Minimal resource loading abstraction for dotzuki-renderer.
// Games provide a ResourceProvider implementation for asset loading.

use crate::tile::TileSet;

/// Trait for loading graphical assets.
///
/// The game-specific implementation handles filesystem access,
/// PNG decoding, and caching.
pub trait ResourceProvider {
    /// Load a tileset from a category directory and filename.
    /// Returns a reference to a cached TileSet.
    fn load_asset(&mut self, category: &str, filename: &str) -> Result<&TileSet, String>;

    /// Load a tileset with 2bpp decoding (for font assets).
    fn load_asset_2bpp(&mut self, category: &str, filename: &str) -> Result<&TileSet, String>;

    /// Load a font tileset.
    fn load_font(&mut self, name: &str) -> Result<&TileSet, String>;
}