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:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user