public HumanoidAppearanceBodyPartAddedEvent(EntityUid uid, BodyPartAddedEventArgs args) { Uid = uid; Args = args; }
void IBodyPartAdded.BodyPartAdded(BodyPartAddedEventArgs args) { if (args.Part.PartType != BodyPartType.Hand) { return; } // If this annoys you, which it should. // Ping Smugleaf. var location = args.Part.Symmetry switch { BodyPartSymmetry.None => HandLocation.Middle, BodyPartSymmetry.Left => HandLocation.Left, BodyPartSymmetry.Right => HandLocation.Right, _ => throw new ArgumentOutOfRangeException() }; AddHand(args.Slot, location); } void IBodyPartRemoved.BodyPartRemoved(BodyPartRemovedEventArgs args) { if (args.Part.PartType != BodyPartType.Hand) { return; } RemoveHand(args.Slot); } bool IDisarmedAct.Disarmed(DisarmedActEvent @event) { if (BreakPulls()) { return(false); } var source = @event.Source; var target = @event.Target; if (source != null) { SoundSystem.Play(Filter.Pvs(source), _disarmedSound.GetSound(), source, AudioHelpers.WithVariation(0.025f)); if (target != null) { if (ActiveHand != null && Drop(ActiveHand, false)) { source.PopupMessageOtherClients(Loc.GetString("hands-component-disarm-success-others-message", ("disarmer", source.Name), ("disarmed", target.Name))); source.PopupMessageCursor(Loc.GetString("hands-component-disarm-success-message", ("disarmed", target.Name))); } else { source.PopupMessageOtherClients(Loc.GetString("hands-component-shove-success-others-message", ("shover", source.Name), ("shoved", target.Name))); source.PopupMessageCursor(Loc.GetString("hands-component-shove-success-message", ("shoved", target.Name))); } } } return(true); }
// Scaffolding until Body is moved to ECS. public void BodyPartAdded(EntityUid uid, BodyPartAddedEventArgs args) { RaiseLocalEvent(new HumanoidAppearanceBodyPartAddedEvent(uid, args)); }