Giter Club home page Giter Club logo

rs-tiled's Introduction

rs-tiled

tiled = "0.11.2"

Rust Crates.io Docs Status dependency status

A crate for reading TMX (map) and TSX (tileset) files from the Tiled Map Editor into Rust. It provides a huge set of features as well as a strong wrapper over internal features such as GIDs.

Documentation is available on docs.rs.

Code contributions are welcome as are bug reports, documentation, suggestions and criticism.

The minimum supported TMX version is 0.13.

Example

use tiled::Loader;

fn main() {
    let mut loader = Loader::new();
    let map = loader.load_tmx_map("assets/tiled_base64_zlib.tmx").unwrap();
    println!("{:?}", map);
    println!("{:?}", map.tilesets()[0].get_tile(0).unwrap().probability);
    
    let tileset = loader.load_tsx_tileset("assets/tilesheet.tsx").unwrap();
    assert_eq!(*map.tilesets()[0], tileset);
}

WASM

The crate supports WASM, but since it does not currently support asynchronous loading, there are some gotchas.

  • First, to make it work on any WASM target, enable the wasm feature, like so:
[dependencies]
# ...
tiled = { version = ".....", features = ["wasm"] }
  • Second, since you cannot use the filesystem as normally on the web, you cannot use FilesystemResourceReader. As such, you'll need to implement your own ResourceReader. This is a pretty simple task, as you just need to return anything that is Readable when given a path, e.g.:
use std::io::Cursor;

struct MyReader;

impl tiled::ResourceReader for MyReader {
    type Resource = Cursor<&'static [u8]>;
    type Error = std::io::Error;

    // really dumb example implementation that just keeps resources in memory
    fn read_from(&mut self, path: &std::path::Path) -> std::result::Result<Self::Resource, Self::Error> {
        if path == std::path::Path::new("my_map.tmx") {
            Ok(Cursor::new(include_bytes!("../assets/tiled_xml.tmx")))
        } else {
            Err(std::io::Error::new(std::io::ErrorKind::NotFound, "file not found"))
        }
    }
}

Check the ResourceReader docs for more information.

Licences

assets/tilesheet.png by Buch

Licenced under MIT

rs-tiled's People

Contributors

aep avatar afonso360 avatar alec-deason avatar aleokdev avatar anti-alias avatar axelmagn avatar barthap avatar bjorn avatar blockcat avatar connicpu avatar dmtaub avatar felixmcfelix avatar frizi avatar guodman avatar issotm avatar jengamon avatar jonil avatar kevinbalz avatar martinlindhe avatar mattyhall avatar mbstavola avatar mystal avatar nicoxxl avatar nnubes256 avatar pieking1215 avatar rsaarelm avatar siegelord avatar sinistersnare avatar tatref avatar tatrix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

rs-tiled's Issues

Tilesets don't contain properties?

In addition to terrain, it appears that tiles on tilesets can have properties, like so:

 <tileset firstgid="1" name="terrain_small" tilewidth="16" tileheight="16" tilecount="1024" columns="32">
  <image source="terrain_small.png" width="512" height="512"/>
  <tile id="960">
   <properties>
    <property name="collide" type="bool" value="true"/>
   </properties>
  </tile>
 </tileset>

However, this crate does not appear to store those anywhere. Might make a PR if you're interested.

WASM external tilesets

Hello,

how can I use external tilesets with WASM? The file API is not implemented for the WASM target. Therefore we have to deal with URLs in the internet.

Ideally I would like an API like

let map = parse_with_url(reader, Url::new("https://directory/tilemaps/")).unwrap();

If this is not possible I could make this work the following way

let tilesets = get_external_tilesets(reader).unwrap();
//request tilesets by url via Javascript, store them in my_external_tilesets, then enter WASM again
let map = parse_with_external_tilesets(reader, my_external_tilesets).unwrap();

Thanks

Options for more easily opening a map with external files from a special source

The problem I'm currently running into is that in ggez, opening files from resources is done through a special Filesystem type, which doesn't give the full path of the map file. I want to provide a way for rs-tiled to find the tilesets using this filesystem type, rather than manually finding the full path of the map file and passing that.

Add tests for external asset sources

After seeing all the complex code related to paths, there's bound to be an error somewhere. We should check if parsing tileset/image/etc references in nested directories as well as parent directories works correctly.

Objects x/y/width/height should not be of type i32

The current Object enum contains the different kind of Objects, but their position and size values contain i32's (see here). Looking at some generated code from the tiled map editor, I am getting floating point numbers, which is not making me happy :(

I would say it should take f32, and am probably gonna make a PR tomorrow, but wanted to get some input otherwise.

Layering information between different types of layers can't be used

Tiled lets you layer different types of layers in whatever way you want:

This is useful to for example define in what layer of a map the enemies are, so you can have tiles that are rendered above enemies. You can also have different layers of enemies (flying enemies) or effects (moving cloud, flying car entities).

This library however doesn't keep track of that information, the different layer types are sorted into their own vectors:

It would be better to have one single list of layers instead, with every layer entry being an enum that defines what type of layer it is, or a separate list that defines the full layering.

Extra validations for "Image collection tileset"

Each tileset in Tiled is either "Spritesheet tilesets" โ€“ 1 Image : 1 Tileset, or an "Image collection tileset" โ€“ 1 Image : 1 Tile.

Source: mapeditor/tiled#2117

Currently, a Tile has a collection of Images:

pub struct Tile {
    pub id: u32,
    pub images: Vec<Image>,

I believe, it should be Option<Image>, and that Parser should validate this constraint.

CHANGELOG.md outdated

Just observed that the CHANGELOG.md is lagging behind (0.9.2 vs 0.9.5), not sure what has changed though.

/Per

Amethyst Integration

Hi, I'm working on a game using the amethyst game engine and I'm planning on using this lib to do the map. It seems like it might be something useful to push back up stream so I wanted to create an issue to see if you wanted such a feature to get merged into this or a companion crate, and if so if you have any input on how you think it should be designed.

I'm not exactly an expert with this library or amethyst or game development in general but my initial idea is to have a function that takes a tiled::Map and either returns an amethyst::renderer::SpriteSheet or output serialized data (possibly writing it to a file) that matches https://www.amethyst.rs/doc/latest/doc/amethyst_renderer/struct.SpriteSheetFormat.html.

The first option seems more straightforward and efficient but it doesn't match the examples which are always loading sprite-sheets from files and it creates a common dependency between rs-tiled and part of amethyst, though it can be conditionally compiled with a feature. I'm not really sure which one is best.

The function would also need to return something like a Vec<(Transform, SpriteRender)> which can be easily iterated over and added to the world as entities.

If I'm way off base on this just let me know :)

Add a rendering example

It would be cool to have an opinionated rendering example. I thing piston is a good choice for this.

Better / More examples

The only example currently has no notion about how to use the library. There should be a more involved example available that doesn't necessarily use a renderer (Such as #133) but still uses most, if not all, of the functionality present in the library.

Add benchmarks

Add benchmarks to the project for loading maps, getting tiles, enumerating layers, etc.

License

Could you please pick a license for the project and add it to the repo? Thanks!

No support for infinite maps?

Infinite maps are stored as fixed-size chunks in the map file, in the data section. When an infinite map is loaded with this library, the Map object that results will have the correct width and height, but will only have the first chunk loaded.

Say I have a 32x32 infinite map with only one layer, chunked into 16x16 chunks, and my program attempts to load it with this library. The map will show up as a 32x32 map, but in the map's layers[0], there will be only the first 16x16 chunk that is listed in the map file. No other chunks are loaded.

While an obvious and easy workaround is simply to make the map finite in size, that can be an issue in, for example, the early stages of level design, when you're not even sure how big your map is going to be. Supporting infinite maps would allow the design and testing process to be much simpler.

Are there any plans to support infinite maps in the future?

README is outdated

The README is outdated:

  • It refers to 0.9.3 as the latest version.
  • The http://blog-buch.rhcloud.com/ link is currently dead.
  • The build badge is invalid now (There's no longer CI set up).
  • The "Things missing" list could be updated.

Support JSON format

Support the Tiled JSON format as well, and add crate features for both XML and JSON loading, default to one of them, and mention it in docs/the README.

Have layer common data in a single struct

Pack all common data from all types of layers in a single struct and specialize between different layer types (e.g. group, image, tile) with an enum. This will allow to have all map layers in a single member and remove the layer_index member.

rs-tiled assumes the presence of newlines in a csv data section

Hello,
this issue was originally posted here. You can find more details and examples there:
StarArawn/bevy_tiled#48

TLDR version: ldtk exports tiled maps without newlines, which causes bevy_tiled to panic, because it relies on rs-tiled, which apparently relies on newlines. However, since Tiled is able to import tiled-maps exported by ldtk, rs-tiled should be able to import them as well.

Add path to Tileset

I want to use multiple Maps with external tile sets. I have two issues:

  • I want to manage the tilesets based on their path and avoid loading them multiple times.
  • I want to resolve the location of the images used in the tileset, this is not possible, as the paths specified are relative and I don't know from the API, where the external tileset is located.

Both these issues could be solved by adding a path field to Tileset.

Also, Image::source would benefit from being a path that is automatically resolved while parsing.

tileset wrongly parsed, repeating tile data

Hello,

there is a bug in recent version of rs-tiled. Last known good version is tiled ="0.7.4". Everything after is broken.

The following code does not work as intended:

fn main() {
	use tiled::parse;
	use std::fs::File;
	use std::io::BufReader;
	use std::path::Path;
	let file = File::open(&Path::new("rs-tiled.tmx")).unwrap();
	let reader = BufReader::new(file);
	let tilemap = parse(reader).unwrap();

	for tileset in tilemap.tilesets {
		for tile in tileset.tiles {
			println!("tile id repeats again? {:?}", tile.id);
		}
	}

}

it prints

tile id repeats again? 0
tile id repeats again? 1
tile id repeats again? 0
tile id repeats again? 1
tile id repeats again? 0
tile id repeats again? 1
tile id repeats again? 0
tile id repeats again? 1
tile id repeats again? 0
tile id repeats again? 1
tile id repeats again? 0
tile id repeats again? 1
...
ile id repeats again? 16
tile id repeats again? 17
tile id repeats again? 16
tile id repeats again? 17
tile id repeats again? 16
tile id repeats again? 17
...

so there are missing tiles 2..15 and so on...

rs-tiled.tmx

<?xml version="1.0" encoding="UTF-8"?>
<map version="1.2" tiledversion="1.2.5" orientation="orthogonal" renderorder="right-down" width="4" height="4" tilewidth="32" tileheight="32" infinite="0" nextlayerid="63" nextobjectid="320">
 <tileset firstgid="1" name="tuxmon-sample-32px" tilewidth="32" tileheight="32" spacing="2" margin="1" tilecount="720" columns="24">
  <grid orientation="orthogonal" width="16" height="16"/>
  <image source="tuxmon-sample-32px.png" width="816" height="1020"/>
  <terraintypes>
   <terrain name="Path" tile="173"/>
   <terrain name="Grass" tile="125"/>
  </terraintypes>
  <tile id="0">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="1">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="2">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="3">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="4">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="5">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="6">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="7">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="8">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="9">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="10">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="11">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="12">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="13">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="14">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="15">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="16">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="17">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="18">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="19">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="20">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="21">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="22">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="23">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="24">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="25">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="26">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="27">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="28">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="29">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="30">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="31">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="32">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="33">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="34">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="35">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="36">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="37">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="38">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="39">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="40">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="41">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="42">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="43">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="44">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="45">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="46">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="47">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="48">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="49">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="50">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="51">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="52">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="53">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="54">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="55">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="56">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="57">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="58">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="59">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="60">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="61">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="62">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="63">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="64">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="65">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="66">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="67">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="68">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="69">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="70">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="71">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="72">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="73">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="74">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="75">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="76">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="77">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="78">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="79">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="80">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="81">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="82">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="83">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="84">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="85">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="86">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="87">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="88">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="89">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="90">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="91">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="92">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="93">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="94">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="95">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="96">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="97">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="98">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="99">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="100">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="101">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="102">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="103">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="104">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="105">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="106">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="107">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="108">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="109">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="110">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="111">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="112">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="113">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="114">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="115">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="116">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="117">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="118">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="119">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="120">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="121">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="122">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="123">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="124">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="125" terrain="1,1,1,1">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="126">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="127">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="128">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="129">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="130">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="131">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="132">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="133">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="134">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="135">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="136">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="137">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="138">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="139">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="140">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="141">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="142">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="143">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="144">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="145">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="146">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="147">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="148" terrain="1,1,1,0">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="149" terrain="1,1,0,0">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="150" terrain="1,1,0,1">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="151">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="152">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="153">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="154">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="155">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="156">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="157">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="158">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="159">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="160">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="161">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="162">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="163">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="164">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="165">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="166">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="167">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="168">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="169">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="170" terrain="0,0,0,1">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="171" terrain="0,0,1,0">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="172" terrain="1,0,1,0">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="173" terrain="0,0,0,0">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="174" terrain="0,1,0,1">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="175">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="176">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="177">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="178">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="179">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="180">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="181">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="182">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="183">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="184">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="185">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="186">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="187">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="188">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="189">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="190">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="191">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="192">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="193">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="194" terrain="0,1,0,0">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="195" terrain="1,0,0,0">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="196" terrain="1,0,1,1">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="197" terrain="0,0,1,1">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="198" terrain="0,1,1,1">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="199">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="200">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="201">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="202">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="203">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="204">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="205">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="206">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="207">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="208">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="209">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="210">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="211">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="212">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="213">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="214">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="215">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="216">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="217">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="218">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="219">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="220">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="221">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="222">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="223">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="224">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="225">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="226">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="227">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="228">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="229">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="230">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="231">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="232">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="233">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="234">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="235">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="236">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="237">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="238">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="239">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="240">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="241">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="242">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="243">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="244">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="245">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="246">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="247">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="248">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="249">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="250">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="251">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="252">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="253">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="254">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="255">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="256">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="257">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="258">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="259">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="260">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="261">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="262">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="263">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="264">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="265">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="266">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="267">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="268">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="269">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="270">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="271">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="272">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="273">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="274">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="275">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="276">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="277">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="278">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="279">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="280">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="281">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="282">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="283">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="284">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="285">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="286">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="287">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="288">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="289">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="290">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="291">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="292">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="293">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="294">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="295">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="296">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="297">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="298">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="299">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="300">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="301">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="302">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="303">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="304">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="305">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="306">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="307">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="308">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="309">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="310">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="311">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="312">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="313">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="314">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="315">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="316">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="317">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="318">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="319">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="320">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="321">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="322">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="323">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="324">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="325">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="326">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="327">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="328">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="329">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="330">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="331">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="332">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="333">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="334">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="335">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="336">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="337">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="338">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="339">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="340">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="341">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="342">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="343">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="344">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="345">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="346">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="347">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="348">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="349">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="350">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="351">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="352">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="353">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="354">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="355">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="356">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="357">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="358">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="359">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="360">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="361">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="362">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="363">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="364">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="365">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="366">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="367">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="368">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="369">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="370">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="371">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="372">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="373">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="374">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="375">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="376">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="377">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="378">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="379">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="380">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="381">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="382">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="383">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="384">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="385">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="386">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="387">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="388">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="389">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="390">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="391">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="392">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="393">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="394">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="395">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="396">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="397">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="398">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="399">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="400">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="401">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="402">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="403">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="404">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="405">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="406">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="407">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="408">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="409">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="410">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="411">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="412">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="413">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="414">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="415">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="416">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="417">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="418">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="419">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="420">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="421">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="422">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="423">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="424">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="425">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="426">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="427">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="428">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="429">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="430">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="431">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="432">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="433">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="434">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="435">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="436">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="437">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="438">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="439">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="440">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="441">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="442">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="443">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="444">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="445">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="446">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="447">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="448">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="449">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="450">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="451">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="452">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="453">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="454">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="455">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="456">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="457">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="458">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="459">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="460">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="461">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="462">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="463">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="464">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="465">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="466">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="467">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="468">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="469">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="470">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="471">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="472">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="473">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="474">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="475">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="476">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="477">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="478">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="479">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="480">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="481">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="482">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="483">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="484">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="485">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="486">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="487">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="488">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="489">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="490">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="491">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="492">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="493">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="494">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="495">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="496">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="497">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="498">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="499">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="500">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="501">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="502">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="503">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="504">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="505">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="506">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="507">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="508">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="509">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="510">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="511">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="512">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="513">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="514">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="515">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="516">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="517">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="518">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="519">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="520">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="521">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="522">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="523">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="524">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="525">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="526">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="527">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="528">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="529">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="530">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="531">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="532">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="533">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="534">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="535">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="536">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="537">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="538">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="539">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="540">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="541">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="542">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="543">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="544">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="545">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="546">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="547">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="548">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="549">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="550">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="551">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="552">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="553">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="554">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="555">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="556">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="557">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="558">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="559">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="560">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="561">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="562">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="563">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="564">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="565">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="566">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="567">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="568">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="569">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="570">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="571">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="572">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="573">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="574">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="575">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="576">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="577">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="578">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="579">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="580">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="581">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="582">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="583">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="584">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="585">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="586">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="587">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="588">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="589">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="590">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="591">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="592">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="593">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="594">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="595">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="596">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="597">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="598">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="599">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="600">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="601">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="602">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="603">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="604">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="605">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="606">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="607">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="608">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="609">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="610">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="611">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="612">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="613">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="614">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="615">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="616">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="617">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="618">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="619">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="620">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="621">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="622">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="623">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="624">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="625">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="626">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="627">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="628">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="629">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="630">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="631">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="632">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="633">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="634">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="635">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="636">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="637">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="638">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="639">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="640">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="641">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="642">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="643">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="644">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="645">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="646">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="647">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="648">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="649">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="650">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="651">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="652">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="653">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="654">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="655">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="656">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="657">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="658">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="659">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="660">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="661">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="662">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="663">
   <properties>
    <property name="collides" type="bool" value="true"/>
   </properties>
  </tile>
  <tile id="664">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="665">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="666">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="667">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="668">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="669">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="670">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
  <tile id="671">
   <properties>
    <property name="collides" type="bool" value="false"/>
   </properties>
  </tile>
 </tileset>
 <layer id="62" name="layer" width="4" height="4">
  <properties>
   <property name="depth" type="int" value="0"/>
  </properties>
  <data encoding="csv">
169,170,126,126,
193,194,126,126,
126,126,126,126,
298,298,126,126
</data>
 </layer>
</map>

Vec<Vec<T>> is inefficient

It would be better to index a single large Vec as a 2D object, Row Order preferably (As this is the convention used by C and most other languages)

https://stackoverflow.com/a/2151141

Why this is inefficient:
Simple, really: Heap fragmentation. This allocates one new vector for each column of the vector. I.e. in the case of Layer, a large layer, say, 1024x1024, will have 1025 length 1024 vectors allocated. A single vector is nicer to the kernel (One big allocation vs multiple small ones), and for iterating over the whole map, it performs quite a bit better, as the CPU can easily predict the access pattern on it's own without assistance.

Use absolute path for image source, or include path of tileset files as well.

image sources for a tileset are given relative to the tileset, but if the map is in a different directory than the tileset file, there is not a programmatic way to resolve where the tileset came from, and therefore a way to resolve the image source path.

This could be resolved by adding a source attribute to tileset, or by resolving the image source path to an absolute path.

Tile ID is strange

tmx file

let file = File::open(&Path::new(&fname)).unwrap();
let reader = BufReader::new(file);
let mp =  parse(reader).unwrap();

info!("{:?}", mp);

Output

I am going to look through the code to see if I can locate the issue.

Erase GIDs from the public interface

Global tile IDs appear frequently in the codebase but I feel like they are not explained throughout, and they lack their own type so they can be confused with local (tileset) IDs.

Connecting objects, object property type support

Connecting objects is coming in Tiled 1.4. The feature is available now with the development snapshot 2020.04.10. Loading such a tmx file panics with 'Unknown property type "object"'. Sure, it has not been implemented yet.

The tmx objectgroup of two connected objects looks like this:

  <objectgroup id="1" name="obj" offsetx="96" offsety="80">
   <object id="1" name="a" x="182" y="41" width="192" height="256">
    <properties>
     <property name="location" type="object" value="2"/>
    </properties>
   </object>
   <object id="2" name="b" x="208" y="40" width="384" height="352">
    <properties>
     <property name="location" type="object" value="1"/>
    </properties>
   </object>
  </objectgroup>

Tile.animation has private tile_id and duration

I am trying to animate my tiles.

I retrieve a tile from the loaded tiled_map. This gives me the Tile struct:

lib.rs:515

pub struct Tile {
    ...
    pub animation: Option<Vec<Frame>>,
    ...
}

However, pub struct Frame in lib.rs has private members tile_id and duration.

lib.rs: 951

#[derive(Debug, PartialEq, Clone)]
pub struct Frame {
    tile_id: u32,
    duration: u32,
}

I cannot figure out how to access these values.

object layer

any idea what to use for collision? object layer doesnt seem to be supported, so i wonder what everyone else is using instead.

or would it be worth implementing object layer parsing?

Terrain data reading

Hi!

I just needed to get this data for my game and I have added it and seems to work. I'm quite new to GitHub and I don't' know how could I send you the changes I made, if needed.

Adopting this crate and moving it to mapeditor organization

Looking at the open pull requests, there are evidently quite a few people who would like to contribute improvements to this crate, but are unable to do so because unfortunately @mattyhall had not much time for reviews in the past months, as mentioned in #103 (comment).

I would like to propose we move this create into the mapeditor organization, and to gather a few co-maintainers that can help with pull requests. We can set up a review policy that every change needs at least one reviewer, to help ensure the quality of the crate.

Personally I've only done a minimum amount of Rust coding, but I would be interested in helping to keep this crate up to date. I also think it would be nice if we could achieve to have "json" and "tmx" supported as features of the same crate, rather than having separate crates.

Who would be interested in helping to maintain this crate? And what do you think about this, @mattyhall?

ability to load more primitive files

So I was playing integrating with amethyst, and wanted to just grab the map data without either a) having to integrate the tileset or b) provide the path on disk.

Looking at the source, it seems the data structure it wants to build is a Map, but maybe for integrating with other 'asset' loaders you could provide structures for MapFile and Tileset file, with mapfile containing either embedded tilesets or references to Tilesetfiles.
You should still be able to the maps from a combination of these structures.
I took this approach when I played around with tiled in purescript, and I liked the fact that the end user gets a bit more control on how to 'find' the files he needs.

Is there scope to add this to rs-tiled?. It might be a bit of a change?.

Upgrade base64 for security

Hi,

It seems this library uses a version of the library base64 which is vulnerable to security issues. Please refer to https://github.com/RustSec/advisory-db/blob/master/Advisories.toml#L53 .

patch commit : marshallpierce/rust-base64@24ead98
patched version : [">= 0.5.2"]
used version : base64 = "^0.1.1"

This is done using crates.io data. Feel free to close this issue if it's not relevant or fixed.

Please consider adding cargo-audit to the CI to get notified in the future.

Thanks

1.3 fails to build on Linux

I'm not entirely sure what's happening here, but the crate builds fine on Windows for me. (I should triple-check that, but I want to give you these compile errors while I'm on Linux Mint. Confirmed.)

In short, there's 27 type mismatches between:

core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>

and:

xml::reader::events::XmlEvent

The build actually succeeds if I use the latest revision on master. Maybe you could publish 1.4?

Here's the Cargo output:

   Compiling tiled v0.1.3
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56:17: 56:52 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56                 StartElement {name, attributes, ..} => {
                                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:136:5: 146:19 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56:17: 56:52 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65:17: 65:38 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65                 EndElement {name, ..} => {
                                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:136:5: 146:19 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65:17: 65:38 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70:17: 70:28 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70                 EndDocument => return Err(TiledError::PrematureEnd("Document ended before we expected.".to_string())),
                                                                                                                                 ^~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:136:5: 146:19 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70:17: 70:28 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56:17: 56:52 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56                 StartElement {name, attributes, ..} => {
                                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:183:9: 199:23 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56:17: 56:52 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65:17: 65:38 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65                 EndElement {name, ..} => {
                                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:183:9: 199:23 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65:17: 65:38 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70:17: 70:28 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70                 EndDocument => return Err(TiledError::PrematureEnd("Document ended before we expected.".to_string())),
                                                                                                                                 ^~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:183:9: 199:23 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70:17: 70:28 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56:17: 56:52 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56                 StartElement {name, attributes, ..} => {
                                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:270:9: 274:23 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56:17: 56:52 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65:17: 65:38 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65                 EndElement {name, ..} => {
                                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:270:9: 274:23 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65:17: 65:38 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70:17: 70:28 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70                 EndDocument => return Err(TiledError::PrematureEnd("Document ended before we expected.".to_string())),
                                                                                                                                 ^~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:270:9: 274:23 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70:17: 70:28 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56:17: 56:52 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56                 StartElement {name, attributes, ..} => {
                                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:303:9: 303:55 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56:17: 56:52 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65:17: 65:38 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65                 EndElement {name, ..} => {
                                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:303:9: 303:55 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65:17: 65:38 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70:17: 70:28 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70                 EndDocument => return Err(TiledError::PrematureEnd("Document ended before we expected.".to_string())),
                                                                                                                                 ^~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:303:9: 303:55 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70:17: 70:28 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56:17: 56:52 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56                 StartElement {name, attributes, ..} => {
                                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:329:9: 337:23 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56:17: 56:52 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65:17: 65:38 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65                 EndElement {name, ..} => {
                                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:329:9: 337:23 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65:17: 65:38 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70:17: 70:28 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70                 EndDocument => return Err(TiledError::PrematureEnd("Document ended before we expected.".to_string())),
                                                                                                                                 ^~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:329:9: 337:23 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70:17: 70:28 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56:17: 56:52 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56                 StartElement {name, attributes, ..} => {
                                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:362:9: 366:23 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56:17: 56:52 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65:17: 65:38 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65                 EndElement {name, ..} => {
                                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:362:9: 366:23 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65:17: 65:38 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70:17: 70:28 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70                 EndDocument => return Err(TiledError::PrematureEnd("Document ended before we expected.".to_string())),
                                                                                                                                 ^~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:362:9: 366:23 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70:17: 70:28 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56:17: 56:52 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56                 StartElement {name, attributes, ..} => {
                                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:396:9: 410:24 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:56:17: 56:52 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65:17: 65:38 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65                 EndElement {name, ..} => {
                                                                                                                                 ^~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:396:9: 410:24 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:65:17: 65:38 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70:17: 70:28 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70                 EndDocument => return Err(TiledError::PrematureEnd("Document ended before we expected.".to_string())),
                                                                                                                                 ^~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:396:9: 410:24 note: in this expansion of parse_tag! (defined in /home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs)
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:70:17: 70:28 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:485:13: 485:26 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:485             Characters(s) => return s.trim()
                                                                                                                              ^~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:485:13: 485:26 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:488:13: 488:34 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:488             EndElement {name, ..} => {
                                                                                                                              ^~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:488:13: 488:34 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:524:13: 524:26 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:524             Characters(s) => {
                                                                                                                              ^~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:524:13: 524:26 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:534:13: 534:34 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:534             EndElement {name, ..} => {
                                                                                                                              ^~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:534:13: 534:34 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:567:13: 567:48 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:567             StartElement {name, attributes, ..}  => {
                                                                                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:567:13: 567:48 help: run `rustc --explain E0308` to see a detailed explanation
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:572:13: 572:24 error: mismatched types:
 expected `core::result::Result<xml::reader::events::XmlEvent, xml::reader::Error>`,
    found `xml::reader::events::XmlEvent`
(expected enum `core::result::Result`,
    found enum `xml::reader::events::XmlEvent`) [E0308]
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:572             EndDocument => return Err(TiledError::PrematureEnd("Document ended before map was parsed".to_string())),
                                                                                                                              ^~~~~~~~~~~
/home/adam/.multirust/toolchains/stable/cargo/registry/src/github.com-0a35038f75765ae4/tiled-0.1.3/src/lib.rs:572:13: 572:24 help: run `rustc --explain E0308` to see a detailed explanation
error: aborting due to 27 previous errors
Could not compile `tiled`.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.