v1.6.17.0 (Unto the Breach update)

This commit is contained in:
Regalis11
2024-10-22 17:29:04 +03:00
parent e74b3cdb17
commit 6e6c17e100
417 changed files with 17166 additions and 5870 deletions
@@ -7,8 +7,13 @@ namespace Barotrauma.Extensions
public static Color Multiply(this Color color, float value, bool onlyAlpha = false)
{
return onlyAlpha ?
new Color(color.R, color.G, color.B, (byte)(color.A * value)) :
new Color((byte)(color.R * value), (byte)(color.G * value), (byte)(color.B * value), (byte)(color.A * value));
new Color(color.R, color.G, color.B, MultiplyComponent(color.A, value)) :
new Color(MultiplyComponent(color.R, value), MultiplyComponent(color.G, value), MultiplyComponent(color.B, value), MultiplyComponent(color.A, value));
static byte MultiplyComponent(float colorComponent, float multiplier)
{
return (byte)MathHelper.Clamp(colorComponent * multiplier, 0.0f, 255.0f);
}
}
public static Color Multiply(this Color thisColor, Color color)
@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
namespace Barotrauma.Extensions
{
@@ -36,5 +37,13 @@ namespace Barotrauma.Extensions
int flagValue = Convert.ToInt32(flag);
return (T)(object)(enumValue & ~flagValue);
}
public static IEnumerable<T> GetIndividualFlags<T>(T flagsEnum) where T : Enum
{
foreach (T value in Enum.GetValues(typeof(T)))
{
if (flagsEnum.HasFlag(value)) { yield return value; }
}
}
}
}
@@ -24,6 +24,9 @@ public sealed class EpicAccountId : AccountId
public new static Option<EpicAccountId> Parse(string str)
{
if (str.IsNullOrWhiteSpace()) { return Option.None; }
//according to the documentation, this is the maximum length of the ID
const int MaxEpicAccountIDLength = 32 + 1;
if (str.Length > MaxEpicAccountIDLength + prefix.Length) { return Option.None; }
if (str.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)) { str = str[prefix.Length..]; }
if (!str.IsHexString()) { return Option.None; }
@@ -1,6 +1,7 @@
#nullable enable
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
@@ -140,7 +141,25 @@ namespace Barotrauma
}
public static Identifier[] ToIdentifiers(this string[] strings)
=> ((IEnumerable<string>)strings).ToIdentifiers().ToArray();
=> strings.AsEnumerable().ToIdentifiers().ToArray();
/// <summary>
/// Parses identifiers from a comma separated string.
/// </summary>
public static IEnumerable<Identifier> ToIdentifiers(this string tagsString, string separator = ",")
{
if (string.IsNullOrWhiteSpace(tagsString))
{
return Enumerable.Empty<Identifier>();
}
return tagsString.Split(separator, StringSplitOptions.TrimEntries).AsEnumerable().ToIdentifiers();
}
/// <summary>
/// Parses a comma separated string from a collection of identifier.
/// </summary>
public static string ConvertToString(this IEnumerable<Identifier> tags, string separator = ",")
=> string.Join(separator, tags);
public static Identifier ToIdentifier(this string? s)
{