diff --git a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs index 5ec6e00f49..5a5080f88a 100644 --- a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs @@ -15,6 +15,7 @@ using Content.Shared.Database; using Content.Shared.FixedPoint; using Content.Shared.Interaction; using Content.Shared.Interaction.Helpers; +using Content.Shared.MobState.Components; using Content.Shared.Verbs; using Robust.Shared.Audio; using Robust.Shared.GameObjects; @@ -115,6 +116,10 @@ namespace Content.Server.Nutrition.EntitySystems if (!Resolve(uid, ref component)) return false; + if (uid == userUid || //Suppresses self-eating + EntityManager.TryGetComponent(uid, out var mobState) && mobState.IsAlive()) // Suppresses eating alive mobs + return false; + if (!_solutionContainerSystem.TryGetSolution(uid, component.SolutionName, out var solution)) return false; @@ -201,16 +206,20 @@ namespace Content.Server.Nutrition.EntitySystems private void AddEatVerb(EntityUid uid, FoodComponent component, GetInteractionVerbsEvent ev) { - if (!ev.CanInteract || + if (uid == ev.UserUid || + !ev.CanInteract || !ev.CanAccess || - !EntityManager.TryGetComponent(ev.User.Uid, out SharedBodyComponent? body) || - !_bodySystem.TryGetComponentsOnMechanisms(ev.User.Uid, out var stomachs, body)) + !EntityManager.TryGetComponent(ev.UserUid, out SharedBodyComponent? body) || + !_bodySystem.TryGetComponentsOnMechanisms(ev.UserUid, out var stomachs, body)) + return; + + if (EntityManager.TryGetComponent(uid, out var mobState) && mobState.IsAlive()) return; Verb verb = new(); verb.Act = () => { - TryUseFood(uid, ev.User.Uid, component); + TryUseFood(uid, ev.UserUid, component); }; verb.Text = Loc.GetString("food-system-verb-eat"); diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index f9c7687618..0d75335951 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -375,8 +375,6 @@ normal: mouse-0 crit: dead-0 dead: splat-0 -# Eek! You can eat them alive for now until someone makes something that detects when -# a mob is dead or something idk - type: Food - type: Extractable grindableSolutionName: food