From d8172862c5174da21213bbb5d0e6b69d8bbbe4b2 Mon Sep 17 00:00:00 2001 From: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com> Date: Sat, 27 Sep 2025 14:20:31 -0700 Subject: [PATCH] Edible Verb Fixes (#39933) * You cannot drink the cannot drink * Undo that shit * Whoops * Fix test fails --------- Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com> --- .../Nutrition/EntitySystems/IngestionSystem.Utensils.cs | 2 +- .../Nutrition/EntitySystems/IngestionSystem.cs | 9 ++++++--- .../Entities/Clothing/Shoes/base_clothingshoes.yml | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Content.Shared/Nutrition/EntitySystems/IngestionSystem.Utensils.cs b/Content.Shared/Nutrition/EntitySystems/IngestionSystem.Utensils.cs index dfdc03cfe6..a4ef8422bb 100644 --- a/Content.Shared/Nutrition/EntitySystems/IngestionSystem.Utensils.cs +++ b/Content.Shared/Nutrition/EntitySystems/IngestionSystem.Utensils.cs @@ -43,7 +43,7 @@ public sealed partial class IngestionSystem RaiseLocalEvent(target, ref ev); //Prevents food usage with a wrong utensil - if ((ev.Types & utensil.Comp.Types) == 0) + if (ev.Types != UtensilType.None && (ev.Types & utensil.Comp.Types) == 0) { _popup.PopupClient(Loc.GetString("ingestion-try-use-wrong-utensil", ("verb", GetEdibleVerb(target)), ("food", target), ("utensil", utensil.Owner)), user, user); return true; diff --git a/Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs b/Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs index caecc2797e..d3271b7edb 100644 --- a/Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs +++ b/Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs @@ -177,8 +177,10 @@ public sealed partial class IngestionSystem : EntitySystem /// /// Entity being eaten /// Stomachs available to digest - public bool IsDigestibleBy(EntityUid food, List> stomachs) + /// Should we also display popup text if it exists? + public bool IsDigestibleBy(EntityUid food, List> stomachs, out bool popup) { + popup = false; var ev = new IsDigestibleEvent(); RaiseLocalEvent(food, ref ev); @@ -210,6 +212,7 @@ public sealed partial class IngestionSystem : EntitySystem } // If we didn't find a stomach that can digest our food then it doesn't exist. + popup = true; return false; } @@ -247,9 +250,9 @@ public sealed partial class IngestionSystem : EntitySystem return; // Can we digest the specific item we're trying to eat? - if (!IsDigestibleBy(args.Ingested, stomachs)) + if (!IsDigestibleBy(args.Ingested, stomachs, out var popup)) { - if (!args.Ingest) + if (!args.Ingest || !popup) return; if (forceFed) diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml b/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml index a1c837e208..cd945af5e3 100644 --- a/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml +++ b/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml @@ -51,11 +51,11 @@ slots: item: name: clothing-boots-sidearm + priority: 4 whitelist: tags: - Knife - Sidearm - priority: 4 - type: entity abstract: true