Skip to content

Commit

Permalink
Updated AssemblyVersion
Browse files Browse the repository at this point in the history
 Added InstallChecker
 Updated for KSP 1.8
  • Loading branch information
linuxgurugamer committed Dec 14, 2019
1 parent f732fa8 commit 6d25578
Show file tree
Hide file tree
Showing 13 changed files with 466 additions and 42 deletions.
9 changes: 8 additions & 1 deletion Changelog.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
ChangeLog

1.1.3 Fixed issue with emitters, thanks @sarbian

1.1.4
Expand All @@ -20,4 +22,9 @@
Removed log spam during flight (once eveyr 5 secs)

1.1.9.1
Version bump for 1.5 rebuild
Version bump for 1.5 rebuild

0.1.10
Updated AssemblyVersion
Added InstallChecker
Updated for KSP 1.8
26 changes: 11 additions & 15 deletions GameData/VaporVent/VaporVent.version
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
{
"NAME": "VaporVent",
"URL": "http://ksp.spacetux.net/avc/VaporVent",
"DOWNLOAD": "http://spacedock.info/mod/931",
Expand All @@ -9,22 +9,18 @@
"VERSION": {
"MAJOR": 1,
"MINOR": 1,
"PATCH": 9,
"BUILD": 1
},
"KSP_VERSION": {
"MAJOR": 1,
"MINOR": 5,
"PATCH": 1
"PATCH": 10,
"BUILD": 0
},
"KSP_VERSION_MIN": {
"MAJOR": 1,
"MINOR": 5,
"PATCH": 1
"MINOR": 8,
"PATCH": 0
},
"KSP_VERSION_MAX": {
"MAJOR": 1,
"MINOR": 5,
"PATCH": 99
"INSTALL_LOC_1": {
"NAME": "VaporVent",
"PATH": "",
"DIRECTORY": "VaporVent",
"FILE": "VaporVent.version"
}
}
}
19 changes: 10 additions & 9 deletions VaporVent.version
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,18 @@
"VERSION": {
"MAJOR": 1,
"MINOR": 1,
"PATCH": 9,
"BUILD": 2
},
"KSP_VERSION": {
"MAJOR": 1,
"MINOR": 5,
"PATCH": 1
"PATCH": 10,
"BUILD": 0
},
"KSP_VERSION_MIN": {
"MAJOR": 1,
"MINOR": 5,
"PATCH": 1
"MINOR": 8,
"PATCH": 0
},
"INSTALL_LOC_1": {
"NAME": "VaporVent",
"PATH": "",
"DIRECTORY": "VaporVent",
"FILE": "VaporVent.version"
}
}
32 changes: 32 additions & 0 deletions VaporVent.version.orig
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"NAME": "VaporVent",
"URL": "http://ksp.spacetux.net/avc/VaporVent",
"DOWNLOAD": "http://spacedock.info/mod/931",
"GITHUB": {
"USERNAME": "linuxgurugamer",
"REPOSITORY": "VaporVent"
},
"VERSION": {
"MAJOR": 1,
"MINOR": 1,
"PATCH": 9,
"BUILD": 2
},
"KSP_VERSION": {
"MAJOR": 1,
"MINOR": 5,
"PATCH": 1
},
"KSP_VERSION_MIN": {
"MAJOR": 1,
"MINOR": 5,
"PATCH": 1
},
"INSTALL_LOC_1":
{
"NAME": "VaporVent",
"PATH": "",
"DIRECTORY": "VaporVent",
"FILE": "VaporVent.version"
}
}
2 changes: 1 addition & 1 deletion VaporVent.version.old → VaporVent.version.orig1
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"MAJOR": 1,
"MINOR": 1,
"PATCH": 9,
"BUILD": 1
"BUILD": 2
},
"KSP_VERSION": {
"MAJOR": 1,
Expand Down
2 changes: 1 addition & 1 deletion VaporVent/AssemblyVersion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@

using System.Reflection;

[assembly: AssemblyVersion("1.1.9.1")]
[assembly: AssemblyVersion("1.1.10.0")]
9 changes: 8 additions & 1 deletion VaporVent/AssemblyVersion.tt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,14 @@
int i2 = 0;
string s;

string versionfile = @"D:\Users\jbb\github\VaporVent\VaporVent.version";
// For Visual Studio / MSBuild Build-Time Template Resolution
string RootDirectory = System.IO.Path.GetDirectoryName(Host.TemplateFile) + @"\..\";

//
// Update the following with the name of the .version file which is in the root directory
//
string versionfile = RootDirectory +"VaporVent.version";

if (!File.Exists(versionfile))
{
Write("File: " + versionfile + " missing\n");
Expand Down
102 changes: 102 additions & 0 deletions VaporVent/InstallChecker.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
using System;
using System.Collections.Generic;
using System.Linq;
/**
* Based on the InstallChecker from the Kethane mod for Kerbal Space Program.
* https://github.com/Majiir/Kethane/blob/b93b1171ec42b4be6c44b257ad31c7efd7ea1702/Plugin/InstallChecker.cs
*
* Original is (C) Copyright Majiir.
* CC0 Public Domain (http://creativecommons.org/publicdomain/zero/1.0/)
* http://forum.kerbalspaceprogram.com/threads/65395-CompatibilityChecker-Discussion-Thread?p=899895&viewfull=1#post899895
*
* This file has been modified extensively and is released under the same license.
*/
using System.IO;
using System.Reflection;
using UnityEngine;

namespace vaporvent
{


[KSPAddon(KSPAddon.Startup.Instantly, true)]
internal class Startup : MonoBehaviour
{
private void Start()
{
string v = "n/a";
AssemblyTitleAttribute attributes = (AssemblyTitleAttribute)Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(AssemblyTitleAttribute), false);
string title = attributes?.Title;
if (title == null)
{
title = "TitleNotAvailable";
}
v = Assembly.GetExecutingAssembly().FullName;
if (v == null)
{
v = "VersionNotAvailable";
}
Debug.Log("[" + title + "] Version " + v);
}
}

[KSPAddon(KSPAddon.Startup.MainMenu, true)]
internal class InstallChecker : MonoBehaviour
{
private const string MODNAME = "Vapor Vent";
private const string FOLDERNAME = "VaporVent";
private const string EXPECTEDPATH = FOLDERNAME + "/Plugins";

protected void Start()
{
// Search for this mod's DLL existing in the wrong location. This will also detect duplicate copies because only one can be in the right place.
var assemblies = AssemblyLoader.loadedAssemblies.Where(a => a.assembly.GetName().Name == Assembly.GetExecutingAssembly().GetName().Name).Where(a => a.url != EXPECTEDPATH);
if (assemblies.Any())
{
var badPaths = assemblies.Select(a => a.path).Select(p => Uri.UnescapeDataString(new Uri(Path.GetFullPath(KSPUtil.ApplicationRootPath)).MakeRelativeUri(new Uri(p)).ToString().Replace('/', Path.DirectorySeparatorChar)));
PopupDialog.SpawnPopupDialog
(
new Vector2(0.5f, 0.5f),
new Vector2(0.5f, 0.5f),
"test",
"Incorrect " + MODNAME + " Installation",
MODNAME + " has been installed incorrectly and will not function properly. All files should be located in KSP/GameData/" + FOLDERNAME + ". Do not move any files from inside that folder.\n\nIncorrect path(s):\n" + String.Join("\n", badPaths.ToArray()),
"OK",
false,
HighLogic.UISkin
);
Debug.Log("Incorrect " + MODNAME + " Installation: " + MODNAME + " has been installed incorrectly and will not function properly. All files should be located in KSP/GameData/" + EXPECTEDPATH + ". Do not move any files from inside that folder.\n\nIncorrect path(s):\n" + String.Join("\n", badPaths.ToArray())

);

}

//// Check for Module Manager
//if (!AssemblyLoader.loadedAssemblies.Any(a => a.assembly.GetName().Name.StartsWith("ModuleManager") && a.url == ""))
//{
// PopupDialog.SpawnPopupDialog("Missing Module Manager",
// modName + " requires the Module Manager mod in order to function properly.\n\nPlease download from http://forum.kerbalspaceprogram.com/threads/55219 and copy to the KSP/GameData/ directory.",
// "OK", false, HighLogic.Skin);
//}

CleanupOldVersions();
}

/*
* Tries to fix the install if it was installed over the top of a previous version
*/
void CleanupOldVersions()
{
try
{
}
catch (Exception ex)
{
Debug.LogError("-ERROR- " + this.GetType().FullName + "[" + this.GetInstanceID().ToString("X") + "][" + Time.time.ToString("0.00") + "]: " +
"Exception caught while cleaning up old files.\n" + ex.Message + "\n" + ex.StackTrace);

}
}
}
}

100 changes: 100 additions & 0 deletions VaporVent/InstallChecker.cs.orig
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
using System;
using System.Collections.Generic;
using System.Linq;
/**
* Based on the InstallChecker from the Kethane mod for Kerbal Space Program.
* https://github.com/Majiir/Kethane/blob/b93b1171ec42b4be6c44b257ad31c7efd7ea1702/Plugin/InstallChecker.cs
*
* Original is (C) Copyright Majiir.
* CC0 Public Domain (http://creativecommons.org/publicdomain/zero/1.0/)
* http://forum.kerbalspaceprogram.com/threads/65395-CompatibilityChecker-Discussion-Thread?p=899895&viewfull=1#post899895
*
* This file has been modified extensively and is released under the same license.
*/
using System.IO;
using System.Reflection;
using UnityEngine;

namespace vaporvent
{
[KSPAddon(KSPAddon.Startup.Instantly, true)]
internal class Startup : MonoBehaviour
{
private void Start()
{
string v = "n/a";
AssemblyTitleAttribute attributes = (AssemblyTitleAttribute)Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(AssemblyTitleAttribute), false);
string title = attributes?.Title;
if (title == null)
{
title = "TitleNotAvailable";
}
v = Assembly.GetExecutingAssembly().FullName;
if (v == null)
{
v = "VersionNotAvailable";
}
Debug.Log("[" + title + "] Version " + v);
}
}

[KSPAddon(KSPAddon.Startup.MainMenu, true)]
internal class InstallChecker : MonoBehaviour
{
private const string MODNAME = "Vapor Vent";
private const string FOLDERNAME = "VaporVent";
private const string EXPECTEDPATH = FOLDERNAME + "/Plugins";

protected void Start()
{
// Search for this mod's DLL existing in the wrong location. This will also detect duplicate copies because only one can be in the right place.
var assemblies = AssemblyLoader.loadedAssemblies.Where(a => a.assembly.GetName().Name == Assembly.GetExecutingAssembly().GetName().Name).Where(a => a.url != EXPECTEDPATH);
if (assemblies.Any())
{
var badPaths = assemblies.Select(a => a.path).Select(p => Uri.UnescapeDataString(new Uri(Path.GetFullPath(KSPUtil.ApplicationRootPath)).MakeRelativeUri(new Uri(p)).ToString().Replace('/', Path.DirectorySeparatorChar)));
PopupDialog.SpawnPopupDialog
(
new Vector2(0.5f, 0.5f),
new Vector2(0.5f, 0.5f),
"test",
"Incorrect " + MODNAME + " Installation",
MODNAME + " has been installed incorrectly and will not function properly. All files should be located in KSP/GameData/" + FOLDERNAME + ". Do not move any files from inside that folder.\n\nIncorrect path(s):\n" + String.Join("\n", badPaths.ToArray()),
"OK",
false,
HighLogic.UISkin
);
Debug.Log("Incorrect " + MODNAME + " Installation: " + MODNAME + " has been installed incorrectly and will not function properly. All files should be located in KSP/GameData/" + EXPECTEDPATH + ". Do not move any files from inside that folder.\n\nIncorrect path(s):\n" + String.Join("\n", badPaths.ToArray())

);

}

//// Check for Module Manager
//if (!AssemblyLoader.loadedAssemblies.Any(a => a.assembly.GetName().Name.StartsWith("ModuleManager") && a.url == ""))
//{
// PopupDialog.SpawnPopupDialog("Missing Module Manager",
// modName + " requires the Module Manager mod in order to function properly.\n\nPlease download from http://forum.kerbalspaceprogram.com/threads/55219 and copy to the KSP/GameData/ directory.",
// "OK", false, HighLogic.Skin);
//}

CleanupOldVersions();
}

/*
* Tries to fix the install if it was installed over the top of a previous version
*/
void CleanupOldVersions()
{
try
{
}
catch (Exception ex)
{
Debug.LogError("-ERROR- " + this.GetType().FullName + "[" + this.GetInstanceID().ToString("X") + "][" + Time.time.ToString("0.00") + "]: " +
"Exception caught while cleaning up old files.\n" + ex.Message + "\n" + ex.StackTrace);

}
}
}
}

Loading

0 comments on commit 6d25578

Please sign in to comment.