alter-egoism/js/plugins/del_CBR_LoadAllMapFile.js
2025-11-01 14:17:42 -05:00

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);
})();