Skip to content

Commit

Permalink
v1.3.0 - Fix TiledProperty & TiledObject (#10)
Browse files Browse the repository at this point in the history
* fix TiledProperty types

* fix TiledObject, remove useless generics

* pass package version to 1.3.0
  • Loading branch information
Chnapy committed Feb 7, 2021
1 parent e07cdfd commit b8b1b6f
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 19 deletions.
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.2.1",
"version": "1.3.0",
"description": "Type definitions of Tiled generated JSON",
"main": "types/index.d.ts",
"types": "types",
Expand Down
29 changes: 15 additions & 14 deletions types/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// TypeScript Version: 3.7

// Definitions for Tiled 1.3.1
// Definitions for Tiled 1.4
// Project: https://github.com/bjorn/tiled#readme
//
// Types made with help of Tiled documentation
Expand Down Expand Up @@ -98,7 +98,7 @@ export interface TiledTile {
image?: string;
imageheight?: number;
imagewidth?: number;
objectgroup?: TiledLayerObjectgroup<any>;
objectgroup?: TiledLayerObjectgroup;
probability?: number;
properties?: TiledProperty[];
terrain?: number[];
Expand Down Expand Up @@ -156,9 +156,9 @@ export interface TiledText {
/**
* @see https://doc.mapeditor.org/en/stable/reference/json-map-format/#object
*/
export interface TiledObject<T extends TiledMapType> {
export interface TiledObject {
ellipse?: boolean;
gid: T extends 'tilelayer' ? number : never;
gid?: number;
height: number;
id: number;
name: string;
Expand Down Expand Up @@ -204,10 +204,10 @@ export interface TiledLayerTilelayer extends TiledLayerAbstract<'tilelayer'> {
encoding?: 'csv' | 'base64';
}

export interface TiledLayerObjectgroup<O extends TiledMapType> extends TiledLayerAbstract<'objectgroup'> {
export interface TiledLayerObjectgroup extends TiledLayerAbstract<'objectgroup'> {
type: 'objectgroup';
draworder: 'topdown' | 'index';
objects: Array<TiledObject<O>>;
objects: TiledObject[];
}

export interface TiledLayerImagelayer extends TiledLayerAbstract<'imagelayer'> {
Expand All @@ -218,13 +218,13 @@ export interface TiledLayerImagelayer extends TiledLayerAbstract<'imagelayer'> {

export interface TiledLayerGroup extends TiledLayerAbstract<'group'> {
type: 'group';
layers: Array<TiledLayer<TiledMapType>>;
layers: TiledLayer[];
}

/**
* @see https://doc.mapeditor.org/en/stable/reference/json-map-format/#layer
*/
export type TiledLayer<O extends TiledMapType> = TiledLayerTilelayer | TiledLayerObjectgroup<O> | TiledLayerImagelayer | TiledLayerGroup;
export type TiledLayer = TiledLayerTilelayer | TiledLayerObjectgroup | TiledLayerImagelayer | TiledLayerGroup;

// --MAP--

Expand All @@ -244,7 +244,7 @@ export interface TiledMapAbstract<O extends TiledMapType> {
nextlayerid?: number;
nextobjectid: number;
properties?: TiledProperty[];
layers: Array<TiledLayer<any>>;
layers: TiledLayer[];
tilesets: TiledTileset[];
compressionlevel?: number;
}
Expand Down Expand Up @@ -284,9 +284,9 @@ export type TiledMap = TiledMapOrthogonal

// --PROPERTY--

export type TiledPropertyValue = string | number;
export type TiledPropertyValue = string | number | boolean;

export type TiledPropertyType = 'string' | 'int';
export type TiledPropertyType = 'string' | 'int' | 'float' | 'bool' | 'color' | 'file' | 'object';

/**
* @see https://doc.mapeditor.org/en/stable/reference/json-map-format/#property
Expand All @@ -298,9 +298,10 @@ export interface TiledPropertyAbstract<V extends TiledPropertyValue, T extends T
}

export type TiledProperty =
TiledPropertyAbstract<string, 'string'>
| TiledPropertyAbstract<number, 'int'>;
TiledPropertyAbstract<string, 'string' | 'color' | 'file'>
| TiledPropertyAbstract<number, 'int' | 'float' | 'object'>
| TiledPropertyAbstract<boolean, 'bool'>;

export {};
export { };

export default TiledMap;
44 changes: 40 additions & 4 deletions types/tiled-tests.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import TiledMap, { TiledLayerTilelayer } from "tiled-types";

// generated by Tiled 1.3.1
const sampleOrthogonal: TiledMap = {
height: 20,
infinite: false,
compressionlevel: -1,
layers: [
{
data: [93, 93, 93, 93, 93, 93, 93],
data: [ 93, 93, 93, 93, 93, 93, 93 ],
height: 20,
id: 1,
name: "decors",
Expand All @@ -31,7 +30,7 @@ const sampleOrthogonal: TiledMap = {
y: 0
},
{
data: [0, 0, 0, 0, 0],
data: [ 0, 0, 0, 0, 0 ],
height: 20,
id: 3,
name: "init",
Expand Down Expand Up @@ -67,7 +66,44 @@ const sampleOrthogonal: TiledMap = {
tilewidth: 64,
type: "map",
version: 1.2,
width: 20
width: 20,
properties: [
{
name: "azerty",
type: "color",
value: "#ffff5500"
},
{
name: "foo",
type: "string",
value: "bar"
},
{
name: "tata",
type: "float",
value: 8.89
},
{
name: "titi",
type: "file",
value: "Links.txt"
},
{
name: "toto",
type: "bool",
value: true
},
{
name: "tutu",
type: "int",
value: 8
},
{
name: "tyty",
type: "object",
value: 7
}
]
};

const allTilelayers: TiledLayerTilelayer[] = sampleOrthogonal.layers
Expand Down

0 comments on commit b8b1b6f

Please sign in to comment.