private void AddAlternativeVerbs(EntityUid uid, MedicalScannerComponent component, GetAlternativeVerbsEvent args) { if (!args.CanAccess || !args.CanInteract) { return; } // Eject verb if (component.IsOccupied) { Verb verb = new(); verb.Act = () => component.EjectBody(); verb.Category = VerbCategory.Eject; verb.Text = Loc.GetString("medical-scanner-verb-noun-occupant"); args.Verbs.Add(verb); } // Self-insert verb if (!component.IsOccupied && component.CanInsert(args.User) && _actionBlockerSystem.CanMove(args.User)) { Verb verb = new(); verb.Act = () => component.InsertBody(args.User); verb.Text = Loc.GetString("medical-scanner-verb-enter"); // TODO VERN ICON // TODO VERB CATEGORY // create a verb category for "enter"? // See also, disposal unit. Also maybe add verbs for entering lockers/body bags? args.Verbs.Add(verb); } }
private void AddInsertOtherVerb(EntityUid uid, MedicalScannerComponent component, GetInteractionVerbsEvent args) { if (args.Using == null || !args.CanAccess || !args.CanInteract || component.IsOccupied || !component.CanInsert(args.Using)) { return; } Verb verb = new(); verb.Act = () => component.InsertBody(args.Using); verb.Category = VerbCategory.Insert; verb.Text = args.Using.Name; args.Verbs.Add(verb); }
private void AddInsertOtherVerb(EntityUid uid, MedicalScannerComponent component, GetVerbsEvent <InteractionVerb> args) { if (args.Using == null || !args.CanAccess || !args.CanInteract || component.IsOccupied || !component.CanInsert(args.Using.Value)) { return; } InteractionVerb verb = new(); verb.Act = () => component.InsertBody(args.Using.Value); verb.Category = VerbCategory.Insert; verb.Text = EntityManager.GetComponent <MetaDataComponent>(args.Using.Value).EntityName; args.Verbs.Add(verb); }