Ejemplo n.º 1
0
        public override Texture2D RenderStaticPreview(string assetPath, Object[] subAssets, int width, int height)
        {
            Auto_Tile_Base myTile = target as Auto_Tile_Base;

            if (myTile == null)
            {
                return(null);
            }

            var preview = AssetPreview.GetAssetPreview(myTile.preview);

            if (preview == null)
            {
                return(null);
            }

            Texture2D cache = new Texture2D(width, height);

            EditorUtility.CopySerialized(preview, cache);

            return(cache);
        }
Ejemplo n.º 2
0
 public override void RefreshTile(Vector3Int position, ITilemap tilemap)
 {
     //called when click che mouse on the tilemap. Check if I need to refresh near tile
     base.RefreshTile(position, tilemap);
     for (int x = -1; x < 2; x++)
     {
         for (int y = -1; y < 2; y++)
         {
             if (x == 0 && y == 0)
             {
                 continue;
             }
             Vector3Int     tmp_pos  = position + new Vector3Int(x, y, 0);
             Auto_Tile_Base tmp_Tile = tilemap.GetTile(tmp_pos) as Auto_Tile_Base;
             if (tmp_Tile != null //&& tmp_Tile.id_tile_type == this.id_tile_type
                 )
             {
                 tilemap.RefreshTile(tmp_pos);
             }
         }
     }
 }
Ejemplo n.º 3
0
    protected override byte Compute_Neighbours(Vector3Int pos, ITilemap map)
    {
        int        res     = 0;
        Vector3Int tmp_pos = pos + Vector3Int.right;

        Auto_Tile_Base tmp_Tile = map.GetTile(tmp_pos) as Auto_Tile_Base;

        tmp_Tile = map.GetTile(tmp_pos) as Auto_Tile_Base;
        if (tmp_Tile != null && tmp_Tile.id_tile_type == this.id_tile_type)
        {
            res |= (1 << 3);
        }

        tmp_pos  = pos + Vector3Int.left;
        tmp_Tile = map.GetTile(tmp_pos) as Auto_Tile_Base;
        if (tmp_Tile != null && tmp_Tile.id_tile_type == this.id_tile_type)
        {
            res |= (1 << 4);
        }

        return((byte)res);
    }
Ejemplo n.º 4
0
    /// <summary>
    /// Compute the near cell status in the form of a byte mask
    /// </summary>
    /// <param name="pos"></param>
    /// <param name="map"></param>
    /// <returns></returns>
    protected virtual byte Compute_Neighbours(Vector3Int pos, ITilemap map)
    {
        int            res      = 0;
        Vector3Int     tmp_pos  = pos + Vector3Int.right + Vector3Int.up;
        Auto_Tile_Base tmp_Tile = map.GetTile(tmp_pos) as Auto_Tile_Base;

        if (tmp_Tile != null && (tmp_Tile as A1_WaterFall_Tile != null || tmp_Tile.id_tile_type == this.id_tile_type))
        {
            res |= (1 << 0);
        }

        tmp_pos  = pos + Vector3Int.up;
        tmp_Tile = map.GetTile(tmp_pos) as Auto_Tile_Base;
        if (tmp_Tile != null && (tmp_Tile as A1_WaterFall_Tile != null || tmp_Tile.id_tile_type == this.id_tile_type))
        {
            res |= (1 << 1);
        }

        tmp_pos  = pos + Vector3Int.up + Vector3Int.left;
        tmp_Tile = map.GetTile(tmp_pos) as Auto_Tile_Base;
        if (tmp_Tile != null && (tmp_Tile as A1_WaterFall_Tile != null || tmp_Tile.id_tile_type == this.id_tile_type))
        {
            res |= (1 << 2);
        }

        tmp_pos  = pos + Vector3Int.right;
        tmp_Tile = map.GetTile(tmp_pos) as Auto_Tile_Base;
        if (tmp_Tile != null && (tmp_Tile as A1_WaterFall_Tile != null || tmp_Tile.id_tile_type == this.id_tile_type))
        {
            res |= (1 << 3);
        }

        tmp_pos  = pos + Vector3Int.left;
        tmp_Tile = map.GetTile(tmp_pos) as Auto_Tile_Base;
        if (tmp_Tile != null && (tmp_Tile as A1_WaterFall_Tile != null || tmp_Tile.id_tile_type == this.id_tile_type))
        {
            res |= (1 << 4);
        }

        tmp_pos  = pos + Vector3Int.down + Vector3Int.right;
        tmp_Tile = map.GetTile(tmp_pos) as Auto_Tile_Base;
        if (tmp_Tile != null && (tmp_Tile as A1_WaterFall_Tile != null || tmp_Tile.id_tile_type == this.id_tile_type))
        {
            res |= (1 << 5);
        }

        tmp_pos  = pos + Vector3Int.down;
        tmp_Tile = map.GetTile(tmp_pos) as Auto_Tile_Base;
        if (tmp_Tile != null && (tmp_Tile as A1_WaterFall_Tile != null || tmp_Tile.id_tile_type == this.id_tile_type))
        {
            res |= (1 << 6);
        }

        tmp_pos  = pos + Vector3Int.down + Vector3Int.left;
        tmp_Tile = map.GetTile(tmp_pos) as Auto_Tile_Base;
        if (tmp_Tile != null && (tmp_Tile as A1_WaterFall_Tile != null || tmp_Tile.id_tile_type == this.id_tile_type))
        {
            res |= (1 << 7);
        }

        return((byte)res);
    }