Prelim submodel materials
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import { XMLParser, XMLBuilder } from "fast-xml-parser";
|
||||
|
||||
const input = `
|
||||
|
||||
`;
|
||||
|
||||
function convert(element) {
|
||||
const codes = [
|
||||
...element.MouseRect.CallbackCode.matchAll(/([\d]*)[\s]*\(>L:CEVENT\)/gm),
|
||||
].map((m) => m[1]);
|
||||
|
||||
return {
|
||||
"@_Name": "MD11_Button",
|
||||
NODE_NAME: element.Name,
|
||||
CODE_PRESS: `${codes[0]} (>L:CEVENT)`,
|
||||
CODE_RELEASE: `${codes[1]} (>L:CEVENT)`,
|
||||
};
|
||||
}
|
||||
|
||||
const parser = new XMLParser({
|
||||
ignoreAttributes: false,
|
||||
});
|
||||
let jObj = parser.parse(input);
|
||||
|
||||
const output = [];
|
||||
|
||||
if (Array.isArray(jObj.PartInfo)) {
|
||||
jObj.PartInfo.forEach((element) => {
|
||||
output.push(convert(element));
|
||||
});
|
||||
} else {
|
||||
output.push(convert(jObj.PartInfo));
|
||||
}
|
||||
|
||||
const builder = new XMLBuilder({
|
||||
ignoreAttributes: false,
|
||||
arrayNodeName: "UseTemplate",
|
||||
format: true,
|
||||
});
|
||||
const xmlContent = builder.build(output);
|
||||
|
||||
console.log(xmlContent);
|
||||
@@ -0,0 +1,48 @@
|
||||
import { XMLParser, XMLBuilder } from "fast-xml-parser";
|
||||
|
||||
const input = `
|
||||
|
||||
`;
|
||||
|
||||
function convert(element) {
|
||||
const codes = [
|
||||
...element.MouseRect.CallbackCode.matchAll(/([\d]*)[\s]*\(>L:CEVENT\)/gm),
|
||||
].map((m) => m[1]);
|
||||
|
||||
return {
|
||||
"@_Name": "MD11_Infinite_Knob_Push",
|
||||
NODE_NAME: element.Name,
|
||||
ANIM_LENGTH_KNOB: 10,
|
||||
ANIM_CODE: `10 (L:${element.Name}) 1 * -`,
|
||||
ANIM_NAME_PUSH: `${element.Name.replace("KB", "BT")}`,
|
||||
ANIM_CODE_PUSH: `(L:${element.Name.replace("KB", "BT")}) 10 *`,
|
||||
INC_CODE: `${codes[0]} (>L:CEVENT)`,
|
||||
DEC_CODE: `${codes[1]} (>L:CEVENT)`,
|
||||
PUSH_CODE: `${codes[2]} (>L:CEVENT)`,
|
||||
REL_CODE: null,
|
||||
};
|
||||
}
|
||||
|
||||
const parser = new XMLParser({
|
||||
ignoreAttributes: false,
|
||||
});
|
||||
let jObj = parser.parse(input);
|
||||
|
||||
const output = [];
|
||||
|
||||
if (Array.isArray(jObj.PartInfo)) {
|
||||
jObj.PartInfo.forEach((element) => {
|
||||
output.push(convert(element));
|
||||
});
|
||||
} else {
|
||||
output.push(convert(jObj.PartInfo));
|
||||
}
|
||||
|
||||
const builder = new XMLBuilder({
|
||||
ignoreAttributes: false,
|
||||
arrayNodeName: "UseTemplate",
|
||||
format: true,
|
||||
});
|
||||
const xmlContent = builder.build(output);
|
||||
|
||||
console.log(xmlContent);
|
||||
@@ -0,0 +1,37 @@
|
||||
import { XMLParser, XMLBuilder } from "fast-xml-parser";
|
||||
|
||||
const input = `
|
||||
|
||||
`;
|
||||
|
||||
function convert(element) {
|
||||
return {
|
||||
"@_Name": "MD11_Vistag",
|
||||
NODE_NAME: element.Name,
|
||||
VIS_CODE: element.Visibility.Parameter.Code,
|
||||
};
|
||||
}
|
||||
|
||||
const parser = new XMLParser({
|
||||
ignoreAttributes: false,
|
||||
});
|
||||
let jObj = parser.parse(input);
|
||||
|
||||
const output = [];
|
||||
|
||||
if (Array.isArray(jObj.PartInfo)) {
|
||||
jObj.PartInfo.forEach((element) => {
|
||||
output.push(convert(element));
|
||||
});
|
||||
} else {
|
||||
output.push(convert(jObj.PartInfo));
|
||||
}
|
||||
|
||||
const builder = new XMLBuilder({
|
||||
ignoreAttributes: false,
|
||||
arrayNodeName: "UseTemplate",
|
||||
format: true,
|
||||
});
|
||||
const xmlContent = builder.build(output);
|
||||
|
||||
console.log(xmlContent);
|
||||
@@ -0,0 +1,23 @@
|
||||
import fs from "fs";
|
||||
|
||||
const path = "PackageSources/SimObjects/Misc/TFDi_Design_MD-11_Fixes/";
|
||||
const f = "model.f/TFDi_Design_MD-11_Fixes.gltf";
|
||||
const p = "model.p/TFDi_Design_MD-11_Fixes.gltf";
|
||||
|
||||
let toEdit = JSON.parse(fs.readFileSync(`${path}${f}`));
|
||||
|
||||
toEdit.images.forEach((e) => {
|
||||
e.uri = "..\\MODEL.F\\" + e.uri;
|
||||
});
|
||||
|
||||
fs.writeFileSync(`${path}${f}`, JSON.stringify(toEdit, null, 2));
|
||||
|
||||
/*
|
||||
toEdit = JSON.parse(fs.readFileSync(`${path}${p}`));
|
||||
|
||||
toEdit.images.forEach((e) => {
|
||||
e.uri = "..\\MODEL.F\\" + e.uri;
|
||||
});
|
||||
|
||||
fs.writeFileSync(`${path}${p}`, JSON.stringify(toEdit, null, 2));
|
||||
*/
|
||||
Reference in New Issue
Block a user