Make masks & some helmets block eating/drinkling (#5656)

This commit is contained in:
Leon Friedrich
2021-12-03 03:51:05 +13:00
committed by GitHub
parent 44871eb95e
commit a9c3153a55
8 changed files with 143 additions and 4 deletions

View File

@@ -34,6 +34,7 @@ namespace Content.Server.Nutrition.EntitySystems
[UsedImplicitly]
public class DrinkSystem : EntitySystem
{
[Dependency] private readonly FoodSystem _foodSystem = default!;
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!;
[Dependency] private readonly PopupSystem _popupSystem = default!;
@@ -262,6 +263,14 @@ namespace Content.Server.Nutrition.EntitySystems
return true;
}
if (_foodSystem.IsMouthBlocked(userUid, out var blocker))
{
var name = EntityManager.GetComponent<MetaDataComponent>(blocker.Value).EntityName;
_popupSystem.PopupEntity(Loc.GetString("food-system-remove-mask", ("entity", name)),
userUid, Filter.Entities(userUid));
return true;
}
var transferAmount = FixedPoint2.Min(drink.TransferAmount, drinkSolution.DrainAvailable);
var drain = _solutionContainerSystem.Drain(uid, drinkSolution, transferAmount);
var firstStomach = stomachs.FirstOrNull(
@@ -327,6 +336,14 @@ namespace Content.Server.Nutrition.EntitySystems
return true;
}
if (_foodSystem.IsMouthBlocked(targetUid, out var blocker))
{
var name = EntityManager.GetComponent<MetaDataComponent>(blocker.Value).EntityName;
_popupSystem.PopupEntity(Loc.GetString("food-system-remove-mask", ("entity", name)),
userUid, Filter.Entities(userUid));
return true;
}
EntityManager.TryGetComponent(userUid, out MetaDataComponent? meta);
var userName = meta?.EntityName ?? string.Empty;