Files
LuaCsForBarotraumaEP/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/LuaCsInfoProvider.cs
2026-02-28 16:05:20 -03:00

48 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
namespace Barotrauma.LuaCs;
public sealed class LuaCsInfoProvider : ILuaCsInfoProvider
{
public void Dispose()
{
// stateless service
}
public bool IsDisposed => false;
public bool IsCsEnabled => LuaCsSetup.Instance.IsCsEnabled;
public bool DisableErrorGUIOverlay => LuaCsSetup.Instance.DisableErrorGUIOverlay;
public bool HideUserNamesInLogs => LuaCsSetup.Instance.HideUserNamesInLogs;
public ulong LuaForBarotraumaSteamId => LuaCsSetup.Instance.LuaForBarotraumaSteamId;
public bool RestrictMessageSize => LuaCsSetup.Instance.RestrictMessageSize;
public string LocalDataSavePath => LuaCsSetup.Instance.LocalDataSavePath;
public RunState CurrentRunState => LuaCsSetup.Instance.CurrentRunState;
public ContentPackage LuaCsForBarotraumaPackage
{
get
{
var luaCs = FirstOrDefaultLua(ContentPackageManager.EnabledPackages.All);
if (luaCs == null)
{
luaCs = FirstOrDefaultLua(ContentPackageManager.LocalPackages.Regular);
}
if (luaCs == null)
{
luaCs = FirstOrDefaultLua(ContentPackageManager.WorkshopPackages.Regular);
}
return luaCs;
ContentPackage FirstOrDefaultLua(IEnumerable<ContentPackage> packages)
{
return packages.FirstOrDefault(p =>
p.Name.Equals("LuaCsForBarotrauma", StringComparison.InvariantCultureIgnoreCase)
|| p.Name.Equals("Lua for Barotrauma", StringComparison.InvariantCultureIgnoreCase));
}
}
}
}