Files
BarotraumaModServer/LocalMods/More Level Content/CSharp/Shared/Utils/CompatabilityHelper.cs
2026-06-09 00:42:10 +03:00

55 lines
1.8 KiBLFS
C#
Executable File

using Barotrauma;
using Barotrauma.Items.Components;
using Barotrauma.MoreLevelContent.Shared.Utils;
using Barotrauma.Steam;
using MoreLevelContent.Shared;
using System;
using System.Linq;
public class CompatabilityHelper : Singleton<CompatabilityHelper>
{
public bool ReactorModInstalled { get; private set; }
public bool HazardousReactorsInstalled { get; private set; }
public bool DynamicEuropaInstalled { get; private set; }
internal Faction BanditFaction
{
get
{
_Bandits ??= GameMain.GameSession.Campaign.GetFaction("bandits");
return _Bandits;
}
}
private Faction _Bandits;
internal static void SetupHazReactor(Reactor reactor)
{
Item reactorItem = reactor.Item;
reactorItem.InvulnerableToDamage = true;
// tell bots not to stay in the hull the reactor is in
if (reactorItem.CurrentHull != null) reactorItem.CurrentHull.AvoidStaying = true;
}
public override void Setup()
{
HazardousReactorsInstalled = CheckInstalled(2547888957);
if (ItemPrefab.Prefabs.TryGet("reactor1", out ItemPrefab prefab))
{
ReactorModInstalled = prefab.IsOverride;
}
DynamicEuropaInstalled = CheckInstalled(2532991202);
Log.Debug(
$"-= MLC Compatability =-\n" +
$"- HazReactorsInstalled: {HazardousReactorsInstalled}\n" +
$"- ReactorModInstalled: {ReactorModInstalled}\n" +
$"- DynamicEuropa: {DynamicEuropaInstalled}");
}
bool CheckInstalled(ulong workshopID) => ContentPackageManager.EnabledPackages.All.Any(p => p.TryExtractSteamWorkshopId(out SteamWorkshopId idOut) && idOut.Value == workshopID);
}