From 9a01e23a5852db70e0594b50aa18537525914523 Mon Sep 17 00:00:00 2001
From: Jaxe <44151792+Jaxe-Wilde@users.noreply.github.com>
Date: Tue, 5 Nov 2019 13:04:02 +0800
Subject: [PATCH] v1.3.1
- Re-fixed "Could not find player faction bug"
---
About/About.xml | 2 +-
About/Manifest.xml | 2 +-
README.md | 2 +-
Source/Data/Registry.cs | 16 ++++++----------
Source/Mod.cs | 2 +-
Source/Patch/Extensions.cs | 4 +++-
6 files changed, 13 insertions(+), 15 deletions(-)
diff --git a/About/About.xml b/About/About.xml
index 9ba606d..e3ccd22 100644
--- a/About/About.xml
+++ b/About/About.xml
@@ -5,5 +5,5 @@
1.0
- Mod Version: 1.3.0\n\n\nPawn Rules is a mod that allows custom rules to be assigned individually to your colonists, animals, guests and prisoners.\n\nCurrently the following rules can be applied:\n\n- Disallow certain foods\n- Disallow bonding with certain animals\n- Disallow new romances\n- Disallow constructing items that have a quality level\n\nAny of these rules can be disabled and hidden from the rules window. Rules presets and defaults can be imported and exported between games.
+ Mod Version: 1.3.1\n\n\nPawn Rules is a mod that allows custom rules to be assigned individually to your colonists, animals, guests and prisoners.\n\nCurrently the following rules can be applied:\n\n- Disallow certain foods\n- Disallow bonding with certain animals\n- Disallow new romances\n- Disallow constructing items that have a quality level\n\nAny of these rules can be disabled and hidden from the rules window. Rules presets and defaults can be imported and exported between games.
diff --git a/About/Manifest.xml b/About/Manifest.xml
index 09bbe2f..d542542 100644
--- a/About/Manifest.xml
+++ b/About/Manifest.xml
@@ -1,7 +1,7 @@
PawnRules
- 1.3.0
+ 1.3.1
https://raw.githubusercontent.com/Jaxe-Dev/PawnRules/master/About/Manifest.xml
https://github.com/Jaxe-Dev/PawnRules/releases/latest
diff --git a/README.md b/README.md
index b068071..b1c4ec9 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
# Pawn Rules
-![Mod Version](https://img.shields.io/badge/Mod_Version-1.3.0-blue.svg)
+![Mod Version](https://img.shields.io/badge/Mod_Version-1.3.1-blue.svg)
![RimWorld Version](https://img.shields.io/badge/Built_for_RimWorld-1.0-blue.svg)
![Harmony Version](https://img.shields.io/badge/Powered_by_Harmony-1.2.0.1-blue.svg)\
![Steam Subscribers](https://img.shields.io/badge/dynamic/xml.svg?label=Steam+Subscribers&query=//table/tr[2]/td[1]&colorB=blue&url=https://steamcommunity.com/sharedfiles/filedetails/%3Fid=1499843448&suffix=+total)
diff --git a/Source/Data/Registry.cs b/Source/Data/Registry.cs
index 5bc4f7f..dd0f7e5 100644
--- a/Source/Data/Registry.cs
+++ b/Source/Data/Registry.cs
@@ -145,7 +145,7 @@ public static void DeletePreset(T preset) where T : Presetable
public static Rules GetDefaultRules(PawnType type) => _instance._defaults[type];
public static void SetDefaultRules(Rules rules) => _instance._defaults[rules.Type] = rules;
- public static T GetAddonDefaultValue(OptionTarget target, AddonOption addon, T invalidValue = default(T))
+ public static T GetAddonDefaultValue(OptionTarget target, AddonOption addon, T invalidValue = default)
{
var rules = GetDefaultRules(PawnType.FromTarget(target));
if ((rules == null) || !addon.AllowedInPreset) { return invalidValue; }
@@ -211,7 +211,7 @@ public static void DeleteRules(Pawn pawn)
public static void FactionUpdate(Thing thing, Faction newFaction, bool? guest = null)
{
- if (!(thing is Pawn pawn) || pawn.Dead) { return; }
+ if (!IsActive || !(thing is Pawn pawn) || pawn.Dead) { return; }
var oldFaction = guest == null ? pawn.Faction : pawn.HostFaction;
PawnType type;
@@ -282,17 +282,13 @@ public override void PostAdd()
InitDefaults();
}
- public override void SpawnSetup()
- { }
+ public override void SpawnSetup() { }
- public override void PostRemove()
- { }
+ public override void PostRemove() { }
- public override void Print(LayerSubMesh subMesh)
- { }
+ public override void Print(LayerSubMesh subMesh) { }
- public override void Draw()
- { }
+ public override void Draw() { }
public override void ExposeData()
{
diff --git a/Source/Mod.cs b/Source/Mod.cs
index 184d27a..2a39192 100644
--- a/Source/Mod.cs
+++ b/Source/Mod.cs
@@ -13,7 +13,7 @@ internal class Mod : Verse.Mod
{
public const string Id = "PawnRules";
public const string Name = "Pawn Rules";
- public const string Version = "1.3.0";
+ public const string Version = "1.3.1";
public static readonly DirectoryInfo ConfigDirectory = new DirectoryInfo(Path.Combine(GenFilePaths.ConfigFolderPath, Id));
diff --git a/Source/Patch/Extensions.cs b/Source/Patch/Extensions.cs
index 4647ef6..4b7cbd7 100644
--- a/Source/Patch/Extensions.cs
+++ b/Source/Patch/Extensions.cs
@@ -17,9 +17,10 @@ internal static class Extensions
public static float ToFloat(this string self, float defaultValue = 0f) => float.TryParse(self, out var result) ? result : defaultValue;
public static bool CanHaveRules(this Pawn self) => (self != null) && !self.Dead && (self.GetTargetType() != null);
+
public static PawnType GetTargetType(this Pawn self)
{
- if (self == null) { return null; }
+ if (!Registry.IsActive || (self == null)) { return null; }
if ((self.Faction == Faction.OfPlayer) && self.IsColonist) { return PawnType.Colonist; }
if ((self.Faction == Faction.OfPlayer) && self.RaceProps.Animal) { return PawnType.Animal; }
if (self.HostFaction == Faction.OfPlayer) { return self.IsPrisonerOfColony ? PawnType.Prisoner : PawnType.Guest; }
@@ -72,6 +73,7 @@ public static Rect[] GetHGrid(this Rect self, float padding, params float[] widt
return rects.ToArray();
}
+
public static Rect[] GetVGrid(this Rect self, float padding, params float[] heights)
{
var unfixedCount = 0;