diff --git a/.gitignore b/.gitignore
index bbdd17b..6d0768e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -77,3 +77,6 @@ obj
Reference
*.userprefs
+/packages/Lib.Harmony.2.0.1
+/packages/CitiesHarmony.API.1.0.5
+/.vs
diff --git a/Crossings/Crossings.cs b/Crossings/Crossings.cs
index 7ac93bf..5be608d 100644
--- a/Crossings/Crossings.cs
+++ b/Crossings/Crossings.cs
@@ -1,7 +1,7 @@
using ICities;
+using CitiesHarmony.API;
using ColossalFramework.UI;
using HarmonyLib;
-using UnityEngine;
using System;
using System.Reflection;
@@ -11,7 +11,6 @@ public class Crossings {
public static NetNode.Flags CrossingFlag = NetNode.Flags.Sewage; // Hopefully this won't break anything *fingers crossed*
}
-
public class CrossingsInfo : IUserMod {
public string Name {
get { return "Pedestrian Crossings"; }
@@ -20,6 +19,10 @@ public string Name {
public string Description {
get { return "Adds placeable pedestrian (zebra) crossings"; }
}
+ public void OnEnabled()
+ {
+ HarmonyHelper.EnsureHarmonyInstalled();
+ }
}
public class Loader : LoadingExtensionBase {
@@ -34,8 +37,7 @@ public override void OnCreated(ILoading loading)
// Debug.Log ("[Crossings] OnCreated()");
base.OnCreated (loading);
- var harmony = new Harmony("org.guarana.citiesskylines.mod.crossings");
- harmony.PatchAll();
+ if (HarmonyHelper.IsHarmonyInstalled) Patcher.PatchAll();
ui.selectedToolModeChanged += (bool enabled) => {
SetToolEnabled(enabled);
@@ -46,7 +48,9 @@ public override void OnCreated(ILoading loading)
public override void OnReleased()
{
-// Debug.Log ("[Crossings] OnReleased()");
+ if (HarmonyHelper.IsHarmonyInstalled) Patcher.UnpatchAll();
+
+ // Debug.Log ("[Crossings] OnReleased()");
ui.DestroyView();
DestroyBuildTool();
@@ -112,6 +116,30 @@ static void DestroyBuildTool() {
}
}
}
+
+ public static class Patcher
+ {
+ private const string HarmonyId = "org.guarana.citiesskylines.mod.crossings";
+ private static bool patched = false;
+
+ public static void PatchAll()
+ {
+ if (patched) return;
+
+ patched = true;
+ var harmony = new Harmony(HarmonyId);
+ harmony.PatchAll();
+ }
+
+ public static void UnpatchAll()
+ {
+ if (!patched) return;
+
+ var harmony = new Harmony(HarmonyId);
+ harmony.UnpatchAll(HarmonyId);
+ patched = false;
+ }
+ }
public static class Util
{
diff --git a/Crossings/Crossings.csproj b/Crossings/Crossings.csproj
index 231598c..a899b40 100644
--- a/Crossings/Crossings.csproj
+++ b/Crossings/Crossings.csproj
@@ -36,10 +36,14 @@
4
false
true
+ AnyCPU
-
- ..\packages\Lib.Harmony.2.0.0.8\lib\net35\0Harmony.dll
+
+ ..\packages\Lib.Harmony.2.0.1\lib\net35\0Harmony.dll
+
+
+ ..\packages\CitiesHarmony.API.1.0.5\lib\net35\CitiesHarmony.API.dll
@@ -79,7 +83,7 @@
-
-
+ copy /Y "$(TargetDir)Crossings.dll" "C:\Users\Bernard\AppData\Local\Colossal Order\Cities_Skylines\Addons\Mods\Crossings\Crossings.dll"
+copy /Y "$(TargetDir)CitiesHarmony.API.dll" "C:\Users\Bernard\AppData\Local\Colossal Order\Cities_Skylines\Addons\Mods\Crossings\CitiesHarmony.API.dll"
-
\ No newline at end of file
+
diff --git a/Crossings/packages.config b/Crossings/packages.config
index 0cc4485..3c972cf 100644
--- a/Crossings/packages.config
+++ b/Crossings/packages.config
@@ -1,4 +1,5 @@
-
+
+
\ No newline at end of file