diff options
author | Nao Pross <naopross@thearcway.org> | 2018-12-22 04:00:45 +0100 |
---|---|---|
committer | Nao Pross <naopross@thearcway.org> | 2018-12-22 04:01:22 +0100 |
commit | da3f74c914afd6529f8b89d2c90b96056c1b5394 (patch) | |
tree | 7af4e9b58a7a1f6289b5059ddff70e4fbccd8408 | |
parent | Skip rendering for blank tiles (value = 0) (diff) | |
download | Subconscious-rs-da3f74c914afd6529f8b89d2c90b96056c1b5394.tar.gz Subconscious-rs-da3f74c914afd6529f8b89d2c90b96056c1b5394.zip |
Move tilesets inside res/maps, add error messages for map assets loading
The resources have been moved as a subdirectory of maps because
Rust-Embed cannot resolve relative path when resources are embedded in
the binary.
-rw-r--r-- | res/maps/demo.tmx | 8 | ||||
-rw-r--r-- | res/maps/tilesets/cliff.png (renamed from res/tilesets/cliff.png) | bin | 96155 -> 96155 bytes | |||
-rw-r--r-- | res/maps/tilesets/ground.png (renamed from res/tilesets/ground.png) | bin | 227339 -> 227339 bytes | |||
-rw-r--r-- | res/maps/tilesets/objects.png (renamed from res/tilesets/objects.png) | bin | 32479 -> 32479 bytes | |||
-rw-r--r-- | res/maps/tilesets/water.png (renamed from res/tilesets/water.png) | bin | 71295 -> 71295 bytes | |||
-rw-r--r-- | src/graphics.rs | 24 |
6 files changed, 24 insertions, 8 deletions
diff --git a/res/maps/demo.tmx b/res/maps/demo.tmx index 0b8a539..cf10ad2 100644 --- a/res/maps/demo.tmx +++ b/res/maps/demo.tmx @@ -1,16 +1,16 @@ <?xml version="1.0" encoding="UTF-8"?> <map version="1.0" tiledversion="1.0.3" orientation="orthogonal" renderorder="right-down" width="12" height="12" tilewidth="32" tileheight="32" nextobjectid="1"> <tileset firstgid="1" name="ground" tilewidth="32" tileheight="32" tilecount="441" columns="21"> - <image source="../tilesets/ground.png" width="672" height="701"/> + <image source="tilesets/ground.png" width="672" height="701"/> </tileset> <tileset firstgid="442" name="cliff" tilewidth="32" tileheight="32" tilecount="240" columns="15"> - <image source="../tilesets/cliff.png" width="503" height="518"/> + <image source="tilesets/cliff.png" width="503" height="518"/> </tileset> <tileset firstgid="682" name="objects" tilewidth="32" tileheight="32" tilecount="84" columns="14"> - <image source="../tilesets/objects.png" width="477" height="219"/> + <image source="tilesets/objects.png" width="477" height="219"/> </tileset> <tileset firstgid="766" name="water" tilewidth="32" tileheight="32" tilecount="81" columns="9"> - <image source="../tilesets/water.png" width="319" height="293"/> + <image source="tilesets/water.png" width="319" height="293"/> </tileset> <layer name="ground" width="12" height="12"> <data encoding="base64" compression="zlib"> diff --git a/res/tilesets/cliff.png b/res/maps/tilesets/cliff.png Binary files differindex 6ab54c2..6ab54c2 100644 --- a/res/tilesets/cliff.png +++ b/res/maps/tilesets/cliff.png diff --git a/res/tilesets/ground.png b/res/maps/tilesets/ground.png Binary files differindex 80ccd33..80ccd33 100644 --- a/res/tilesets/ground.png +++ b/res/maps/tilesets/ground.png diff --git a/res/tilesets/objects.png b/res/maps/tilesets/objects.png Binary files differindex 599c476..599c476 100644 --- a/res/tilesets/objects.png +++ b/res/maps/tilesets/objects.png diff --git a/res/tilesets/water.png b/res/maps/tilesets/water.png Binary files differindex e5c5c73..e5c5c73 100644 --- a/res/tilesets/water.png +++ b/res/maps/tilesets/water.png diff --git a/src/graphics.rs b/src/graphics.rs index 9af03f4..68dfa65 100644 --- a/src/graphics.rs +++ b/src/graphics.rs @@ -93,7 +93,12 @@ impl Graphics { continue; } - let tmx_tileset = state.map.get_tileset_by_gid(tmx_tile).unwrap(); + let tmx_tileset = match state.map.get_tileset_by_gid(tmx_tile) { + Some(tileset) => tileset, + None => { + panic!("Failed to get tileset with get_tileset_by_gid"); + } + }; // load tileset if not loaded yet // TODO: load in a separate thread? @@ -103,8 +108,19 @@ impl Graphics { // load tileset image let tmx_image = &tmx_tileset.images[0]; - let asset = MapAssets::get(&tmx_image.source).unwrap(); - let image = Image::from_memory(asset.as_ref()).unwrap(); + let asset = match MapAssets::get(&tmx_image.source) { + Some(asset) => asset, + None => { + panic!("Failed to get asset: {}", &tmx_image.source); + } + }; + + let image = match Image::from_memory(asset.as_ref()) { + Some(image) => image, + None => { + panic!("Failed load image from asset"); + } + }; // load tiles (textures) let tileset_width = tmx_image.width as u32 / tmx_tileset.tile_width; @@ -135,7 +151,7 @@ impl Graphics { // draw! // TODO: check map render order - let texture = self.textures.get(&tmx_tile).unwrap(); + let texture = &self.textures.get(&tmx_tile).unwrap(); let mut tile_rect = RectangleShape::with_texture(texture); tile_rect.set_size(Vector2f { |