Fix some food mispredicts (#16183)
This commit is contained in:
@@ -32,24 +32,24 @@ namespace Content.Server.Nutrition.EntitySystems
|
||||
if (ev.Target == null || !ev.CanReach)
|
||||
return;
|
||||
|
||||
if (TryUseUtensil(ev.User, ev.Target.Value, component))
|
||||
ev.Handled = true;
|
||||
var result = TryUseUtensil(ev.User, ev.Target.Value, component);
|
||||
ev.Handled = result.Handled;
|
||||
}
|
||||
|
||||
private bool TryUseUtensil(EntityUid user, EntityUid target, UtensilComponent component)
|
||||
public (bool Success, bool Handled) TryUseUtensil(EntityUid user, EntityUid target, UtensilComponent component)
|
||||
{
|
||||
if (!EntityManager.TryGetComponent(target, out FoodComponent? food))
|
||||
return false;
|
||||
return (false, true);
|
||||
|
||||
//Prevents food usage with a wrong utensil
|
||||
if ((food.Utensil & component.Types) == 0)
|
||||
{
|
||||
_popupSystem.PopupEntity(Loc.GetString("food-system-wrong-utensil", ("food", target), ("utensil", component.Owner)), user, user);
|
||||
return false;
|
||||
return (false, true);
|
||||
}
|
||||
|
||||
if (!_interactionSystem.InRangeUnobstructed(user, target, popup: true))
|
||||
return false;
|
||||
return (false, true);
|
||||
|
||||
return _foodSystem.TryFeed(user, user, target, food);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user