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