first commit

This commit is contained in:
2025-07-06 00:23:46 +02:00
commit 38f50c8819
1788 changed files with 112878 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using NitroxModel.DataStructures.Util;
using UnityEngine;
namespace NitroxClient.GameLogic.Helper
{
public class EquipmentHelper
{
private static readonly List<Func<GameObject, Equipment>> equipmentFinders = new()
{
o => o.GetComponent<Charger>().AliveOrNull()?.equipment,
o => o.GetComponent<BaseNuclearReactor>().AliveOrNull()?.equipment,
o => o.GetComponent<CyclopsDecoyLoadingTube>().AliveOrNull()?.decoySlots,
o => o.GetComponent<Exosuit>().AliveOrNull()?.modules,
o => o.GetComponent<SeaMoth>().AliveOrNull()?.modules,
o => o.GetComponent<UpgradeConsole>().AliveOrNull()?.modules,
o => o.GetComponent<Vehicle>().AliveOrNull()?.modules,
o => o.GetComponent<VehicleUpgradeConsoleInput>().AliveOrNull()?.equipment,
o => string.Equals("Player", o.GetComponent<Player>().AliveOrNull()?.name, StringComparison.InvariantCulture) ? Inventory.main.equipment : null
};
public static Optional<Equipment> FindEquipmentComponent(GameObject owner)
{
foreach (Func<GameObject, Equipment> equipmentFinder in equipmentFinders)
{
Equipment equipment = equipmentFinder(owner);
if (equipment != null)
{
return Optional.Of(equipment);
}
}
return Optional.Empty;
}
}
}