public override void Process(NitroxModel.Packets.ToggleLights packet) { GameObject gameObject = NitroxEntity.RequireObjectFrom(packet.Id); ToggleLights toggleLights = gameObject.GetComponent <ToggleLights>(); if (!toggleLights) { toggleLights = gameObject.RequireComponentInChildren <ToggleLights>(); } if (packet.IsOn != toggleLights.GetLightsActive()) { using (packetSender.Suppress <NitroxModel.Packets.ToggleLights>()) using (FMODSystem.SuppressSounds()) { toggleLights.SetLightsActive(packet.IsOn); } } }
public override void Process(MedicalCabinetClicked packet) { GameObject gameObject = NitroxEntity.RequireObjectFrom(packet.Id); MedicalCabinet cabinet = gameObject.RequireComponent <MedicalCabinet>(); bool medkitPickedUp = !packet.HasMedKit && cabinet.hasMedKit; bool doorChangedState = cabinet.doorOpen != packet.DoorOpen; cabinet.hasMedKit = packet.HasMedKit; cabinet.timeSpawnMedKit = packet.NextSpawnTime; using (packetSender.Suppress <PlayFMODCustomEmitter>()) using (FMODSystem.SuppressSounds()) { if (doorChangedState) { cabinet.Invoke(nameof(MedicalCabinet.ToggleDoorState), 0f); } else if (medkitPickedUp) { cabinet.Invoke(nameof(MedicalCabinet.ToggleDoorState), 2f); } } }