parent
270d16acbc
commit
3924c44be8
@ -28,24 +28,25 @@ function escapeString(string: string) {
|
|||||||
return string.replace(/%/g, "%%").replace(/\n/g, "%n");
|
return string.replace(/%/g, "%%").replace(/\n/g, "%n");
|
||||||
}
|
}
|
||||||
|
|
||||||
function transformKeyPairs(
|
function transformKeyPairs<T extends Quest | QuestLine>(
|
||||||
database: { [key: string]: Quest } | { [key: string]: QuestLine },
|
database: { [key: string]: T },
|
||||||
mode: string,
|
mode: string,
|
||||||
namespace: string,
|
namespace: string,
|
||||||
lines: string[],
|
lines: string[],
|
||||||
|
getId: (item: T) => number,
|
||||||
) {
|
) {
|
||||||
Object.keys(database).forEach((key) => {
|
Object.keys(database).forEach((key) => {
|
||||||
const storeKey = key.replace(/:10/g, "");
|
|
||||||
const item = database[key];
|
const item = database[key];
|
||||||
|
const id = getId(item);
|
||||||
|
|
||||||
const properties = item["properties:10"]["betterquesting:10"];
|
const properties = item["properties:10"]["betterquesting:10"];
|
||||||
if (properties["name:8"] !== "Gap") {
|
if (properties["name:8"] !== "Gap") {
|
||||||
const titleKey = `nomifactory.quest.${mode}.${namespace}.${storeKey}.title`;
|
const titleKey = `nomifactory.quest.${mode}.${namespace}.${id}.title`;
|
||||||
const descKey = `nomifactory.quest.${mode}.${namespace}.${storeKey}.desc`;
|
const descKey = `nomifactory.quest.${mode}.${namespace}.${id}.desc`;
|
||||||
|
|
||||||
// Push lang file lines.
|
// Push lang file lines.
|
||||||
lines.push(
|
lines.push(
|
||||||
`# ${namespace} ${storeKey} of mode ${mode}`.trimEnd(),
|
`# ${namespace} ${id} of mode ${mode}`.trimEnd(),
|
||||||
`${titleKey}=${escapeString(properties["name:8"])}`.trimEnd(),
|
`${titleKey}=${escapeString(properties["name:8"])}`.trimEnd(),
|
||||||
`${descKey}=${escapeString(properties["desc:8"])}`.trimEnd(),
|
`${descKey}=${escapeString(properties["desc:8"])}`.trimEnd(),
|
||||||
"",
|
"",
|
||||||
@ -179,21 +180,48 @@ export async function transformQuestBook(): Promise<void> {
|
|||||||
"",
|
"",
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const questID = (item: Quest) => item["questID:3"];
|
||||||
|
const lineID = (item: QuestLine) => item["lineID:3"];
|
||||||
|
|
||||||
lines.push("# Normal Quest Lang Entries:", "");
|
lines.push("# Normal Quest Lang Entries:", "");
|
||||||
|
|
||||||
// Normal Mode Quest lines.
|
// Normal Mode Quest lines.
|
||||||
transformKeyPairs(questBookNormal["questLines:9"], "normal", "line", lines);
|
transformKeyPairs(
|
||||||
|
questBookNormal["questLines:9"],
|
||||||
|
"normal",
|
||||||
|
"line",
|
||||||
|
lines,
|
||||||
|
lineID,
|
||||||
|
);
|
||||||
|
|
||||||
// Normal Mode Quests themselves.
|
// Normal Mode Quests themselves.
|
||||||
transformKeyPairs(questBookNormal["questDatabase:9"], "normal", "db", lines);
|
transformKeyPairs(
|
||||||
|
questBookNormal["questDatabase:9"],
|
||||||
|
"normal",
|
||||||
|
"db",
|
||||||
|
lines,
|
||||||
|
questID,
|
||||||
|
);
|
||||||
|
|
||||||
lines.push("# Expert Quest Lang Entries:", "");
|
lines.push("# Expert Quest Lang Entries:", "");
|
||||||
|
|
||||||
// Expert Mode Quest lines.
|
// Expert Mode Quest lines.
|
||||||
transformKeyPairs(questBookExpert["questLines:9"], "expert", "line", lines);
|
transformKeyPairs(
|
||||||
|
questBookExpert["questLines:9"],
|
||||||
|
"expert",
|
||||||
|
"line",
|
||||||
|
lines,
|
||||||
|
lineID,
|
||||||
|
);
|
||||||
|
|
||||||
// Expert Mode Quests themselves.
|
// Expert Mode Quests themselves.
|
||||||
transformKeyPairs(questBookExpert["questDatabase:9"], "expert", "db", lines);
|
transformKeyPairs(
|
||||||
|
questBookExpert["questDatabase:9"],
|
||||||
|
"expert",
|
||||||
|
"db",
|
||||||
|
lines,
|
||||||
|
questID,
|
||||||
|
);
|
||||||
|
|
||||||
// Write lang file.
|
// Write lang file.
|
||||||
await fs.promises.mkdir(questLangLocation, { recursive: true });
|
await fs.promises.mkdir(questLangLocation, { recursive: true });
|
||||||
|
Loading…
x
Reference in New Issue
Block a user