Esempio n. 1
0
    void SubscribeAllTiles(Tilemap map, Dictionary <Vector3Int, TileData> tiles, List <MockRuleTile> subscribedTiles)
    {
        var size = map.size;

        for (int row = -size.y / 2; row < size.y; row++)
        {
            for (int col = -size.x / 2; col < size.x; col++)
            {
                var          pos  = new Vector3Int(col, row, 0);
                MockRuleTile tile = map.GetTile(pos) as MockRuleTile;
                if (tile != null)
                {
                    if (!subscribedTiles.Contains(tile))
                    {
                        Action <Vector3Int, TileData> act = null;
                        act = (position, tiledata) =>
                        {
                            if (!tiles.ContainsKey(position))
                            {
                                tiles.Add(position, tiledata);
                            }
                            else
                            {
                                tiles[position] = tiledata;
                            }
                        };
                        tile.OnGetTileData += act;

                        subscribedTiles.Add(tile);
                    }
                }
            }
        }
    }
    void ConverteToBseTile(Tilemap map)
    {
        var size = map.size;

        for (int row = -size.y / 2; row < size.y; row++)
        {
            for (int col = -size.x / 2; col < size.x; col++)
            {
                var          pos     = new Vector3Int(col, row, 0);
                MockRuleTile oldTile = map.GetTile(pos) as MockRuleTile;
                if (oldTile != null)
                {
                    if (!old_new_Tiles.ContainsKey(oldTile))
                    {
                        var newTile = oldTile.RealTile;
                        map.SetTile(pos, newTile);
                        old_new_Tiles.Add(oldTile, newTile);
                    }
                    else
                    {
                        map.SetTile(pos, old_new_Tiles[oldTile]);
                    }
                }
            }
        }
        map.RefreshAllTiles();

        Debug.Log("Convrting tilemap to real tiles in " + map.gameObject.name + " completed");
    }
Esempio n. 3
0
    void ConverteToSimpleTile(Tilemap map)
    {
        var size = map.size;

        for (int row = -size.y / 2; row < size.y; row++)
        {
            for (int col = -size.x / 2; col < size.x; col++)
            {
                var      pos     = new Vector3Int(col, row, 0);
                RuleTile oldTile = map.GetTile(pos) as RuleTile;
                if (oldTile != null)
                {
                    MockRuleTile newTile;
                    if (!old_new_Tiles.ContainsKey(oldTile))
                    {
                        newTile = new MockRuleTile(oldTile);
                        old_new_Tiles.Add(oldTile, newTile);
                    }
                    else
                    {
                        newTile = old_new_Tiles[oldTile];
                    }
                    map.SetTile(pos, newTile);
                }
            }
        }
    }