workshop rework
This commit is contained in:
1 parent
a3a80dfa16
commit
fb39e290c0
115 files changed
+1865
-497
No files matched your search
@@ -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)
|
||||
Reference in new issue
Block a user