void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs) { if (!InteractionChecks.InRangeUnobstructed(eventArgs)) { return; } if (eventArgs.Target == null) { return; } if (eventArgs.Target.TryGetComponent <BodySystem.BodyManagerComponent>(out BodySystem.BodyManagerComponent bodyManager)) { _surgeryOptionsCache.Clear(); var toSend = new Dictionary <string, string>(); foreach (var(key, value) in bodyManager.PartDictionary) { if (value.SurgeryCheck(_surgeryToolClass)) { _surgeryOptionsCache.Add(key, value); toSend.Add(key, value.Name); } } if (_surgeryOptionsCache.Count > 0) { OpenSurgeryUI(eventArgs.User); UpdateSurgeryUI(eventArgs.User, toSend); _performerCache = eventArgs.User; _targetCache = bodyManager; } } }
private void AddHand(BodyManagerComponent body) { var prototypeManager = IoCManager.Resolve <IPrototypeManager>(); prototypeManager.TryIndex("bodyPart.LHand.BasicHuman", out BodyPartPrototype prototype); var part = new BodyPart(prototype); var slot = part.GetHashCode().ToString(); body.Template.Slots.Add(slot, BodyPartType.Hand); body.TryAddPart(slot, part, true); }
protected virtual void OnRemovedFromBody(BodyManagerComponent old) { }
public void RemovedFromBody(BodyManagerComponent old) { OnRemovedFromBody(old); TryRemoveNetwork(old); }