using JetBrains.Annotations; using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; namespace Content.Shared.GameObjects.EntitySystems.ActionBlocker { /// /// Utility methods to check if a specific entity is allowed to perform an action. /// For effects see /// [UsedImplicitly] public class ActionBlockerSystem : EntitySystem { public static bool CanMove(IEntity entity) { var canMove = true; foreach (var blockers in entity.GetAllComponents()) { canMove &= blockers.CanMove(); // Sets var to false if false } return canMove; } public static bool CanInteract(IEntity entity) { var canInteract = true; foreach (var blockers in entity.GetAllComponents()) { canInteract &= blockers.CanInteract(); } return canInteract; } public static bool CanUse(IEntity entity) { var canUse = true; foreach (var blockers in entity.GetAllComponents()) { canUse &= blockers.CanUse(); } return canUse; } public static bool CanThrow(IEntity entity) { var canThrow = true; foreach (var blockers in entity.GetAllComponents()) { canThrow &= blockers.CanThrow(); } return canThrow; } public static bool CanSpeak(IEntity entity) { var canSpeak = true; foreach (var blockers in entity.GetAllComponents()) { canSpeak &= blockers.CanSpeak(); } return canSpeak; } public static bool CanDrop(IEntity entity) { var canDrop = true; foreach (var blockers in entity.GetAllComponents()) { canDrop &= blockers.CanDrop(); } return canDrop; } public static bool CanPickup(IEntity entity) { var canPickup = true; foreach (var blockers in entity.GetAllComponents()) { canPickup &= blockers.CanPickup(); } return canPickup; } public static bool CanEmote(IEntity entity) { var canEmote = true; foreach (var blockers in entity.GetAllComponents()) { canEmote &= blockers.CanEmote(); } return canEmote; } public static bool CanAttack(IEntity entity) { var canAttack = true; foreach (var blockers in entity.GetAllComponents()) { canAttack &= blockers.CanAttack(); } return canAttack; } public static bool CanEquip(IEntity entity) { var canEquip = true; foreach (var blockers in entity.GetAllComponents()) { canEquip &= blockers.CanEquip(); } return canEquip; } public static bool CanUnequip(IEntity entity) { var canUnequip = true; foreach (var blockers in entity.GetAllComponents()) { canUnequip &= blockers.CanUnequip(); } return canUnequip; } public static bool CanChangeDirection(IEntity entity) { var canChangeDirection = true; foreach (var blockers in entity.GetAllComponents()) { canChangeDirection &= blockers.CanChangeDirection(); } return canChangeDirection; } public static bool CanShiver(IEntity entity) { var canShiver = true; foreach (var component in entity.GetAllComponents()) { canShiver &= component.CanShiver(); } return canShiver; } public static bool CanSweat(IEntity entity) { var canSweat = true; foreach (var component in entity.GetAllComponents()) { canSweat &= component.CanSweat(); } return canSweat; } } }