From ec09c0ae43799846a68a4e100a68353730edfed1 Mon Sep 17 00:00:00 2001 From: LawnCable Date: Fri, 15 Apr 2022 08:36:36 +0200 Subject: init --- .gitignore | 1 + Cargo.lock | 53 ++++ Cargo.toml | 13 + readme.md | 20 ++ src/lib.rs | 3 + src/lowlevel/map.rs | 176 ++++++++++++ src/lowlevel/mod.rs | 3 + src/lowlevel/property.rs | 201 ++++++++++++++ testing_data/tiled_examples/AUTHORS | 11 + testing_data/tiled_examples/buch-outdoor.png | Bin 0 -> 16549 bytes testing_data/tiled_examples/desert.tmx | 9 + testing_data/tiled_examples/desert.tsx | 68 +++++ testing_data/tiled_examples/hexagonal-mini.tmx | 12 + testing_data/tiled_examples/hexmini.png | Bin 0 -> 5784 bytes .../tiled_examples/isometric_grass_and_water.png | Bin 0 -> 104828 bytes .../tiled_examples/isometric_grass_and_water.tmx | 43 +++ .../isometric_staggered_grass_and_water.tmx | 66 +++++ testing_data/tiled_examples/orthogonal-outside.tmx | 284 +++++++++++++++++++ testing_data/tiled_examples/perspective_walls.png | Bin 0 -> 3700 bytes testing_data/tiled_examples/perspective_walls.tmx | 19 ++ testing_data/tiled_examples/perspective_walls.tsx | 20 ++ testing_data/tiled_examples/rpg/beach_tileset.png | Bin 0 -> 36457 bytes testing_data/tiled_examples/rpg/beach_tileset.tsx | 20 ++ testing_data/tiled_examples/rpg/island.tmx | 26 ++ testing_data/tiled_examples/rpg/readme.txt | 28 ++ .../tiled_examples/sewer_automap/rule_001.tmx | 29 ++ .../tiled_examples/sewer_automap/rule_002.tmx | 24 ++ .../tiled_examples/sewer_automap/rule_003.tmx | 30 ++ .../tiled_examples/sewer_automap/rule_004.tmx | 29 ++ .../tiled_examples/sewer_automap/rule_005.tmx | 29 ++ .../tiled_examples/sewer_automap/rule_006.tmx | 39 +++ .../tiled_examples/sewer_automap/rule_007.tmx | 34 +++ .../tiled_examples/sewer_automap/rule_008.tmx | 35 +++ .../tiled_examples/sewer_automap/rule_009.tmx | 30 ++ .../tiled_examples/sewer_automap/rules.txt | 142 ++++++++++ .../tiled_examples/sewer_automap/rules_sewers.png | Bin 0 -> 314 bytes .../tiled_examples/sewer_automap/sewers.tmx | 15 + testing_data/tiled_examples/sewer_tileset.png | Bin 0 -> 22249 bytes testing_data/tiled_examples/sewers.tmx | 16 ++ .../tiled_examples/sticker-knight/README.md | 8 + .../tiled_examples/sticker-knight/map/alter.png | Bin 0 -> 2230 bytes .../sticker-knight/map/backgroundArch.png | Bin 0 -> 797 bytes .../sticker-knight/map/backgroundMountain.png | Bin 0 -> 1411 bytes .../sticker-knight/map/backgroundTower.png | Bin 0 -> 1503 bytes .../sticker-knight/map/backgroundTree.png | Bin 0 -> 1137 bytes .../tiled_examples/sticker-knight/map/blobBlue.png | Bin 0 -> 2915 bytes .../sticker-knight/map/blobGreen.png | Bin 0 -> 2891 bytes .../tiled_examples/sticker-knight/map/blue.png | Bin 0 -> 136 bytes .../sticker-knight/map/bombStroked.png | Bin 0 -> 2444 bytes .../sticker-knight/map/castleWall.png | Bin 0 -> 136 bytes .../tiled_examples/sticker-knight/map/cloud.png | Bin 0 -> 1674 bytes .../tiled_examples/sticker-knight/map/column1.png | Bin 0 -> 2620 bytes .../tiled_examples/sticker-knight/map/column2.png | Bin 0 -> 2605 bytes .../sticker-knight/map/doorBlueStroked.png | Bin 0 -> 4528 bytes .../sticker-knight/map/doorGreenStroke.png | Bin 0 -> 4546 bytes .../sticker-knight/map/doorRedStroked.png | Bin 0 -> 4439 bytes .../sticker-knight/map/doorStroked.png | Bin 0 -> 4292 bytes .../sticker-knight/map/earthWall.png | Bin 0 -> 136 bytes .../sticker-knight/map/earthWall2.png | Bin 0 -> 136 bytes .../tiled_examples/sticker-knight/map/exit.png | Bin 0 -> 1182 bytes .../tiled_examples/sticker-knight/map/flare.png | Bin 0 -> 4248 bytes .../sticker-knight/map/gemBlueStroked.png | Bin 0 -> 1393 bytes .../sticker-knight/map/gemRedStroked.png | Bin 0 -> 4235 bytes .../sticker-knight/map/grassLarge.png | Bin 0 -> 1505 bytes .../sticker-knight/map/grassSmall.png | Bin 0 -> 1180 bytes .../tiled_examples/sticker-knight/map/grey.png | Bin 0 -> 135 bytes .../tiled_examples/sticker-knight/map/hero.png | Bin 0 -> 4155 bytes .../sticker-knight/map/keyGreenStroked.png | Bin 0 -> 909 bytes .../sticker-knight/map/keyRedStroked.png | Bin 0 -> 5063 bytes .../sticker-knight/map/keyYellowStroked.png | Bin 0 -> 1013 bytes .../tiled_examples/sticker-knight/map/objs.tsx | 189 +++++++++++++ .../sticker-knight/map/platform1.png | Bin 0 -> 2101 bytes .../sticker-knight/map/platform2.png | Bin 0 -> 2006 bytes .../sticker-knight/map/platform3.png | Bin 0 -> 1281 bytes .../sticker-knight/map/platform4.png | Bin 0 -> 1277 bytes .../sticker-knight/map/platformBase1.png | Bin 0 -> 3166 bytes .../sticker-knight/map/platformBase2.png | Bin 0 -> 3162 bytes .../sticker-knight/map/platformBase3.png | Bin 0 -> 2445 bytes .../sticker-knight/map/platformBase4.png | Bin 0 -> 2425 bytes .../sticker-knight/map/platformBlock1.png | Bin 0 -> 1139 bytes .../sticker-knight/map/platformBlock2.png | Bin 0 -> 1127 bytes .../sticker-knight/map/platformBlock3.png | Bin 0 -> 1115 bytes .../sticker-knight/map/platformBlock4.png | Bin 0 -> 1158 bytes .../sticker-knight/map/platformConnector1.png | Bin 0 -> 668 bytes .../sticker-knight/map/platformConnector2.png | Bin 0 -> 659 bytes .../sticker-knight/map/platformConnector3.png | Bin 0 -> 662 bytes .../sticker-knight/map/platformConnector4.png | Bin 0 -> 666 bytes .../sticker-knight/map/pushBlock1.png | Bin 0 -> 5018 bytes .../sticker-knight/map/pushBlock2.png | Bin 0 -> 4147 bytes .../sticker-knight/map/pushBlock3.png | Bin 0 -> 4117 bytes .../tiled_examples/sticker-knight/map/sandbox.tmx | 234 ++++++++++++++++ .../tiled_examples/sticker-knight/map/sandbox2.tmx | 301 +++++++++++++++++++++ .../tiled_examples/sticker-knight/map/shadow.png | Bin 0 -> 84 bytes .../sticker-knight/map/shieldStroked.png | Bin 0 -> 2259 bytes .../tiled_examples/sticker-knight/map/sign.png | Bin 0 -> 1682 bytes .../tiled_examples/sticker-knight/map/skeleton.png | Bin 0 -> 5129 bytes .../sticker-knight/map/swordStroked.png | Bin 0 -> 1460 bytes .../sticker-knight/map/templates/block.tx | 11 + .../sticker-knight/map/templates/diamond.tx | 5 + .../sticker-knight/map/templates/hero.tx | 5 + .../tiled_examples/sticker-knight/map/torch.png | Bin 0 -> 1511 bytes .../tiled_examples/sticker-knight/map/trap.png | Bin 0 -> 5467 bytes .../sticker-knight/map/wallDecor1.png | Bin 0 -> 1875 bytes .../sticker-knight/map/wallDecor2.png | Bin 0 -> 1869 bytes .../sticker-knight/map/wallDecor3.png | Bin 0 -> 1578 bytes .../tiled_examples/sticker-knight/map/window1.png | Bin 0 -> 1134 bytes .../tiled_examples/sticker-knight/map/window2.png | Bin 0 -> 1141 bytes .../tiled_examples/sticker-knight/map/window3.png | Bin 0 -> 745 bytes .../tiled_examples/sticker-knight/preview.png | Bin 0 -> 898097 bytes .../tiled_examples/sticker-knight/sprites.png | Bin 0 -> 83899 bytes .../sticker-knight/ui/backgroundSet.png | Bin 0 -> 9664 bytes .../tiled_examples/sticker-knight/ui/block.png | Bin 0 -> 137 bytes .../sticker-knight/ui/buttonHelp.png | Bin 0 -> 2567 bytes .../sticker-knight/ui/buttonStart.png | Bin 0 -> 2668 bytes .../tiled_examples/sticker-knight/ui/cloud.png | Bin 0 -> 1674 bytes .../tiled_examples/sticker-knight/ui/gem.png | Bin 0 -> 1171 bytes .../tiled_examples/sticker-knight/ui/heart.png | Bin 0 -> 1367 bytes .../sticker-knight/ui/helpBackground.png | Bin 0 -> 47994 bytes .../tiled_examples/sticker-knight/ui/shield.png | Bin 0 -> 1702 bytes .../tiled_examples/sticker-knight/ui/title.json | 281 +++++++++++++++++++ .../tiled_examples/sticker-knight/ui/title.png | Bin 0 -> 12428 bytes .../test_hexagonal_tile_60x60x30.png | Bin 0 -> 2934 bytes .../test_hexagonal_tile_60x60x30.tmx | 30 ++ testing_data/tiled_examples/tmw_desert_spacing.png | Bin 0 -> 37830 bytes 124 files changed, 2592 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 readme.md create mode 100644 src/lib.rs create mode 100644 src/lowlevel/map.rs create mode 100644 src/lowlevel/mod.rs create mode 100644 src/lowlevel/property.rs create mode 100644 testing_data/tiled_examples/AUTHORS create mode 100644 testing_data/tiled_examples/buch-outdoor.png create mode 100644 testing_data/tiled_examples/desert.tmx create mode 100644 testing_data/tiled_examples/desert.tsx create mode 100644 testing_data/tiled_examples/hexagonal-mini.tmx create mode 100644 testing_data/tiled_examples/hexmini.png create mode 100644 testing_data/tiled_examples/isometric_grass_and_water.png create mode 100644 testing_data/tiled_examples/isometric_grass_and_water.tmx create mode 100644 testing_data/tiled_examples/isometric_staggered_grass_and_water.tmx create mode 100644 testing_data/tiled_examples/orthogonal-outside.tmx create mode 100644 testing_data/tiled_examples/perspective_walls.png create mode 100644 testing_data/tiled_examples/perspective_walls.tmx create mode 100644 testing_data/tiled_examples/perspective_walls.tsx create mode 100644 testing_data/tiled_examples/rpg/beach_tileset.png create mode 100644 testing_data/tiled_examples/rpg/beach_tileset.tsx create mode 100644 testing_data/tiled_examples/rpg/island.tmx create mode 100644 testing_data/tiled_examples/rpg/readme.txt create mode 100644 testing_data/tiled_examples/sewer_automap/rule_001.tmx create mode 100644 testing_data/tiled_examples/sewer_automap/rule_002.tmx create mode 100644 testing_data/tiled_examples/sewer_automap/rule_003.tmx create mode 100644 testing_data/tiled_examples/sewer_automap/rule_004.tmx create mode 100644 testing_data/tiled_examples/sewer_automap/rule_005.tmx create mode 100644 testing_data/tiled_examples/sewer_automap/rule_006.tmx create mode 100644 testing_data/tiled_examples/sewer_automap/rule_007.tmx create mode 100644 testing_data/tiled_examples/sewer_automap/rule_008.tmx create mode 100644 testing_data/tiled_examples/sewer_automap/rule_009.tmx create mode 100644 testing_data/tiled_examples/sewer_automap/rules.txt create mode 100644 testing_data/tiled_examples/sewer_automap/rules_sewers.png create mode 100644 testing_data/tiled_examples/sewer_automap/sewers.tmx create mode 100644 testing_data/tiled_examples/sewer_tileset.png create mode 100644 testing_data/tiled_examples/sewers.tmx create mode 100644 testing_data/tiled_examples/sticker-knight/README.md create mode 100644 testing_data/tiled_examples/sticker-knight/map/alter.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/backgroundArch.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/backgroundMountain.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/backgroundTower.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/backgroundTree.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/blobBlue.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/blobGreen.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/blue.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/bombStroked.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/castleWall.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/cloud.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/column1.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/column2.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/doorBlueStroked.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/doorGreenStroke.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/doorRedStroked.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/doorStroked.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/earthWall.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/earthWall2.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/exit.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/flare.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/gemBlueStroked.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/gemRedStroked.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/grassLarge.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/grassSmall.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/grey.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/hero.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/keyGreenStroked.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/keyRedStroked.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/keyYellowStroked.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/objs.tsx create mode 100644 testing_data/tiled_examples/sticker-knight/map/platform1.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/platform2.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/platform3.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/platform4.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/platformBase1.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/platformBase2.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/platformBase3.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/platformBase4.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/platformBlock1.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/platformBlock2.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/platformBlock3.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/platformBlock4.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/platformConnector1.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/platformConnector2.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/platformConnector3.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/platformConnector4.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/pushBlock1.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/pushBlock2.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/pushBlock3.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/sandbox.tmx create mode 100644 testing_data/tiled_examples/sticker-knight/map/sandbox2.tmx create mode 100644 testing_data/tiled_examples/sticker-knight/map/shadow.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/shieldStroked.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/sign.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/skeleton.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/swordStroked.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/templates/block.tx create mode 100644 testing_data/tiled_examples/sticker-knight/map/templates/diamond.tx create mode 100644 testing_data/tiled_examples/sticker-knight/map/templates/hero.tx create mode 100644 testing_data/tiled_examples/sticker-knight/map/torch.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/trap.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/wallDecor1.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/wallDecor2.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/wallDecor3.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/window1.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/window2.png create mode 100644 testing_data/tiled_examples/sticker-knight/map/window3.png create mode 100644 testing_data/tiled_examples/sticker-knight/preview.png create mode 100644 testing_data/tiled_examples/sticker-knight/sprites.png create mode 100644 testing_data/tiled_examples/sticker-knight/ui/backgroundSet.png create mode 100644 testing_data/tiled_examples/sticker-knight/ui/block.png create mode 100644 testing_data/tiled_examples/sticker-knight/ui/buttonHelp.png create mode 100644 testing_data/tiled_examples/sticker-knight/ui/buttonStart.png create mode 100644 testing_data/tiled_examples/sticker-knight/ui/cloud.png create mode 100644 testing_data/tiled_examples/sticker-knight/ui/gem.png create mode 100644 testing_data/tiled_examples/sticker-knight/ui/heart.png create mode 100644 testing_data/tiled_examples/sticker-knight/ui/helpBackground.png create mode 100644 testing_data/tiled_examples/sticker-knight/ui/shield.png create mode 100644 testing_data/tiled_examples/sticker-knight/ui/title.json create mode 100644 testing_data/tiled_examples/sticker-knight/ui/title.png create mode 100644 testing_data/tiled_examples/test_hexagonal_tile_60x60x30.png create mode 100644 testing_data/tiled_examples/test_hexagonal_tile_60x60x30.tmx create mode 100644 testing_data/tiled_examples/tmw_desert_spacing.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c41cc9e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..3df5c0d --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,53 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "anyhow" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b" + +[[package]] +name = "bytemuck" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bed57e2090563b83ba8f83366628ce535a7584c9afa4c9fc0612a03925c6df58" + +[[package]] +name = "fast-tiled" +version = "0.1.0" +dependencies = [ + "anyhow", + "read_color", + "rgb", + "roxmltree", +] + +[[package]] +name = "read_color" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f4c8858baa4ad3c8bcc156ae91a0ffe22b76a3975c40c49b4f04c15c6bce0da" + +[[package]] +name = "rgb" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fddb3b23626145d1776addfc307e1a1851f60ef6ca64f376bcb889697144cf0" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "roxmltree" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "921904a62e410e37e215c40381b7117f830d9d89ba60ab5236170541dd25646b" +dependencies = [ + "xmlparser", +] + +[[package]] +name = "xmlparser" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "114ba2b24d2167ef6d67d7d04c8cc86522b87f490025f39f0303b7db5bf5e3d8" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..f4267e6 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "fast-tiled" +version = "0.1.0" +authors = ["LawnCable "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +anyhow = "1.0.40" +rgb = "0.8.27" +roxmltree = "0.14.1" +read_color = "1.0.0" \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..6453a5e --- /dev/null +++ b/readme.md @@ -0,0 +1,20 @@ +# fast_tiled + +Parser for the tmx format Version 1.5 + +## Goals + +- fast parsing of tiled files +- a low level (to parse single files) +- a higher level API (point to a map and it loads all tile-maps it references, or loads an entire world from a world file and stuff like that) + +## The plan + +The idea is to first have something low level that just parses the tmx/tsx files and provides them in rust types. + +After that is done there could be more high level methods/struct that provide more high level functionality. + +Wishlist (things that would be nice): + +- serializing from rust types back to tmx/tsx (this needs including another xml lib, because roxmltree if fast because it is read-only) +- parsing from and serializing back to the tiled json based formats diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..3c9002e --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,3 @@ + + +pub mod lowlevel; \ No newline at end of file diff --git a/src/lowlevel/map.rs b/src/lowlevel/map.rs new file mode 100644 index 0000000..c2a33cf --- /dev/null +++ b/src/lowlevel/map.rs @@ -0,0 +1,176 @@ +use anyhow::anyhow; +use rgb::RGBA; + +// https://doc.mapeditor.org/en/stable/reference/tmx-map-format/#map + +/// Map orientation +/// Tiled supports “orthogonal”, “isometric”, “staggered” and “hexagonal” (since 0.11). +pub enum MapOrientation { + Orthogonal, + Isometric, + Staggered, + Hexagonal, +} + +impl MapOrientation { + pub fn from_string(string: &str) -> anyhow::Result { + match string { + "orthogonal" => Ok(MapOrientation::Orthogonal), + "isometric" => Ok(MapOrientation::Isometric), + "staggered" => Ok(MapOrientation::Staggered), + "hexagonal" => Ok(MapOrientation::Hexagonal), + _ => Err(anyhow!("Unknown MapOrientation: {}", string)), + } + } + + pub fn to_string(self) -> String { + match self { + MapOrientation::Orthogonal => "orthogonal".to_owned(), + MapOrientation::Isometric => "isometric".to_owned(), + MapOrientation::Staggered => "staggered".to_owned(), + MapOrientation::Hexagonal => "hexagonal".to_owned(), + } + } +} + +/// The order in which tiles on tile layers are rendered. +/// In all cases, the map is drawn row-by-row. (only supported for orthogonal maps at the moment) +pub enum MapRenderOrder { + /// RightDown - The default + RightDown, + RightUp, + LeftDown, + LeftUp, +} + +impl Default for MapRenderOrder { + fn default() -> Self { + MapRenderOrder::RightDown + } +} + +impl MapRenderOrder { + pub fn from_string(string: &str) -> anyhow::Result { + match string { + "right-down" => Ok(MapRenderOrder::RightDown), + "right-up" => Ok(MapRenderOrder::RightUp), + "left-down" => Ok(MapRenderOrder::LeftDown), + "left-up" => Ok(MapRenderOrder::LeftUp), + _ => Err(anyhow!("Unknown MapRenderOrder: {}", string)), + } + } + + pub fn to_string(self) -> String { + match self { + MapRenderOrder::RightDown => "right-down".to_owned(), + MapRenderOrder::RightUp => "right-up".to_owned(), + MapRenderOrder::LeftDown => "left-down".to_owned(), + MapRenderOrder::LeftUp => "left-up".to_owned(), + } + } +} + +/// For staggered and hexagonal maps, determines which axis (“x” or “y”) is staggered. (since 0.11) +pub enum StaggerAxis { + X, + Y, +} + +impl StaggerAxis { + pub fn from_string(string: &str) -> anyhow::Result { + match string { + "x" => Ok(StaggerAxis::X), + "y" => Ok(StaggerAxis::Y), + _ => Err(anyhow!("invalid StaggerAxis: {}", string)), + } + } + + pub fn to_string(self) -> String { + match self { + StaggerAxis::X => "x".to_owned(), + StaggerAxis::Y => "y".to_owned(), + } + } +} + +/// For staggered and hexagonal maps, determines whether the “even” or “odd” indexes along the staggered axis are shifted. (since 0.11) +pub enum StaggerIndex { + Even, + Odd, +} + +impl StaggerIndex { + pub fn from_string(string: &str) -> anyhow::Result { + match string { + "even" => Ok(StaggerIndex::Even), + "odd" => Ok(StaggerIndex::Odd), + _ => Err(anyhow!("invalid StaggerIndex: {}", string)), + } + } + + pub fn to_string(self) -> String { + match self { + StaggerIndex::Even => "even".to_owned(), + StaggerIndex::Odd => "odd".to_owned(), + } + } +} + +pub struct Map { + /// The TMX format version. Was “1.0” so far, and will be incremented to match minor Tiled releases. + pub version: String, + + /// The Tiled version used to save the file (since Tiled 1.0.1). May be a date (for snapshot builds). (optional) + pub tiledversion: Option, + + /// Map orientation. Tiled supports “orthogonal”, “isometric”, “staggered” and “hexagonal” (since 0.11). + pub orientation: MapOrientation, + + /// The order in which tiles on tile layers are rendered. + pub renderorder: MapRenderOrder, + + /// The compression level to use for tile layer data (defaults to -1, which means to use the algorithm default). + pub compressionlevel: Option, // TODO seems optional, please validate + + // The map width in tiles. + pub width: usize, + /// The map height in tiles. + pub height: usize, + + /// The width of a tile. + pub tilewidth: usize, + /// The height of a tile. + pub tileheight: usize, + /// Only for hexagonal maps. Determines the width or height (depending on the staggered axis) of the tile’s edge, in pixels. + pub hexsidelength: Option, + + /// For staggered and hexagonal maps, determines which axis (“x” or “y”) is staggered. (since 0.11) + pub staggeraxis: Option, + /// For staggered and hexagonal maps, determines whether the “even” or “odd” indexes along the staggered axis are shifted. (since 0.11) + pub staggerindex: Option, + + /// The background color of the map. (optional, may include alpha value since 0.15 in the form #AARRGGBB. Defaults to fully transparent.) + pub backgroundcolor: Option>, + + /// Stores the next available ID for new layers. This number is stored to prevent reuse of the same ID after layers have been removed. (since 1.2) (defaults to the highest layer id in the file + 1) + pub nextlayerid: usize, // TODO set default in funtions + /// Stores the next available ID for new objects. This number is stored to prevent reuse of the same ID after objects have been removed. (since 0.11) (defaults to the highest object id in the file + 1) + pub nextobjectid: usize, + + /// Whether this map is infinite. An infinite map has no fixed size and can grow in all directions. Its layer data is stored in chunks. (0 for false, 1 for true, defaults to 0) + pub infinite: bool, + + // xml child elements + pub properties: Option, + // TODO Can contain any number: , , , , (since 1.0), (since 1.3) +} + +impl Map { + pub fn from_xml(doc: roxmltree::Document) -> anyhow::Result { + doc.root_element(); + + assert!(doc.root_element().has_tag_name("map")); + + Err(anyhow!("not implemented")) + } +} diff --git a/src/lowlevel/mod.rs b/src/lowlevel/mod.rs new file mode 100644 index 0000000..1a10f8d --- /dev/null +++ b/src/lowlevel/mod.rs @@ -0,0 +1,3 @@ +pub mod map; + +pub mod property; diff --git a/src/lowlevel/property.rs b/src/lowlevel/property.rs new file mode 100644 index 0000000..26dcedd --- /dev/null +++ b/src/lowlevel/property.rs @@ -0,0 +1,201 @@ +use anyhow::anyhow; +use rgb::RGBA8; + +// https://doc.mapeditor.org/en/stable/reference/tmx-map-format/#property + +// name: The name of the property. +// type: The type of the property. Can be string (default), int, float, bool, color, file or object (since 0.16, with color and file added in 0.17, and object added in 1.4). +// value: The value of the property. (default string is “”, default number is 0, default boolean is “false”, default color is #00000000, default file is “.” (the current file’s parent directory)) + +#[derive(Debug, PartialEq)] +pub enum Property { + String { name: String, value: String }, + Int { name: String, value: isize }, + Float { name: String, value: f64 }, + Bool { name: String, value: bool }, + Color { name: String, value: RGBA8 }, + File { name: String, value: String }, + Object { name: String, value: usize }, +} + +impl Property { + pub fn from_xml(node: roxmltree::Node) -> anyhow::Result { + if node.node_type() != roxmltree::NodeType::Element { + return Err(anyhow!("xml -> node is not an element")); + } + + let name = node + .attribute("name") + .ok_or(anyhow!("property name missing"))? + .to_owned(); + let property_type = node + .attribute("type") + .ok_or(anyhow!("property type missing"))?; + + // handle the case that 'string' value is stored in element content instead of value atribute + if property_type == "string" { + if let Some(child) = node.first_child() { + if let Some(text) = child.text() { + return Ok(Property::String { + name, + value: text.to_owned(), + }); + } else { + return Err(anyhow!("property element content is not of NodeType::Text")); + } + } + } + + let raw_value = node + .attribute("value") + .ok_or(anyhow!("property value missing"))?; + + match property_type { + "string" => Ok(Property::String { + name, + value: raw_value.to_owned(), + }), + "int" => Ok(Property::Int { + name, + value: raw_value.parse()?, + }), + "float" => Ok(Property::Float { + name, + value: raw_value.parse()?, + }), + "bool" => { + let value = match raw_value { + "true" => Ok(true), + "false" => Ok(false), + _ => Err(anyhow!( + "boolean property has unexpected value: {}", + raw_value + )), + }; + Ok(Property::Bool { + name, + value: value?, + }) + } + "color" => { + let mut chars = raw_value.chars(); + chars.next(); // remove the `#` + if let Some(color) = read_color::rgba(&mut chars) { + Ok(Property::Color { + name, + value: RGBA8 { + r: color[0], + g: color[1], + b: color[2], + a: color[3], + }, + }) + } else { + Err(anyhow!("could not parse color")) + } + } + "file" => Ok(Property::File { + name, + value: raw_value.to_owned(), + }), + "object" => Ok(Property::Object { + name, + value: raw_value.parse()?, + }), + _ => Err(anyhow!("unknown type {}", property_type)), + } + } + + pub fn value_to_string(self) -> String { + match self { + Property::String { value, .. } => value, + Property::Int { value, .. } => format!("{}", value), + Property::Float { value, .. } => format!("{}", value), + Property::Bool { value, .. } => match value { + true => "true", + false => "false", + } + .to_owned(), + Property::Color { value, .. } => { + format!("#{:x}{:x}{:x}{:x}", value.r, value.g, value.b, value.a) + } + Property::File { value, .. } => value, + Property::Object { value, .. } => format!("{}", value), + } + } +} + +// Wraps any number of custom properties +#[derive(Debug)] +pub struct Properties { + pub properties: Vec, +} + +impl Properties { + fn from_xml(node: roxmltree::Node) -> anyhow::Result { + Err(anyhow!("not implemented")) + } +} + +#[cfg(test)] +mod tests { + use crate::lowlevel::property::Property; + use rgb::RGBA8; + + #[test] + fn parse_color_property() { + // Find element by id + let doc = roxmltree::Document::parse( + r##""##, + ) + .unwrap(); + let elem = doc.root_element(); + assert_eq!( + Property::from_xml(elem).unwrap(), + Property::Color { + name: "enemyTint".to_owned(), + value: RGBA8 { + r: 255, + g: 163, + b: 54, + a: 54 + } + } + ); + } + + #[test] + fn parse_string_property_inside_attribute() { + // Find element by id + let doc = roxmltree::Document::parse( + r##""##, + ) + .unwrap(); + let elem = doc.root_element(); + assert_eq!( + Property::from_xml(elem).unwrap(), + Property::String { + name: "enemyText".to_owned(), + value: "hello world".to_owned() + } + ); + } + + #[test] + fn parse_string_property_inside_element() { + // Find element by id + let doc = roxmltree::Document::parse( + r##"hello world"##, + ) + .unwrap(); + let elem = doc.root_element(); + println!("{:?}", elem.first_child()); + assert_eq!( + Property::from_xml(elem).unwrap(), + Property::String { + name: "enemyText".to_owned(), + value: "hello world".to_owned() + } + ); + } +} diff --git a/testing_data/tiled_examples/AUTHORS b/testing_data/tiled_examples/AUTHORS new file mode 100644 index 0000000..37c09e9 --- /dev/null +++ b/testing_data/tiled_examples/AUTHORS @@ -0,0 +1,11 @@ +Tilesets: + +perspective_walls.png - (C) Clint Bellanger, released as Public Domain +isometric_grass_and_water.png - (C) Clint Bellanger, released as GPL2, GPL3, CC-BY-SA3 +tmw_desert_spacing.png - (C) The Mana World Development Team, GPL +sewer_tileset.png - (C) Blues Brothers RPG developers, GPL +Replica Island - (C) Chris Pruett and Genki Mine, Apache (except hotspots.png) +hexmini.png - Public Domain, http://opengameart.org/content/pixel-hex-tilesets-enhanced +buch-outdoor.png - (C) Michele "Buch" Bucelli, CC-BY 3.0, http://opengameart.org/users/buch +examples/sticker-knight - (C) Ponywolf, CC0, http://opengameart.org/content/sticker-knight-platformer +wangblob.png, CC0, https://opengameart.org/content/seamless-tileset-template-ii \ No newline at end of file diff --git a/testing_data/tiled_examples/buch-outdoor.png b/testing_data/tiled_examples/buch-outdoor.png new file mode 100644 index 0000000..94a387c Binary files /dev/null and b/testing_data/tiled_examples/buch-outdoor.png differ diff --git a/testing_data/tiled_examples/desert.tmx b/testing_data/tiled_examples/desert.tmx new file mode 100644 index 0000000..cc5e308 --- /dev/null +++ b/testing_data/tiled_examples/desert.tmx @@ -0,0 +1,9 @@ + + + + + + eJztmNkKwjAQRaN9cAPrAq5Yq3Xf6v9/nSM2VIbQJjEZR+nDwQZScrwztoORECLySBcIgZ7nc2y4KfyWDLx+Jb9nViNgDEwY+KioAXUgQN4+zpoCMwPmQAtoAx2CLFbA2oDEo9+hwG8DnIDtF/2K8ks086Tw2zH0uyMv7HcRr/6/EvvhnsPrsrxwX7rwU/0ODig/eV3mh3N1ld8eraWPaX6+64s9McesfrqcHfg1MpoifxcVEWjukyw+9AtFPl/I71pER3Of6j4bv7HI54s+MChhqLlPdZ/P3qMmFuo5h5NnTOhjM5tReN2yT51n5/v7J3F0vi46fk+ne7aX0i9l6If7mpufTX3f5wsqv9TAD2fJLT9VrTn7UeZnM5tR+v0LMQOHXwFnxe2/warGFRWf8QDjOLfP + + + diff --git a/testing_data/tiled_examples/desert.tsx b/testing_data/tiled_examples/desert.tsx new file mode 100644 index 0000000..c2a2cfc --- /dev/null +++ b/testing_data/tiled_examples/desert.tsx @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing_data/tiled_examples/hexagonal-mini.tmx b/testing_data/tiled_examples/hexagonal-mini.tmx new file mode 100644 index 0000000..388fd5b --- /dev/null +++ b/testing_data/tiled_examples/hexagonal-mini.tmx @@ -0,0 +1,12 @@ + + + + + + + + + eJyl1FEKhDAMBNBSt6jVaL3/Za2QwDAkVdiPQda2zyTonimlU1N6Ws+lkZ6l56AUXcPY2qlniv5uL5Z5BdyDvFXXMoX3Rp44axl6nqFejj3LLK6xgmf3Zg06Qs+O+qiaDOZOVgXPs7jfCme8Hkce1+fNlGdlM3myDTzc580fz1htW2Baj15/R/J72wLvcVZN5HnzGnmVPJ5hNH+0dt33j4ex91TARUs+WjNZz/fewKvJfy+/1naR+dX7OfdEnUYefyOeZZ7Vht/b5HjefxJbO1iTE7YWuEpg5hfPzi8D782x3Mg7DV4= + + + diff --git a/testing_data/tiled_examples/hexmini.png b/testing_data/tiled_examples/hexmini.png new file mode 100644 index 0000000..12d17bf Binary files /dev/null and b/testing_data/tiled_examples/hexmini.png differ diff --git a/testing_data/tiled_examples/isometric_grass_and_water.png b/testing_data/tiled_examples/isometric_grass_and_water.png new file mode 100644 index 0000000..b342a0c Binary files /dev/null and b/testing_data/tiled_examples/isometric_grass_and_water.png differ diff --git a/testing_data/tiled_examples/isometric_grass_and_water.tmx b/testing_data/tiled_examples/isometric_grass_and_water.tmx new file mode 100644 index 0000000..1ddc0ed --- /dev/null +++ b/testing_data/tiled_examples/isometric_grass_and_water.tmx @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + eJx1lttywjAMROVgyqVtAoFC/v9L68xoh5PFPGhIYktrrVYyS0QszZ7Nvpvd0n7y24L1Q7MhrTSreN/le821HZ7lv9qYa6sdE0cYs/kX7PXYwtfaevYp7WDrd+SnHByjYr/npP1zZ4/elcuM71rjeckdc5KNHX75fMwc9s2uzb6AsYstJzwrv5/Tz89SLIZy8v203llV8xl7yMU+462/v81OqA114/UhrzUxRqwprnh6ZGzp2PNQfPqRu/X9hnMV8F/xLg1L42erDf2oaa2RI2qPtbgbhmw2H69nMUxx/gVccXdC3AW/o/HV60vW59Lhu8arDxmfGIPFUV1qbLVQEIs4PlOeHQxqVjmzr5mLYsmf+5Qj5yM1r3Ne4p1D5VcMh3qWZibLx2fYkBhPYOv81I9wbrGd45zFU7zrndpwDjkHXXfej9zHc3EG+D3AWcCZMJif7hTnVxr6i9edtoBDz8N7kxqbY6sN9gJnsnqIOqCme7Un76579sIV8dccHvHqZefH76BP9wjzkVapM2rL+5/8cR6QS9eh8p2AT12y5oO9+7yh5hzLZypnHX29/pzB9PE7bOg8Mza5KvGu4R7mp/89zqvr7x+TnxEn + + + diff --git a/testing_data/tiled_examples/isometric_staggered_grass_and_water.tmx b/testing_data/tiled_examples/isometric_staggered_grass_and_water.tmx new file mode 100644 index 0000000..bb86c9f --- /dev/null +++ b/testing_data/tiled_examples/isometric_staggered_grass_and_water.tmx @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + eJxdk9sSgyAQQ7FSsVovtY76/19amEnGUx4yCrtks1m4QghXxpkxZnyFt/YuxFPGQ2gyImIFc0Yr9OLw+U35jeL+lpqLkMBbYjt0JdTl+Q351ua1NZScJ9CCY676qf971S7fl9CBY9Ca59intSzywfWcb2+aSnsrrZ2+E3qJ4Dan9fqMtR/QPVR5u2ad4If7jVh7jqe4I/ygbvdl/Zzjpfqek/1gr5P4m/Dv0RruOzZVnrr2ihod9ovOMdx3+RPuO7Cg7x055nAPKdzv4VTf1sF7wjfDOVkD31KnfftMDs7UsaRZjYK9pM/m8EzreZS9QzUm9fwDPTIJFw== + + + eJyVUu0KwjAMvGbVjU3F/XLv/6Q2kNCbShMDBytrch+pAJCGqaEaCp31e1S/+oqd/d+oKt2VDy2S4Od7FWctjqifPbiOrH7mYR2CHP8FPTP2zV5GtVuvzrnie5cS9B82Y2mYSYcj0v8yXt77P/lr/0p3J/OS9a/67+iZPU2P7y/iv5GHYv0r8vtn/ZrhRrP8LUX8B3qGM/oeMvtT/gfOeblvfwujegOrqALV + + + eJydUtkKwzAMy+FerOtGU0j//0tngwJamga2B5HEtuQrwTkXFF4hgIdtUIy4l/dbsShOnJ44keKe8G+wH8QzZCAQN1JsRtwO/aPiPnAXaHDds+KlSIoJ70y8Hf6Tai4aQjZP+onqmRCzUu0lN/chpJPALfYZb+bxHMV970Mob4mfKEer5kD63GOs4r277rGlx71Guv+DOvcviDcaQ3X2IO5av+3E/q39tbHD452wz3a80F5bPfP8WjNYO/w6Z823+rfODIR8BR8vlwUi + + + eJydUlsOwzAIg66vPdS11aTl/icdaLbCF8mGZJFIMTaQIiI3w2C4AH4ecfacxd0wgzMZFDwNNbNw7QXvX6jFGiNqZDHj7W7YwInetcHf8HY1nFL7n0IfWSiwBL/exyF989Pgd8DdvRSps8gi7oz5Kd+59viPs6K+58cf+uxlhT5n09In4t579cnjzjzzL/To0zN5R/DPnlr6/H9v8Om9h0995xfUuP7gn/+NXM+n1Lm0+B9/vgOT + + + eJy9k1EPgjAMhDsVQUFFXLL9/1/qFrt4XFrliYcvwLrj2ksaRCQAvT5j4Ua1Y6ErzIWLEgxqPRWedB5Vk7WeHH3UWqYeZtJmxztD/Uz/bOfZ8R/gXuVKMzGsf4FH0v4Hx9vqvzLBvZbBJOvZPT17Jc3c8vbyf9B9zhyx9C2D0ejlX//YwwJzjw4HR99DFnf9tvD8cZZF36vXST57gDvxS7/FY286+e7xGy8BCeE= + + + eJydkosKgzAMRaNO3Xzt4UD//0u9xVwMZbTpCgdRcm5CzSwid7CDUZ8DuIFKSZ0ZrGABE9hABxqnv2lGb+YYCv231k/mvS7wd52Z/TkTZ0gdzhvq1iivtH+ofUaZHv9jZqXv7R9qF60L/7zWDH7L+axr5Lrz3rgenx4z7O61Gb+KsO5Xzvsp8S3ch3997mPqtMov/+Xo/5BzV+MMurn+B0mZBM8= + + + eJxjZGBgYCQRiwAxJxSTqpcDiCWQ8CgYBaNg4AAADXoAkA== + + + eJwTZ2BgEAdiTiDmBWJGKBYAYgmoHD4AUwPCbFC9HGjio2AUjILBCQBLaAEh + + + + diff --git a/testing_data/tiled_examples/orthogonal-outside.tmx b/testing_data/tiled_examples/orthogonal-outside.tmx new file mode 100644 index 0000000..5b2eeef --- /dev/null +++ b/testing_data/tiled_examples/orthogonal-outside.tmx @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + eJyNWE1vVVUU3Y0KQeXL4kBL7QAiEkcopQOIkjgysXagYeLIpE0HGucEtY5U6giw1Bj8AdiWxhZ+ANLS4nv+AJKW1+TVH9DklWfSR+LeeWt51j3eWxmsnPvuPR9rr7P3Pvu8hpkd7DFb8dYb24Pf89bFtOOio8/xquNreZ/jdccxx0nH53j+SN7F81nHOfz+BGs1vP0C706i/1kZ+6asMWRdrvMY+4q3bzmedTwj/FfAO/i2HVcc10s4f+t4QzidcEw6vnd8lz0HfrAu3wOO8xj3seO44AT6cY0GONPWTx1jjp8cvzjO4Fsbfan/luP3XXgrJ+4XtWnjeQX9VzBmErgsdud8lXdwCb94G5w3HE+g+R5ZcwDPDx114U3dY569wkW5UZ8J8I6+AfalPbT7MvhS03nMMV3CNzT+A5zHMt70obvezjrWwfue47HwynUhH3JivwG01E1Be0cs8eW3mOd9x2lwXHVsOx7AP8bgI/PCZ5+PmwHvHceSaK76UZO2cGyg1X2mT/eKrtOwUX2Le/RcicbB4zfHyz6239sPs3VijtB6E33XRPPr0CbXmpwaAvrEPPyBvsDvOn4IbQ+4jkHnDaxfE52POl6zFIe0n1oH12Vw37Hq2HzH8W5o6DgE9FrRn+l7uk8rVvSZi6LvDdF4GaBPU2edS32kDjub1vWrMt6Mq8gJkc/OwQbypq9T54jrKcfVkrl+Fq5ctwn9/hTOZefIgPC+7VhEW9tFb+bwyL2Rw3le5DHGeVuY6xrma0DPJtpYL+Ip/JT+TM7uT9/k649jji3MEWMO+5gF2Py4hLOel8y/A1bMKdRbeW8K99BkzlIOmMVe37GuL2u+y/PYCNbbAkfGwCo0vyX9cq0nwbcsXnP/e97xAjADzutoQ6def3+kJ2lMnCmZL/wl/C7y87bsTXDuOB5Bt//jpbgiflBlQwe6am4bE40Dw6J1PscW9inmiJhlvvzVcaAn7fnT8JyC/ZG77u/SX3Nx8CPnQNRxl6xY05XZPYN5HoBv+F+VL49kccF9on9GG757q2J84KXMD0bBrw/+EHt7yro5umqOh7IW1330FHtNvkvQdg72co8GKtajnn2ib+QJ1p7T2XMgzlDPI//mv+C8Db5NWVO/MeangB/Bt4Y9CnuXs7FVIEfWofy9d5cxPF8mRKtNaDQLvxiy5O/xvgMteQ5si7Y1PLdkf8owjvW+hIan7L85gnXJRLd/wQ+ZD+jPjOU1K9ao1JLfeWatgfdtvGcNsBtnzjcu+/+VdWMubNA6i3lNx9MWahl7qvUHa1RqS79pWjord9C/hedFjLsKaByQ72KJLax1437GmqZX+OV2Mz+FP9y0dI52wKuFd3y/CH3Zh1qz1f7x7n62X/USHm3ggqU7pdYyeZ57EedTxI3W1XXw25T1a+DFs4vn/Bz4d7BHm5bOOe4XvzdLeBBRO0YdwzszeYevjFvymYg1xiv1qFvKtx1o17QUi1EXMHYOgfsR8G9Z8hXWiZyrjvFVnFl/kfOxjDdrmeAZeeuapTOce8x6gHquAVEv6jnL51VozH6shdbAn3VnrBvxdtCS7/LdeUv/NUQNxntlG7ypK/dxHWuw/tbzlTVIrMlaKu4Zeu4egm30I+a/WbTL+KaaHoeWh8GX+sZ/I1HnDlixFr9nqY5dtFQztjK+vMurbsH7hqU7J/X+GxyXMGcNWJI9oy9csOJ/PKEr/0cJe96Dvjdl/3g/2ZZ1uH9/Wbe2GnR8AC7Rb8dSPOV2jaIfc7ae6ew7akX/nQRP+kC8j/OO98vgvA95Yj/q2v2SK7Sm5fx5rC2gT/R/YsXacRT7EeMXLMVdcNa4rYrByMd6B676j44+3QFn1U7jTLkzz6nGw/I93m9Yyot5HcdzhPkrELkrYjD8mnGZc2a9pnUO+Q5mPEO/fivG21Grtktty+8eqjM58b873tk+s25c6t0+cNdS/cAYv1Oxfhn6pR20oh+dzvoOZ/b+A6OnAUo= + + + + + eJzVl9lNw0AURZ8ltgr4YquAjliaYPl8DdAChCVABRB2KkBhpwK2sKQC4FgiShQ8tseMx/aVjmRLY+fO3JnnFxGRGZiVamkBFos2EaOBQGQw6N6PFmcltcbwOx50vU+neKYztsb1OmzAZq4uo9XxbjO2wfUBHMJRjt5c6RyacAlXcF2oGzu9wCu0YCohpwcPftJqFdZ+r9uGMf1nvWjtwX7P/UiEN5vzUiZRW5Qao9QarUHRftKI2qLUGKXWaCOjZ9/zprYoNUapNdrM+Hsu5m0jaotSY5Rao62M73Ax70d4gme4yOgjSb01tH/eu/947xd8izvfS7Ds6F2+VZP8e5oVx+8rY0/D90dN385QPnuapN7DZnxvT1O2HiCNqtYD2GaXt3aot9tQh62K9CJn+DyFEziuiOd7fN7BLdyUxDN5C7kL+Yf74I8+8fkB7/AGQ+zdYU/7t21YI/IWchfyD/dBoibwO1nwmSNvIXch/3AfxCopE18ibyF3If9wH8TKNhOfMq2nTSZ5yXSeTOvZn0nU83Mw78Bb1P/tUKbzlHY9k87jD20Li3Y= + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing_data/tiled_examples/perspective_walls.png b/testing_data/tiled_examples/perspective_walls.png new file mode 100644 index 0000000..8b70713 Binary files /dev/null and b/testing_data/tiled_examples/perspective_walls.png differ diff --git a/testing_data/tiled_examples/perspective_walls.tmx b/testing_data/tiled_examples/perspective_walls.tmx new file mode 100644 index 0000000..858eea8 --- /dev/null +++ b/testing_data/tiled_examples/perspective_walls.tmx @@ -0,0 +1,19 @@ + + + + + + eJztlOkKgCAQhLfb7vd/24SUBqMMNevHfDB4LczusihCCCHkTzRay4XaDP7rxf1882ZpzBqTp/Wo4c7ulRy96LUKRx3EFYF5+GpESpA9V845pT/Oxijn+luIw36k8vf1Rpk1xPepx9vczV+O3GL6n4JJ9vkSOf8/Qwb/r+vHP8ZVzFwTQshf2AA5owLB + + + + + eJztzgEJAAAIA7CD/Tsb4yJbgiUA8MO0AwAAhy0rhAAE + + + + + eJztzjENAAAIA7Al+PeMgz0cPK2CJgBwN98BAACqBS0QAAQ= + + + diff --git a/testing_data/tiled_examples/perspective_walls.tsx b/testing_data/tiled_examples/perspective_walls.tsx new file mode 100644 index 0000000..98cdbec --- /dev/null +++ b/testing_data/tiled_examples/perspective_walls.tsx @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/testing_data/tiled_examples/rpg/beach_tileset.png b/testing_data/tiled_examples/rpg/beach_tileset.png new file mode 100644 index 0000000..c9f6d52 Binary files /dev/null and b/testing_data/tiled_examples/rpg/beach_tileset.png differ diff --git a/testing_data/tiled_examples/rpg/beach_tileset.tsx b/testing_data/tiled_examples/rpg/beach_tileset.tsx new file mode 100644 index 0000000..c280249 --- /dev/null +++ b/testing_data/tiled_examples/rpg/beach_tileset.tsx @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/testing_data/tiled_examples/rpg/island.tmx b/testing_data/tiled_examples/rpg/island.tmx new file mode 100644 index 0000000..2b0a012 --- /dev/null +++ b/testing_data/tiled_examples/rpg/island.tmx @@ -0,0 +1,26 @@ + + + + + + eJztmH1u00AQxb3h+ySFcgtASJVqx7EvwAVKgfQclYA6cBc4R8g/fPYizKj75JfJrt1SpzHV/vHkxlsn+8vMvJlNk2VZk5SUlJSUlJR9N9r1frbBdyJybl2v5d7xCPY3hMD3XtSIaq+F6IOsfRzBHodgVL4p8THrbeD8JPosOqP41Ua3gVP1WPREtCK2peibu7j3v3HG/PNQlBOval/01N/bH8HeL6N5tu6jMf8Ebz6CPf8LY+Zan5mOOA9t3+7r4bzOXlqIKtGzSZZN3LhmgFDfjvVwm5/ObfYL6NSvg3eXMxBioft6IDEo5Tp32Su9QpyD6BGIna7npuczc0m8u5iB5oaR9/VOOGviRA7qc19EX0UH8nrm1/n53N+r/PrMfx9Y1+/g/AZrmOOiceQZ5a3nrIkjFNPKrxV0rYip8NyNYdbrSzd8LwnVA+KCPs3598ZwxnKX41TT83mgXiuvc2IsBuRjz0Dusfayiz698nubUSyaHs5QznLMeG3m339oRj4bYK+nEdaGWK2v9HHi/5GzBb3mmiy3xGj9pTasNpcPDetlOLEOvsJt5jLX7lC+E/PQWF8LebuyHhjWyj+j//tQro9c+xklcVjG0Ofqe/y4Jid/zxyL0GfG5jN9jyPzLPeX56IXk/Ze2fM5tkbBep2+CQ9d+RpR4ezDvsqslhP5ENo3c+eu9dATt9lL4UOVa733t+jPgPlrzz572bqvosfZHhbyl74YdQmMyOd7kgf3J8Nxdp19UH8hX+DZwTJy/+9bK308kVPSj3X20DlLZ8obm4OO3OaME6pv9sszYsJcGxL/RmBrBz36puc99RV4qPXRUF1af7NMS9fWSex3A7zeJiPnLjwJHso+GspH1NmUGC0TzwBcO/bekCxd5zyeCaZufR7P6e/CxAx1Z+eGZgv771PoHByaf2xcESuuSxszrrld/y7C9bdwm+fc0PwDVo3rT9GviF/YmtsVo4rPweyTi8jemVVz8o7U6N1JuO+M7bc6ywp1nW1tXi47/ndMQv7CV7DvrjPRmPLyKrrqvseWl0lJSUlJSdvQXyaqnVE= + + + + + eJztmEtSwkAURUPYiA4sSh0o7sJCdCD+F4ETlY+fdajgdx2CshZ1HZ4UZKQpSk26qx/3VJ1JBvS7eV39OkSREEIIIYQImaXYdwVu2TCat0Ku25LfGhqsv4O7Bdcx9Jyzxfpt7Hiuo2h65OvjnfGcr+R7w5HxnO/k+8BP4zlTFnM465sBzIvtST+tz/JN8m0Zz5jHnrXOesY7snq3mytH0TweO8xXM/ouU+qx3/Ny2cHayewqcp0zfnsFV7GKaxlrhTSXFsq+K3DLCb05jce9bP2jT3vcQfbxAA/xyOMdM5kPWWdlm+cd7P4xa5dc53iBl3gV+F36mvpvfshwz7MHfMQnfPaYM2sW/Wa/vlD/IIBepd8b9YDOTPGdad+NLua/EAmVGdhrIfxPI4QQQoh8+QKR0iKM + + + + + eJzt1bcNwlAURuFnU5KWAPYhzwGMQlqE3JJWINktaQVAHInGIDdIIOvB/0mnsEVxr56NjRERERERERERERvsHGM88p2oJ/ky1xiHXOpRnwZu1EN9XoadspSjFa1pY9GeNWatU+ONmS/89ko3C/ZsMmOL2tSh7svMU97DGc1pQUtL38she41oTJOQc9mz14GOdKKzpXtu2W1HHvkvexa5jlOCkpSitAXPaNDT9yHGf2gs6om+JPB9CMpzXXAfZ1my7OzCBL8PYcrcr1D1B3b9d7/wvIqIiIiIiIiEuQPCYiRe + + + + + + + + + + diff --git a/testing_data/tiled_examples/rpg/readme.txt b/testing_data/tiled_examples/rpg/readme.txt new file mode 100644 index 0000000..5ef42a7 --- /dev/null +++ b/testing_data/tiled_examples/rpg/readme.txt @@ -0,0 +1,28 @@ +-=-=-=- -==-=- -==-=- -==-=- -==-=- + TIME FANTASY - BEACH TILESET +-==-=- -==-=- -==-=- -==-=- -==-=- + +Thank you for downloading this tileset! + +This tileset is a FREE release for anybody to download. I created this set as a reward for reaching a goal +on my Patreon page. Thanks to my wonderful patrons for making this free release possible! patreon.com/finalbossblues + +This tileset is a mini-expansion for the Time Fantasy RPG assets. It's compatible with all other graphics that I release +in my Time Fantasy style. Can also be used as a standalone tileset. + +This set includes versions formatted for use in RPGMaker VX/Ace and RPGMaker MV, +as well as a regular tile-sheet based on a 16x16 grid. + +------------------------- +Time Fantasy Website + timefantasy.net +------------------------- +Artist's Website + finalbossblues.com +Twitter + @finalbossblues +Facebook + finalbossblues +Patreon + patreon.com/finalbossblues +------------------------- diff --git a/testing_data/tiled_examples/sewer_automap/rule_001.tmx b/testing_data/tiled_examples/sewer_automap/rule_001.tmx new file mode 100644 index 0000000..e05c002 --- /dev/null +++ b/testing_data/tiled_examples/sewer_automap/rule_001.tmx @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + eJxjYMAPPHHQ+AAAJfgA3A== + + + + + eJxjYMAPPKG0F5T2JqAeBAAmbADf + + + + + eJxjYMAPeKG0DJRWIqAeBAAMkABM + + + diff --git a/testing_data/tiled_examples/sewer_automap/rule_002.tmx b/testing_data/tiled_examples/sewer_automap/rule_002.tmx new file mode 100644 index 0000000..82203c5 --- /dev/null +++ b/testing_data/tiled_examples/sewer_automap/rule_002.tmx @@ -0,0 +1,24 @@ + + + + + + + + + + + eJxjYCAMfLDQPnjkiTGPWLUA1AACYQ== + + + + + eJxjYCAMvKG0FxLfC0neC00dIeBFgloAz9QCVQ== + + + + + eJxjYCAMtND4yjjUSRFhFgwoEqkOADFsAIk= + + + diff --git a/testing_data/tiled_examples/sewer_automap/rule_003.tmx b/testing_data/tiled_examples/sewer_automap/rule_003.tmx new file mode 100644 index 0000000..a8edb5d --- /dev/null +++ b/testing_data/tiled_examples/sewer_automap/rule_003.tmx @@ -0,0 +1,30 @@ + + + + + + + + + + + + eJxjYCAMfLDQPnjkydVPDgAAZj8DRQ== + + + + + eJxjYCAMPAmIYZPHphadpgYAAL88Abc= + + + + + eJxjYCAMmLCI8SCxuQjoF0Lj8xFhJ7EAABfQADk= + + + + + eJxjYCAesBKQ5yXBLGoBAAmIABM= + + + diff --git a/testing_data/tiled_examples/sewer_automap/rule_004.tmx b/testing_data/tiled_examples/sewer_automap/rule_004.tmx new file mode 100644 index 0000000..09c97a7 --- /dev/null +++ b/testing_data/tiled_examples/sewer_automap/rule_004.tmx @@ -0,0 +1,29 @@ + + + + + + + + + + + eJxjYMAPfKAYnU0rOVwAAJk3BME= + + + + + eJxjYMAPPKEYnU2pHLodhAAAb/8D/w== + + + + + eJxjYMAPePHI8aHxeYiUIwcAABkoAEI= + + + + + eJxjYMAPOND47ATU0woAAAgwABA= + + + diff --git a/testing_data/tiled_examples/sewer_automap/rule_005.tmx b/testing_data/tiled_examples/sewer_automap/rule_005.tmx new file mode 100644 index 0000000..57a49d0 --- /dev/null +++ b/testing_data/tiled_examples/sewer_automap/rule_005.tmx @@ -0,0 +1,29 @@ + + + + + + + + + + + eJxjYCAP+BDgk6LHBwcbnxy19ZAKAMzFByE= + + + + + eJxjYCAPeBLgD6QeYsyj1BwAd2cCSQ== + + + + + eJxjYCAPiKHxRYjQw43G5yRCjzAaX5AIPfQAAE2oAGM= + + + + + eJxjYBgcgAVKs5GghwdK81HZLcQAABQQACU= + + + diff --git a/testing_data/tiled_examples/sewer_automap/rule_006.tmx b/testing_data/tiled_examples/sewer_automap/rule_006.tmx new file mode 100644 index 0000000..9a155d0 --- /dev/null +++ b/testing_data/tiled_examples/sewer_automap/rule_006.tmx @@ -0,0 +1,39 @@ + + + + + + + + + + + eJxjYMAPfKAYnU2JHC4AAAEbA5E= + + + + + eJxjYKAMeKLRyOKeWNj4AABbzAG3 + + + + + eJxjYCAfeBLgkwoAKZwAkw== + + + + + eJxjYKAM8KLRlAAAB9wAGw== + + + + + eJxjYCAMeNFoWgEACrQAGw== + + + + + eJxjYCAM5KG0AhFqKQEAGSQAQA== + + + diff --git a/testing_data/tiled_examples/sewer_automap/rule_007.tmx b/testing_data/tiled_examples/sewer_automap/rule_007.tmx new file mode 100644 index 0000000..757e7c1 --- /dev/null +++ b/testing_data/tiled_examples/sewer_automap/rule_007.tmx @@ -0,0 +1,34 @@ + + + + + + + + + + + eJxjYMAPfKAYnU1Ijp5mAgDb0wTB + + + + + eJxjYKAMeKPRtNaHDQAAdfQBLQ== + + + + + eJxjYMAPvKEYnc2AxsbGx2cmLj4++3ABAGBjA4U= + + + + + eJxjYCAMPNFodHFcfELmEeITax4A5OQCSQ== + + + + + eJxjYKAMSEJpaRL1aUJpbQrtBwEAMlQAiQ== + + + diff --git a/testing_data/tiled_examples/sewer_automap/rule_008.tmx b/testing_data/tiled_examples/sewer_automap/rule_008.tmx new file mode 100644 index 0000000..7166d83 --- /dev/null +++ b/testing_data/tiled_examples/sewer_automap/rule_008.tmx @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + eJxjYCAMfKAYGwAAD7AAmQ== + + + + + eJxjYMAEPljEcAEADVAATQ== + + + + + eJxjYCAMWICYF4ccAAHoABI= + + + + + + + + + + diff --git a/testing_data/tiled_examples/sewer_automap/rule_009.tmx b/testing_data/tiled_examples/sewer_automap/rule_009.tmx new file mode 100644 index 0000000..ae8c0ab --- /dev/null +++ b/testing_data/tiled_examples/sewer_automap/rule_009.tmx @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + eJxjYMAEPlCMDQAAD6AAmQ== + + + + + eJxjYMAESkCshUUcBAAH2ABN + + + + + + + + + + diff --git a/testing_data/tiled_examples/sewer_automap/rules.txt b/testing_data/tiled_examples/sewer_automap/rules.txt new file mode 100644 index 0000000..8d93775 --- /dev/null +++ b/testing_data/tiled_examples/sewer_automap/rules.txt @@ -0,0 +1,142 @@ +# rules.txt +# Copyright 2011, Stefan Beller +# +# This file is part of the sewers example for automapping for Tiled. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# +# You should have received a copy of the GNU General Public License along with +# this program. If not, see . + + +# lines starting with # or // are comments +# all other lines will be parsed and treated as filenames. + +# Feel free to comment out certain rules, to see if and how they are working. +# So have fun experimenting with this bunch of rules :) + +# First apply only one tile rules to fill the regions +# +# We mark the place, where rules are defined, with the RuleRegion layer. +# So whereever there are tiles at the ruleRegion layer, it will be used as a rule. +# In the RuleSet layer we can define, which combination of tiles must occur +# to trigger the specific rule. +# The layers Rule_Ground, Rule_Over and Rule_Over2 define the output of the rules. +# +# Which tiles should I use in the regions layer? +# Actually there can be any tiles, but it should be the same tiles for one rule. +# So use whatever you want, maybe a colorful tile so you can see easily that these +# tiles are used for defining the rule region. +# +# In the very first rulefile used for Automapping it might be useful to define +# some map properties: +# "DeleteTiles" = "true", "false" - This property determines if all tiles in the +# whole region where Automapping takes place +# are deleted. +# That is useful, when not all layers are covered +# at all places. (Check the Over and Over2 layer!) +# "AutoMappingRadius" = 0,1,2... - This property determines which regions are +# automatically remapped at live Automapping. +# When you draw directly into the map, +# not the whole map is remapped, but only a little +# place around. Here you can specify how many +# tiles at least should be remapped. + +./rule_001.tmx + + + + +# Setup the right transition tiles at the border of light blue stone tiles +# +# Basically it is the same as the first rule, we are just using bigger rules. +# Whenever there is a light blue tile beside a grey tile, one of these rules +# will apply. + +./rule_002.tmx + + + + +# Now put straight walls +# +# Note: Compare the regions and the set layer! +# Not at all places where a rule is defined, there is a tile in the input_set layer. +# This means that there can be any tiles except those used by the rule. +# So there are no black tiles allowed, when there are no tiles in the input_set +# layer. + +./rule_003.tmx + + + + +# Now we add inner corners for walls +# +# (No new features introduced) + +./rule_004.tmx + + + + +# Now we add the corners for walls +# +# (No new features introduced) + +./rule_005.tmx + + + + +# Correct the error we got in the two previous rulefiles (overwrite it once more) +# +# Here we can see the use of input_set and input_NotSet +# With the input_NotSet we can define which tiles must not be used at certain places +# Important sideeffect: the empty regions in ruleSet can be anything now, including +# black tiles as used here! +# +# So when you use both input_Set and input_NotSet, you need to specify exactly what +# is allowed at which places. + +./rule_006.tmx + + + + +# Setup the corner stones for light blue stone tiles +# +# Hey, there are multiple layers called input_NotSet! +# Yes, when you need to specify multiple allowed or disallowed tiles per +# position, you can use multiple layers of input_Set and input_NotSet + +./rule_007.tmx + + + + + +# Setup objects now +# The objects '1' will be placed. They will be placed based on the +# Over layer, which was created by previous rules. +# The placement of objects is done in south-east corners. + +./rule_008.tmx + + + + +# Setup another object. +# This object is based on input from the Ground layer. +# It will put objects to borderstones which are near an end of that borderline. +# + +./rule_009.tmx diff --git a/testing_data/tiled_examples/sewer_automap/rules_sewers.png b/testing_data/tiled_examples/sewer_automap/rules_sewers.png new file mode 100644 index 0000000..7214e28 Binary files /dev/null and b/testing_data/tiled_examples/sewer_automap/rules_sewers.png differ diff --git a/testing_data/tiled_examples/sewer_automap/sewers.tmx b/testing_data/tiled_examples/sewer_automap/sewers.tmx new file mode 100644 index 0000000..4af5a15 --- /dev/null +++ b/testing_data/tiled_examples/sewer_automap/sewers.tmx @@ -0,0 +1,15 @@ + + + + + + + + + + + + eJztlUEOwCAIBLH+/8/eDSBQ1jTNHuZiDKOGxSEigxDyCWYRtPsx6HBH74hyn2r9zT2T7uj+jPemW+sfrRai16K1ut1ebtEZ8+aFdxaU27qj5a7O1FOfRd1v86XlZc+T9RZVt3aG6FrX/0UIIVkWa5oFDA== + + + diff --git a/testing_data/tiled_examples/sewer_tileset.png b/testing_data/tiled_examples/sewer_tileset.png new file mode 100644 index 0000000..9455c8e Binary files /dev/null and b/testing_data/tiled_examples/sewer_tileset.png differ diff --git a/testing_data/tiled_examples/sewers.tmx b/testing_data/tiled_examples/sewers.tmx new file mode 100644 index 0000000..320d65d --- /dev/null +++ b/testing_data/tiled_examples/sewers.tmx @@ -0,0 +1,16 @@ + + + + + + + + eJzt19kKwjAQBdDim0sFqwguL3Vf/sP//ySnkIFhSGrSdEnxPhyQxqJ32kySPMuyJTkZC5KLa2dyNEo1Lsds3wkl/4f+7V/0/f+Y40Je5GpUn2+J5NiQCdmO/HlMyYzMI3JwLUJx7drIsSIFWUfk4FrY3GvGuHb8vr4jcmhNcnAtpIflmmar3VA5nqaWMUKeQ1d9dyht59iRPTmMPEdpua8Put/Frh88P5q84zFkv/NZP2TOlOaH7Hc+64fMmdL8cPVbV9+tcn5MzpTmR0gv12uDbQ4MNT8AIA73Uq3v3hqLe2ldTx4D21k1tf2ubw59Vk1tX+KbQ59VXfuSlMn9SJHV70tS5jqrYu8BAAAAAAAAAABd+wIHfQq1 + + + + + eJzt1jsKgDAQQEELtVKvYuGvEDvvfya3MBeQQAzMwCPdsum2af5lL71AJv7xL7X+Y46WtzXayq7z2RGd0f2+V6a5bdRFfaZ5pQzRGE2lFwEAoArpDk7Veg+nOzjlHgYAAAAAIIcHvboDlQ== + + + diff --git a/testing_data/tiled_examples/sticker-knight/README.md b/testing_data/tiled_examples/sticker-knight/README.md new file mode 100644 index 0000000..053bed6 --- /dev/null +++ b/testing_data/tiled_examples/sticker-knight/README.md @@ -0,0 +1,8 @@ +Sticker Knight platformer example +--------------------------------- + +This example is by @ponywolf and released to the public domain. You can +find it at http://opengameart.org/content/sticker-knight-platformer. + +It's a great example of using the flexible image collection tilesets with +tiles on object layers, for both the map and the UI. diff --git a/testing_data/tiled_examples/sticker-knight/map/alter.png b/testing_data/tiled_examples/sticker-knight/map/alter.png new file mode 100644 index 0000000..1571c54 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/alter.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/backgroundArch.png b/testing_data/tiled_examples/sticker-knight/map/backgroundArch.png new file mode 100644 index 0000000..84ba79d Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/backgroundArch.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/backgroundMountain.png b/testing_data/tiled_examples/sticker-knight/map/backgroundMountain.png new file mode 100644 index 0000000..3596080 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/backgroundMountain.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/backgroundTower.png b/testing_data/tiled_examples/sticker-knight/map/backgroundTower.png new file mode 100644 index 0000000..d602bb2 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/backgroundTower.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/backgroundTree.png b/testing_data/tiled_examples/sticker-knight/map/backgroundTree.png new file mode 100644 index 0000000..ccee0f4 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/backgroundTree.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/blobBlue.png b/testing_data/tiled_examples/sticker-knight/map/blobBlue.png new file mode 100644 index 0000000..6ed4873 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/blobBlue.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/blobGreen.png b/testing_data/tiled_examples/sticker-knight/map/blobGreen.png new file mode 100644 index 0000000..465c93f Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/blobGreen.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/blue.png b/testing_data/tiled_examples/sticker-knight/map/blue.png new file mode 100644 index 0000000..3f8a906 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/blue.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/bombStroked.png b/testing_data/tiled_examples/sticker-knight/map/bombStroked.png new file mode 100644 index 0000000..2db2a2a Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/bombStroked.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/castleWall.png b/testing_data/tiled_examples/sticker-knight/map/castleWall.png new file mode 100644 index 0000000..b270467 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/castleWall.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/cloud.png b/testing_data/tiled_examples/sticker-knight/map/cloud.png new file mode 100644 index 0000000..f51cdce Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/cloud.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/column1.png b/testing_data/tiled_examples/sticker-knight/map/column1.png new file mode 100644 index 0000000..292d20d Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/column1.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/column2.png b/testing_data/tiled_examples/sticker-knight/map/column2.png new file mode 100644 index 0000000..0169d95 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/column2.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/doorBlueStroked.png b/testing_data/tiled_examples/sticker-knight/map/doorBlueStroked.png new file mode 100644 index 0000000..b205260 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/doorBlueStroked.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/doorGreenStroke.png b/testing_data/tiled_examples/sticker-knight/map/doorGreenStroke.png new file mode 100644 index 0000000..3d565db Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/doorGreenStroke.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/doorRedStroked.png b/testing_data/tiled_examples/sticker-knight/map/doorRedStroked.png new file mode 100644 index 0000000..dfeb1b7 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/doorRedStroked.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/doorStroked.png b/testing_data/tiled_examples/sticker-knight/map/doorStroked.png new file mode 100644 index 0000000..4891c39 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/doorStroked.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/earthWall.png b/testing_data/tiled_examples/sticker-knight/map/earthWall.png new file mode 100644 index 0000000..1729a1b Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/earthWall.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/earthWall2.png b/testing_data/tiled_examples/sticker-knight/map/earthWall2.png new file mode 100644 index 0000000..ed08586 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/earthWall2.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/exit.png b/testing_data/tiled_examples/sticker-knight/map/exit.png new file mode 100644 index 0000000..4a3a5b7 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/exit.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/flare.png b/testing_data/tiled_examples/sticker-knight/map/flare.png new file mode 100644 index 0000000..52f29e1 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/flare.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/gemBlueStroked.png b/testing_data/tiled_examples/sticker-knight/map/gemBlueStroked.png new file mode 100644 index 0000000..ba99cef Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/gemBlueStroked.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/gemRedStroked.png b/testing_data/tiled_examples/sticker-knight/map/gemRedStroked.png new file mode 100644 index 0000000..e223514 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/gemRedStroked.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/grassLarge.png b/testing_data/tiled_examples/sticker-knight/map/grassLarge.png new file mode 100644 index 0000000..93dfcd3 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/grassLarge.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/grassSmall.png b/testing_data/tiled_examples/sticker-knight/map/grassSmall.png new file mode 100644 index 0000000..0fe8a00 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/grassSmall.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/grey.png b/testing_data/tiled_examples/sticker-knight/map/grey.png new file mode 100644 index 0000000..5a948f1 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/grey.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/hero.png b/testing_data/tiled_examples/sticker-knight/map/hero.png new file mode 100644 index 0000000..1957fb8 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/hero.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/keyGreenStroked.png b/testing_data/tiled_examples/sticker-knight/map/keyGreenStroked.png new file mode 100644 index 0000000..7ed454b Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/keyGreenStroked.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/keyRedStroked.png b/testing_data/tiled_examples/sticker-knight/map/keyRedStroked.png new file mode 100644 index 0000000..1407a37 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/keyRedStroked.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/keyYellowStroked.png b/testing_data/tiled_examples/sticker-knight/map/keyYellowStroked.png new file mode 100644 index 0000000..78aeeed Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/keyYellowStroked.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/objs.tsx b/testing_data/tiled_examples/sticker-knight/map/objs.tsx new file mode 100644 index 0000000..7dfc66c --- /dev/null +++ b/testing_data/tiled_examples/sticker-knight/map/objs.tsx @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing_data/tiled_examples/sticker-knight/map/platform1.png b/testing_data/tiled_examples/sticker-knight/map/platform1.png new file mode 100644 index 0000000..e634bed Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/platform1.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/platform2.png b/testing_data/tiled_examples/sticker-knight/map/platform2.png new file mode 100644 index 0000000..3bfa441 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/platform2.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/platform3.png b/testing_data/tiled_examples/sticker-knight/map/platform3.png new file mode 100644 index 0000000..d2938f9 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/platform3.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/platform4.png b/testing_data/tiled_examples/sticker-knight/map/platform4.png new file mode 100644 index 0000000..39c53fd Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/platform4.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/platformBase1.png b/testing_data/tiled_examples/sticker-knight/map/platformBase1.png new file mode 100644 index 0000000..7a08f94 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/platformBase1.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/platformBase2.png b/testing_data/tiled_examples/sticker-knight/map/platformBase2.png new file mode 100644 index 0000000..074bbe5 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/platformBase2.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/platformBase3.png b/testing_data/tiled_examples/sticker-knight/map/platformBase3.png new file mode 100644 index 0000000..1edfff9 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/platformBase3.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/platformBase4.png b/testing_data/tiled_examples/sticker-knight/map/platformBase4.png new file mode 100644 index 0000000..e142526 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/platformBase4.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/platformBlock1.png b/testing_data/tiled_examples/sticker-knight/map/platformBlock1.png new file mode 100644 index 0000000..c2ab0ee Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/platformBlock1.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/platformBlock2.png b/testing_data/tiled_examples/sticker-knight/map/platformBlock2.png new file mode 100644 index 0000000..39d6493 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/platformBlock2.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/platformBlock3.png b/testing_data/tiled_examples/sticker-knight/map/platformBlock3.png new file mode 100644 index 0000000..12337a8 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/platformBlock3.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/platformBlock4.png b/testing_data/tiled_examples/sticker-knight/map/platformBlock4.png new file mode 100644 index 0000000..5ce2c18 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/platformBlock4.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/platformConnector1.png b/testing_data/tiled_examples/sticker-knight/map/platformConnector1.png new file mode 100644 index 0000000..5b03569 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/platformConnector1.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/platformConnector2.png b/testing_data/tiled_examples/sticker-knight/map/platformConnector2.png new file mode 100644 index 0000000..5671b0e Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/platformConnector2.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/platformConnector3.png b/testing_data/tiled_examples/sticker-knight/map/platformConnector3.png new file mode 100644 index 0000000..095f014 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/platformConnector3.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/platformConnector4.png b/testing_data/tiled_examples/sticker-knight/map/platformConnector4.png new file mode 100644 index 0000000..b859ee4 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/platformConnector4.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/pushBlock1.png b/testing_data/tiled_examples/sticker-knight/map/pushBlock1.png new file mode 100644 index 0000000..9b7156e Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/pushBlock1.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/pushBlock2.png b/testing_data/tiled_examples/sticker-knight/map/pushBlock2.png new file mode 100644 index 0000000..c3977cb Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/pushBlock2.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/pushBlock3.png b/testing_data/tiled_examples/sticker-knight/map/pushBlock3.png new file mode 100644 index 0000000..28778dd Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/pushBlock3.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/sandbox.tmx b/testing_data/tiled_examples/sticker-knight/map/sandbox.tmx new file mode 100644 index 0000000..3c4ff00 --- /dev/null +++ b/testing_data/tiled_examples/sticker-knight/map/sandbox.tmx @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing_data/tiled_examples/sticker-knight/map/sandbox2.tmx b/testing_data/tiled_examples/sticker-knight/map/sandbox2.tmx new file mode 100644 index 0000000..61bb0f6 --- /dev/null +++ b/testing_data/tiled_examples/sticker-knight/map/sandbox2.tmx @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing_data/tiled_examples/sticker-knight/map/shadow.png b/testing_data/tiled_examples/sticker-knight/map/shadow.png new file mode 100644 index 0000000..c43af09 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/shadow.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/shieldStroked.png b/testing_data/tiled_examples/sticker-knight/map/shieldStroked.png new file mode 100644 index 0000000..976f171 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/shieldStroked.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/sign.png b/testing_data/tiled_examples/sticker-knight/map/sign.png new file mode 100644 index 0000000..47ec0ac Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/sign.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/skeleton.png b/testing_data/tiled_examples/sticker-knight/map/skeleton.png new file mode 100644 index 0000000..84040a1 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/skeleton.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/swordStroked.png b/testing_data/tiled_examples/sticker-knight/map/swordStroked.png new file mode 100644 index 0000000..a3b6874 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/swordStroked.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/templates/block.tx b/testing_data/tiled_examples/sticker-knight/map/templates/block.tx new file mode 100644 index 0000000..3bb9a81 --- /dev/null +++ b/testing_data/tiled_examples/sticker-knight/map/templates/block.tx @@ -0,0 +1,11 @@ + + diff --git a/testing_data/tiled_examples/sticker-knight/map/templates/diamond.tx b/testing_data/tiled_examples/sticker-knight/map/templates/diamond.tx new file mode 100644 index 0000000..01b0dd1 --- /dev/null +++ b/testing_data/tiled_examples/sticker-knight/map/templates/diamond.tx @@ -0,0 +1,5 @@ + + diff --git a/testing_data/tiled_examples/sticker-knight/map/templates/hero.tx b/testing_data/tiled_examples/sticker-knight/map/templates/hero.tx new file mode 100644 index 0000000..793b2f5 --- /dev/null +++ b/testing_data/tiled_examples/sticker-knight/map/templates/hero.tx @@ -0,0 +1,5 @@ + + diff --git a/testing_data/tiled_examples/sticker-knight/map/torch.png b/testing_data/tiled_examples/sticker-knight/map/torch.png new file mode 100644 index 0000000..75ca437 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/torch.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/trap.png b/testing_data/tiled_examples/sticker-knight/map/trap.png new file mode 100644 index 0000000..7b07731 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/trap.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/wallDecor1.png b/testing_data/tiled_examples/sticker-knight/map/wallDecor1.png new file mode 100644 index 0000000..9fadac3 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/wallDecor1.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/wallDecor2.png b/testing_data/tiled_examples/sticker-knight/map/wallDecor2.png new file mode 100644 index 0000000..e33ad11 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/wallDecor2.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/wallDecor3.png b/testing_data/tiled_examples/sticker-knight/map/wallDecor3.png new file mode 100644 index 0000000..3053883 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/wallDecor3.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/window1.png b/testing_data/tiled_examples/sticker-knight/map/window1.png new file mode 100644 index 0000000..255b571 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/window1.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/window2.png b/testing_data/tiled_examples/sticker-knight/map/window2.png new file mode 100644 index 0000000..3a4143b Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/window2.png differ diff --git a/testing_data/tiled_examples/sticker-knight/map/window3.png b/testing_data/tiled_examples/sticker-knight/map/window3.png new file mode 100644 index 0000000..6039873 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/map/window3.png differ diff --git a/testing_data/tiled_examples/sticker-knight/preview.png b/testing_data/tiled_examples/sticker-knight/preview.png new file mode 100644 index 0000000..8268433 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/preview.png differ diff --git a/testing_data/tiled_examples/sticker-knight/sprites.png b/testing_data/tiled_examples/sticker-knight/sprites.png new file mode 100644 index 0000000..b00c781 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/sprites.png differ diff --git a/testing_data/tiled_examples/sticker-knight/ui/backgroundSet.png b/testing_data/tiled_examples/sticker-knight/ui/backgroundSet.png new file mode 100644 index 0000000..1be6bb1 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/ui/backgroundSet.png differ diff --git a/testing_data/tiled_examples/sticker-knight/ui/block.png b/testing_data/tiled_examples/sticker-knight/ui/block.png new file mode 100644 index 0000000..382c3d8 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/ui/block.png differ diff --git a/testing_data/tiled_examples/sticker-knight/ui/buttonHelp.png b/testing_data/tiled_examples/sticker-knight/ui/buttonHelp.png new file mode 100644 index 0000000..920a380 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/ui/buttonHelp.png differ diff --git a/testing_data/tiled_examples/sticker-knight/ui/buttonStart.png b/testing_data/tiled_examples/sticker-knight/ui/buttonStart.png new file mode 100644 index 0000000..415dd54 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/ui/buttonStart.png differ diff --git a/testing_data/tiled_examples/sticker-knight/ui/cloud.png b/testing_data/tiled_examples/sticker-knight/ui/cloud.png new file mode 100644 index 0000000..f51cdce Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/ui/cloud.png differ diff --git a/testing_data/tiled_examples/sticker-knight/ui/gem.png b/testing_data/tiled_examples/sticker-knight/ui/gem.png new file mode 100644 index 0000000..1e95975 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/ui/gem.png differ diff --git a/testing_data/tiled_examples/sticker-knight/ui/heart.png b/testing_data/tiled_examples/sticker-knight/ui/heart.png new file mode 100644 index 0000000..d471b59 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/ui/heart.png differ diff --git a/testing_data/tiled_examples/sticker-knight/ui/helpBackground.png b/testing_data/tiled_examples/sticker-knight/ui/helpBackground.png new file mode 100644 index 0000000..ad20725 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/ui/helpBackground.png differ diff --git a/testing_data/tiled_examples/sticker-knight/ui/shield.png b/testing_data/tiled_examples/sticker-knight/ui/shield.png new file mode 100644 index 0000000..1474ad0 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/ui/shield.png differ diff --git a/testing_data/tiled_examples/sticker-knight/ui/title.json b/testing_data/tiled_examples/sticker-knight/ui/title.json new file mode 100644 index 0000000..95b7beb --- /dev/null +++ b/testing_data/tiled_examples/sticker-knight/ui/title.json @@ -0,0 +1,281 @@ +{ "backgroundcolor":"#3b97d3", + "height":26, + "layers":[ + { + "draworder":"topdown", + "height":26, + "name":"background", + "objects":[ + { + "gid":7, + "height":262.666666666667, + "id":11, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":1736, + "x":-256, + "y":920.666666666667 + }, + { + "gid":6, + "height":832, + "id":34, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":1216, + "x":122, + "y":810 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "width":38, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "height":26, + "name":"clouds", + "objects":[ + { + "gid":8, + "height":61.3333333333333, + "id":14, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":184, + "x":640, + "y":320 + }, + { + "gid":8, + "height":61.3333333333333, + "id":17, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":184, + "x":336, + "y":144 + }, + { + "gid":8, + "height":61.3333333333333, + "id":21, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":192, + "x":1024, + "y":145 + }, + { + "gid":2147483656, + "height":61.3333333333333, + "id":23, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":184, + "x":44, + "y":136 + }, + { + "gid":6, + "height":600, + "id":8, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":954, + "x":-226, + "y":768 + }, + { + "gid":2147483654, + "height":546, + "id":35, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":826, + "x":710, + "y":782 + }, + { + "gid":2147483656, + "height":103.333333333333, + "id":36, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":284, + "x":926, + "y":307 + }, + { + "gid":8, + "height":103.333333333333, + "id":37, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":284, + "x":124, + "y":353 + }], + "opacity":0.490000009536743, + "type":"objectgroup", + "visible":true, + "width":38, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "height":38, + "name":"title", + "objects":[ + { + "gid":4, + "height":386, + "id":1, + "name":"logo", + "rotation":0, + "type":"", + "visible":true, + "width":736, + "x":256, + "y":480 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "width":25, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "height":26, + "name":"help", + "objects":[ + { + "gid":3, + "height":715.669407858419, + "id":26, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":745.251573276788, + "x":237.507948400548, + "y":739.425850721188 + }], + "opacity":1, + "type":"objectgroup", + "visible":false, + "width":38, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "height":38, + "name":"buttons", + "objects":[ + { + "gid":2, + "height":85.3333333333333, + "id":2, + "name":"start", + "rotation":0, + "type":"", + "visible":true, + "width":256, + "x":485, + "y":655.333333333333 + }, + { + "gid":1, + "height":64, + "id":3, + "name":"help", + "rotation":0, + "type":"", + "visible":true, + "width":192, + "x":515.599635905335, + "y":761.206553703963 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "width":26, + "x":0, + "y":0 + }], + "nextobjectid":38, + "orientation":"orthogonal", + "renderorder":"right-down", + "tileheight":32, + "tilesets":[ + { + "columns":0, + "firstgid":1, + "margin":0, + "name":"ui", + "spacing":0, + "tilecount":7, + "tileheight":832, + "tiles": + { + "0": + { + "image":"buttonHelp.png" + }, + "1": + { + "image":"buttonStart.png" + }, + "2": + { + "image":"helpBackground.png" + }, + "3": + { + "image":"title.png" + }, + "5": + { + "image":"backgroundSet.png" + }, + "6": + { + "image":"block.png" + }, + "7": + { + "image":"cloud.png" + } + }, + "tilewidth":1232 + }], + "tilewidth":32, + "version":1, + "width":38 +} \ No newline at end of file diff --git a/testing_data/tiled_examples/sticker-knight/ui/title.png b/testing_data/tiled_examples/sticker-knight/ui/title.png new file mode 100644 index 0000000..8a6f161 Binary files /dev/null and b/testing_data/tiled_examples/sticker-knight/ui/title.png differ diff --git a/testing_data/tiled_examples/test_hexagonal_tile_60x60x30.png b/testing_data/tiled_examples/test_hexagonal_tile_60x60x30.png new file mode 100644 index 0000000..ce112fb Binary files /dev/null and b/testing_data/tiled_examples/test_hexagonal_tile_60x60x30.png differ diff --git a/testing_data/tiled_examples/test_hexagonal_tile_60x60x30.tmx b/testing_data/tiled_examples/test_hexagonal_tile_60x60x30.tmx new file mode 100644 index 0000000..bbf214f --- /dev/null +++ b/testing_data/tiled_examples/test_hexagonal_tile_60x60x30.tmx @@ -0,0 +1,30 @@ + + + + + + + +1,536870913,268435457,3221225473,3758096385,3489660929,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2147483649,2684354561,2415919105,1073741825,1610612737,1342177281,2147483649,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + diff --git a/testing_data/tiled_examples/tmw_desert_spacing.png b/testing_data/tiled_examples/tmw_desert_spacing.png new file mode 100644 index 0000000..4e9995c Binary files /dev/null and b/testing_data/tiled_examples/tmw_desert_spacing.png differ -- cgit v1.2.3-60-g2f50