Files
Nitrox/NitroxClient/Communication/Packets/Processors/EscapePodChangedProcessor.cs
2025-07-06 00:23:46 +02:00

40 lines
1.2 KiB
C#

using NitroxClient.Communication.Packets.Processors.Abstract;
using NitroxClient.GameLogic;
using NitroxClient.MonoBehaviours;
using NitroxModel.DataStructures.Util;
using NitroxModel.Packets;
using UnityEngine;
namespace NitroxClient.Communication.Packets.Processors
{
public class EscapePodChangedProcessor : ClientPacketProcessor<EscapePodChanged>
{
private readonly PlayerManager remotePlayerManager;
public EscapePodChangedProcessor(PlayerManager remotePlayerManager)
{
this.remotePlayerManager = remotePlayerManager;
}
public override void Process(EscapePodChanged packet)
{
Optional<RemotePlayer> remotePlayer = remotePlayerManager.Find(packet.PlayerId);
if (remotePlayer.HasValue)
{
EscapePod escapePod = null;
if (packet.EscapePodId.HasValue)
{
GameObject sub = NitroxEntity.RequireObjectFrom(packet.EscapePodId.Value);
escapePod = sub.GetComponent<EscapePod>();
}
remotePlayer.Value.SetEscapePod(escapePod);
}
}
}
}