Build 0.21.6.0 (1.0 pre-patch)

This commit is contained in:
Regalis11
2023-01-31 18:08:26 +02:00
parent e1c04bc31d
commit cf9ecd35b3
231 changed files with 4479 additions and 2276 deletions
@@ -42,7 +42,7 @@ namespace Barotrauma
public readonly Version GameVersion;
public readonly string ModVersion;
public Md5Hash Hash { get; private set; }
public readonly Option<DateTime> InstallTime;
public readonly Option<SerializableDateTime> InstallTime;
public ImmutableArray<ContentFile> Files { get; private set; }
@@ -73,7 +73,7 @@ namespace Barotrauma
Steamworks.Ugc.Item? item = await SteamManager.Workshop.GetItem(steamWorkshopId.Value);
if (item is null) { return true; }
return item.Value.LatestUpdateTime <= installTime;
return item.Value.LatestUpdateTime <= installTime.ToUtcValue();
}
public int Index => ContentPackageManager.EnabledPackages.IndexOf(this);
@@ -106,10 +106,7 @@ namespace Barotrauma
GameVersion = rootElement.GetAttributeVersion("gameversion", GameMain.Version);
ModVersion = rootElement.GetAttributeString("modversion", DefaultModVersion);
UInt64 installTimeUnix = rootElement.GetAttributeUInt64("installtime", 0);
InstallTime = installTimeUnix != 0
? Option<DateTime>.Some(ToolBox.Epoch.ToDateTime(installTimeUnix))
: Option<DateTime>.None();
InstallTime = rootElement.GetAttributeDateTime("installtime");
var fileResults = rootElement.Elements()
.Select(e => ContentFile.CreateFromXElement(this, e))
@@ -288,9 +285,7 @@ namespace Barotrauma
if (errorCatcher.Errors.Any())
{
yield return ContentPackageManager.LoadProgress.Failure(
ContentPackageManager.LoadProgress.Error
.Reason.ConsoleErrorsThrown);
yield return ContentPackageManager.LoadProgress.Failure(errorCatcher.Errors.Select(e => e.Text));
yield break;
}
yield return ContentPackageManager.LoadProgress.Progress((i + indexOffset) / (float)Files.Length);
@@ -23,6 +23,8 @@ namespace Barotrauma
public const string RegularPackagesElementName = "regularpackages";
public const string RegularPackagesSubElementName = "package";
public static bool ModsEnabled => GameMain.VanillaContent == null || EnabledPackages.All.Any(p => p.HasMultiplayerSyncedContent && p != GameMain.VanillaContent);
public static class EnabledPackages
{
public static CorePackage? Core { get; private set; } = null;
@@ -435,22 +437,19 @@ namespace Barotrauma
public readonly record struct LoadProgress(Result<float, LoadProgress.Error> Result)
{
public readonly record struct Error(
Error.Reason ErrorReason,
Option<Exception> Exception)
Either<ImmutableArray<string>, Exception> ErrorsOrException)
{
public enum Reason { Exception, ConsoleErrorsThrown }
public Error(Reason reason) : this(reason, Option.None) { }
public Error(Exception exception) : this(Reason.Exception, Option.Some(exception)) { }
public Error(IEnumerable<string> errorMessages) : this(ErrorsOrException: errorMessages.ToImmutableArray()) { }
public Error(Exception exception) : this(ErrorsOrException: exception) { }
}
public static LoadProgress Failure(Exception exception)
=> new LoadProgress(
Result<float, Error>.Failure(new Error(exception)));
public static LoadProgress Failure(Error.Reason reason)
public static LoadProgress Failure(IEnumerable<string> errorMessages)
=> new LoadProgress(
Result<float, Error>.Failure(new Error(reason)));
Result<float, Error>.Failure(new Error(errorMessages)));
public static LoadProgress Progress(float value)
=> new LoadProgress(
@@ -88,6 +88,7 @@ namespace Barotrauma
public T GetAttributeEnum<T>(string key, in T def) where T : struct, Enum => Element.GetAttributeEnum(key, def);
public (T1, T2) GetAttributeTuple<T1, T2>(string key, in (T1, T2) def) => Element.GetAttributeTuple(key, def);
public (T1, T2)[] GetAttributeTupleArray<T1, T2>(string key, in (T1, T2)[] def) => Element.GetAttributeTupleArray(key, def);
public Range<int> GetAttributeRange(string key, in Range<int> def) => Element.GetAttributeRange(key, def);
public Identifier VariantOf() => Element.VariantOf();