From 09fe87bbe5ed75679a8cd7cf9d4094bcfad6a6c0 Mon Sep 17 00:00:00 2001 From: Lino Schmidt Date: Mon, 16 May 2022 16:47:50 +0200 Subject: [PATCH] Added functionality for Linux --- assets/blenderScript.py | 5 ++--- package-lock.json | 18 ++++++++++++++++-- package.json | 1 + src/js/render.js | 32 +++++++++++++++++++++++++------- 4 files changed, 44 insertions(+), 12 deletions(-) diff --git a/assets/blenderScript.py b/assets/blenderScript.py index 64a2bfb..5f4dd70 100644 --- a/assets/blenderScript.py +++ b/assets/blenderScript.py @@ -5,9 +5,8 @@ import math import sys import bpy import xml.etree.ElementTree as ET -import os -settings = ET.parse(os.path.join(os.getenv('APPDATA'), "StickExporterTX", "settings.xml")) +settings = ET.parse("") logger = logging.getLogger('simple_example') logger.setLevel(logging.INFO) @@ -163,4 +162,4 @@ for log in logs: if(logCount <= logNumber): logger.info("Finished") - logNumber+=1 \ No newline at end of file + logNumber+=1 diff --git a/package-lock.json b/package-lock.json index e4fe5e9..2826eff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,18 @@ { "name": "stickexportertx", - "version": "0.5", + "version": "0.6.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "stickexportertx", - "version": "0.5", + "version": "0.6.1", "license": "MIT", "dependencies": { "@electron/remote": "^2.0.8", "electron-log": "^4.4.7", "electron-squirrel-startup": "^1.0.0", + "line-replace": "^2.0.1", "xml-formatter": "^2.6.1" }, "devDependencies": { @@ -4285,6 +4286,14 @@ "json-buffer": "3.0.0" } }, + "node_modules/line-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/line-replace/-/line-replace-2.0.1.tgz", + "integrity": "sha512-CSr3f6gynLCA9R+RBS0IDIfv7a8OAXcuyq+CHgq0WzbQ7KSJQfF5DgtpRVxpSp1KBNXogtzbNqAeUjrmHYTPYA==", + "bin": { + "line-replace": "bin/index.js" + } + }, "node_modules/load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -10156,6 +10165,11 @@ "json-buffer": "3.0.0" } }, + "line-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/line-replace/-/line-replace-2.0.1.tgz", + "integrity": "sha512-CSr3f6gynLCA9R+RBS0IDIfv7a8OAXcuyq+CHgq0WzbQ7KSJQfF5DgtpRVxpSp1KBNXogtzbNqAeUjrmHYTPYA==" + }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", diff --git a/package.json b/package.json index 4830fd3..608d97a 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "@electron/remote": "^2.0.8", "electron-log": "^4.4.7", "electron-squirrel-startup": "^1.0.0", + "line-replace": "^2.0.1", "xml-formatter": "^2.6.1" }, "devDependencies": { diff --git a/src/js/render.js b/src/js/render.js index b34059c..0403773 100644 --- a/src/js/render.js +++ b/src/js/render.js @@ -7,8 +7,8 @@ var fps = 25 var width = 540 var stickDistance = 5 var stickMode2 = true -var log = '"C:\\"' -var output = "C:\\" +var log = '"None"' +var output = "None" const statusDisplay = document.getElementById("status"); const fpsDisplay = document.getElementById("fpsInput"); @@ -22,12 +22,30 @@ const logNumberDisplay = document.getElementById("logNumber"); const logger = require('electron-log'); const fs = require("fs"); const formatXml = require("xml-formatter"); -const {dialog} = require("@electron/remote"); +const {dialog, app} = require("@electron/remote"); const path = require('path'); +const lineReplace = require('line-replace'); -var appName = "stickexportertx"; -var dataFolder = path.join(process.env.APPDATA, appName); -var SettingFolder = path.join(dataFolder, "settings.xml"); +const dataFolder = app.getPath('userData'); +const SettingFolder = path.join(dataFolder, "settings.xml"); + +const blenderPath = path.join("assets", "blender", "blender"); +const templatePath = path.join("assets", "template.blend"); +const blenderScriptPath = path.join("assets", "blenderScript.py"); + +lineReplace({ + file: blenderScriptPath, + line: 9, + text: 'settings = ET.parse("' + SettingFolder.replaceAll('\\', '/') + '")', + addNewLine: true, + callback: ({error}) => { + if(error != null) { + statusDisplay.innerHTML = "Something went wrong! Check Logs."; + statusDisplay.style.color = "red"; + logger.error(error); + } + } +}); logger.transports.console.format = "{h}:{i}:{s} {text}"; logger.transports.file.getFile(); @@ -35,7 +53,7 @@ logger.transports.file.resolvePath = () => path.join(dataFolder, "logs", "main.l function startRender() { const {exec} = require("child_process"); - var blenderCons = exec('"assets\\blender\\blender" "assets\\template.blend" --background --python "assets\\blenderScript.py"', {maxBuffer: Infinity}); + var blenderCons = exec('"' + blenderPath + '" "' + templatePath + '" --background --python "' + blenderScriptPath + '"', {maxBuffer: Infinity}); frames = "0"; lastFrame = "0";