Update content for physics query namespace change (#4701)
This commit is contained in:
@@ -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<SharedBroadphaseSystem>().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<IEntity> GetNearestEntities(EntityCoordinates grid, Type component, float range)
|
||||
{
|
||||
|
||||
@@ -441,7 +441,7 @@ namespace Content.Server.Doors.Components
|
||||
|
||||
if (safety && Owner.TryGetComponent(out PhysicsComponent? physicsComponent))
|
||||
{
|
||||
var broadPhaseSystem = EntitySystem.Get<SharedBroadphaseSystem>();
|
||||
var broadPhaseSystem = EntitySystem.Get<SharedPhysicsSystem>();
|
||||
|
||||
// Use this version so we can ignore the CanCollide being false
|
||||
foreach(var e in broadPhaseSystem.GetCollidingEntities(physicsComponent.Owner.Transform.MapID, physicsComponent.GetWorldAABB()))
|
||||
|
||||
@@ -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<SharedBroadphaseSystem>().IntersectRay(Owner.Transform.MapID, ray, 4.5f, Owner, false);
|
||||
var rawRayCastResults = EntitySystem.Get<SharedPhysicsSystem>().IntersectRay(Owner.Transform.MapID, ray, 4.5f, Owner, false);
|
||||
|
||||
var rayCastResults = rawRayCastResults as RayCastResults[] ?? rawRayCastResults.ToArray();
|
||||
if(!rayCastResults.Any()) continue;
|
||||
|
||||
@@ -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<SharedBroadphaseSystem>().IntersectRay(entity.Transform.MapID, ray, SunOcclusionCheckDistance, entity);
|
||||
var rayCastResults = Get<SharedPhysicsSystem>().IntersectRay(entity.Transform.MapID, ray, SunOcclusionCheckDistance, entity);
|
||||
if (rayCastResults.Any())
|
||||
coverage = 0;
|
||||
}
|
||||
|
||||
@@ -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<SharedBroadphaseSystem>().IntersectRay(mapId,
|
||||
var res = Get<SharedPhysicsSystem>().IntersectRay(mapId,
|
||||
new CollisionRay(position, castAngle.ToWorldVec(),
|
||||
(int) (CollisionGroup.Impassable | CollisionGroup.MobImpassable)), range, ignore).ToList();
|
||||
|
||||
|
||||
@@ -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<SharedBroadphaseSystem>();
|
||||
var physicsManager = EntitySystem.Get<SharedPhysicsSystem>();
|
||||
var rayCastResults = physicsManager.IntersectRay(Owner.Transform.MapID, ray, hitscan.MaxLength, shooter, false).ToList();
|
||||
|
||||
if (rayCastResults.Count >= 1)
|
||||
|
||||
Reference in New Issue
Block a user