EntityLookup as a system for content (#6931)

This commit is contained in:
metalgearsloth
2022-03-03 21:18:35 +11:00
committed by GitHub
parent 614bb6d34e
commit 836930e733
36 changed files with 42 additions and 41 deletions

View File

@@ -233,7 +233,7 @@ namespace Content.Client.Actions.UI
{
_actionsUI.Component.Actions.Remove(Action);
}
}
}
_actionsUI.StopTargeting();
_actionsUI.UpdateUI();

View File

@@ -12,10 +12,10 @@ namespace Content.Client.Administration
private readonly AdminSystem _system;
private readonly IEntityManager _entityManager;
private readonly IEyeManager _eyeManager;
private readonly IEntityLookup _entityLookup;
private readonly EntityLookupSystem _entityLookup;
private readonly Font _font;
public AdminNameOverlay(AdminSystem system, IEntityManager entityManager, IEyeManager eyeManager, IResourceCache resourceCache, IEntityLookup entityLookup)
public AdminNameOverlay(AdminSystem system, IEntityManager entityManager, IEyeManager eyeManager, IResourceCache resourceCache, EntityLookupSystem entityLookup)
{
_system = system;
_entityManager = entityManager;
@@ -46,7 +46,7 @@ namespace Content.Client.Administration
continue;
}
var aabb = _entityLookup.GetWorldAabbFromEntity(entity);
var aabb = _entityLookup.GetWorldAABB(entity);
// if not on screen, continue
if (!aabb.Intersects(in viewport))

View File

@@ -29,7 +29,7 @@ namespace Content.Client.Administration
[Dependency] private readonly IOverlayManager _overlayManager = default!;
[Dependency] private readonly IResourceCache _resourceCache = default!;
[Dependency] private readonly IEntityManager _entityManager = default!;
[Dependency] private readonly IEntityLookup _entityLookup = default!;
[Dependency] private readonly EntityLookupSystem _entityLookup = default!;
[Dependency] private readonly IClientConsoleHost _clientConsoleHost = default!;
[Dependency] private readonly VerbSystem _verbSystem = default!;

View File

@@ -19,7 +19,7 @@ namespace Content.Client.Audio
/// </summary>
public sealed class AmbientSoundSystem : SharedAmbientSoundSystem
{
[Dependency] private IEntityLookup _lookup = default!;
[Dependency] private EntityLookupSystem _lookup = default!;
[Dependency] private readonly IGameTiming _gameTiming = default!;
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IRobustRandom _random = default!;

View File

@@ -364,7 +364,7 @@ namespace Content.Client.DragDrop
// TODO: Duplicated in SpriteSystem and TargetOutlineSystem. Should probably be cached somewhere for a frame?
var mousePos = _eyeManager.ScreenToMap(_inputManager.MouseScreenPosition).Position;
var bounds = new Box2(mousePos - 1.5f, mousePos + 1.5f);
var pvsEntities = IoCManager.Resolve<IEntityLookup>().GetEntitiesIntersecting(_eyeManager.CurrentMap, bounds, LookupFlags.Approximate | LookupFlags.IncludeAnchored);
var pvsEntities = EntitySystem.Get<EntityLookupSystem>().GetEntitiesIntersecting(_eyeManager.CurrentMap, bounds, LookupFlags.Approximate | LookupFlags.IncludeAnchored);
foreach (var pvsEntity in pvsEntities)
{
if (!EntityManager.TryGetComponent(pvsEntity, out ISpriteComponent? inRangeSprite) ||

View File

@@ -15,7 +15,7 @@ namespace Content.Client.NodeContainer
public sealed class NodeGroupSystem : EntitySystem
{
[Dependency] private readonly IOverlayManager _overlayManager = default!;
[Dependency] private readonly IEntityLookup _entityLookup = default!;
[Dependency] private readonly EntityLookupSystem _entityLookup = default!;
[Dependency] private readonly IMapManager _mapManager = default!;
[Dependency] private readonly IInputManager _inputManager = default!;
[Dependency] private readonly IResourceCache _resourceCache = default!;

View File

@@ -14,7 +14,7 @@ namespace Content.Client.NodeContainer
public sealed class NodeVisualizationOverlay : Overlay
{
private readonly NodeGroupSystem _system;
private readonly IEntityLookup _lookup;
private readonly EntityLookupSystem _lookup;
private readonly IMapManager _mapManager;
private readonly IInputManager _inputManager;
private readonly IEntityManager _entityManager;
@@ -32,7 +32,7 @@ namespace Content.Client.NodeContainer
public NodeVisualizationOverlay(
NodeGroupSystem system,
IEntityLookup lookup,
EntityLookupSystem lookup,
IMapManager mapManager,
IInputManager inputManager,
IResourceCache cache,

View File

@@ -14,7 +14,7 @@ namespace Content.Client.Outline;
public sealed class TargetOutlineSystem : EntitySystem
{
[Dependency] private readonly IEyeManager _eyeManager = default!;
[Dependency] private readonly IEntityLookup _lookup = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
[Dependency] private readonly IInputManager _inputManager = default!;
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;

View File

@@ -30,7 +30,7 @@ namespace Content.Client.Verbs
[Dependency] private readonly ExamineSystem _examineSystem = default!;
[Dependency] private readonly TagSystem _tagSystem = default!;
[Dependency] private readonly IStateManager _stateManager = default!;
[Dependency] private readonly IEntityLookup _entityLookup = default!;
[Dependency] private readonly EntityLookupSystem _entityLookup = default!;
[Dependency] private readonly IPlayerManager _playerManager = default!;
/// <summary>

View File

@@ -59,7 +59,7 @@ namespace Content.Client.Viewport
public IList<EntityUid> GetEntitiesUnderPosition(MapCoordinates coordinates)
{
// Find all the entities intersecting our click
var entities = IoCManager.Resolve<IEntityLookup>().GetEntitiesIntersecting(coordinates.MapId,
var entities = EntitySystem.Get<EntityLookupSystem>().GetEntitiesIntersecting(coordinates.MapId,
Box2.CenteredAround(coordinates.Position, (1, 1)));
var containerSystem = _entitySystemManager.GetEntitySystem<SharedContainerSystem>();

View File

@@ -66,7 +66,7 @@ namespace Content.IntegrationTests.Tests.Destructible
Assert.That(spawnEntitiesBehavior.Spawn.Keys.Single(), Is.EqualTo(SpawnedEntityId));
Assert.That(spawnEntitiesBehavior.Spawn.Values.Single(), Is.EqualTo(new MinMax {Min = 1, Max = 1}));
var entitiesInRange = IoCManager.Resolve<IEntityLookup>().GetEntitiesInRange(coordinates, 2);
var entitiesInRange = EntitySystem.Get<EntityLookupSystem>().GetEntitiesInRange(coordinates, 2);
var found = false;
foreach (var entity in entitiesInRange)

View File

@@ -29,7 +29,7 @@ namespace Content.Server.Atmos.EntitySystems
if (airtight.FixAirBlockedDirectionInitialize)
{
var rotateEvent = new RotateEvent(airtight.Owner, Angle.Zero, xform.WorldRotation);
var rotateEvent = new RotateEvent(airtight.Owner, Angle.Zero, xform.WorldRotation, xform);
OnAirtightRotated(uid, airtight, ref rotateEvent);
}

View File

@@ -15,7 +15,7 @@ namespace Content.Server.Atmos.EntitySystems
{
public sealed partial class AtmosphereSystem
{
[Dependency] private readonly IEntityLookup _lookup = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
private const int HotspotSoundCooldownCycles = 200;

View File

@@ -167,7 +167,7 @@ namespace Content.Server.Cargo.Components
var offsets = new Vector2i[] { new Vector2i(0, 1), new Vector2i(1, 1), new Vector2i(1, 0), new Vector2i(1, -1),
new Vector2i(0, -1), new Vector2i(-1, -1), new Vector2i(-1, 0), new Vector2i(-1, 1), };
var lookup = IoCManager.Resolve<IEntityLookup>();
var lookup = EntitySystem.Get<EntityLookupSystem>();
var gridId = _entMan.GetComponent<TransformComponent>(Owner).GridID;
// TODO: Should use anchoring.

View File

@@ -101,7 +101,7 @@ namespace Content.Server.Chat.Commands
}
}
// Get all entities in range of the suicider
var entities = IoCManager.Resolve<IEntityLookup>().GetEntitiesInRange(owner, 1, LookupFlags.Approximate | LookupFlags.IncludeAnchored).ToArray();
var entities = EntitySystem.Get<EntityLookupSystem>().GetEntitiesInRange(owner, 1, LookupFlags.Approximate | LookupFlags.IncludeAnchored).ToArray();
if (entities.Length > 0)
{

View File

@@ -139,7 +139,7 @@ namespace Content.Server.Chemistry.Components
var xform = _entities.GetComponent<TransformComponent>(Owner);
var mapGrid = MapManager.GetGrid(xform.GridID);
var tile = mapGrid.GetTileRef(xform.Coordinates.ToVector2i(_entities, MapManager));
var lookup = IoCManager.Resolve<IEntityLookup>();
var lookup = EntitySystem.Get<EntityLookupSystem>();
var solutionFraction = 1 / Math.Floor(averageExposures);

View File

@@ -26,7 +26,7 @@ namespace Content.Server.Chemistry.TileReactions
FixedPoint2 ITileReaction.TileReact(TileRef tile, ReagentPrototype reagent, FixedPoint2 reactVolume)
{
var entities = IoCManager.Resolve<IEntityLookup>().GetEntitiesIntersecting(tile).ToArray();
var entities = EntitySystem.Get<EntityLookupSystem>().GetEntitiesIntersecting(tile).ToArray();
var amount = FixedPoint2.Zero;
var entMan = IoCManager.Resolve<IEntityManager>();
foreach (var entity in entities)

View File

@@ -52,7 +52,7 @@ namespace Content.Server.Construction.Conditions
var transform = entityManager.GetComponent<TransformComponent>(uid);
var indices = transform.Coordinates.ToVector2i(entityManager, IoCManager.Resolve<IMapManager>());
var entities = indices.GetEntitiesInTile(transform.GridID, LookupFlags.Approximate | LookupFlags.IncludeAnchored, IoCManager.Resolve<IEntityLookup>());
var entities = indices.GetEntitiesInTile(transform.GridID, LookupFlags.Approximate | LookupFlags.IncludeAnchored, EntitySystem.Get<EntityLookupSystem>());
foreach (var ent in entities)
{

View File

@@ -76,7 +76,7 @@ namespace Content.Server.Construction
}
}
foreach (var near in IoCManager.Resolve<IEntityLookup>().GetEntitiesInRange(user!, 2f, LookupFlags.Approximate))
foreach (var near in EntitySystem.Get<EntityLookupSystem>().GetEntitiesInRange(user!, 2f, LookupFlags.Approximate))
{
yield return near;
}

View File

@@ -36,7 +36,7 @@ namespace Content.Server.Electrocution
{
public sealed class ElectrocutionSystem : SharedElectrocutionSystem
{
[Dependency] private readonly IEntityLookup _entityLookup = default!;
[Dependency] private readonly EntityLookupSystem _entityLookup = default!;
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly StatusEffectsSystem _statusEffectsSystem = default!;

View File

@@ -45,7 +45,7 @@ namespace Content.Server.Explosion.EntitySystems
// TODO move this to the component
private static readonly SoundSpecifier ExplosionSound = new SoundCollectionSpecifier("explosion");
[Dependency] private readonly IEntityLookup _entityLookup = default!;
[Dependency] private readonly EntityLookupSystem _entityLookup = default!;
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly IMapManager _maps = default!;
[Dependency] private readonly IRobustRandom _random = default!;

View File

@@ -18,7 +18,7 @@ namespace Content.Server.Flash
{
internal sealed class FlashSystem : SharedFlashSystem
{
[Dependency] private readonly IEntityLookup _entityLookup = default!;
[Dependency] private readonly EntityLookupSystem _entityLookup = default!;
[Dependency] private readonly IGameTiming _gameTiming = default!;
[Dependency] private readonly StunSystem _stunSystem = default!;
[Dependency] private readonly InventorySystem _inventorySystem = default!;

View File

@@ -24,7 +24,7 @@ public sealed class SpillableSystem : EntitySystem
[Dependency] private readonly PuddleSystem _puddleSystem = default!;
[Dependency] private readonly IMapManager _mapManager = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly IEntityLookup _entityLookup = default!;
[Dependency] private readonly EntityLookupSystem _entityLookup = default!;
[Dependency] private readonly AdminLogSystem _logSystem = default!;
public override void Initialize()

View File

@@ -29,7 +29,7 @@ namespace Content.Server.Ghost
[Dependency] private readonly MindSystem _mindSystem = default!;
[Dependency] private readonly SharedActionsSystem _actions = default!;
[Dependency] private readonly VisibilitySystem _visibilitySystem = default!;
[Dependency] private readonly IEntityLookup _lookup = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
[Dependency] private readonly FollowerSystem _followerSystem = default!;
public override void Initialize()

View File

@@ -161,7 +161,7 @@ namespace Content.Server.Morgue.Components
yield break;
}
var entityLookup = IoCManager.Resolve<IEntityLookup>();
var entityLookup = EntitySystem.Get<EntityLookupSystem>();
foreach (var entity in entityLookup.GetEntitiesIntersecting(_tray.Value, flags: LookupFlags.None))
{
yield return entity;

View File

@@ -19,7 +19,7 @@ namespace Content.Server.Nuke
[Dependency] private readonly NukeCodeSystem _codes = default!;
[Dependency] private readonly ItemSlotsSystem _itemSlots = default!;
[Dependency] private readonly PopupSystem _popups = default!;
[Dependency] private readonly IEntityLookup _lookup = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
[Dependency] private readonly IChatManager _chat = default!;
public override void Initialize()

View File

@@ -10,7 +10,7 @@ namespace Content.Server.Physics.Controllers
{
public sealed class ConveyorController : VirtualController
{
[Dependency] private readonly IEntityLookup _lookup = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
[Dependency] private readonly IMapManager _mapManager = default!;
[Dependency] private readonly ConveyorSystem _conveyor = default!;
[Dependency] private readonly SharedContainerSystem _container = default!;

View File

@@ -11,7 +11,7 @@ namespace Content.Server.Pinpointer
{
public sealed class ServerPinpointerSystem : SharedPinpointerSystem
{
[Dependency] private readonly IEntityLookup _entityLookup = default!;
[Dependency] private readonly EntityLookupSystem _entityLookup = default!;
public override void Initialize()
{

View File

@@ -13,7 +13,7 @@ namespace Content.Server.Radiation
public sealed class RadiationPulseSystem : EntitySystem
{
[Dependency] private readonly IEntityManager _entMan = default!;
[Dependency] private readonly IEntityLookup _lookup = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
private const float RadiationCooldown = 1.0f;
private float _accumulator;

View File

@@ -17,7 +17,7 @@ namespace Content.Server.Singularity.EntitySystems
[UsedImplicitly]
public sealed class SingularitySystem : SharedSingularitySystem
{
[Dependency] private readonly IEntityLookup _lookup = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
[Dependency] private readonly IMapManager _mapManager = default!;
[Dependency] private readonly SharedContainerSystem _container = default!;

View File

@@ -475,7 +475,7 @@ namespace Content.Server.Storage.Components
protected virtual IEnumerable<EntityUid> DetermineCollidingEntities()
{
var entityLookup = IoCManager.Resolve<IEntityLookup>();
var entityLookup = EntitySystem.Get<EntityLookupSystem>();
return entityLookup.GetEntitiesIntersecting(Owner, _enteringRange, LookupFlags.Approximate);
}

View File

@@ -565,7 +565,7 @@ namespace Content.Server.Storage.Components
if (_areaInsert && (eventArgs.Target == null || !_entityManager.HasComponent<SharedItemComponent>(eventArgs.Target.Value)))
{
var validStorables = new List<EntityUid>();
foreach (var entity in IoCManager.Resolve<IEntityLookup>().GetEntitiesInRange(eventArgs.ClickLocation, _areaInsertRadius, LookupFlags.None))
foreach (var entity in EntitySystem.Get<EntityLookupSystem>().GetEntitiesInRange(eventArgs.ClickLocation, _areaInsertRadius, LookupFlags.None))
{
if (entity.IsInContainer()
|| entity == eventArgs.User

View File

@@ -10,7 +10,7 @@ namespace Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Systems;
public sealed class TelepathicArtifactSystem : EntitySystem
{
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly IEntityLookup _lookup = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
[Dependency] private readonly SharedPopupSystem _popupSystem = default!;
public override void Initialize()

View File

@@ -51,7 +51,7 @@ public sealed class FollowerSystem : EntitySystem
// Since we parent our observer to the followed entity, we need to detach
// before they get deleted so that we don't get recursively deleted too.
private void OnFollowedTerminating(EntityUid uid, FollowedComponent component, EntityTerminatingEvent args)
private void OnFollowedTerminating(EntityUid uid, FollowedComponent component, ref EntityTerminatingEvent args)
{
StopAllFollowers(uid, component);
}

View File

@@ -157,9 +157,9 @@ namespace Content.Shared.Maps
/// Helper that returns all entities in a turf.
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static IEnumerable<EntityUid> GetEntitiesInTile(this TileRef turf, LookupFlags flags = LookupFlags.IncludeAnchored, IEntityLookup? lookupSystem = null)
public static IEnumerable<EntityUid> GetEntitiesInTile(this TileRef turf, LookupFlags flags = LookupFlags.IncludeAnchored, EntityLookupSystem? lookupSystem = null)
{
lookupSystem ??= IoCManager.Resolve<IEntityLookup>();
lookupSystem ??= EntitySystem.Get<EntityLookupSystem>();
if (!GetWorldTileBox(turf, out var worldBox))
return Enumerable.Empty<EntityUid>();
@@ -170,7 +170,7 @@ namespace Content.Shared.Maps
/// <summary>
/// Helper that returns all entities in a turf.
/// </summary>
public static IEnumerable<EntityUid> GetEntitiesInTile(this EntityCoordinates coordinates, LookupFlags flags = LookupFlags.IncludeAnchored, IEntityLookup? lookupSystem = null)
public static IEnumerable<EntityUid> GetEntitiesInTile(this EntityCoordinates coordinates, LookupFlags flags = LookupFlags.IncludeAnchored, EntityLookupSystem? lookupSystem = null)
{
var turf = coordinates.GetTileRef();
@@ -183,7 +183,7 @@ namespace Content.Shared.Maps
/// <summary>
/// Helper that returns all entities in a turf.
/// </summary>
public static IEnumerable<EntityUid> GetEntitiesInTile(this Vector2i indices, GridId gridId, LookupFlags flags = LookupFlags.IncludeAnchored, IEntityLookup? lookupSystem = null)
public static IEnumerable<EntityUid> GetEntitiesInTile(this Vector2i indices, GridId gridId, LookupFlags flags = LookupFlags.IncludeAnchored, EntityLookupSystem? lookupSystem = null)
{
return GetEntitiesInTile(indices.GetTileRef(gridId), flags, lookupSystem);
}

View File

@@ -7,5 +7,6 @@
suffix: AI
components:
- type: UtilityAI
startingGear: AssistantGear
behaviorSets:
- PathingDummy