1.38.1 • Published 3 months ago

parse-tmx v1.38.1

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
3 months ago

parse-tmx NPM Version

Inspired by tmx-map-parser. A parser for Tiled Map Editor *.tmx files.

Installation

pnpm i parse-tmx

Usage

The basic implementation:

import { parseTmx } from "parse-tmx";
// The *.tmx file can be loaded as a string or URL encoded data.
// for Webpack use 'url-loader' plugin, for Rollup it can be '@rollup/plugin-url'
import tmxFile from "map.tmx";

// Translates the tile flips in the layer data (default: false)
const translateFlips = true;

const loadMap = async () => {
  const data = await parseTmx(tmxFile, translateFlips);
  console.log(data);
};

Important

Parser only supports embedded tilesets. At the moment, external tilesets are not supported!

Example data

TMX Map Format documentation

{
    tiledversion: "1.8.0",
    tilewidth: 16,
    tileheight: 16,
    version: 1.8,
    width: 512,
    height: 128,
    infinite: 0,
    nextlayerid: 5,
    nextobjectid: 165,
    orientation: "orthogonal",
    renderorder: "right-down",
    properties: {
        property1: 'value',
        property2: 0.5
    },
    layers: [{
        id: 1,
        name: "layer name",
        type: "layer",
        visible: 1,
        data: [0, 1, 1, 10, 10, 10, 1, 1, 0, 0, 0, 0, …],
        // When the translateFlips parameter is enabled
        flips: [
            {H: false, V: false, D: false},
            {H: true, V: false, D: true},
            {H: false, V: false, D: false},
            {…}
        ],
        width: 512,
        height: 128,
        opacity: 0.77,
        properties: {
           property1: 'value',
           property2: false
        }
    }, {
        id: 2,
        name: "objects",
        type: "objectgroup",
        visible: 1,
        objects: [{…}, {…}, {…}],
        properties: {
           property1: 'value',
           property2: false
        }
    }, {
        …
    }],
    tilesets: [{
        columns: 32,
        firstgid: 1,
        image: {source: "tiles.png", width: 512, height: 512},
        name: "tiles",
        tilecount: 1024,
        tilewidth: 16,
        tileheight: 16,
        tiles: [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
    }, {
        …
    }]
}

License

Apache-2.0 licensed.

1.37.0

4 months ago

1.35.0

4 months ago

1.37.1

4 months ago

1.29.0

6 months ago

1.29.1

6 months ago

1.27.0

7 months ago

1.29.2

6 months ago

1.32.0

5 months ago

1.30.0

6 months ago

1.36.0

4 months ago

1.34.0

5 months ago

1.38.1

3 months ago

1.26.0

7 months ago

1.28.1

7 months ago

1.28.0

7 months ago

1.33.0

5 months ago

1.31.0

6 months ago

1.25.0

8 months ago

1.19.0

9 months ago

1.18.0

9 months ago

1.21.0

9 months ago

1.20.1

9 months ago

1.22.0

8 months ago

1.21.1

9 months ago

1.20.2

9 months ago

1.20.0

9 months ago

1.24.1

8 months ago

1.21.4

9 months ago

1.24.2

8 months ago

1.21.5

9 months ago

1.23.0

8 months ago

1.21.2

9 months ago

1.24.0

8 months ago

1.21.3

9 months ago

1.15.0

11 months ago

1.14.0

12 months ago

1.13.0

12 months ago

1.11.2

1 year ago

1.12.0

1 year ago

1.11.1

1 year ago

1.17.0

10 months ago

1.16.0

10 months ago

1.9.1

1 year ago

1.8.2

1 year ago

1.9.0

1 year ago

1.11.0

1 year ago

1.10.0

1 year ago

1.7.1

1 year ago

1.7.0

1 year ago

1.2.0

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.30

1 year ago

1.0.28

1 year ago

1.0.27

1 year ago

1.0.26

1 year ago

1.0.25

1 year ago

1.0.24

1 year ago

1.0.21

1 year ago

1.0.10

1 year ago