72 lines
1.7 KiB
JavaScript
72 lines
1.7 KiB
JavaScript
/*:
|
|
* @target MZ
|
|
* @plugindesc Text2Frameでデータ作る時のサポート用プラグイン
|
|
* @author
|
|
*
|
|
* @help CBR_makingにデータ入れる
|
|
*
|
|
*/
|
|
|
|
"use strict";
|
|
function loadGameDataJson(dirPath, filenameWithExt) {
|
|
const promise = new Promise((resolve, reject) => {
|
|
const url = `${dirPath}${filenameWithExt}`;
|
|
const xhr = new XMLHttpRequest();
|
|
xhr.open("GET", url);
|
|
xhr.overrideMimeType("application/json");
|
|
xhr.onload = () => {
|
|
if (xhr.status < 400) {
|
|
resolve(xhr.responseText);
|
|
} else {
|
|
reject();
|
|
}
|
|
};
|
|
xhr.onerror = reject;
|
|
xhr.send();
|
|
});
|
|
return promise;
|
|
}
|
|
function loadMapData(dirPath, mapId) {
|
|
const filename = `Map${String(mapId).padStart(3, "0")}`;
|
|
const filenameWithExt = `${filename}.json`;
|
|
return loadGameDataJson(dirPath, filenameWithExt).then((text) => {
|
|
const map = JSON.parse(text);
|
|
|
|
CBR_making.map.push({
|
|
data: map,
|
|
mapId: mapId,
|
|
filename: filename
|
|
});
|
|
});
|
|
}
|
|
function loadAllMapFile(dirPath, mapInfos) {
|
|
const result = [];
|
|
for (const id in mapInfos) {
|
|
if (mapInfos[id]) {
|
|
result.push(loadMapData(dirPath, id));
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
function loadAllMapFileEx(dirPath, mapInfos, callback) {
|
|
const promiseList = loadAllMapFile(dirPath, mapInfos);
|
|
Promise.all(promiseList).then(callback);
|
|
}
|
|
|
|
var CBR_making = {
|
|
map: [{}]
|
|
};
|
|
|
|
function actLoadAllMapFile() {
|
|
if ($dataMapInfos) {
|
|
console.log("CBR_making.mapのロード完了");
|
|
loadAllMapFile("data/", $dataMapInfos);
|
|
} else {
|
|
console.log("CBR_making.mapまだロードできない");
|
|
setTimeout(actLoadAllMapFile, 500);
|
|
}
|
|
}
|
|
|
|
(function () {
|
|
setTimeout(actLoadAllMapFile, 0);
|
|
})();
|