1.38.1 • Published 4 months ago

parse-tmx v1.38.1

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
4 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

5 months ago

1.35.0

5 months ago

1.37.1

5 months ago

1.29.0

8 months ago

1.29.1

8 months ago

1.27.0

9 months ago

1.29.2

8 months ago

1.32.0

7 months ago

1.30.0

8 months ago

1.36.0

5 months ago

1.34.0

6 months ago

1.38.1

4 months ago

1.26.0

9 months ago

1.28.1

8 months ago

1.28.0

8 months ago

1.33.0

6 months ago

1.31.0

7 months ago

1.25.0

9 months ago

1.19.0

10 months ago

1.18.0

10 months ago

1.21.0

10 months ago

1.20.1

10 months ago

1.22.0

10 months ago

1.21.1

10 months ago

1.20.2

10 months ago

1.20.0

10 months ago

1.24.1

9 months ago

1.21.4

10 months ago

1.24.2

9 months ago

1.21.5

10 months ago

1.23.0

9 months ago

1.21.2

10 months ago

1.24.0

9 months ago

1.21.3

10 months ago

1.15.0

1 year ago

1.14.0

1 year ago

1.13.0

1 year ago

1.11.2

1 year ago

1.12.0

1 year ago

1.11.1

1 year ago

1.17.0

11 months ago

1.16.0

12 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