You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
2.0 KiB
Python

import os
from pymxs import runtime as rt
def install_vr4life_2026_fixed():
try:
# 1. CAMINHOS
plugin_dir = os.path.dirname(os.path.realpath(__file__)).replace("\\", "/")
# Onde o MNX foi copiado pelo seu instalador
pasta_macros = rt.getDir(rt.name("userMacros"))
pasta_enu = os.path.dirname(pasta_macros)
caminho_mnx = os.path.join(pasta_enu, "en-US", "UI", "vr4life.mnx").replace("\\", "/")
# 2. REGISTRAR AS MACROS (Obrigatorio para o MNX funcionar)
# Usamos exatamente a categoria "Immerse Games" que está no seu MNX
macro_cmd = f"""
macroScript VR4Life_Launcher
category:"Immerse Games"
tooltip:"Abrir VR4Life"
(
on execute do python.executeFile "{plugin_dir}/run_vr4life.py"
)
macroScript VR4Life_Update
category:"Immerse Games"
tooltip:"Atualizar VR4Life"
(
on execute do python.executeFile "{plugin_dir}/vr4life_updater.py"
)
"""
rt.execute(macro_cmd)
# 3. CARREGAR O MNX VIA INTERFACE DE CONTEXTO (Abordagem Babylon 2026)
# Se o menuMan é undefined, usamos o carregamento de arquivo de configuração
setup_script = f"""
(
local mnxPath = "{caminho_mnx}"
if (doesFileExist mnxPath) then (
-- No 2026, tentamos carregar o arquivo de menus diretamente
-- sem passar pelas propriedades de "getMainMenuBar"
try (
menuMan.loadMenuFile mnxPath
menuMan.updateMenuBar()
) catch (
-- Se falhar aqui, o Max carregará no próximo boot
-- pois o arquivo já está na pasta oficial de UI
)
)
)
"""
rt.execute(setup_script)
print(">> VR4Life: Macros registradas e MNX vinculado.")
return True
except Exception as e:
print(f"Erro na instalação: {str(e)}")
return False
if __name__ == "__main__":
install_vr4life_2026_fixed()