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.
74 lines
3.6 KiB
C#
74 lines
3.6 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Text;
|
|
|
|
namespace VR4LifeInstaller
|
|
{
|
|
class Program
|
|
{
|
|
static void Main(string[] args)
|
|
{
|
|
Console.WriteLine("=== VR4Life: Instalador Professional (Limpeza + Logica Babylon) ===");
|
|
|
|
try
|
|
{
|
|
// --- PARTE 1: LIMPEZA DA INSTALACAO ANTIGA ---
|
|
string appData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
|
|
string oldLoader = Path.Combine(appData, @"Autodesk\3dsMax\2026 - 64bit\ENU\scripts\startup\vr4life_loader.ms");
|
|
string oldFolder = Path.Combine(appData, @"Autodesk\3dsMax\2026 - 64bit\ENU\scripts\VR4Life_Plugin");
|
|
|
|
if (File.Exists(oldLoader))
|
|
{
|
|
File.Delete(oldLoader);
|
|
Console.WriteLine(" - Loader antigo removido.");
|
|
}
|
|
if (Directory.Exists(oldFolder))
|
|
{
|
|
Directory.Delete(oldFolder, true);
|
|
Console.WriteLine(" - Pasta de scripts antiga removida.");
|
|
}
|
|
|
|
// --- PARTE 2: NOVA INSTALACAO (DIRETRIZ BABYLON) ---
|
|
string programData = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
|
|
string pluginRoot = Path.Combine(programData, @"Autodesk\ApplicationPlugins\VR4Life");
|
|
string contentsPath = Path.Combine(pluginRoot, "Contents");
|
|
string scriptsPath = Path.Combine(contentsPath, "scripts");
|
|
|
|
if (!Directory.Exists(scriptsPath)) Directory.CreateDirectory(scriptsPath);
|
|
|
|
// Gerar PackageContents.xml na RAIZ
|
|
string xmlContent = @"<?xml version=""1.0"" encoding=""utf-8""?>
|
|
<ApplicationPackage SchemaVersion=""1.0"" Version=""1.0"" Name=""VR4Life"" ProductCode=""{A1B2C3D4-E5F6-4789-A1B2-C3D4E5F67890}"">
|
|
<Components>
|
|
<RuntimeRequirements OS=""Win64"" Platform=""3ds Max"" SeriesMin=""2024"" SeriesMax=""2026"" />
|
|
<ComponentEntry ComponentName=""VR4Life_Connector"" ModuleName=""./Contents/VR4Life-dll.dll"" />
|
|
<ComponentEntry ComponentName=""VR4Life_Scripts"" ModuleName=""./Contents/scripts/vr4life_macros.ms"" />
|
|
</Components>
|
|
</ApplicationPackage>";
|
|
File.WriteAllText(Path.Combine(pluginRoot, "PackageContents.xml"), xmlContent, Encoding.UTF8);
|
|
|
|
// Copiar DLL e Scripts para as pastas corretas
|
|
CopyFile("VR4Life-dll.dll", Path.Combine(contentsPath, "VR4Life-dll.dll"));
|
|
|
|
string[] files = { "run_vr4life.py", "vr4life_updater.py", "version.txt" };
|
|
foreach (var f in files) CopyFile(f, Path.Combine(scriptsPath, f));
|
|
|
|
// Gerar as Macros MS no destino novo
|
|
string macros = $@"
|
|
macroScript VR4Life_Launcher category:""Immerse Games"" (on execute do python.executeFile ""{scriptsPath.Replace("\\", "/")}/run_vr4life.py"")
|
|
macroScript VR4Life_Update category:""Immerse Games"" (on execute do python.executeFile ""{scriptsPath.Replace("\\", "/")}/vr4life_updater.py"")
|
|
";
|
|
File.WriteAllText(Path.Combine(scriptsPath, "vr4life_macros.ms"), macros, Encoding.UTF8);
|
|
|
|
Console.WriteLine("\n>>> INSTALACAO E LIMPEZA CONCLUIDAS COM SUCESSO!");
|
|
}
|
|
catch (Exception ex) { Console.WriteLine("ERRO: " + ex.Message); }
|
|
Console.ReadKey();
|
|
}
|
|
|
|
static void CopyFile(string src, string dest)
|
|
{
|
|
if (File.Exists(src)) File.Copy(src, dest, true);
|
|
}
|
|
}
|
|
} |