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(); }
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); }
public void StopSoundLoop(MicrowaveComponent microwave) { microwave.PlayingStream?.Stop(); }