use std::path::Path;
use anyhow::Result;
use game_toolkit_aseprite::SpriteSheet;
use game_toolkit_core::Context;
pub trait LoadAseprite {
fn load_aseprite(&mut self, rel: impl AsRef<Path>) -> Result<SpriteSheet>;
fn load_aseprite_json(
&mut self,
png: impl AsRef<Path>,
json: impl AsRef<Path>,
) -> Result<SpriteSheet>;
}
impl LoadAseprite for Context {
fn load_aseprite(&mut self, rel: impl AsRef<Path>) -> Result<SpriteSheet> {
let rel = rel.as_ref();
let bytes = self.assets.read(rel)?;
SpriteSheet::from_aseprite_bytes(&mut self.gfx, &bytes, &rel.to_string_lossy())
}
fn load_aseprite_json(
&mut self,
png: impl AsRef<Path>,
json: impl AsRef<Path>,
) -> Result<SpriteSheet> {
let png_bytes = self.assets.read(png.as_ref())?;
let json_bytes = self.assets.read(json.as_ref())?;
SpriteSheet::from_aseprite_json_bytes(
&mut self.gfx,
&png_bytes,
&json_bytes,
&png.as_ref().to_string_lossy(),
)
}
}