private AirtightComponent GetObstructingComponent(MapIndices indices) { foreach (var v in _grid.GetSnapGridCell(indices, SnapGridOffset.Center)) { if (v.Owner.TryGetComponent <AirtightComponent>(out var ac)) { return(ac); } } return(null); }
private void UpdateTile(IMapGrid grid, MapIndices position) { var tile = grid.GetTileRef(position); var tileDef = (ContentTileDefinition)_tileDefinitionManager[tile.Tile.TypeId]; foreach (var snapGridComponent in grid.GetSnapGridCell(position, SnapGridOffset.Center)) { var entity = snapGridComponent.Owner; if (!entity.TryGetComponent(out SubFloorHideComponent subFloorComponent) || !entity.TryGetComponent(out ISpriteComponent spriteComponent)) { continue; } spriteComponent.Visible = !subFloorComponent.Running || tileDef.IsSubFloor; } }