Reapply "OBT1.1.0 Merge branch 'dev_pte' into dev"

This reverts commit 046483b9da.
This commit is contained in:
NotAlwaysTrue
2026-04-30 21:59:54 +08:00
parent 02689d0d86
commit 25683dcf39
85 changed files with 2413 additions and 779 deletions
@@ -3,6 +3,7 @@ using Barotrauma.Networking;
using FarseerPhysics;
using Microsoft.Xna.Framework;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
@@ -10,11 +11,8 @@ namespace Barotrauma.Items.Components
{
partial class ElectricalDischarger : Powered, IServerSerializable
{
private static readonly List<ElectricalDischarger> list = new List<ElectricalDischarger>();
public static IEnumerable<ElectricalDischarger> List
{
get { return list; }
}
private static readonly ConcurrentDictionary<ElectricalDischarger, byte> _dischargerDict = new ConcurrentDictionary<ElectricalDischarger, byte>();
public static IEnumerable<ElectricalDischarger> List => _dischargerDict.Keys;
const int MaxNodes = 100;
const float MaxNodeDistance = 150.0f;
@@ -115,7 +113,7 @@ namespace Barotrauma.Items.Components
public ElectricalDischarger(Item item, ContentXElement element) :
base(item, element)
{
list.Add(this);
_dischargerDict.TryAdd(this, 0);
foreach (var subElement in element.Elements())
{
@@ -604,7 +602,7 @@ namespace Barotrauma.Items.Components
protected override void RemoveComponentSpecific()
{
base.RemoveComponentSpecific();
list.Remove(this);
_dischargerDict.TryRemove(this, out _);
}
public void ServerEventWrite(IWriteMessage msg, Client c, NetEntityEvent.IData extraData = null)