import os from pymxs import runtime as rt def install_vr4life_official_style(): try: # 1. PEGAR CAMINHOS plugin_dir = os.path.dirname(os.path.realpath(__file__)).replace("\\", "/") startup_dir = rt.getDir(rt.name("userStartupScripts")) loader_script_path = os.path.join(startup_dir, "VR4Life_Loader.ms") # 2. CRIAR O SCRIPT DE CARREGAMENTO (Igual ao CreateBabylonMenus.ms) # Este arquivo vai rodar toda vez que o Max abrir, garantindo que o menu exista loader_content = f""" ( fn installVR4LifeMenu = ( if menuMan != undefined then ( local mainMenuBar = menuMan.getMainMenuBar() local existingMenu = menuMan.findMenu "VR4Life" if existingMenu != undefined do menuMan.unRegisterMenu existingMenu local newMenu = menuMan.createMenu "VR4Life" local actionItem = menuMan.createActionItem "VR4Life_Launcher" "Immerse Games" newMenu.addItem actionItem -1 local subMenuItem = menuMan.createSubMenuItem "VR4Life" newMenu mainMenuBar.addItem subMenuItem (mainMenuBar.numItems()) menuMan.updateMenuBar() ) ) installVR4LifeMenu() ) """ # Escreve o arquivo na pasta Startup with open(loader_script_path, "w", encoding="utf-8") as f: f.write(loader_content) # 3. REGISTRAR O MACROSCRIPT (Para o botão funcionar) macro_cmd = ( 'macroScript VR4Life_Launcher\n' 'category:"Immerse Games"\n' 'tooltip:"Abrir VR4Life"\n' '(\n' f' on execute do python.executeFile "{plugin_dir}/run_vr4life.py"\n' ')' ) rt.execute(macro_cmd) # 4. EXECUTAR AGORA (Tentar carregar o menu imediatamente) rt.fileIn(loader_script_path) print(f">> VR4Life: Loader instalado em {loader_script_path}") return True except Exception as e: print(f"Erro no estilo Babylon: {str(e)}") return False if __name__ == "__main__": install_vr4life_official_style()