Refactor UpdateKinematics() and fix a lot of Content warnings (#1709)
Most warnings were related to EntityQuery and IPhysicsComponent. Partially fixes #1650 and fixes #1682
This commit is contained in:
@@ -27,7 +27,6 @@ namespace Content.Server.GameObjects.EntitySystems.AI.Steering
|
||||
|
||||
#pragma warning disable 649
|
||||
[Dependency] private IMapManager _mapManager;
|
||||
[Dependency] private IEntityManager _entityManager;
|
||||
[Dependency] private IPauseManager _pauseManager;
|
||||
#pragma warning restore 649
|
||||
private PathfindingSystem _pathfindingSystem;
|
||||
|
||||
@@ -17,18 +17,14 @@ namespace Content.Server.GameObjects.EntitySystems
|
||||
[UsedImplicitly]
|
||||
public class AtmosphereSystem : EntitySystem
|
||||
{
|
||||
#pragma warning disable 649
|
||||
[Dependency] private readonly IMapManager _mapManager = default!;
|
||||
[Dependency] private readonly IEntityManager _entityManager = default!;
|
||||
[Dependency] private readonly IPauseManager _pauseManager = default!;
|
||||
#pragma warning restore 649
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
_mapManager.TileChanged += OnTileChanged;
|
||||
EntityQuery = new MultipleTypeEntityQuery(new List<Type>(){typeof(IGridAtmosphereComponent)});
|
||||
}
|
||||
|
||||
public IGridAtmosphereComponent? GetGridAtmosphere(GridId gridId)
|
||||
@@ -36,7 +32,7 @@ namespace Content.Server.GameObjects.EntitySystems
|
||||
// TODO Return space grid atmosphere for invalid grids or grids with no atmos
|
||||
var grid = _mapManager.GetGrid(gridId);
|
||||
|
||||
if (!_entityManager.TryGetEntity(grid.GridEntityId, out var gridEnt)) return null;
|
||||
if (!EntityManager.TryGetEntity(grid.GridEntityId, out var gridEnt)) return null;
|
||||
|
||||
return gridEnt.TryGetComponent(out IGridAtmosphereComponent atmos) ? atmos : null;
|
||||
}
|
||||
@@ -45,13 +41,12 @@ namespace Content.Server.GameObjects.EntitySystems
|
||||
{
|
||||
base.Update(frameTime);
|
||||
|
||||
foreach (var gridEnt in RelevantEntities)
|
||||
foreach (var (mapGridComponent, gridAtmosphereComponent) in EntityManager.ComponentManager.EntityQuery<IMapGridComponent, IGridAtmosphereComponent>())
|
||||
{
|
||||
var grid = gridEnt.GetComponent<IMapGridComponent>();
|
||||
if (_pauseManager.IsGridPaused(grid.GridIndex))
|
||||
if (_pauseManager.IsGridPaused(mapGridComponent.GridIndex))
|
||||
continue;
|
||||
|
||||
gridEnt.GetComponent<IGridAtmosphereComponent>().Update(frameTime);
|
||||
gridAtmosphereComponent.Update(frameTime);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -58,23 +58,13 @@ namespace Content.Server.GameObjects.EntitySystems
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
foreach (var entity in RelevantEntities)
|
||||
foreach (var (moverComponent, collidableComponent) in EntityManager.ComponentManager.EntityQuery<IMoverComponent, ICollidableComponent>())
|
||||
{
|
||||
var entity = moverComponent.Owner;
|
||||
if (_pauseManager.IsEntityPaused(entity))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var mover = entity.GetComponent<IMoverComponent>();
|
||||
var physics = entity.GetComponent<IPhysicsComponent>();
|
||||
if (entity.TryGetComponent<ICollidableComponent>(out var collider))
|
||||
{
|
||||
UpdateKinematics(entity.Transform, mover, physics, collider);
|
||||
}
|
||||
else
|
||||
{
|
||||
UpdateKinematics(entity.Transform, mover, physics);
|
||||
}
|
||||
UpdateKinematics(entity.Transform, moverComponent, collidableComponent);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +83,7 @@ namespace Content.Server.GameObjects.EntitySystems
|
||||
ev.Entity.RemoveComponent<PlayerInputMoverComponent>();
|
||||
}
|
||||
|
||||
if (ev.Entity.TryGetComponent(out IPhysicsComponent physics) &&
|
||||
if (ev.Entity.TryGetComponent(out ICollidableComponent physics) &&
|
||||
physics.TryGetController(out MoverController controller))
|
||||
{
|
||||
controller.StopMoving();
|
||||
|
||||
Reference in New Issue
Block a user