- Fixed networking sync vars failing to sync initially.

- Fixed lua failing to differentiate overloads ISettingBase.
This commit is contained in:
MapleWheels
2026-04-14 12:17:12 -04:00
parent 38f0055b74
commit 17003e47cd
8 changed files with 23 additions and 16 deletions
@@ -5,6 +5,7 @@ using System.Xml.Linq;
using Barotrauma.LuaCs.Data;
using Barotrauma.LuaCs;
using Barotrauma.Networking;
using OneOf;
namespace Barotrauma.LuaCs.Data;
@@ -34,8 +35,8 @@ public partial interface ISettingBase : IDataInfo, IEquatable<ISettingBase>, IDi
Type GetValueType();
string GetStringValue();
string GetDefaultStringValue();
bool TrySetValue(OneOf.OneOf<string, XElement> value);
event Action<ISettingBase> OnValueChanged;
bool TrySetSerializedValue(OneOf<string, XElement> value);
event Action<ISettingBase> OnValueChanged;
OneOf.OneOf<string, XElement> GetSerializableValue();
}
@@ -1,4 +1,5 @@
using System;
using System.Collections.Concurrent;
using System.Xml.Linq;
using Barotrauma.LuaCs.Data;
using Microsoft.Toolkit.Diagnostics;
@@ -59,8 +60,8 @@ public abstract class SettingBase : ISettingBase
public abstract Type GetValueType();
public abstract string GetStringValue();
public abstract string GetDefaultStringValue();
public abstract bool TrySetSerializedValue(OneOf<string, XElement> value);
public abstract bool TrySetValue(OneOf<string, XElement> value);
public abstract event Action<ISettingBase> OnValueChanged;
public abstract OneOf<string, XElement> GetSerializableValue();
#if CLIENT
@@ -152,7 +152,7 @@ public partial class SettingEntry<T> : SettingBase, ISettingBase<T>, INetworkSyn
public override string GetDefaultStringValue() => DefaultValue.ToString();
public override bool TrySetValue(OneOf<string, XElement> value)
public override bool TrySetSerializedValue(OneOf<string, XElement> value)
{
bool isFailed = false;
var typeConvertedValue = value.Match<T>(