/// <inheritdoc/> public override void OnEnable() { base.OnEnable(); this.TilesetBrush = Brush as TilesetBrush; this.TilesetRecord = BrushDatabase.Instance.FindTilesetRecord(TilesetBrush.Tileset); this.brushAttachPrefabTick = (this.TilesetBrush.attachPrefab != null); }
private TilesetAssetRecord ScanAtlas(string assetPath, IList <BrushAssetRecord> newRecords) { Tileset tileset = null; Object[] assets = AssetDatabase.LoadAllAssetsAtPath(assetPath); foreach (var asset in assets) { tileset = asset as Tileset; if (tileset != null) { break; } } if (tileset == null) { return(null); } // Is this a master brush? bool master = assetPath.Contains("/Master/"); var tilesetRecord = new TilesetAssetRecord(assetPath, tileset, master); var brushRecords = new List <BrushAssetRecord>(); foreach (var asset in assets) { var tilesetBrush = asset as TilesetBrush; if (tilesetBrush == null) { continue; } var tilesetBrushRecord = this.AddBrushRecord(tileset, tilesetBrush, assetPath, master); newRecords.Add(tilesetBrushRecord); brushRecords.Add(tilesetBrushRecord); } // Sort atlas brush index by atlas index. brushRecords.Sort((x, y) => { int a = (x.Brush as TilesetBrush).tileIndex; int b = (y.Brush as TilesetBrush).tileIndex; return((a == b) ? x.DisplayName.CompareTo(y.DisplayName) : a - b); }); tilesetRecord.SetBrushRecords(brushRecords.ToArray()); return(tilesetRecord); }
/// <inheritdoc/> protected internal override void BeginView() { var tilesetRecord = BrushDatabase.Instance.FindTilesetRecord(this.Tileset); if (tilesetRecord != this.tilesetRecord) { this.tilesetRecord = tilesetRecord; foreach (var tab in this.tabs) { tab.OnNewTilesetRecord(this.tilesetRecord); } } base.BeginView(); }