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
@@ -1,11 +1,9 @@
using Barotrauma.Extensions;
using Microsoft.Xna.Framework;
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Reflection;
using System.Xml.Linq;
using Barotrauma.Extensions;
namespace Barotrauma
{
@@ -55,18 +53,19 @@ namespace Barotrauma
return;
}
if (AfflictionPrefab.Prefabs.ContainsKey(identifier))
if (AfflictionPrefab.Prefabs.TryGet(identifier, out var existingAffliction))
{
if (overriding)
{
DebugConsole.NewMessage(
$"Overriding an affliction or a buff with the identifier '{identifier}' using the file '{Path}'",
$"Overriding an affliction or a buff with the identifier '{identifier}' using the version in '{element.ContentPackage.Name}'",
Color.MediumPurple);
}
else
{
DebugConsole.ThrowError(
$"Duplicate affliction: '{identifier}' defined in {elementName} of '{Path}'",
$"Duplicate affliction: '{identifier}' defined in {element.ContentPackage.Name} is already defined in the previously loaded content package {existingAffliction.ContentPackage.Name}."+
$" You may need to adjust the mod load order to make sure {element.ContentPackage.Name} is loaded first.",
contentPackage: element?.ContentPackage);
return;
}
@@ -1,4 +1,4 @@
using Barotrauma.Extensions;
using Barotrauma.Extensions;
using Microsoft.Xna.Framework;
using System;
using System.Collections.Generic;
@@ -86,23 +86,27 @@ namespace Barotrauma
if (ragdollParams != null)
{
HashSet<string> texturePaths = new HashSet<string>
{
ContentPath.FromRaw(CharacterPrefab.Prefabs[speciesName].ContentPackage, ragdollParams.Texture).Value
};
HashSet<ContentPath> texturePaths = new HashSet<ContentPath>();
AddTexturePath(ragdollParams.Texture);
foreach (RagdollParams.LimbParams limb in ragdollParams.Limbs)
{
if (!string.IsNullOrEmpty(limb.normalSpriteParams?.Texture)) { texturePaths.Add(limb.normalSpriteParams.Texture); }
if (!string.IsNullOrEmpty(limb.deformSpriteParams?.Texture)) { texturePaths.Add(limb.deformSpriteParams.Texture); }
if (!string.IsNullOrEmpty(limb.damagedSpriteParams?.Texture)) { texturePaths.Add(limb.damagedSpriteParams.Texture); }
AddTexturePath(limb.normalSpriteParams?.Texture);
AddTexturePath(limb.deformSpriteParams?.Texture);
AddTexturePath(limb.damagedSpriteParams?.Texture);
foreach (var decorativeSprite in limb.decorativeSpriteParams)
{
if (!string.IsNullOrEmpty(decorativeSprite.Texture)) { texturePaths.Add(decorativeSprite.Texture); }
AddTexturePath(decorativeSprite.Texture);
}
}
foreach (string texturePath in texturePaths)
foreach (ContentPath texturePath in texturePaths)
{
addPreloadedSprite(new Sprite(texturePath, Vector2.Zero));
addPreloadedSprite(new Sprite(texturePath.Value, Vector2.Zero));
}
void AddTexturePath(string path)
{
if (string.IsNullOrEmpty(path)) { return; }
texturePaths.Add(ContentPath.FromRaw(characterPrefab.ContentPackage, ragdollParams.Texture));
}
}
#endif
@@ -0,0 +1,17 @@
using System.Xml.Linq;
namespace Barotrauma
{
internal sealed class DisembarkPerkFile : GenericPrefabFile<DisembarkPerkPrefab>
{
public DisembarkPerkFile(ContentPackage contentPackage, ContentPath path) : base(contentPackage, path) { }
protected override bool MatchesSingular(Identifier identifier) => identifier == "disembarkperk";
protected override bool MatchesPlural(Identifier identifier) => identifier == "disembarkperks";
protected override PrefabCollection<DisembarkPerkPrefab> Prefabs => DisembarkPerkPrefab.Prefabs;
protected override DisembarkPerkPrefab CreatePrefab(ContentXElement element)
{
return new DisembarkPerkPrefab(element, this);
}
}
}