예제 #1
0
        /// <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);
        }
예제 #2
0
        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();
        }