diff --git a/Changelog.md b/Changelog.md
index 9eab0ba..dc5b78c 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,7 +1,23 @@
+# 0.38.3
+*December 19, 2023*
+
+Changes that weren't included in preview versions are written in **bold**.
+
+Improvements
+- Made people automatically discard items (put them down or put them away) before starting actions that they need empty hands for
+
+Fixes
+- Fixed people getting stuck on stairs when canceling an action sometimes
+- **Fixed a rare exception when pathfinding upstairs**
+
+API
+- Added some UI initialization events
+- **Expose ModLoader.LoadedMods**
+
# 0.38.3-pre.1
*December 16, 2023*
-*This is a preview version. If you want to try it out, you can find more info on [the documentation](https://docs.tinylifegame.com/articles/preview.html).*
+This is a preview version. If you want to try it out, you can find more info on [the documentation](https://docs.tinylifegame.com/articles/preview.html).
Improvements
- Made people automatically discard items (put them down or put them away) before starting actions that they need empty hands for
@@ -167,7 +183,7 @@ Fixes
Read the devlog [on the website](https://tinylifegame.com/devlogs/0.37.0/).
-*Changes that weren't included in preview versions are written in **bold**.*
+Changes that weren't included in preview versions are written in **bold**.
Additions
- Added the ability to build additional floors on lots, allowing up to 5 floors in the full game, and 2 in the demo
@@ -236,7 +252,7 @@ API
# 0.37.0-pre.3
*October 18, 2023*
-*This is a preview version. If you want to try it out, you can find more info on [the documentation](https://docs.tinylifegame.com/articles/preview.html).*
+This is a preview version. If you want to try it out, you can find more info on [the documentation](https://docs.tinylifegame.com/articles/preview.html).
Additions
- Added Simplified Chinese translation, courtesy of [Zhao Huaye](https://space.bilibili.com/67102871). Thanks so much for your hard work!
@@ -253,7 +269,7 @@ Fixes
# 0.37.0-pre.2
*October 12, 2023*
-*This is a preview version. If you want to try it out, you can find more info on [the documentation](https://docs.tinylifegame.com/articles/preview.html).*
+This is a preview version. If you want to try it out, you can find more info on [the documentation](https://docs.tinylifegame.com/articles/preview.html).
Improvements
- Display an info that the game needs to be restarted when enabling or disabling mods
@@ -267,7 +283,7 @@ Fixes
# 0.37.0-pre.1
*October 11, 2023*
-*This is a preview version. If you want to try it out, you can find more info on [the documentation](https://docs.tinylifegame.com/articles/preview.html).*
+This is a preview version. If you want to try it out, you can find more info on [the documentation](https://docs.tinylifegame.com/articles/preview.html).
Additions
- Added the ability to build additional floors on lots, allowing up to 5 floors in the full game, and 2 in the demo
diff --git a/docs/api/.manifest b/docs/api/.manifest
index 217e302..52b8776 100644
--- a/docs/api/.manifest
+++ b/docs/api/.manifest
@@ -1584,6 +1584,7 @@
"TinyLife.Mods.ModInfo": "TinyLife.Mods.ModInfo.yml",
"TinyLife.Mods.ModInfo.Content": "TinyLife.Mods.ModInfo.yml",
"TinyLife.Mods.ModInfo.Dispose": "TinyLife.Mods.ModInfo.yml",
+ "TinyLife.Mods.ModInfo.Errored": "TinyLife.Mods.ModInfo.yml",
"TinyLife.Mods.ModInfo.Finalize": "TinyLife.Mods.ModInfo.yml",
"TinyLife.Mods.ModInfo.Harmony": "TinyLife.Mods.ModInfo.yml",
"TinyLife.Mods.ModInfo.Id": "TinyLife.Mods.ModInfo.yml",
@@ -1596,7 +1597,7 @@
"TinyLife.Mods.ModLoader": "TinyLife.Mods.ModLoader.yml",
"TinyLife.Mods.ModLoader.GetExecutingMod(System.Diagnostics.StackFrame[])": "TinyLife.Mods.ModLoader.yml",
"TinyLife.Mods.ModLoader.GetModsFolder": "TinyLife.Mods.ModLoader.yml",
- "TinyLife.Mods.ModLoader.TryGetModInfo(System.String,TinyLife.Mods.ModInfo@)": "TinyLife.Mods.ModLoader.yml",
+ "TinyLife.Mods.ModLoader.LoadedMods": "TinyLife.Mods.ModLoader.yml",
"TinyLife.Music": "TinyLife.Music.yml",
"TinyLife.Music.Duck(System.TimeSpan,System.Single)": "TinyLife.Music.yml",
"TinyLife.Music.Occasion": "TinyLife.Music.Occasion.yml",
diff --git a/docs/api/TinyLife.Actions.PathfindAction.yml b/docs/api/TinyLife.Actions.PathfindAction.yml
index 8d74cd4..086ab7b 100644
--- a/docs/api/TinyLife.Actions.PathfindAction.yml
+++ b/docs/api/TinyLife.Actions.PathfindAction.yml
@@ -480,7 +480,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: IsCompleted
path: ../TinyLife/Actions/PathfindAction.cs
- startLine: 105
+ startLine: 106
assemblies:
- Tiny Life
namespace: TinyLife.Actions
@@ -512,7 +512,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: OnCompleted
path: ../TinyLife/Actions/PathfindAction.cs
- startLine: 116
+ startLine: 117
assemblies:
- Tiny Life
namespace: TinyLife.Actions
@@ -545,7 +545,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: Validate
path: ../TinyLife/Actions/PathfindAction.cs
- startLine: 127
+ startLine: 128
assemblies:
- Tiny Life
namespace: TinyLife.Actions
diff --git a/docs/api/TinyLife.Debug.CheatDelegate.yml b/docs/api/TinyLife.Debug.CheatDelegate.yml
index 98c3eea..67322e7 100644
--- a/docs/api/TinyLife.Debug.CheatDelegate.yml
+++ b/docs/api/TinyLife.Debug.CheatDelegate.yml
@@ -19,7 +19,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: CheatDelegate
path: ../TinyLife/Debug.cs
- startLine: 842
+ startLine: 841
assemblies:
- Tiny Life
namespace: TinyLife
diff --git a/docs/api/TinyLife.Debug.DebugDelegate.yml b/docs/api/TinyLife.Debug.DebugDelegate.yml
index c798049..a7b6ca4 100644
--- a/docs/api/TinyLife.Debug.DebugDelegate.yml
+++ b/docs/api/TinyLife.Debug.DebugDelegate.yml
@@ -19,7 +19,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: DebugDelegate
path: ../TinyLife/Debug.cs
- startLine: 847
+ startLine: 846
assemblies:
- Tiny Life
namespace: TinyLife
diff --git a/docs/api/TinyLife.Debug.yml b/docs/api/TinyLife.Debug.yml
index 2402c21..90aabd3 100644
--- a/docs/api/TinyLife.Debug.yml
+++ b/docs/api/TinyLife.Debug.yml
@@ -119,7 +119,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: TryCheat
path: ../TinyLife/Debug.cs
- startLine: 643
+ startLine: 642
assemblies:
- Tiny Life
namespace: TinyLife
diff --git a/docs/api/TinyLife.Mods.ModInfo.yml b/docs/api/TinyLife.Mods.ModInfo.yml
index 9995229..771844f 100644
--- a/docs/api/TinyLife.Mods.ModInfo.yml
+++ b/docs/api/TinyLife.Mods.ModInfo.yml
@@ -7,6 +7,7 @@ items:
children:
- TinyLife.Mods.ModInfo.Content
- TinyLife.Mods.ModInfo.Dispose
+ - TinyLife.Mods.ModInfo.Errored
- TinyLife.Mods.ModInfo.Finalize
- TinyLife.Mods.ModInfo.Harmony
- TinyLife.Mods.ModInfo.Id
@@ -30,7 +31,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: ModInfo
path: ../TinyLife/Mods/ModLoader.cs
- startLine: 194
+ startLine: 188
assemblies:
- Tiny Life
namespace: TinyLife.Mods
@@ -70,7 +71,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: Id
path: ../TinyLife/Mods/ModLoader.cs
- startLine: 199
+ startLine: 193
assemblies:
- Tiny Life
namespace: TinyLife.Mods
@@ -99,7 +100,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: Mod
path: ../TinyLife/Mods/ModLoader.cs
- startLine: 203
+ startLine: 197
assemblies:
- Tiny Life
namespace: TinyLife.Mods
@@ -128,7 +129,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: Logger
path: ../TinyLife/Mods/ModLoader.cs
- startLine: 208
+ startLine: 202
assemblies:
- Tiny Life
namespace: TinyLife.Mods
@@ -157,7 +158,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: Content
path: ../TinyLife/Mods/ModLoader.cs
- startLine: 213
+ startLine: 207
assemblies:
- Tiny Life
namespace: TinyLife.Mods
@@ -186,7 +187,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: Harmony
path: ../TinyLife/Mods/ModLoader.cs
- startLine: 218
+ startLine: 212
assemblies:
- Tiny Life
namespace: TinyLife.Mods
@@ -215,7 +216,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: OptionsFile
path: ../TinyLife/Mods/ModLoader.cs
- startLine: 222
+ startLine: 216
assemblies:
- Tiny Life
namespace: TinyLife.Mods
@@ -226,6 +227,37 @@ items:
return:
type: System.IO.FileInfo
content.vb: Public ReadOnly OptionsFile As FileInfo
+- uid: TinyLife.Mods.ModInfo.Errored
+ commentId: P:TinyLife.Mods.ModInfo.Errored
+ id: Errored
+ parent: TinyLife.Mods.ModInfo
+ langs:
+ - csharp
+ - vb
+ name: Errored
+ nameWithType: ModInfo.Errored
+ fullName: TinyLife.Mods.ModInfo.Errored
+ type: Property
+ source:
+ remote:
+ path: TinyLife/Mods/ModLoader.cs
+ branch: main
+ repo: https://git.ellpeck.de/Ellpeck/TinyLife
+ id: Errored
+ path: ../TinyLife/Mods/ModLoader.cs
+ startLine: 222
+ assemblies:
+ - Tiny Life
+ namespace: TinyLife.Mods
+ summary: "\nWhether this mod errored in some way while loading.\nIf this is true, features usually expected from this mod may not have been loaded properly, or may not work correctly.\n"
+ example: []
+ syntax:
+ content: public bool Errored { get; }
+ parameters: []
+ return:
+ type: System.Boolean
+ content.vb: Public ReadOnly Property Errored As Boolean
+ overload: TinyLife.Mods.ModInfo.Errored*
- uid: TinyLife.Mods.ModInfo.Finalize
commentId: M:TinyLife.Mods.ModInfo.Finalize
id: Finalize
@@ -947,6 +979,22 @@ references:
name: IO
isExternal: true
href: https://learn.microsoft.com/dotnet/api/system.io
+- uid: TinyLife.Mods.ModInfo.Errored*
+ commentId: Overload:TinyLife.Mods.ModInfo.Errored
+ name: Errored
+ nameWithType: ModInfo.Errored
+ fullName: TinyLife.Mods.ModInfo.Errored
+- uid: System.Boolean
+ commentId: T:System.Boolean
+ parent: System
+ isExternal: true
+ href: https://learn.microsoft.com/dotnet/api/system.boolean
+ name: bool
+ nameWithType: bool
+ fullName: bool
+ nameWithType.vb: Boolean
+ fullName.vb: Boolean
+ name.vb: Boolean
- uid: TinyLife.Mods.ModInfo.Finalize*
commentId: Overload:TinyLife.Mods.ModInfo.Finalize
name: ~ModInfo
diff --git a/docs/api/TinyLife.Mods.ModLoader.yml b/docs/api/TinyLife.Mods.ModLoader.yml
index d0a667c..6b996af 100644
--- a/docs/api/TinyLife.Mods.ModLoader.yml
+++ b/docs/api/TinyLife.Mods.ModLoader.yml
@@ -7,7 +7,7 @@ items:
children:
- TinyLife.Mods.ModLoader.GetExecutingMod(System.Diagnostics.StackFrame[])
- TinyLife.Mods.ModLoader.GetModsFolder
- - TinyLife.Mods.ModLoader.TryGetModInfo(System.String,TinyLife.Mods.ModInfo@)
+ - TinyLife.Mods.ModLoader.LoadedMods
langs:
- csharp
- vb
@@ -22,7 +22,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: ModLoader
path: ../TinyLife/Mods/ModLoader.cs
- startLine: 26
+ startLine: 27
assemblies:
- Tiny Life
namespace: TinyLife.Mods
@@ -41,47 +41,35 @@ items:
- System.Object.MemberwiseClone
- System.Object.ReferenceEquals(System.Object,System.Object)
- System.Object.ToString
-- uid: TinyLife.Mods.ModLoader.TryGetModInfo(System.String,TinyLife.Mods.ModInfo@)
- commentId: M:TinyLife.Mods.ModLoader.TryGetModInfo(System.String,TinyLife.Mods.ModInfo@)
- id: TryGetModInfo(System.String,TinyLife.Mods.ModInfo@)
+- uid: TinyLife.Mods.ModLoader.LoadedMods
+ commentId: F:TinyLife.Mods.ModLoader.LoadedMods
+ id: LoadedMods
parent: TinyLife.Mods.ModLoader
langs:
- csharp
- vb
- name: TryGetModInfo(string, out ModInfo)
- nameWithType: ModLoader.TryGetModInfo(string, out ModInfo)
- fullName: TinyLife.Mods.ModLoader.TryGetModInfo(string, out TinyLife.Mods.ModInfo)
- type: Method
+ name: LoadedMods
+ nameWithType: ModLoader.LoadedMods
+ fullName: TinyLife.Mods.ModLoader.LoadedMods
+ type: Field
source:
remote:
path: TinyLife/Mods/ModLoader.cs
branch: main
repo: https://git.ellpeck.de/Ellpeck/TinyLife
- id: TryGetModInfo
+ id: LoadedMods
path: ../TinyLife/Mods/ModLoader.cs
- startLine: 38
+ startLine: 33
assemblies:
- Tiny Life
namespace: TinyLife.Mods
- summary: "\nThis method can be used to gather a for a mod that is currently loaded with the given id.\nIf no mod with that id is currently loaded, this method returns false and assigns null to .\n"
+ summary: "\nA collection of all of the instances of the mods that are currently loaded. The string key is the mod's ID, which is also stored in .\n"
example: []
syntax:
- content: public static bool TryGetModInfo(string id, out ModInfo info)
- parameters:
- - id: id
- type: System.String
- description: The id of the mod to get
- - id: info
- type: TinyLife.Mods.ModInfo
- description: The info that will be returned about the mod
+ content: public static readonly IReadOnlyDictionary LoadedMods
return:
- type: System.Boolean
- description: Whether or not the mod was found to be loaded
- content.vb: Public Shared Function TryGetModInfo(id As String, info As ModInfo) As Boolean
- overload: TinyLife.Mods.ModLoader.TryGetModInfo*
- nameWithType.vb: ModLoader.TryGetModInfo(String, ModInfo)
- fullName.vb: TinyLife.Mods.ModLoader.TryGetModInfo(String, TinyLife.Mods.ModInfo)
- name.vb: TryGetModInfo(String, ModInfo)
+ type: System.Collections.Generic.IReadOnlyDictionary{System.String,TinyLife.Mods.ModInfo}
+ content.vb: Public Shared ReadOnly LoadedMods As IReadOnlyDictionary(Of String, ModInfo)
- uid: TinyLife.Mods.ModLoader.GetModsFolder
commentId: M:TinyLife.Mods.ModLoader.GetModsFolder
id: GetModsFolder
@@ -100,7 +88,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: GetModsFolder
path: ../TinyLife/Mods/ModLoader.cs
- startLine: 46
+ startLine: 40
assemblies:
- Tiny Life
namespace: TinyLife.Mods
@@ -131,7 +119,7 @@ items:
repo: https://git.ellpeck.de/Ellpeck/TinyLife
id: GetExecutingMod
path: ../TinyLife/Mods/ModLoader.cs
- startLine: 56
+ startLine: 50
assemblies:
- Tiny Life
namespace: TinyLife.Mods
@@ -433,33 +421,125 @@ references:
name: ModInfo
nameWithType: ModInfo
fullName: TinyLife.Mods.ModInfo
-- uid: TinyLife.Mods.ModLoader.TryGetModInfo*
- commentId: Overload:TinyLife.Mods.ModLoader.TryGetModInfo
- name: TryGetModInfo
- nameWithType: ModLoader.TryGetModInfo
- fullName: TinyLife.Mods.ModLoader.TryGetModInfo
-- uid: System.String
- commentId: T:System.String
- parent: System
+- uid: TinyLife.Mods.ModInfo.Id
+ commentId: F:TinyLife.Mods.ModInfo.Id
+ name: Id
+ nameWithType: ModInfo.Id
+ fullName: TinyLife.Mods.ModInfo.Id
+- uid: System.Collections.Generic.IReadOnlyDictionary{System.String,TinyLife.Mods.ModInfo}
+ commentId: T:System.Collections.Generic.IReadOnlyDictionary{System.String,TinyLife.Mods.ModInfo}
+ parent: System.Collections.Generic
+ definition: System.Collections.Generic.IReadOnlyDictionary`2
+ href: https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlydictionary-2
+ name: IReadOnlyDictionary
+ nameWithType: IReadOnlyDictionary
+ fullName: System.Collections.Generic.IReadOnlyDictionary
+ nameWithType.vb: IReadOnlyDictionary(Of String, ModInfo)
+ fullName.vb: System.Collections.Generic.IReadOnlyDictionary(Of String, TinyLife.Mods.ModInfo)
+ name.vb: IReadOnlyDictionary(Of String, ModInfo)
+ spec.csharp:
+ - uid: System.Collections.Generic.IReadOnlyDictionary`2
+ name: IReadOnlyDictionary
+ isExternal: true
+ href: https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlydictionary-2
+ - name: <
+ - uid: System.String
+ name: string
+ isExternal: true
+ href: https://learn.microsoft.com/dotnet/api/system.string
+ - name: ','
+ - name: " "
+ - uid: TinyLife.Mods.ModInfo
+ name: ModInfo
+ - name: '>'
+ spec.vb:
+ - uid: System.Collections.Generic.IReadOnlyDictionary`2
+ name: IReadOnlyDictionary
+ isExternal: true
+ href: https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlydictionary-2
+ - name: (
+ - name: Of
+ - name: " "
+ - uid: System.String
+ name: String
+ isExternal: true
+ href: https://learn.microsoft.com/dotnet/api/system.string
+ - name: ','
+ - name: " "
+ - uid: TinyLife.Mods.ModInfo
+ name: ModInfo
+ - name: )
+- uid: System.Collections.Generic.IReadOnlyDictionary`2
+ commentId: T:System.Collections.Generic.IReadOnlyDictionary`2
isExternal: true
- href: https://learn.microsoft.com/dotnet/api/system.string
- name: string
- nameWithType: string
- fullName: string
- nameWithType.vb: String
- fullName.vb: String
- name.vb: String
-- uid: System.Boolean
- commentId: T:System.Boolean
- parent: System
+ href: https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlydictionary-2
+ name: IReadOnlyDictionary
+ nameWithType: IReadOnlyDictionary
+ fullName: System.Collections.Generic.IReadOnlyDictionary
+ nameWithType.vb: IReadOnlyDictionary(Of TKey, TValue)
+ fullName.vb: System.Collections.Generic.IReadOnlyDictionary(Of TKey, TValue)
+ name.vb: IReadOnlyDictionary(Of TKey, TValue)
+ spec.csharp:
+ - uid: System.Collections.Generic.IReadOnlyDictionary`2
+ name: IReadOnlyDictionary
+ isExternal: true
+ href: https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlydictionary-2
+ - name: <
+ - name: TKey
+ - name: ','
+ - name: " "
+ - name: TValue
+ - name: '>'
+ spec.vb:
+ - uid: System.Collections.Generic.IReadOnlyDictionary`2
+ name: IReadOnlyDictionary
+ isExternal: true
+ href: https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlydictionary-2
+ - name: (
+ - name: Of
+ - name: " "
+ - name: TKey
+ - name: ','
+ - name: " "
+ - name: TValue
+ - name: )
+- uid: System.Collections.Generic
+ commentId: N:System.Collections.Generic
isExternal: true
- href: https://learn.microsoft.com/dotnet/api/system.boolean
- name: bool
- nameWithType: bool
- fullName: bool
- nameWithType.vb: Boolean
- fullName.vb: Boolean
- name.vb: Boolean
+ href: https://learn.microsoft.com/dotnet/api/system
+ name: System.Collections.Generic
+ nameWithType: System.Collections.Generic
+ fullName: System.Collections.Generic
+ spec.csharp:
+ - uid: System
+ name: System
+ isExternal: true
+ href: https://learn.microsoft.com/dotnet/api/system
+ - name: .
+ - uid: System.Collections
+ name: Collections
+ isExternal: true
+ href: https://learn.microsoft.com/dotnet/api/system.collections
+ - name: .
+ - uid: System.Collections.Generic
+ name: Generic
+ isExternal: true
+ href: https://learn.microsoft.com/dotnet/api/system.collections.generic
+ spec.vb:
+ - uid: System
+ name: System
+ isExternal: true
+ href: https://learn.microsoft.com/dotnet/api/system
+ - name: .
+ - uid: System.Collections
+ name: Collections
+ isExternal: true
+ href: https://learn.microsoft.com/dotnet/api/system.collections
+ - name: .
+ - uid: System.Collections.Generic
+ name: Generic
+ isExternal: true
+ href: https://learn.microsoft.com/dotnet/api/system.collections.generic
- uid: System.IO.DirectoryInfo
commentId: T:System.IO.DirectoryInfo
parent: System.IO