Added support for custom assets so bridal gears can run more separated from the main assets so the XDU cant break it as easily.
This commit is contained in:
parent
4e3940fff2
commit
36fd987c4d
4
.gitmodules
vendored
4
.gitmodules
vendored
@ -2,3 +2,7 @@
|
|||||||
path = Js/Translations
|
path = Js/Translations
|
||||||
url = https://git.poweris.moe/xdutranslations.git
|
url = https://git.poweris.moe/xdutranslations.git
|
||||||
branch = .
|
branch = .
|
||||||
|
[submodule "CustomData"]
|
||||||
|
path = CustomData
|
||||||
|
url = https://git.poweris.moe/customdata.git
|
||||||
|
branch = .
|
||||||
|
1
CustomData
Submodule
1
CustomData
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit cbbcd61805a9fbfc95fea46b5bf0cb51b7c8b3c1
|
17
Js/Main.js
17
Js/Main.js
@ -192,12 +192,14 @@ function missionDropDownChanged(event) {
|
|||||||
chapterSelect += `<option value="${m.Id}">${m.Id}</option>`
|
chapterSelect += `<option value="${m.Id}">${m.Id}</option>`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
let detailSrc = `${utage.rootDirectory}${(mis.IsCustom ? "CustomData" : "XDUData")}/Asset/Image/Quest/Snap/Detail/${mis.MstId}.png`;
|
||||||
|
let iconSrc = `${utage.rootDirectory}${(mis.IsCustom ? "CustomData" : "XDUData")}/Asset/Image/Quest/Snap/Icon/${mis.MstId}.png`;
|
||||||
chapterSelect += '</select></div>';
|
chapterSelect += '</select></div>';
|
||||||
cont.innerHTML = `
|
cont.innerHTML = `
|
||||||
<div id="mission-modal" class="modal">
|
<div id="mission-modal" class="modal">
|
||||||
<span class="mission-title">${name || 'none'}</span>
|
<span class="mission-title">${name || 'none'}</span>
|
||||||
<img id="mission-detail" src="${utage.rootDirectory}XDUData/Asset/Image/Quest/Snap/Detail/${mis.MstId}.png"/>
|
<img id="mission-detail" src="${detailSrc}"/>
|
||||||
<img id="mission-icon" src="${utage.rootDirectory}XDUData/Asset/Image/Quest/Snap/Icon/${mis.MstId}.png"/>
|
<img id="mission-icon" src="${iconSrc}"/>
|
||||||
<div id="mission-summary">Summary: ${summary || 'none'}</div>
|
<div id="mission-summary">Summary: ${summary || 'none'}</div>
|
||||||
<div class="flex-grow"></div>
|
<div class="flex-grow"></div>
|
||||||
<div>Credits (${selectedLang}): ${credits}</div>
|
<div>Credits (${selectedLang}): ${credits}</div>
|
||||||
@ -255,10 +257,13 @@ function missionChanged(mstId, value) {
|
|||||||
missionChanged(currentMissionMst, mst.Missions[currentMissionList[currentMissionIndex+1]].Id);
|
missionChanged(currentMissionMst, mst.Missions[currentMissionList[currentMissionIndex+1]].Id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let promises = [
|
let promises = [];
|
||||||
utage.parseMissionFile(`${utage.rootDirectory}XDUData/${newMission.Path.replace('Asset/', '').replace('.utage', '').replace('.tsv', '_t.tsv')}`),
|
if(newMission.IsCustom) {
|
||||||
utage.loadMissionTranslation(`${utage.rootDirectory}Js/Translations/Missions/${currentMission.Path.replace('Asset/Utage/', '').replace('Scenario/', '').replace('.utage', '').replace('.tsv', `_translations_${selectedLang}.json`)}`)
|
promises.push(utage.parseMissionFile(`${utage.rootDirectory}CustomData/${newMission.Path.replace('Asset/', '').replace('.utage', '').replace('.tsv', '_t.tsv')}`));
|
||||||
];
|
} else {
|
||||||
|
promises.push(utage.parseMissionFile(`${utage.rootDirectory}XDUData/${newMission.Path.replace('Asset/', '').replace('.utage', '').replace('.tsv', '_t.tsv')}`));
|
||||||
|
}
|
||||||
|
promises.push(utage.loadMissionTranslation(`${utage.rootDirectory}Js/Translations/Missions/${currentMission.Path.replace('Asset/Utage/', '').replace('Scenario/', '').replace('.utage', '').replace('.tsv', `_translations_${selectedLang}.json`)}`))
|
||||||
closeMissionModal(undefined, true);
|
closeMissionModal(undefined, true);
|
||||||
Promise.all(promises)
|
Promise.all(promises)
|
||||||
.then((success) => {
|
.then((success) => {
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit ac76005f743abacf912f32ae964397e4d9d34fb7
|
Subproject commit b64fcc69003059085d4073a672953c91f7c97cc4
|
@ -23,20 +23,23 @@ class UtageInfo {
|
|||||||
loadUtageSettings(resolve, reject) {
|
loadUtageSettings(resolve, reject) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let promises = [
|
let promises = [
|
||||||
commonFunctions.getFileJson(`${this.rootDirectory}Js/Translations/XduMissions.json`),
|
commonFunctions.getFileJson(`${this.rootDirectory}Js/Translations/XduMissions.json`), //0
|
||||||
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Character.tsv`),
|
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Character.tsv`), //1
|
||||||
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Layer.tsv`),
|
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Layer.tsv`), //2
|
||||||
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Localize.tsv`),
|
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Localize.tsv`), //3
|
||||||
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Param.tsv`),
|
//commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Param.tsv`),
|
||||||
//commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Scenario.tsv`),
|
//commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Scenario.tsv`),
|
||||||
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Sound.tsv`),
|
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Sound.tsv`), //4
|
||||||
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Texture.tsv`),
|
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Texture.tsv`), //5
|
||||||
commonFunctions.getFileJson(`${this.rootDirectory}Js/BgmLoop.json`),
|
commonFunctions.getFileJson(`${this.rootDirectory}Js/BgmLoop.json`), //6
|
||||||
commonFunctions.getFileJson(`${this.rootDirectory}Js/Translations/XduMissionsCustom.json`),
|
commonFunctions.getFileJson(`${this.rootDirectory}Js/Translations/XduMissionsCustom.json`), //7
|
||||||
|
commonFunctions.getFileText(`${this.rootDirectory}CustomData/Utage/Diva/Settings/CustomCharacter.tsv`), //8
|
||||||
|
commonFunctions.getFileText(`${this.rootDirectory}CustomData/Utage/Diva/Settings/CustomSound.tsv`), //9
|
||||||
|
commonFunctions.getFileText(`${this.rootDirectory}CustomData/Utage/Diva/Settings/CustomTexture.tsv`), //10
|
||||||
];
|
];
|
||||||
Promise.all(promises)
|
Promise.all(promises)
|
||||||
.then((success) => {
|
.then((success) => {
|
||||||
this.groupMissions(success[0], success[8]);
|
this.groupMissions(success[0], success[7]);
|
||||||
this.missionsList = Object.keys(this.groupedMissions).map((k) => {
|
this.missionsList = Object.keys(this.groupedMissions).map((k) => {
|
||||||
return {Name: this.groupedMissions[k].Name, MstId: this.groupedMissions[k].MstId};
|
return {Name: this.groupedMissions[k].Name, MstId: this.groupedMissions[k].MstId};
|
||||||
});
|
});
|
||||||
@ -44,10 +47,13 @@ class UtageInfo {
|
|||||||
this.parseCharacterInfo(success[1]);
|
this.parseCharacterInfo(success[1]);
|
||||||
this.parseLayerInfo(success[2]);
|
this.parseLayerInfo(success[2]);
|
||||||
this.parseLocalizeInfo(success[3]);
|
this.parseLocalizeInfo(success[3]);
|
||||||
this.parseParamInfo(success[4]);
|
//this.parseParamInfo(success[4]);
|
||||||
this.parseSoundInfo(success[5]);
|
this.parseSoundInfo(success[4]);
|
||||||
this.parseTextureInfo(success[6]);
|
this.parseTextureInfo(success[5]);
|
||||||
this.bgmLoopData = success[7];
|
this.bgmLoopData = success[6];
|
||||||
|
this.parseCharacterInfo(success[8], true);
|
||||||
|
this.parseSoundInfo(success[9], true);
|
||||||
|
this.parseTextureInfo(success[10], true);
|
||||||
resolve();
|
resolve();
|
||||||
}, (failure) => {
|
}, (failure) => {
|
||||||
reject(failure);
|
reject(failure);
|
||||||
@ -99,16 +105,18 @@ class UtageInfo {
|
|||||||
}
|
}
|
||||||
for(let key of Object.keys(customMissions)) {
|
for(let key of Object.keys(customMissions)) {
|
||||||
let mis = customMissions[key];
|
let mis = customMissions[key];
|
||||||
|
mis.IsCustom = true;
|
||||||
if(!this.groupedMissions[mis.MstId]) {
|
if(!this.groupedMissions[mis.MstId]) {
|
||||||
this.groupedMissions[mis.MstId] = {
|
this.groupedMissions[mis.MstId] = {
|
||||||
|
IsCustom: true,
|
||||||
Name: mis.Name,
|
Name: mis.Name,
|
||||||
SummaryText: mis.SummaryText,
|
SummaryText: mis.SummaryText,
|
||||||
MstId: mis.MstId,
|
MstId: mis.MstId,
|
||||||
Missions: {}
|
Missions: {}
|
||||||
}
|
}
|
||||||
this.groupedMissions[mis.MstId].Missions[mis.Id] = { Id: mis.Id, Path: mis.Path, Enabled: mis.Enabled };
|
this.groupedMissions[mis.MstId].Missions[mis.Id] = { Id: mis.Id, Path: mis.Path, Enabled: mis.Enabled, IsCustom: true };
|
||||||
} else {
|
} else {
|
||||||
this.groupedMissions[mis.MstId].Missions[mis.Id] = { Id: mis.Id, Path: mis.Path, Enabled: mis.Enabled };
|
this.groupedMissions[mis.MstId].Missions[mis.Id] = { Id: mis.Id, Path: mis.Path, Enabled: mis.Enabled, IsCustom: true };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -202,7 +210,7 @@ class UtageInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//http://madnesslabo.net/utage/?page_id=4521&lang=en
|
//http://madnesslabo.net/utage/?page_id=4521&lang=en
|
||||||
parseCharacterInfo(text) {
|
parseCharacterInfo(text, custom = false) {
|
||||||
let lines = text.split("\n");
|
let lines = text.split("\n");
|
||||||
let headers = [];
|
let headers = [];
|
||||||
let lastCharName = '';
|
let lastCharName = '';
|
||||||
@ -227,10 +235,10 @@ class UtageInfo {
|
|||||||
}
|
}
|
||||||
if(read.FileName) {
|
if(read.FileName) {
|
||||||
if(!read.FileName.startsWith('file://')) {
|
if(!read.FileName.startsWith('file://')) {
|
||||||
read.FileName = `${this.rootDirectory}XDUData/Sample/Texture/Character/${read.FileName}`;
|
read.FileName = `${this.rootDirectory}${(custom ? "CustomData" : "XDUData")}/Sample/Texture/Character/${read.FileName}`;
|
||||||
} else {
|
} else {
|
||||||
read.FileName = read.FileName.replace('file://', '');
|
read.FileName = read.FileName.replace('file://', '');
|
||||||
read.FileName = `${this.rootDirectory}XDUData/${read.FileName}`;
|
read.FileName = `${this.rootDirectory}${(custom ? "CustomData" : "XDUData")}/${read.FileName}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!this.characterInfo[lastCharName]) {
|
if(!this.characterInfo[lastCharName]) {
|
||||||
@ -294,7 +302,7 @@ class UtageInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//http://madnesslabo.net/utage/?page_id=4519&lang=en
|
//http://madnesslabo.net/utage/?page_id=4519&lang=en
|
||||||
parseSoundInfo(text) {
|
parseSoundInfo(text, custom = false) {
|
||||||
let lines = text.split("\n");
|
let lines = text.split("\n");
|
||||||
let headers = [];
|
let headers = [];
|
||||||
for(let i = 0; i < lines.length; ++i) {
|
for(let i = 0; i < lines.length; ++i) {
|
||||||
@ -315,10 +323,10 @@ class UtageInfo {
|
|||||||
let s = read.FileName.split(',');
|
let s = read.FileName.split(',');
|
||||||
read.FileName = `${s[0].split('_').join('/')}/${s[1]}`;
|
read.FileName = `${s[0].split('_').join('/')}/${s[1]}`;
|
||||||
}
|
}
|
||||||
read.FileName = `${this.rootDirectory}XDUData/Se/${read.FileName}`;
|
read.FileName = `${this.rootDirectory}${(custom ? "CustomData" : "XDUData")}/Se/${read.FileName}`;
|
||||||
break;
|
break;
|
||||||
case 'bgm':
|
case 'bgm':
|
||||||
read.FileName = `${this.rootDirectory}XDUData/Bgm/${read.FileName}`;
|
read.FileName = `${this.rootDirectory}${(custom ? "CustomData" : "XDUData")}/Bgm/${read.FileName}`;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -329,7 +337,7 @@ class UtageInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//http://madnesslabo.net/utage/?page_id=4520&lang=en
|
//http://madnesslabo.net/utage/?page_id=4520&lang=en
|
||||||
parseTextureInfo(text) {
|
parseTextureInfo(text, custom = false) {
|
||||||
let lines = text.split("\n");
|
let lines = text.split("\n");
|
||||||
let headers = [];
|
let headers = [];
|
||||||
for(let i = 0; i < lines.length; ++i) {
|
for(let i = 0; i < lines.length; ++i) {
|
||||||
@ -340,10 +348,10 @@ class UtageInfo {
|
|||||||
let read = commonFunctions.readLine(line, headers);
|
let read = commonFunctions.readLine(line, headers);
|
||||||
if(read && read.Label) {
|
if(read && read.Label) {
|
||||||
if(!read.FileName.startsWith("file://")) {
|
if(!read.FileName.startsWith("file://")) {
|
||||||
read.FileName = `${this.rootDirectory}XDUData/Sample/Texture/BG/${read.FileName}`;
|
read.FileName = `${this.rootDirectory}${(custom ? "CustomData" : "XDUData")}/Sample/Texture/BG/${read.FileName}`;
|
||||||
} else {
|
} else {
|
||||||
read.FileName = read.FileName.replace("file://", '');
|
read.FileName = read.FileName.replace("file://", '');
|
||||||
read.FileName = `${this.rootDirectory}XDUData/${read.FileName}`;
|
read.FileName = `${this.rootDirectory}${(custom ? "CustomData" : "XDUData")}/${read.FileName}`;
|
||||||
}
|
}
|
||||||
this.textureInfo[read.Label] = read;
|
this.textureInfo[read.Label] = read;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user