@echo off setlocal enabledelayedexpansion REM === ChildHood Input Setup - Create v0.1 InputAction assets + update IMC === REM REM Usage: REM setup_input.bat (default, editor quits after done) REM setup_input.bat --no-quit (keep editor open) set "SCRIPT_DIR=%~dp0" set "PROJECT_DIR=%SCRIPT_DIR%..\.." for %%i in ("%PROJECT_DIR%\.") do set "PROJECT_ROOT=%%~fi" set "UPROJECT=%PROJECT_ROOT%\ChildHood.uproject" REM ---- Defaults ---- set "NO_QUIT=0" set "DRY_RUN=0" REM ---- Parse Arguments ---- :parse_args if "%~1"=="" goto done_args if /i "%~1"=="--no-quit" ( set "NO_QUIT=1" shift goto parse_args ) if /i "%~1"=="--dry-run" ( set "DRY_RUN=1" shift goto parse_args ) if /i "%~1"=="--help" goto show_help if /i "%~1"=="-h" goto show_help echo [WARN] Unknown argument: %~1 shift goto parse_args :done_args REM ---- Find UE5 Editor ---- set "UE_EDITOR=" if defined UE5_ROOT ( for %%b in (UnrealEditor.exe UE5Editor.exe) do ( if exist "%UE5_ROOT%\Engine\Binaries\Win64\%%b" ( set "UE_EDITOR=%UE5_ROOT%\Engine\Binaries\Win64\%%b" ) ) ) if "%UE_EDITOR%"=="" ( for %%p in ( "C:\Program Files\Epic Games\UE_5.7" "C:\Program Files (x86)\Epic Games\UE_5.7" "D:\Program Files\Epic Games\UE_5.7" "E:\Program Files\Epic Games\UE_5.7" ) do ( if not defined UE_EDITOR ( for %%b in (UnrealEditor.exe UE5Editor.exe) do ( if exist "%%~p\Engine\Binaries\Win64\%%b" ( set "UE_EDITOR=%%~p\Engine\Binaries\Win64\%%b" ) ) ) ) ) if "%UE_EDITOR%"=="" ( echo. echo [ERROR] UE5 Editor not found! echo Set UE5_ROOT, e.g.: set UE5_ROOT=C:\Program Files\Epic Games\UE_5.7 echo. exit /b 1 ) REM ---- Path conversion ---- set "SCRIPT_PATH=%SCRIPT_DIR%setup_input_assets.py" set "SCRIPT_PATH=!SCRIPT_PATH:\=/!" set "UPROJECT_FWD=!UPROJECT:\=/!" REM ---- Build command line ---- set "CMD_ARGS=-unattended -NoSound -NullRHI -ExecutePythonScript=!SCRIPT_PATH!" REM ---- Pass config via env vars ---- set "INPUT_PROJECT_ROOT=!PROJECT_ROOT!" if "!NO_QUIT!"=="1" set "INPUT_NO_QUIT=1" REM ---- Print info ---- echo. echo ============================================ echo ChildHood Input Setup - v0.1 echo ============================================ echo UE5: !UE_EDITOR! echo Project: !UPROJECT_FWD! echo Script: !SCRIPT_PATH! echo ============================================ echo. REM ---- Dry Run ---- if "%DRY_RUN%"=="1" ( echo [DRY RUN] Command: echo. echo "!UE_EDITOR!" "!UPROJECT_FWD!" !CMD_ARGS! echo. exit /b 0 ) REM ---- Execute ---- echo [InputSetup] Launching UE5 Editor ... echo. "!UE_EDITOR!" "!UPROJECT_FWD!" !CMD_ARGS! set "EXIT_CODE=!ERRORLEVEL!" echo. if "!EXIT_CODE!"=="0" ( echo [InputSetup] Done. Editor exited. ) else ( echo [InputSetup] Editor exit code: !EXIT_CODE! ) exit /b !EXIT_CODE! :show_help echo. echo ChildHood Input Setup - v0.1 echo. echo Usage: setup_input.bat [options] echo. echo Options: echo --no-quit Keep editor open after done echo --dry-run Print command without executing echo --help, -h Show help echo. exit /b 0