workshop rework

This commit is contained in:
Vysyr committed 2026-10-31 17:03:41 +01:00
1 parent a3a80dfa16
commit fb39e290c0
115 files changed
+1865 -497

No files matched your search

+38
View File
@@ -0,0 +1,38 @@
"""Entry point for -ExecutePythonScript; preserve the editor until MRQ finishes."""
import json
import os
from pathlib import Path
import runpy
import sys
import traceback
import unreal
root = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(root / "Content/Python"))
from ue_workshop.progress import report
try:
unreal.EditorPythonScripting.set_keep_python_script_alive(True)
report("preparing")
namespace = runpy.run_path(os.environ["WORKSHOP_SCRIPT"], run_name="__main__")
from ue_workshop import render
if not render.is_rendering() and (os.environ.get("WORKSHOP_RENDER") == "1" or
os.environ.get("WORKSHOP_SINGLE_FRAME")):
if "shot" not in namespace:
raise RuntimeError("Opcja --render wymaga zmiennej shot w skrypcie.")
frame = os.environ.get("WORKSHOP_SINGLE_FRAME")
renderer = namespace.get("renderer") or render.Renderer()
renderer.render(namespace["shot"], single_frame=int(frame) if frame else None)
if not render.is_rendering():
render._write_status({"success": True, "state": "script_finished"})
report("closing")
unreal.EditorPythonScripting.set_keep_python_script_alive(False)
except Exception:
error = traceback.format_exc()
unreal.log_error(error)
status = os.environ.get("WORKSHOP_STATUS")
if status:
Path(status).write_text(json.dumps({"success": False, "error": error}), encoding="utf-8")
report("closing")
unreal.EditorPythonScripting.set_keep_python_script_alive(False)