Under development
Read maps from the Tiled Map Editor into rust. Only json files with ebedded tilesets are supported, use rs-tiled to read xml files.
Inspired by rs-tiled crate.
use std::path::Path;
use tiled_json::parse;
fn main() {
let file = File::open(&Path::new("assets/map.json")).unwrap();
println!("Opened file");
let reader = BufReader::new(file);
let map = parse(reader).unwrap();
println!("{:?}", map);
}
Enable json
feature with --features
.
use amethyst::{
assets::{AssetStorage, Asset, Handle, ProcessableAsset, ProcessingState, JsonFormat},
ecs::{VecStorage, World},
error::Error,
};
use tiled_json::Map;
#[derive(Clone, Debug)]
struct Tilemap(pub Map);
impl Asset for Tilemap {
const NAME: &'static str = "tiled_json::Map";
type Data = Map;
type HandleStorage = VecStorage<Handle<Tilemap>>;
}
impl ProcessableAsset for Tilemap {
fn process(data: Map) -> Result<ProcessingState<Tilemap>, Error> {
Ok(ProcessingState::Loaded(Tilemap { 0: data }))
}
}
fn load_tilemap(world: &mut World) -> Handle<Tilemap> {
let loader = world.read_resource::<Loader>();
let tilemap_store = world.read_resource::<AssetStorage<Tilemap>>();
loader.load("assets/map.json", JsonFormat, (), &tilemap_store)
}
Licenced under MIT.
assets/tilesheet.png by Andre Mari Coppola
- itch.io dassets page: http://toen.itch.io/toens-medieval-strategy
- License - http://creativecommons.org/licenses/by/4.0/