b-engine-tiler
Advanced tools
Comparing version 1.1.1 to 1.2.0
@@ -1,5 +0,3 @@ | ||
export * from './TileLayerConfig'; | ||
export * from './TileMapConfig'; | ||
export * from './TileSetConfig'; | ||
export * from './TileSetConfigEntry'; | ||
export * from './TileSetConfigTile'; | ||
export * from './TiledConfig'; | ||
export * from './TiledConfigLayer'; | ||
export * from './TiledConfigTileSet'; |
@@ -1,5 +0,3 @@ | ||
export * from './loaders'; | ||
export * from './logic'; | ||
export * from './models'; | ||
export * from './handlers'; | ||
export * from './configinterfaces'; | ||
export * from './core'; | ||
export * from './helpers'; | ||
export * from './strategies'; |
@@ -6,5 +6,4 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
__export(require("./loaders")); | ||
__export(require("./logic")); | ||
__export(require("./models")); | ||
__export(require("./handlers")); | ||
__export(require("./core")); | ||
__export(require("./helpers")); | ||
__export(require("./strategies")); |
export { TileAssetLoader } from './TileAssetLoader'; | ||
export { TileLayerLoader } from './TileLayerLoader'; | ||
export { TileMapLoader } from './TileMapLoader'; |
@@ -5,5 +5,3 @@ "use strict"; | ||
exports.TileAssetLoader = TileAssetLoader_1.TileAssetLoader; | ||
var TileLayerLoader_1 = require("./TileLayerLoader"); | ||
exports.TileLayerLoader = TileLayerLoader_1.TileLayerLoader; | ||
var TileMapLoader_1 = require("./TileMapLoader"); | ||
exports.TileMapLoader = TileMapLoader_1.TileMapLoader; |
@@ -5,8 +5,5 @@ import { TileSet } from '../models'; | ||
private _tileSetConfigEntries; | ||
constructor(); | ||
addTileSet(name: string, basePath: string, fileName: string): void; | ||
processTileSets(): Promise<TileSet[]>; | ||
private processTileSetConfigEntries; | ||
processTileSetConfigEntries(): Promise<TileSet[]>; | ||
private extractTileSet; | ||
private getConfigFiles; | ||
} |
@@ -27,13 +27,7 @@ "use strict"; | ||
} | ||
processTileSets() { | ||
processTileSetConfigEntries() { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const data = yield this.getConfigFiles(); | ||
return yield this.processTileSetConfigEntries(data); | ||
}); | ||
} | ||
processTileSetConfigEntries(data) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const tileSets = []; | ||
for (let tileSetConfigEntry of this._tileSetConfigEntries) { | ||
const tileSet = yield this.extractTileSet(tileSetConfigEntry, data); | ||
const tileSet = yield this.extractTileSet(tileSetConfigEntry); | ||
tileSets.push(tileSet); | ||
@@ -44,24 +38,14 @@ } | ||
} | ||
extractTileSet(tileSetConfigEntry, data) { | ||
extractTileSet(tileSetConfigEntry) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const data = this._dataLoader.data; | ||
const tileSet = new models_1.TileSet(tileSetConfigEntry.name, tileSetConfigEntry.basePath); | ||
const tileSetConfig = data[tileSet.name].data; | ||
for (let tileSetConfigTile of tileSetConfig.tiles) { | ||
const tileFullPath = tileSet.basePath + tileSetConfig.basePath + tileSetConfigTile.fileName; | ||
this._dataLoader.add(tileSetConfigTile.textureName, tileFullPath); | ||
tileSet.addTile(tileSetConfigTile.id, tileSetConfigTile.textureName, tileSetConfigTile.name); | ||
for (let key of Object.keys(tileSetConfig.frames)) { | ||
tileSet.addTile(key, key, key); | ||
} | ||
yield this._dataLoader.load(tileSetConfig.name); | ||
return tileSet; | ||
}); | ||
} | ||
getConfigFiles() { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
for (let tileSetConfigEntry of this._tileSetConfigEntries) { | ||
this._dataLoader.add(tileSetConfigEntry.name, tileSetConfigEntry.fullPath); | ||
} | ||
return yield this._dataLoader.load('tileSetConfigs'); | ||
}); | ||
} | ||
} | ||
exports.TileAssetLoader = TileAssetLoader; |
import { TileMap } from '../models'; | ||
export declare class TileMapLoader { | ||
private _dataLoader; | ||
private _tileLayerLoader; | ||
private _tileAssetLoader; | ||
private _tileSets; | ||
private _basePath; | ||
constructor(basePath: string); | ||
loadMap(mapName: string, configFileName: string): Promise<TileMap>; | ||
private createMapping; | ||
private prepLayers; | ||
private loadTileAssetsForMap; | ||
private transformMapConfig; | ||
} |
@@ -11,9 +11,10 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const TileLayerLoader_1 = require("./TileLayerLoader"); | ||
const b_engine_gameengine_1 = require("b-engine-gameengine"); | ||
const models_1 = require("../models"); | ||
const util_1 = require("../util"); | ||
const TileAssetLoader_1 = require("./TileAssetLoader"); | ||
class TileMapLoader { | ||
constructor(basePath) { | ||
this._dataLoader = b_engine_gameengine_1.Core.getInstance().dataLoader; | ||
this._tileLayerLoader = new TileLayerLoader_1.TileLayerLoader(); | ||
this._tileAssetLoader = new TileAssetLoader_1.TileAssetLoader(); | ||
this._basePath = basePath; | ||
@@ -26,10 +27,28 @@ } | ||
const map = data[mapName].data; | ||
map.name = mapName; | ||
return yield this.transformMapConfig(map); | ||
}); | ||
} | ||
createMapping(tiles, size) { | ||
return util_1.HelperMethods.chunk(tiles, size); | ||
} | ||
prepLayers(layers) { | ||
return layers.map(v => { | ||
const tileMapping = this.createMapping(v.data, v.width); | ||
return new models_1.TileLayer(v.name, tileMapping, v.id); | ||
}); | ||
} | ||
loadTileAssetsForMap(tiledConfigTiledSets) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
tiledConfigTiledSets.map(v => { | ||
this._tileAssetLoader.addTileSet(v.name, this._basePath, v.name + ".png"); | ||
}); | ||
return yield this._tileAssetLoader.processTileSetConfigEntries(); | ||
}); | ||
} | ||
transformMapConfig(mapConfig) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const tileMap = new models_1.TileMap(mapConfig.name); | ||
const layers = yield this._tileLayerLoader.loadMapLayers(mapConfig.layerFiles, this._basePath + mapConfig.pathToLayerFiles); | ||
tileMap.tileLayers = layers; | ||
tileMap.tileLayers = this.prepLayers(mapConfig.layers); | ||
this._tileSets = yield this.loadTileAssetsForMap(mapConfig.tilesets); | ||
return tileMap; | ||
@@ -36,0 +55,0 @@ }); |
@@ -5,6 +5,6 @@ export declare class TileLayer { | ||
private _sortOrder; | ||
constructor(name: string, mapping: string[][], sortOder: number); | ||
constructor(name: string, mapping: number[][], sortOder: number); | ||
readonly name: string; | ||
readonly mapping: string[][]; | ||
readonly mapping: number[][]; | ||
readonly sortOrder: number; | ||
} |
export declare class HelperMethods { | ||
static memoize(fn: any): (...args: any) => any; | ||
static chunk(target: Array<any>, size: number): any; | ||
} |
@@ -15,3 +15,13 @@ "use strict"; | ||
} | ||
static chunk(target, size) { | ||
return target.reduce((memo, value, index) => { | ||
if (index % (target.length / size) == 0 && index !== 0) | ||
memo.push([]); | ||
memo[memo.length - 1].push(value); | ||
return memo; | ||
}, [ | ||
[] | ||
]); | ||
} | ||
} | ||
exports.HelperMethods = HelperMethods; |
{ | ||
"name": "b-engine-tiler", | ||
"version": "1.1.1", | ||
"version": "1.2.0", | ||
"description": "", | ||
@@ -14,2 +14,3 @@ "main": "dist/index.js", | ||
"devDependencies": { | ||
"pixi.js": "^5.0.4", | ||
"typescript": "^3.2.4" | ||
@@ -20,3 +21,3 @@ }, | ||
}, | ||
"gitHead": "c3868a21417fa2895ace333d6b91359e2c0ea3de" | ||
"gitHead": "17f3005e8aae10c286ab51d433330ead9409cc4a" | ||
} |
59033
141
1324
2