public void BeginResourceInform(List <ResourceData> resourceDatas) { //We are the first object to start this process. //We create a new hashset of tiles to ignore and start with adding ourselves. HashSet <GridTile> tilesToIgnore = new HashSet <GridTile> { ParentTile }; foreach (GridTile tile in GetAdjacentGridTiles()) { if (tile == null || !tile.Occipied) { continue; } //If this tile has a resource conduct entity, we will inform it of the resources //We want to get the multi tile occupier instead if the entity is null ResourceConductEntity cEntity = (tile?.Entity ?? tile?.MultiTileOccupier) as ResourceConductEntity; if (cEntity != null) { cEntity.OnNewResourceViaConnection_Event(resourceDatas, tilesToIgnore); } } }
public void ContinueResourceInform(List <ResourceData> resourceData, HashSet <GridTile> tilesToIgnore) { //Tell our neighbours that this resource exists. GridTile[] tiles = GetAdjacentGridTiles(); foreach (GridTile tile in tiles) { if (tile == null) { continue; } //Skip this tile if it was informed already from this operation queue. if (tilesToIgnore.Contains(tile)) { continue; } if (tile != null && tile.Entity != null) { ResourceConductEntity ent = tile.Entity as ResourceConductEntity; ent?.OnNewResourceViaConnection_Event(resourceData, tilesToIgnore); } } }