Exemple #1
0
        public void StartSoundLoop(MicrowaveComponent microwave)
        {
            StopSoundLoop(microwave);

            microwave.PlayingStream = SoundSystem.Play(Filter.Local(), microwave.LoopingSound.GetSound(), microwave.Owner,
                                                       AudioParams.Default.WithAttenuation(1).WithMaxDistance(5).WithLoop(true));
        }
        private void OnInteractUsing(EntityUid uid, MicrowaveComponent component, InteractUsingEvent args)
        {
            if (args.Handled)
            {
                return;
            }
            if (!component.Powered)
            {
                _popupSystem.PopupEntity(Loc.GetString("microwave-component-interact-using-no-power"), uid, Filter.Entities(args.User));
                return;
            }

            if (component.Broken)
            {
                _popupSystem.PopupEntity(Loc.GetString("microwave-component-interact-using-broken"), uid, Filter.Entities(args.User));
                return;
            }

            if (!HasComp <SharedItemComponent>(args.Used))
            {
                _popupSystem.PopupEntity(Loc.GetString("microwave-component-interact-using-transfer-fail"), uid, Filter.Entities(args.User));
                return;
            }

            args.Handled = true;

            component.Storage.Insert(args.Used);
            component.DirtyUi();
        }
Exemple #3
0
 public void StopSoundLoop(MicrowaveComponent microwave)
 {
     try
     {
         microwave.PlayingStream?.Stop();
     }
     catch (Exception _)
     {
         // TODO: HOLY SHIT EXPOSE SOME DISPOSED PROPERTY ON PLAYING STREAM OR SOMETHING.
     }
 }
        private void OnSuicide(EntityUid uid, MicrowaveComponent component, SuicideEvent args)
        {
            if (args.Handled)
            {
                return;
            }
            args.SetHandled(SuicideKind.Heat);
            var victim    = args.Victim;
            var headCount = 0;

            if (TryComp <SharedBodyComponent?>(victim, out var body))
            {
                var headSlots = body.GetSlotsOfType(BodyPartType.Head);

                foreach (var slot in headSlots)
                {
                    var part = slot.Part;

                    if (part == null ||
                        !body.TryDropPart(slot, out var dropped))
                    {
                        continue;
                    }

                    foreach (var droppedPart in dropped.Values)
                    {
                        if (droppedPart.PartType != BodyPartType.Head)
                        {
                            continue;
                        }
                        component.Storage.Insert(droppedPart.Owner);
                        headCount++;
                    }
                }
            }

            var othersMessage = headCount > 1
                ? Loc.GetString("microwave-component-suicide-multi-head-others-message", ("victim", victim))
                : Loc.GetString("microwave-component-suicide-others-message", ("victim", victim));

            victim.PopupMessageOtherClients(othersMessage);

            var selfMessage = headCount > 1
                ? Loc.GetString("microwave-component-suicide-multi-head-message")
                : Loc.GetString("microwave-component-suicide-message");

            victim.PopupMessage(selfMessage);
            component.ClickSound();
            component.SetCookTime(10);
            component.Wzhzhzh();
        }
 private void OnSolutionChange(EntityUid uid, MicrowaveComponent component, SolutionChangedEvent args)
 {
     component.DirtyUi();
 }
 private void OnBreak(EntityUid uid, MicrowaveComponent component, BreakageEventArgs args)
 {
     component.Broken = true;
     component.SetAppearance(MicrowaveVisualState.Broken);
 }
Exemple #7
0
 public void StopSoundLoop(MicrowaveComponent microwave)
 {
     microwave.PlayingStream?.Stop();
 }