示例#1
0
        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);
                }
            }
        }
示例#2
0
 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);
         }
     }
 }