import * as Phaser from 'phaser';
import {Scene} from "phaser";
import Sprite = Phaser.GameObjects.Sprite;

interface ITiledMapObject {
    id: number;

    /**
     * Tile object id
     */
    gid: number;
    height: number;
    name: string;
    properties: {[key: string]: string};
    rotation: number;
    type: string;
    visible: boolean;
    width: number;
    x: number;
    y: number;

    /**
     * Whether or not object is an ellipse
     */
    ellipse: boolean;

    /**
     * Polygon points
     */
    polygon: {x: number, y: number}[];

    /**
     * Polyline points
     */
    polyline: {x: number, y: number}[];
}

class MySprite extends Sprite {

}


export default {
    preload: (loader: Phaser.Loader.LoaderPlugin) => {
        loader.atlas('computer', '/resources/items/computer/computer.png', '/resources/items/computer/computer_atlas.json');
    },
    create: (scene: Scene) => {

    },
    factory: (scene: Scene, object: ITiledMapObject) => {
        // Idée: ESSAYER WebPack? https://paultavares.wordpress.com/2018/07/02/webpack-how-to-generate-an-es-module-bundle/
        let foo = new MySprite(scene, object.x, object.y, 'computer');
        scene.add.existing(foo);
        //scene.add.sprite(object.x, object.y, 'computer');
    }
};