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

34 lines
1.6 KiB
C#

using System.Collections.ObjectModel;
using NitroxClient.GameLogic.PlayerLogic.PlayerModel.Equipment.Abstract;
using UnityEngine;
namespace NitroxClient.GameLogic.PlayerLogic.PlayerModel.Equipment
{
public class DiveSuitVisibilityHandler : IEquipmentVisibilityHandler
{
private readonly GameObject head;
private readonly GameObject body;
private readonly GameObject hands;
public DiveSuitVisibilityHandler(GameObject playerModel)
{
head = playerModel.transform.Find(PlayerEquipmentConstants.NORMAL_HEAD_GAME_OBJECT_NAME).gameObject;
body = playerModel.transform.Find(PlayerEquipmentConstants.DIVE_SUIT_GAME_OBJECT_NAME).gameObject;
hands = playerModel.transform.Find(PlayerEquipmentConstants.NORMAL_HANDS_GAME_OBJECT_NAME).gameObject;
}
public void UpdateEquipmentVisibility(ReadOnlyCollection<TechType> currentEquipment)
{
bool headVisible = !currentEquipment.Contains(TechType.RadiationHelmet) && !currentEquipment.Contains(TechType.Rebreather);
bool bodyVisible = !currentEquipment.Contains(TechType.RadiationSuit) &&
!currentEquipment.Contains(TechType.WaterFiltrationSuit) &&
!currentEquipment.Contains(TechType.ReinforcedDiveSuit);
bool handsVisible = !currentEquipment.Contains(TechType.RadiationGloves) && !currentEquipment.Contains(TechType.ReinforcedGloves);
head.SetActive(headVisible);
body.gameObject.SetActive(bodyVisible);
hands.SetActive(handsVisible);
}
}
}