Example #1
0
        public static bool IsGridPassableAtCoordinate(Grid gameWorldGrid, Vector2Int position)
        {
            bool foundPassible = false;

            for (var i = 0; i < gameWorldGrid.transform.childCount; i++)
            {
                Tilemap child = gameWorldGrid.transform.GetChild(i).GetComponent <Tilemap>();
                child.CompressBounds();
                TileBase tile = child.GetTile(new Vector3Int(position.x, position.y, 0));
                if (tile == null)
                {
                    continue;
                }
                BlockingTile convertedTile = tile as BlockingTile;

                if ((convertedTile != null) && (convertedTile.isImpassible))
                {
//                    Debug.Log("Tile is impassible: " + convertedTile.isImpassible);
                    return(false);
                }
                else
                {
                    foundPassible = true;
                }
            }
            return(foundPassible);
        }
Example #2
0
 void BuildBlockingTiles(List <BlockingTileSpawnInfo> layout)
 {
     //blocker tiles
     foreach (BlockingTileSpawnInfo info in layout)
     {
         BlockingTile t = CreateBlockerTileAt(info.GridPosition);
         t.SetHealth(info.Health);
     }
 }
Example #3
0
    public override void EnableInspector(Tile t)
    {
        base.EnableInspector(t);
        if (!(t is BlockingTile))
        {
            throw new System.Exception("trying to inspect tile with non suitable tile inspector");
        }
        blockerTileInspecting = t as BlockingTile;

        health.text = blockerTileInspecting.Health.ToString();
    }
Example #4
0
    public BlockingTile CreateBlockerTileAt(Vector2Int pos)
    {
        //TODO check if in bounds probably;
        GameObject   obj = Instantiate(blockingTilePrefab);
        BlockingTile t   = obj.GetComponent <BlockingTile>();

        t.Initialize(new Vector3Int(pos.x, pos.y, 0), this);
        t.name = t.GetType().ToString() + ": " + t.LayeredGridPosition.ToString();
        t.PlaceInWorld();
        t.transform.SetParent(transform);

        Tiles.Add(t.LayeredGridPosition, t);
        OnTileCreated?.Invoke(t);
        return(t);
    }