diff --git a/Changelog.md b/Changelog.md
index afd073c..1f2cb27 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,21 @@
+# 0.28.3
+*December 28, 2022*
+
+Additions
+- Added the option to use a 12-hour clock
+
+Improvements
+- Improved the mod options button and menu layout
+- Removed the itch community button from the main menu
+- Improved pathfinding on pathways by taking diagonal costs into account
+- Improved performance of outside tile rendering
+
+Fixes
+- Fixed the interaction menu's back button not displaying in the correct location
+- Fixed "do you want to enable mods" notification never displaying on startup
+- Fixed a lot's home location not being correct for non-residential lots, causing Tinies to walk into weird places
+- Fixed rocky ground and grassy dirt being favored for walking
+
# 0.28.2
*December 23, 2022*
diff --git a/docs/api/.manifest b/docs/api/.manifest
index 19bad9e..ccdc4e2 100644
--- a/docs/api/.manifest
+++ b/docs/api/.manifest
@@ -1053,8 +1053,6 @@
"TinyLife.Goals.AutoGoalInfo.Distinct``1(System.String,System.Collections.Generic.IEnumerable{System.String},System.Func{``0,System.String},System.Func{``0,System.Boolean},TinyLife.Goals.GoalTrigger[])": "TinyLife.Goals.AutoGoalInfo.yml",
"TinyLife.Goals.AutoGoalInfo.Distinct``1(System.String,System.Int32,System.Func{``0,System.String},System.Func{``0,System.Boolean},TinyLife.Goals.GoalTrigger[])": "TinyLife.Goals.AutoGoalInfo.yml",
"TinyLife.Goals.AutoGoalInfo.Timed``1(System.String,System.TimeSpan,System.Func{``0,System.Boolean},TinyLife.Goals.GoalTrigger[])": "TinyLife.Goals.AutoGoalInfo.yml",
- "TinyLife.Goals.AutoGoalInfo.Trigger(System.Collections.Generic.IEnumerable{TinyLife.Goals.GoalSet},System.Object,TinyLife.Goals.GoalTrigger,System.Object[])": "TinyLife.Goals.AutoGoalInfo.yml",
- "TinyLife.Goals.AutoGoalInfo.Trigger(TinyLife.Goals.GoalSet,System.Object,TinyLife.Goals.GoalTrigger,System.Object[])": "TinyLife.Goals.AutoGoalInfo.yml",
"TinyLife.Goals.AutoGoalInfo.Triggers": "TinyLife.Goals.AutoGoalInfo.yml",
"TinyLife.Goals.AutoTriggerGoal": "TinyLife.Goals.AutoTriggerGoal.yml",
"TinyLife.Goals.AutoTriggerGoal.#ctor(TinyLife.Goals.GoalSet,TinyLife.Goals.AutoGoalInfo)": "TinyLife.Goals.AutoTriggerGoal.yml",
@@ -1105,11 +1103,16 @@
"TinyLife.Goals.GoalSet.Info": "TinyLife.Goals.GoalSet.yml",
"TinyLife.Goals.GoalSet.IsCompleted": "TinyLife.Goals.GoalSet.yml",
"TinyLife.Goals.GoalSet.Reset": "TinyLife.Goals.GoalSet.yml",
+ "TinyLife.Goals.GoalSet.TryTrigger(System.Object,TinyLife.Goals.GoalTrigger,System.Object)": "TinyLife.Goals.GoalSet.yml",
"TinyLife.Goals.GoalSet.Validate(TinyLife.Goals.GoalSetInfo)": "TinyLife.Goals.GoalSet.yml",
"TinyLife.Goals.GoalSetInfo": "TinyLife.Goals.GoalSetInfo.yml",
"TinyLife.Goals.GoalSetInfo.#ctor(TinyLife.Goals.GoalInfo[])": "TinyLife.Goals.GoalSetInfo.yml",
"TinyLife.Goals.GoalSetInfo.Configurations": "TinyLife.Goals.GoalSetInfo.yml",
"TinyLife.Goals.GoalSetInfo.Construct": "TinyLife.Goals.GoalSetInfo.yml",
+ "TinyLife.Goals.IGoalTriggerable": "TinyLife.Goals.IGoalTriggerable.yml",
+ "TinyLife.Goals.IGoalTriggerable.Trigger(System.Collections.Generic.IEnumerable{TinyLife.Goals.IGoalTriggerable},System.Object,TinyLife.Goals.GoalTrigger,System.Object[])": "TinyLife.Goals.IGoalTriggerable.yml",
+ "TinyLife.Goals.IGoalTriggerable.Trigger(TinyLife.Goals.IGoalTriggerable,System.Object,TinyLife.Goals.GoalTrigger,System.Object[])": "TinyLife.Goals.IGoalTriggerable.yml",
+ "TinyLife.Goals.IGoalTriggerable.TryTrigger(System.Object,TinyLife.Goals.GoalTrigger,System.Object)": "TinyLife.Goals.IGoalTriggerable.yml",
"TinyLife.Goals.Job": "TinyLife.Goals.Job.yml",
"TinyLife.Goals.Job.#ctor(TinyLife.Goals.JobType,TinyLife.Objects.Person,System.Int32)": "TinyLife.Goals.Job.yml",
"TinyLife.Goals.Job.AddLevel(System.Int32)": "TinyLife.Goals.Job.yml",
@@ -2332,6 +2335,7 @@
"TinyLife.Options.StoreInHouseholdKeybind": "TinyLife.Options.yml",
"TinyLife.Options.SwitchPersonKeybind": "TinyLife.Options.yml",
"TinyLife.Options.TransparentTooltips": "TinyLife.Options.yml",
+ "TinyLife.Options.TwelveHourClock": "TinyLife.Options.yml",
"TinyLife.Options.UiAnimations": "TinyLife.Options.yml",
"TinyLife.Options.UiScale": "TinyLife.Options.yml",
"TinyLife.Options.UnbindKeybind": "TinyLife.Options.yml",
@@ -2917,6 +2921,7 @@
"TinyLife.Utilities.Extensions.ToScreenPos(Microsoft.Xna.Framework.Vector2,System.Boolean,System.Boolean,System.Boolean)": "TinyLife.Utilities.Extensions.yml",
"TinyLife.Utilities.Extensions.ToSellingPriceString(System.Single)": "TinyLife.Utilities.Extensions.yml",
"TinyLife.Utilities.Extensions.ToSimpleLocalizedString(System.TimeSpan)": "TinyLife.Utilities.Extensions.yml",
+ "TinyLife.Utilities.Extensions.ToTimestampString(System.TimeSpan)": "TinyLife.Utilities.Extensions.yml",
"TinyLife.Utilities.Extensions.ToVisualY(Microsoft.Xna.Framework.Vector2)": "TinyLife.Utilities.Extensions.yml",
"TinyLife.Utilities.Extensions.ToWallSide(MLEM.Misc.Direction2)": "TinyLife.Utilities.Extensions.yml",
"TinyLife.Utilities.Extensions.ToWorking(TinyLife.Objects.Person.Pose)": "TinyLife.Utilities.Extensions.yml",
diff --git a/docs/api/TinyLife.GameSpeed.yml b/docs/api/TinyLife.GameSpeed.yml
index 374f10e..a6fa47c 100644
--- a/docs/api/TinyLife.GameSpeed.yml
+++ b/docs/api/TinyLife.GameSpeed.yml
@@ -24,7 +24,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: GameSpeed
path: ../TinyLife/Options.cs
- startLine: 511
+ startLine: 516
assemblies:
- Tiny Life
namespace: TinyLife
@@ -59,7 +59,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: Paused
path: ../TinyLife/Options.cs
- startLine: 516
+ startLine: 521
assemblies:
- Tiny Life
namespace: TinyLife
@@ -93,7 +93,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: Regular
path: ../TinyLife/Options.cs
- startLine: 520
+ startLine: 525
assemblies:
- Tiny Life
namespace: TinyLife
@@ -127,7 +127,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: Fast
path: ../TinyLife/Options.cs
- startLine: 524
+ startLine: 529
assemblies:
- Tiny Life
namespace: TinyLife
@@ -161,7 +161,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: VeryFast
path: ../TinyLife/Options.cs
- startLine: 528
+ startLine: 533
assemblies:
- Tiny Life
namespace: TinyLife
@@ -195,7 +195,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: ExtremelyFast
path: ../TinyLife/Options.cs
- startLine: 533
+ startLine: 538
assemblies:
- Tiny Life
namespace: TinyLife
diff --git a/docs/api/TinyLife.Goals.AmountGoal.yml b/docs/api/TinyLife.Goals.AmountGoal.yml
index 77cd17b..dd969fb 100644
--- a/docs/api/TinyLife.Goals.AmountGoal.yml
+++ b/docs/api/TinyLife.Goals.AmountGoal.yml
@@ -28,7 +28,7 @@ items:
assemblies:
- Tiny Life
namespace: TinyLife.Goals
- summary: "\nAn amount goal is an auto-triggered goal, intended to be used with , that keeps track of an amount of things that have been completed.\nTo trigger all amount goals in a goal set, use .\n"
+ summary: "\nAn amount goal is an auto-triggered goal, intended to be used with , that keeps track of an amount of things that have been completed.\nTo trigger all amount goals in a goal set, use .\n"
example: []
syntax:
content: 'public class AmountGoal : AutoTriggerGoal, IGenericDataHolder'
@@ -263,8 +263,8 @@ references:
name: AutoGoalInfo
nameWithType: AutoGoalInfo
fullName: TinyLife.Goals.AutoGoalInfo
-- uid: TinyLife.Goals.AutoGoalInfo.Trigger(TinyLife.Goals.GoalSet,System.Object,TinyLife.Goals.GoalTrigger,System.Object[])
- commentId: M:TinyLife.Goals.AutoGoalInfo.Trigger(TinyLife.Goals.GoalSet,System.Object,TinyLife.Goals.GoalTrigger,System.Object[])
+- uid: TinyLife.Goals.IGoalTriggerable.Trigger(TinyLife.Goals.IGoalTriggerable,System.Object,TinyLife.Goals.GoalTrigger,System.Object[])
+ commentId: M:TinyLife.Goals.IGoalTriggerable.Trigger(TinyLife.Goals.IGoalTriggerable,System.Object,TinyLife.Goals.GoalTrigger,System.Object[])
isExternal: true
- uid: TinyLife.Goals
commentId: N:TinyLife.Goals
diff --git a/docs/api/TinyLife.Goals.AutoGoalInfo.yml b/docs/api/TinyLife.Goals.AutoGoalInfo.yml
index f129d6f..fb9f432 100644
--- a/docs/api/TinyLife.Goals.AutoGoalInfo.yml
+++ b/docs/api/TinyLife.Goals.AutoGoalInfo.yml
@@ -12,8 +12,6 @@ items:
- TinyLife.Goals.AutoGoalInfo.Distinct``1(System.String,System.Collections.Generic.IEnumerable{System.String},System.Func{``0,System.String},System.Func{``0,System.Boolean},TinyLife.Goals.GoalTrigger[])
- TinyLife.Goals.AutoGoalInfo.Distinct``1(System.String,System.Int32,System.Func{``0,System.String},System.Func{``0,System.Boolean},TinyLife.Goals.GoalTrigger[])
- TinyLife.Goals.AutoGoalInfo.Timed``1(System.String,System.TimeSpan,System.Func{``0,System.Boolean},TinyLife.Goals.GoalTrigger[])
- - TinyLife.Goals.AutoGoalInfo.Trigger(System.Collections.Generic.IEnumerable{TinyLife.Goals.GoalSet},System.Object,TinyLife.Goals.GoalTrigger,System.Object[])
- - TinyLife.Goals.AutoGoalInfo.Trigger(TinyLife.Goals.GoalSet,System.Object,TinyLife.Goals.GoalTrigger,System.Object[])
- TinyLife.Goals.AutoGoalInfo.Triggers
langs:
- csharp
@@ -91,7 +89,7 @@ items:
assemblies:
- Tiny Life
namespace: TinyLife.Goals
- summary: "\nA set of instances that trigger this auto goal.\nThis value is used in .\n"
+ summary: "\nA set of instances that trigger this auto goal.\nThis value is used in .\n"
example: []
syntax:
content: public readonly GoalTrigger[] Triggers
@@ -126,7 +124,7 @@ items:
assemblies:
- Tiny Life
namespace: TinyLife.Goals
- summary: "\nA condition, which takes in an object and returns whether this auto goal can be triggered.\nThis value is used in .\n"
+ summary: "\nA condition, which takes in an object and returns whether this auto goal can be triggered.\nThis value is used in .\n"
example: []
syntax:
content: public readonly Func