diff --git a/Content.Server/AI/Utils/Visibility.cs b/Content.Server/AI/Utils/Visibility.cs index 5767d36c2e..e94fb5e398 100644 --- a/Content.Server/AI/Utils/Visibility.cs +++ b/Content.Server/AI/Utils/Visibility.cs @@ -14,38 +14,6 @@ namespace Content.Server.AI.Utils { public static class Visibility { - // Just do a simple range check, then chuck the ray out. If we get bigger than 1 tile mobs may need to adjust this - public static bool InLineOfSight(IEntity owner, IEntity target) - { - var range = 50.0f; - - if (owner.Transform.GridID != target.Transform.GridID) - { - return false; - } - - if (owner.TryGetComponent(out AiControllerComponent? controller)) - { - var targetRange = (target.Transform.Coordinates.Position - owner.Transform.Coordinates.Position).Length; - if (targetRange > controller.VisionRadius) - { - return false; - } - - range = controller.VisionRadius; - } - - var angle = new Angle(target.Transform.Coordinates.Position - owner.Transform.Coordinates.Position); - var ray = new CollisionRay( - owner.Transform.Coordinates.Position, - angle.ToVec(), - (int)(CollisionGroup.Opaque | CollisionGroup.Impassable | CollisionGroup.MobImpassable)); - - var rayCastResults = EntitySystem.Get().IntersectRay(owner.Transform.MapID, ray, range, owner).ToList(); - - return rayCastResults.Count > 0 && rayCastResults[0].HitEntity == target; - } - // Should this be in robust or something? Fark it public static IEnumerable GetNearestEntities(EntityCoordinates grid, Type component, float range) { diff --git a/Content.Server/Doors/Components/ServerDoorComponent.cs b/Content.Server/Doors/Components/ServerDoorComponent.cs index 406895a60f..510c4215e6 100644 --- a/Content.Server/Doors/Components/ServerDoorComponent.cs +++ b/Content.Server/Doors/Components/ServerDoorComponent.cs @@ -441,7 +441,7 @@ namespace Content.Server.Doors.Components if (safety && Owner.TryGetComponent(out PhysicsComponent? physicsComponent)) { - var broadPhaseSystem = EntitySystem.Get(); + var broadPhaseSystem = EntitySystem.Get(); // Use this version so we can ignore the CanCollide being false foreach(var e in broadPhaseSystem.GetCollidingEntities(physicsComponent.Owner.Transform.MapID, physicsComponent.GetWorldAABB())) diff --git a/Content.Server/Singularity/Components/ContainmentFieldGeneratorComponent.cs b/Content.Server/Singularity/Components/ContainmentFieldGeneratorComponent.cs index e8096f5ade..9468486dd0 100644 --- a/Content.Server/Singularity/Components/ContainmentFieldGeneratorComponent.cs +++ b/Content.Server/Singularity/Components/ContainmentFieldGeneratorComponent.cs @@ -97,7 +97,7 @@ namespace Content.Server.Singularity.Components var dirVec = direction.ToVec(); var ray = new CollisionRay(Owner.Transform.WorldPosition, dirVec, (int) CollisionGroup.MobMask); - var rawRayCastResults = EntitySystem.Get().IntersectRay(Owner.Transform.MapID, ray, 4.5f, Owner, false); + var rawRayCastResults = EntitySystem.Get().IntersectRay(Owner.Transform.MapID, ray, 4.5f, Owner, false); var rayCastResults = rawRayCastResults as RayCastResults[] ?? rawRayCastResults.ToArray(); if(!rayCastResults.Any()) continue; diff --git a/Content.Server/Solar/EntitySystems/PowerSolarSystem.cs b/Content.Server/Solar/EntitySystems/PowerSolarSystem.cs index f773aeaf76..62a1b3324a 100644 --- a/Content.Server/Solar/EntitySystems/PowerSolarSystem.cs +++ b/Content.Server/Solar/EntitySystems/PowerSolarSystem.cs @@ -137,7 +137,7 @@ namespace Content.Server.Solar.EntitySystems // Determine if the solar panel is occluded, and zero out coverage if so. // FIXME: The "Opaque" collision group doesn't seem to work right now. var ray = new CollisionRay(entity.Transform.WorldPosition, TowardsSun.ToWorldVec(), (int) CollisionGroup.Opaque); - var rayCastResults = EntitySystem.Get().IntersectRay(entity.Transform.MapID, ray, SunOcclusionCheckDistance, entity); + var rayCastResults = Get().IntersectRay(entity.Transform.MapID, ray, SunOcclusionCheckDistance, entity); if (rayCastResults.Any()) coverage = 0; } diff --git a/Content.Server/Weapon/Melee/MeleeWeaponSystem.cs b/Content.Server/Weapon/Melee/MeleeWeaponSystem.cs index 49277ae485..f57880af12 100644 --- a/Content.Server/Weapon/Melee/MeleeWeaponSystem.cs +++ b/Content.Server/Weapon/Melee/MeleeWeaponSystem.cs @@ -216,7 +216,7 @@ namespace Content.Server.Weapon.Melee for (var i = 0; i < increments; i++) { var castAngle = new Angle(baseAngle + increment * i); - var res = Get().IntersectRay(mapId, + var res = Get().IntersectRay(mapId, new CollisionRay(position, castAngle.ToWorldVec(), (int) (CollisionGroup.Impassable | CollisionGroup.MobImpassable)), range, ignore).ToList(); diff --git a/Content.Server/Weapon/Ranged/Barrels/Components/ServerRangedBarrelComponent.cs b/Content.Server/Weapon/Ranged/Barrels/Components/ServerRangedBarrelComponent.cs index 4a7928e260..68b5184cfd 100644 --- a/Content.Server/Weapon/Ranged/Barrels/Components/ServerRangedBarrelComponent.cs +++ b/Content.Server/Weapon/Ranged/Barrels/Components/ServerRangedBarrelComponent.cs @@ -384,7 +384,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components private void FireHitscan(IEntity shooter, HitscanComponent hitscan, Angle angle) { var ray = new CollisionRay(Owner.Transform.Coordinates.ToMapPos(Owner.EntityManager), angle.ToVec(), (int) hitscan.CollisionMask); - var physicsManager = EntitySystem.Get(); + var physicsManager = EntitySystem.Get(); var rayCastResults = physicsManager.IntersectRay(Owner.Transform.MapID, ray, hitscan.MaxLength, shooter, false).ToList(); if (rayCastResults.Count >= 1) diff --git a/Content.Shared/Construction/Conditions/WallmountCondition.cs b/Content.Shared/Construction/Conditions/WallmountCondition.cs index f86fa59d8f..31169b462a 100644 --- a/Content.Shared/Construction/Conditions/WallmountCondition.cs +++ b/Content.Shared/Construction/Conditions/WallmountCondition.cs @@ -33,7 +33,7 @@ namespace Content.Shared.Construction.Conditions return false; // now we need to check that user actually tries to build wallmount on a wall - var physics = EntitySystem.Get(); + var physics = EntitySystem.Get(); var rUserToObj = new CollisionRay(userWorldPosition, userToObject.Normalized, (int) CollisionGroup.Impassable); var length = userToObject.Length; var userToObjRaycastResults = physics.IntersectRayWithPredicate(user.Transform.MapID, rUserToObj, maxLength: length, diff --git a/Content.Shared/Interaction/SharedInteractionSystem.cs b/Content.Shared/Interaction/SharedInteractionSystem.cs index b278081d92..91b7bc20ae 100644 --- a/Content.Shared/Interaction/SharedInteractionSystem.cs +++ b/Content.Shared/Interaction/SharedInteractionSystem.cs @@ -18,7 +18,7 @@ namespace Content.Shared.Interaction [UsedImplicitly] public abstract class SharedInteractionSystem : EntitySystem { - [Dependency] private readonly SharedBroadphaseSystem _sharedBroadphaseSystem = default!; + [Dependency] private readonly SharedPhysicsSystem _sharedBroadphaseSystem = default!; [Dependency] private readonly SharedPopupSystem _popupSystem = default!; public const float InteractionRange = 2; diff --git a/Content.Shared/Maps/TurfHelpers.cs b/Content.Shared/Maps/TurfHelpers.cs index 82cb7b698b..bc609ebd04 100644 --- a/Content.Shared/Maps/TurfHelpers.cs +++ b/Content.Shared/Maps/TurfHelpers.cs @@ -181,7 +181,7 @@ namespace Content.Shared.Maps /// public static bool IsBlockedTurf(this TileRef turf, bool filterMobs) { - var physics = EntitySystem.Get(); + var physics = EntitySystem.Get(); var worldBox = GetWorldTileBox(turf); diff --git a/Content.Shared/Movement/SharedMoverController.cs b/Content.Shared/Movement/SharedMoverController.cs index 2b595ed223..6bc0081f0e 100644 --- a/Content.Shared/Movement/SharedMoverController.cs +++ b/Content.Shared/Movement/SharedMoverController.cs @@ -26,7 +26,7 @@ namespace Content.Shared.Movement [Dependency] private readonly IMapManager _mapManager = default!; private ActionBlockerSystem _blocker = default!; - private SharedBroadphaseSystem _broadPhaseSystem = default!; + private SharedPhysicsSystem _broadPhaseSystem = default!; private bool _relativeMovement; @@ -38,7 +38,7 @@ namespace Content.Shared.Movement public override void Initialize() { base.Initialize(); - _broadPhaseSystem = EntitySystem.Get(); + _broadPhaseSystem = EntitySystem.Get(); _blocker = EntitySystem.Get(); var configManager = IoCManager.Resolve(); configManager.OnValueChanged(CCVars.RelativeMovement, SetRelativeMovement, true); @@ -161,12 +161,7 @@ namespace Content.Shared.Movement /// /// Used for weightlessness to determine if we are near a wall. /// - /// - /// - /// - /// - /// - public static bool IsAroundCollider(SharedBroadphaseSystem broadPhaseSystem, ITransformComponent transform, IMobMoverComponent mover, IPhysBody collider) + public static bool IsAroundCollider(SharedPhysicsSystem broadPhaseSystem, ITransformComponent transform, IMobMoverComponent mover, IPhysBody collider) { var enlargedAABB = collider.GetWorldAABB().Enlarged(mover.GrabRange); diff --git a/Content.Shared/Spawning/EntitySystemExtensions.cs b/Content.Shared/Spawning/EntitySystemExtensions.cs index a096d0f4d9..0bd9bc78d7 100644 --- a/Content.Shared/Spawning/EntitySystemExtensions.cs +++ b/Content.Shared/Spawning/EntitySystemExtensions.cs @@ -16,9 +16,9 @@ namespace Content.Shared.Spawning EntityCoordinates coordinates, CollisionGroup collisionLayer, in Box2? box = null, - SharedBroadphaseSystem? physicsManager = null) + SharedPhysicsSystem? physicsManager = null) { - physicsManager ??= EntitySystem.Get(); + physicsManager ??= EntitySystem.Get(); var mapCoordinates = coordinates.ToMap(entityManager); return entityManager.SpawnIfUnobstructed(prototypeName, mapCoordinates, collisionLayer, box, physicsManager); @@ -30,10 +30,10 @@ namespace Content.Shared.Spawning MapCoordinates coordinates, CollisionGroup collisionLayer, in Box2? box = null, - SharedBroadphaseSystem? collision = null) + SharedPhysicsSystem? collision = null) { var boxOrDefault = box.GetValueOrDefault(Box2.UnitCentered).Translated(coordinates.Position); - collision ??= EntitySystem.Get(); + collision ??= EntitySystem.Get(); foreach (var body in collision.GetCollidingEntities(coordinates.MapId, in boxOrDefault)) { @@ -61,7 +61,7 @@ namespace Content.Shared.Spawning CollisionGroup collisionLayer, [NotNullWhen(true)] out IEntity? entity, Box2? box = null, - SharedBroadphaseSystem? physicsManager = null) + SharedPhysicsSystem? physicsManager = null) { entity = entityManager.SpawnIfUnobstructed(prototypeName, coordinates, collisionLayer, box, physicsManager); @@ -75,7 +75,7 @@ namespace Content.Shared.Spawning CollisionGroup collisionLayer, [NotNullWhen(true)] out IEntity? entity, in Box2? box = null, - SharedBroadphaseSystem? physicsManager = null) + SharedPhysicsSystem? physicsManager = null) { entity = entityManager.SpawnIfUnobstructed(prototypeName, coordinates, collisionLayer, box, physicsManager);