mirror of
https://github.com/ineedbots/bw_node_tools.git
synced 2025-04-19 18:42:54 +00:00
init node tools
This commit is contained in:
commit
e384d8e699
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
node_modules/
|
13
package-lock.json
generated
Normal file
13
package-lock.json
generated
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"name": "node_weaponfile_tools",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"lockfileVersion": 1,
|
||||||
|
"requires": true,
|
||||||
|
"dependencies": {
|
||||||
|
"minimist": {
|
||||||
|
"version": "1.2.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
||||||
|
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
15
package.json
Normal file
15
package.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"name": "node_weaponfile_tools",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"gscwps": "node src/gscwptocsv.js"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"minimist": "^1.2.5"
|
||||||
|
}
|
||||||
|
}
|
50
src/gscwptocsv.js
Normal file
50
src/gscwptocsv.js
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
const {readFileSync, writeFileSync, appendFileSync} = require('fs')
|
||||||
|
const argv = require('minimist')(process.argv.slice(2))
|
||||||
|
|
||||||
|
|
||||||
|
argv._.forEach(arg => {
|
||||||
|
level = {waypoints:[]}
|
||||||
|
function spawnstruct() {
|
||||||
|
return {
|
||||||
|
children: []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let gscWpStr = readFileSync(arg, 'utf-8')
|
||||||
|
|
||||||
|
|
||||||
|
gscWpStr = gscWpStr.split('(').join('[')
|
||||||
|
gscWpStr = gscWpStr.split(')').join(']')
|
||||||
|
gscWpStr = gscWpStr.split('[]').join('()')
|
||||||
|
|
||||||
|
gscWpStr = gscWpStr.substr(gscWpStr.indexOf('level.waypoints[0]'))
|
||||||
|
gscWpStr = gscWpStr.substr(0, gscWpStr.indexOf('level.waypointCount'))
|
||||||
|
|
||||||
|
eval(gscWpStr)
|
||||||
|
|
||||||
|
writeFileSync(arg + ".csv", level.waypoints.length+"\n")
|
||||||
|
|
||||||
|
level.waypoints.forEach(wp => {
|
||||||
|
let str = `${wp.origin[0]} ${wp.origin[1]} ${wp.origin[2]},`
|
||||||
|
|
||||||
|
wp.children.forEach((c, i) => {
|
||||||
|
str += c
|
||||||
|
|
||||||
|
if (i < wp.children.length - 1)
|
||||||
|
str += ' '
|
||||||
|
})
|
||||||
|
str += `,${wp.type},`
|
||||||
|
|
||||||
|
if (wp.angles !== undefined)
|
||||||
|
str += `${wp.angles[0]} ${wp.angles[1]} ${wp.angles[2]},`
|
||||||
|
else
|
||||||
|
str += ','
|
||||||
|
|
||||||
|
if (wp.jav_point !== undefined)
|
||||||
|
str += `${wp.angles[0]} ${wp.angles[1]} ${wp.angles[2]},`
|
||||||
|
else
|
||||||
|
str += ','
|
||||||
|
|
||||||
|
appendFileSync(arg + ".csv", str + '\n')
|
||||||
|
})
|
||||||
|
})
|
44
src/test.js
Normal file
44
src/test.js
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
const {readFileSync} = require('fs')
|
||||||
|
|
||||||
|
const stringifyWeaponFile = (wfObj = {}) => {
|
||||||
|
let answer = 'WEAPONFILE'
|
||||||
|
|
||||||
|
for (let key in wfObj) {
|
||||||
|
value = wfObj[key]
|
||||||
|
|
||||||
|
answer += `\\${key}\\${value}`
|
||||||
|
}
|
||||||
|
|
||||||
|
return answer
|
||||||
|
}
|
||||||
|
|
||||||
|
const parseWeaponFile = (wfStr = '') => {
|
||||||
|
const answer = {}
|
||||||
|
|
||||||
|
splitWFStr = wfStr.split('\\')
|
||||||
|
|
||||||
|
// [0] should be WEAPONFILE
|
||||||
|
|
||||||
|
for (let i = 1; i < splitWFStr.length; i++) {
|
||||||
|
// odds should be keys, evens should be values for those keys.
|
||||||
|
|
||||||
|
const key = splitWFStr[i]
|
||||||
|
const value = splitWFStr[++i]
|
||||||
|
|
||||||
|
answer[key] = value
|
||||||
|
}
|
||||||
|
|
||||||
|
return answer
|
||||||
|
}
|
||||||
|
|
||||||
|
const argv = require('minimist')(process.argv.slice(2))
|
||||||
|
|
||||||
|
const weaponFileStr1 = readFileSync(argv._[0], 'utf-8')
|
||||||
|
const weaponFileStr2 = readFileSync(argv._[1], 'utf-8')
|
||||||
|
|
||||||
|
const wf1 = parseWeaponFile(weaponFileStr1)
|
||||||
|
const wf2 = parseWeaponFile(weaponFileStr2)
|
||||||
|
|
||||||
|
const wfmerged = Object.assign(wf1, wf2)
|
||||||
|
|
||||||
|
console.log(stringifyWeaponFile(wfmerged))
|
Loading…
x
Reference in New Issue
Block a user