Skip to content

Commit

Permalink
Merge pull request #7 from bernardd/harmony
Browse files Browse the repository at this point in the history
Move to CitiesHarmony.API mod for Harmony support
  • Loading branch information
bernardd authored Aug 11, 2020
2 parents c1dfd80 + 87c12f4 commit cea617b
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 11 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,6 @@ obj
Reference

*.userprefs
/packages/Lib.Harmony.2.0.1
/packages/CitiesHarmony.API.1.0.5
/.vs
Expand Down
38 changes: 33 additions & 5 deletions Crossings/Crossings.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using ICities;
using CitiesHarmony.API;
using ColossalFramework.UI;
using HarmonyLib;
using UnityEngine;
using System;
using System.Reflection;

Expand All @@ -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"; }
Expand All @@ -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 {
Expand All @@ -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);
Expand All @@ -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();

Expand Down Expand Up @@ -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
{
Expand Down
14 changes: 9 additions & 5 deletions Crossings/Crossings.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,14 @@
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="0Harmony, Version=2.0.0.8, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Lib.Harmony.2.0.0.8\lib\net35\0Harmony.dll</HintPath>
<Reference Include="0Harmony, Version=2.0.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Lib.Harmony.2.0.1\lib\net35\0Harmony.dll</HintPath>
</Reference>
<Reference Include="CitiesHarmony.API, Version=1.0.5.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\CitiesHarmony.API.1.0.5\lib\net35\CitiesHarmony.API.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="ColossalManaged">
Expand Down Expand Up @@ -79,7 +83,7 @@
<None Include="packages.config" />
</ItemGroup>
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
<PostBuildEvent>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"</PostBuildEvent>
</PropertyGroup>
</Project>
</Project>
3 changes: 2 additions & 1 deletion Crossings/packages.config
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Lib.Harmony" version="2.0.0.8" targetFramework="net35" />
<package id="CitiesHarmony.API" version="1.0.5" targetFramework="net35" />
<package id="Lib.Harmony" version="2.0.1" targetFramework="net35" />
</packages>

0 comments on commit cea617b

Please sign in to comment.