Skip to content

Commit

Permalink
v1.2.0 - Fix & add forgotten props for Tiled 1.4 (#5)
Browse files Browse the repository at this point in the history
  • Loading branch information
Chnapy committed Nov 22, 2020
1 parent b16575a commit f519b0a
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 9 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Type definitions of Tiled generated JSON https://github.com/bjorn/tiled.

[![Build Status](https://travis-ci.com/Chnapy/tiled-types.svg?branch=master)](https://travis-ci.com/Chnapy/tiled-types)

Made for Tiled 1.3.1.
Made for Tiled 1.4.

Based on its documentation https://doc.mapeditor.org/en/stable/reference/json-map-format.

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "tiled-types",
"version": "1.1.0",
"version": "1.2.0",
"description": "Type definitions of Tiled generated JSON",
"main": "types/index.d.ts",
"types": "types",
Expand Down
75 changes: 69 additions & 6 deletions types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,41 @@
// Types made with help of Tiled documentation
// https://doc.mapeditor.org/en/stable/reference/json-map-format

// --WANG--

/**
* @see https://doc.mapeditor.org/en/stable/reference/json-map-format/#wang-color
*/
export interface TiledWangColor {
color: string;
name: string;
probability: number;
tile: number;
}

/**
* @see https://doc.mapeditor.org/en/stable/reference/json-map-format/#wang-tile
*/
export interface TiledWangTile {
dflip: boolean;
hflip: boolean;
tileid: number;
vflip: boolean;
wangid: number[];
}

/**
* @see https://doc.mapeditor.org/en/stable/reference/json-map-format/#wang-set
*/
export interface TiledWangSet {
cornercolors: TiledWangColor[];
edgecolors: TiledWangColor[];
name: string;
properties: TiledProperty[];
tile: number;
wangtiles: TiledWangTile[];
}

// --TILESET--

/**
Expand All @@ -20,6 +55,7 @@ export interface Point {
* @see https://doc.mapeditor.org/en/stable/reference/json-map-format/#tileset
*/
export interface TiledTileset {
backgroundcolor?: string;
columns: number;
firstgid: number;
grid?: TiledGrid;
Expand All @@ -28,17 +64,20 @@ export interface TiledTileset {
imageheight?: number;
margin: number;
name: string;
objectalignment?: 'unspecified' | 'topleft' | 'top' | 'topright' | 'left' | 'center' | 'right' | 'bottomleft' | 'bottom' | 'bottomright';
properties?: TiledProperty[];
source?: string;
spacing: number;
terrains?: TiledTerrain[];
tilecount: number;
tiledversion?: string;
tileheight: number;
tileoffset?: { x: number; y: number; };
tiles?: TiledTile[];
tilewidth: number;
transparentcolor?: string;
type?: 'tileset';
wangsets?: any; // TODO
wangsets?: TiledWangSet[];
}

/**
Expand All @@ -54,12 +93,13 @@ export interface TiledGrid {
* @see https://doc.mapeditor.org/en/stable/reference/json-map-format/#tile-definition
*/
export interface TiledTile {
animation?: TiledFrame[]; // TODO
animation?: TiledFrame[];
id: number;
image?: string;
imageheight?: number;
imagewidth?: number;
objectgroup?: TiledLayerObjectgroup<any>;
probability?: number;
properties?: TiledProperty[];
terrain?: number[];
type?: string;
Expand All @@ -78,6 +118,7 @@ export interface TiledFrame {
*/
export interface TiledTerrain {
name: string;
properties?: TiledProperty[];
tile: number;
}

Expand All @@ -94,6 +135,24 @@ export interface TiledChunk {
y: number;
}

/**
* @see https://doc.mapeditor.org/en/stable/reference/json-map-format/#text
*/
export interface TiledText {
bold?: boolean;
color?: string;
fontfamily?: string;
halign?: 'center' | 'right' | 'justify' | 'left';
italic?: boolean;
kerning?: boolean;
pixelsize?: number;
strikeout?: boolean;
text: string;
underline?: boolean;
valign?: string;
wrap?: boolean;
}

/**
* @see https://doc.mapeditor.org/en/stable/reference/json-map-format/#object
*/
Expand All @@ -109,7 +168,7 @@ export interface TiledObject<T extends TiledMapType> {
properties: TiledProperty[];
rotation: number;
template?: string;
text?: { text: string; wrap: boolean; };
text?: TiledText;
type: string;
visible: boolean;
width: number;
Expand All @@ -129,6 +188,9 @@ export interface TiledLayerAbstract<T extends TiledLayerType> {
height: number;
offsetx?: number;
offsety?: number;
startx?: number;
starty?: number;
tintcolor?: string;
opacity: number;
properties?: TiledProperty[];
visible: boolean;
Expand All @@ -137,10 +199,9 @@ export interface TiledLayerAbstract<T extends TiledLayerType> {
export interface TiledLayerTilelayer extends TiledLayerAbstract<'tilelayer'> {
type: 'tilelayer';
chunks?: TiledChunk[];
compression?: 'zlib' | 'gzip' | '';
data: number[];
compression?: 'zlib' | 'gzip' | 'zstd' | '';
data: number[] | string;
encoding?: 'csv' | 'base64';
transparentcolor?: string;
}

export interface TiledLayerObjectgroup<O extends TiledMapType> extends TiledLayerAbstract<'objectgroup'> {
Expand All @@ -152,6 +213,7 @@ export interface TiledLayerObjectgroup<O extends TiledMapType> extends TiledLaye
export interface TiledLayerImagelayer extends TiledLayerAbstract<'imagelayer'> {
type: 'imagelayer';
image: string;
transparentcolor?: string;
}

export interface TiledLayerGroup extends TiledLayerAbstract<'group'> {
Expand Down Expand Up @@ -184,6 +246,7 @@ export interface TiledMapAbstract<O extends TiledMapType> {
properties?: TiledProperty[];
layers: Array<TiledLayer<any>>;
tilesets: TiledTileset[];
compressionlevel?: number;
}

export interface TiledMapIsometric extends TiledMapAbstract<'isometric'> {
Expand Down
3 changes: 2 additions & 1 deletion types/tiled-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import TiledMap, { TiledLayerTilelayer } from "tiled-types";
const sampleOrthogonal: TiledMap = {
height: 20,
infinite: false,
compressionlevel: -1,
layers: [
{
data: [93, 93, 93, 93, 93, 93, 93],
Expand All @@ -18,7 +19,7 @@ const sampleOrthogonal: TiledMap = {
y: 0
},
{
data: [19, 19, 19, 19, 19],
data: 'foo-bar',
height: 20,
id: 2,
name: "obstacles",
Expand Down

0 comments on commit f519b0a

Please sign in to comment.