~/Library/Preferences/Tiled/extensions/plugin.js:
tiled.log("I'm loading.");
function onConnectHandler(asset) {
// Do something...
tiled.log(
"===================================" +
"action: connect\n" +
"fileName: " + asset.fileName +
"modified: " + asset.modified +
"isTileMap: " + asset.isTileMap +
"isTileset: " + asset.isTileset +
"caller: " + onConnectHandler.caller.toString() +
"\n"
);
}
function onDisConnectHandler(asset) {
// Do something...
tiled.log(
"===================================" +
"action: disconnect\n" +
"fileName: " + asset.fileName +
"modified: " + asset.modified +
"isTileMap: " + asset.isTileMap +
"isTileset: " + asset.isTileset +
"caller: " + onDisConnectHandler.caller.toString() +
"\n"
);
}
tiled.assetCreated.connect(onConnectHandler);
tiled.assetCreated.disconnect(onDisConnectHandler);
//A new asset has been created.
tiled.assetOpened.connect(onConnectHandler);
tiled.assetOpened.disconnect(onDisConnectHandler);
//An asset has been opened.
tiled.assetAboutToBeSaved.connect(onConnectHandler);
tiled.assetAboutToBeSaved.disconnect(onDisConnectHandler);
//An asset is about to be saved. Can be used to make last-minute changes.
tiled.assetSaved.connect(onConnectHandler);
tiled.assetSaved.disconnect(onDisConnectHandler);
//An asset has been saved.
tiled.assetAboutToBeClosed.connect(onConnectHandler);
tiled.assetAboutToBeClosed.disconnect(onDisConnectHandler);
//An asset is about to be closed.
tiled.activeAssetChanged.connect(onConnectHandler);
tiled.activeAssetChanged.disconnect(onDisConnectHandler);
//The currently active asset has changed.
var customMapFormat = {
name: "Custom map format",
extension: "custom",
write: function(map, fileName) {
var m = {
width: map.width,
height: map.height,
layers: []
};
for (var i = 0; i < map.layerCount; ++i) {
var layer = map.layerAt(i);
if (layer.isTileLayer) {
var rows = [];
for (y = 0; y < layer.height; ++y) {
var row = [];
for (x = 0; x < layer.width; ++x)
row.push(layer.cellAt(x, y).tileId);
rows.push(row);
}
m.layers.push(rows);
}
}
return JSON.stringify(m);
},
}
tiled.registerMapFormat("custom", customMapFormat);
tiled.log("I'm loaded.");
When I open Tiled, the console show:
Evaluating '~/Library/Preferences/Tiled/extensions/plugin.js'
I'm loading.
I'm loaded.
Then, I creat a new map or open an exists tmx file, but other nothing happen.
Maybe I used it wrong.
The code of “customMapFormat” is in effect.