mirror of
https://github.com/AndorsTrailRelease/andors-trail.git
synced 2026-01-07 03:57:08 +01:00
166 lines
6.0 KiB
JavaScript
166 lines
6.0 KiB
JavaScript
var ATEditor = (function(ATEditor, utils) {
|
|
|
|
function TilesetImage(options) {
|
|
var defaultOptions = {
|
|
numTiles: { x: 1, y: 1 }
|
|
,tileSize: { x: 32, y: 32 }
|
|
,usedFor: []
|
|
};
|
|
_.defaults(options, defaultOptions);
|
|
|
|
this._name = options.name;
|
|
this._numTiles = options.numTiles;
|
|
this._tileSize = options.tileSize;
|
|
this._usedFor = options.usedFor;
|
|
|
|
this.localIDToCoords = function(localID) {
|
|
return {
|
|
x: (localID % this._numTiles.x) * this._tileSize.x,
|
|
y: Math.floor(localID / this._numTiles.x) * this._tileSize.y
|
|
}
|
|
}
|
|
this.coordsToLocalID = function(x, y) {
|
|
return Math.floor(x / this._tileSize.x)
|
|
+ this._numTiles.x * Math.floor(y / this._tileSize.y)
|
|
}
|
|
}
|
|
|
|
var defaultImagePath = utils.getUrlRelativeToBaseSrcDir("AndorsTrail/res/drawable/");
|
|
|
|
var defaultimage = {
|
|
tilesetName: 'defaultimage',
|
|
localID: 0,
|
|
path: ''
|
|
};
|
|
var defaultTileset = new TilesetImage({name: defaultimage.tilesetName });
|
|
|
|
var _tilesets = {};
|
|
_tilesets[defaultimage.tilesetName] = defaultTileset;
|
|
|
|
var getTileset = function(name) {
|
|
var result = _tilesets[name];
|
|
if (!result) { return defaultTileset; }
|
|
return result;
|
|
}
|
|
|
|
var parseImageID = function(str) {
|
|
if (!str || str == "") return defaultimage;
|
|
var v = str.split(":");
|
|
if (v.length < 1) return defaultimage;
|
|
return {
|
|
tilesetName: v[0],
|
|
localID: v[1],
|
|
path: defaultImagePath
|
|
};
|
|
}
|
|
|
|
var createImageID = function(tilesetName, localID) {
|
|
if (!tilesetName) return "";
|
|
return tilesetName + ":" + localID;
|
|
}
|
|
|
|
|
|
var add = function(tilesetName, numTiles, usedFor, tileSize) {
|
|
_tilesets[tilesetName] = new TilesetImage({
|
|
name: tilesetName
|
|
,numTiles: numTiles
|
|
,tileSize: tileSize
|
|
,usedFor: usedFor
|
|
});
|
|
}
|
|
|
|
var getTilesetsForSection = function(section) {
|
|
return _.filter(_tilesets, function(tileset) {
|
|
return _.contains(tileset._usedFor, section);
|
|
});
|
|
}
|
|
var getIconIDsForSection = function(section) {
|
|
var result = [];
|
|
_.each(getTilesetsForSection(section), function(tileset) {
|
|
for(var i = 0; i < tileset._numTiles.y * tileset._numTiles.x; i++) {
|
|
result.push(createImageID(tileset._name, i));
|
|
}
|
|
});
|
|
return result;
|
|
}
|
|
|
|
add("actorconditions_1", {x:14, y:8}, [ 'actorcondition' ] );
|
|
add("actorconditions_2", {x:3, y:1}, [ 'actorcondition' ] );
|
|
add("items_armours", {x:14, y:3}, [ 'item' ] );
|
|
add("items_armours_3", {x:10, y:4}, [ 'item' ] );
|
|
add("items_armours_2", {x:7, y:1}, [ 'item' ] );
|
|
add("items_weapons", {x:14, y:6}, [ 'item' ] );
|
|
add("items_weapons_3", {x:13, y:5}, [ 'item' ] );
|
|
add("items_weapons_2", {x:7, y:1}, [ 'item' ] );
|
|
add("items_jewelry", {x:14, y:1}, [ 'item' ] );
|
|
add("items_rings_1", {x:10, y:3}, [ 'item' ] );
|
|
add("items_necklaces_1", {x:10, y:3}, [ 'item' ] );
|
|
add("items_consumables", {x:14, y:5}, [ 'item' ] );
|
|
add("items_books", {x:11, y:1}, [ 'item' ] );
|
|
add("items_misc", {x:14, y:4}, [ 'item' ] );
|
|
add("items_misc_2", {x:20, y:12}, [ 'item' ] );
|
|
add("items_misc_3", {x:20, y:12}, [ 'item' ] );
|
|
add("items_misc_4", {x:20, y:4}, [ 'item' ] );
|
|
add("items_misc_5", {x:9, y:5}, [ 'item' ] );
|
|
add("items_misc_6", {x:9, y:4}, [ 'item' ] );
|
|
add("items_reterski_1", {x:3, y:10}, [ 'item' ] );
|
|
add("items_tometik1", {x:6, y:10}, [ 'item' ] );
|
|
add("items_tometik2", {x:10, y:10}, [ 'item' ] );
|
|
add("items_tometik3", {x:8, y:6}, [ 'item' ] );
|
|
add("monsters_armor1", {x: 1, y:1}, [ 'monster' ] );
|
|
add("monsters_dogs", {x: 7, y:1}, [ 'monster' ] );
|
|
add("monsters_eye1", {x: 1, y:1}, [ 'monster' ] );
|
|
add("monsters_eye2", {x: 1, y:1}, [ 'monster' ] );
|
|
add("monsters_eye3", {x: 1, y:1}, [ 'monster' ] );
|
|
add("monsters_eye4", {x: 1, y:1}, [ 'monster' ] );
|
|
add("monsters_ghost1", {x: 1, y:1}, [ 'monster' ] );
|
|
add("monsters_hydra1", {x: 1, y:1}, [ 'monster' ], {x:64, y:64} );
|
|
add("monsters_insects", {x: 6, y:1}, [ 'monster' ] );
|
|
add("monsters_liches", {x: 4, y:1}, [ 'monster' ] );
|
|
add("monsters_mage", {x: 1, y:1}, [ 'monster' ] );
|
|
add("monsters_mage2", {x: 1, y:1}, [ 'monster' ] );
|
|
add("monsters_man1", {x: 1, y:1}, [ 'monster' ] );
|
|
add("monsters_men", {x: 9, y:1}, [ 'monster' ] );
|
|
add("monsters_men2", {x: 10, y:1}, [ 'monster' ] );
|
|
add("monsters_misc", {x: 12, y:1}, [ 'monster' ] );
|
|
add("monsters_rats", {x: 5, y:1}, [ 'monster' ] );
|
|
add("monsters_rogue1", {x: 1, y:1}, [ 'monster' ] );
|
|
add("monsters_skeleton1", {x: 1, y:1}, [ 'monster' ] );
|
|
add("monsters_skeleton2", {x: 1, y:1}, [ 'monster' ] );
|
|
add("monsters_snakes", {x: 6, y:1}, [ 'monster' ] );
|
|
add("monsters_warrior1", {x: 1, y:1}, [ 'monster' ] );
|
|
add("monsters_wraiths", {x: 3, y:1}, [ 'monster' ] );
|
|
add("monsters_zombie1", {x: 1, y:1}, [ 'monster' ] );
|
|
add("monsters_zombie2", {x: 1, y:1}, [ 'monster' ] );
|
|
add("monsters_karvis1", {x: 2, y:1}, [ 'monster' ] );
|
|
add("monsters_karvis2", {x: 9, y:1}, [ 'monster' ] );
|
|
add("monsters_rltiles1", {x:20, y:8}, [ 'monster' ] );
|
|
add("monsters_rltiles2", {x:20, y:9}, [ 'monster' ] );
|
|
add("monsters_rltiles3", {x:10, y:3}, [ 'monster' ] );
|
|
add("monsters_rltiles4", {x:12, y:4}, [ 'monster' ] );
|
|
add("monsters_redshrike1", {x:7, y:1}, [ 'monster' ] );
|
|
add("monsters_ld1", {x:20, y:12}, [ 'monster' ] );
|
|
add("monsters_ld2", {x:20, y:12}, [ 'monster' ] );
|
|
add("monsters_tometik1", {x:10, y:9}, [ 'monster' ] );
|
|
add("monsters_tometik2", {x:8, y:10}, [ 'monster' ] );
|
|
add("monsters_tometik3", {x:6, y:13}, [ 'monster' ] );
|
|
add("monsters_tometik4", {x:6, y:13}, [ 'monster' ] );
|
|
add("monsters_tometik5", {x:6, y:16}, [ 'monster' ] );
|
|
add("monsters_tometik6", {x:7, y:6}, [ 'monster' ] );
|
|
add("monsters_tometik7", {x:8, y:11}, [ 'monster' ] );
|
|
add("monsters_tometik8", {x:7, y:9}, [ 'monster' ] );
|
|
add("monsters_tometik9", {x:8, y:8}, [ 'monster' ] );
|
|
add("monsters_tometik10", {x:6, y:13}, [ 'monster' ] );
|
|
add("monsters_demon1", {x:1, y:1}, [ 'monster' ], {x:64, y:64} );
|
|
add("monsters_demon2", {x:1, y:1}, [ 'monster' ], {x:64, y:64} );
|
|
add("monsters_cyclops", {x:1, y:1}, [ 'monster' ], {x:64, y:96} );
|
|
|
|
ATEditor.tilesets = {
|
|
getTileset: getTileset
|
|
,parseImageID: parseImageID
|
|
,createImageID: createImageID
|
|
,getIconIDsForSection: getIconIDsForSection
|
|
};
|
|
return ATEditor;
|
|
})(ATEditor, ATEditor.utils);
|