SnapGridComponent Removal (#3884)

* Removed SnapGridOffset, there is only center now.

* SnapGridComponent methods are now static.

* Removed SnapGridComponent.OnPositionChanged.

* Refactored static functions off SnapGridComponent to MapGrid.
Refactored away usages of SnapGridComponent.Position.

* Added Transform.Anchored for checking if an entity is a tile entity.
More refactoring for static MapGrid functions.

* Static snapgrid methods on MapGrid are no longer static.

* Add setter to ITransformComponent.Anchored.
Removed direct references to SnapGridComponent from content.

* Grid functions now deal with EntityUids instead of SnapGridComponents.
Began renaming public API functions from SnapGrid to Anchor.

* Remove the SnapGridComponent 'Offset' field from all yaml files. This was removed in code previously, so the yaml linter was upset.

* Update engine submodule to v0.4.46.
This commit is contained in:
Acruid
2021-04-28 10:49:37 -07:00
committed by GitHub
parent 578b767791
commit 00e01d51fd
74 changed files with 306 additions and 309 deletions

View File

@@ -36,12 +36,11 @@ namespace Content.Shared.GameObjects.EntitySystems
private void UpdateAll()
{
foreach (var comp in EntityManager.ComponentManager.EntityQuery<SubFloorHideComponent>(true))
foreach (var comp in ComponentManager.EntityQuery<SubFloorHideComponent>(true))
{
if (!_mapManager.TryGetGrid(comp.Owner.Transform.GridID, out var grid)) return;
var snapPos = comp.Owner.GetComponent<SnapGridComponent>();
UpdateTile(grid, snapPos.Position);
var transform = comp.Owner.Transform;
if (!_mapManager.TryGetGrid(transform.GridID, out var grid)) return;
UpdateTile(grid, grid.TileIndicesFor(transform.Coordinates));
}
}
@@ -119,22 +118,21 @@ namespace Content.Shared.GameObjects.EntitySystems
{
var tile = grid.GetTileRef(position);
var tileDef = (ContentTileDefinition) _tileDefinitionManager[tile.Tile.TypeId];
foreach (var snapGridComponent in grid.GetSnapGridCell(position, SnapGridOffset.Center))
foreach (var anchored in grid.GetAnchoredEntities(position))
{
var entity = snapGridComponent.Owner;
if (!entity.TryGetComponent(out SubFloorHideComponent? subFloorComponent))
if (!ComponentManager.TryGetComponent(anchored, out SubFloorHideComponent? subFloorComponent))
{
continue;
}
// Show sprite
if (entity.TryGetComponent(out SharedSpriteComponent? spriteComponent))
if (ComponentManager.TryGetComponent(anchored, out SharedSpriteComponent ? spriteComponent))
{
spriteComponent.Visible = ShowAll || !subFloorComponent.Running || tileDef.IsSubFloor;
}
// So for collision all we care about is that the component is running.
if (entity.TryGetComponent(out PhysicsComponent? physicsComponent))
if (ComponentManager.TryGetComponent(anchored, out PhysicsComponent ? physicsComponent))
{
physicsComponent.CanCollide = !subFloorComponent.Running;
}