示例#1
0
        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);
                    }
            }
        }
示例#2
0
    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);
                }
            }
    }