Files
Nitrox/NitroxClient/GameLogic/PlayerLogic/PlayerModel/Equipment/FinsVisibilityHandler.cs
2025-07-06 00:23:46 +02:00

41 lines
2.0 KiB
C#

using System.Collections.ObjectModel;
using NitroxClient.GameLogic.PlayerLogic.PlayerModel.Equipment.Abstract;
using UnityEngine;
namespace NitroxClient.GameLogic.PlayerLogic.PlayerModel.Equipment
{
public class FinsVisibilityHandler : IEquipmentVisibilityHandler
{
private readonly GameObject fins;
private readonly GameObject finsRoot;
private readonly GameObject chargedFins;
private readonly GameObject chargedFinsRoot;
private readonly GameObject glideFins;
private readonly GameObject glideFinsRoot;
public FinsVisibilityHandler(GameObject playerModel)
{
fins = playerModel.transform.Find(PlayerEquipmentConstants.FINS_GAME_OBJECT_NAME).gameObject;
finsRoot = playerModel.transform.Find(PlayerEquipmentConstants.FINS_ROOT_GAME_OBJECT_NAME).gameObject;
chargedFins = playerModel.transform.Find(PlayerEquipmentConstants.CHARGED_FINS_GAME_OBJECT_NAME).gameObject;
chargedFinsRoot = playerModel.transform.Find(PlayerEquipmentConstants.CHARGED_FINS_ROOT_GAME_OBJECT_NAME).gameObject;
glideFins = playerModel.transform.Find(PlayerEquipmentConstants.GLIDE_FINS_GAME_OBJECT_NAME).gameObject;
glideFinsRoot = playerModel.transform.Find(PlayerEquipmentConstants.GLIDE_FINS_ROOT_GAME_OBJECT_NAME).gameObject;
}
public void UpdateEquipmentVisibility(ReadOnlyCollection<TechType> currentEquipment)
{
bool basicFinsVisible = currentEquipment.Contains(TechType.Fins);
bool chargedFinsVisible = currentEquipment.Contains(TechType.SwimChargeFins);
bool glideFinsVisible = currentEquipment.Contains(TechType.UltraGlideFins);
fins.SetActive(basicFinsVisible);
finsRoot.SetActive(basicFinsVisible);
chargedFins.SetActive(chargedFinsVisible);
chargedFinsRoot.SetActive(chargedFinsVisible);
glideFins.SetActive(glideFinsVisible);
glideFinsRoot.SetActive(glideFinsVisible);
}
}
}