private void DrawMapDataField()
        {
            TilemapContainer tilemap  = this.Target;
            TmxAsset         tmxAsset = (TmxAsset)EditorGUILayout.ObjectField("Map Data", tilemap.TmxAsset, typeof(TmxAsset), false);

            if (tilemap.TmxAsset != null && tmxAsset == null)
            {
                FlaiDebug.LogWithTypeTag <TilemapContainerInspector>("Map Data set null!");
            }

            if (tilemap.TmxAsset != tmxAsset || (tilemap.TmxAsset != null && tilemap.TmxAsset.NeedsRefresh))
            {
                tilemap.TmxAsset = tmxAsset;
                tilemap.OnMapUpdated();
                EditorUtility.SetDirty(tilemap);
            }
        }
Esempio n. 2
0
        protected static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromPath)
        {
            if (importedAssets == null)
            {
                return;
            }

            foreach (string tilemapAsset in importedAssets.Where(asset => asset != null && asset.EndsWith(".tmx")))
            {
                if (tilemapAsset == null)
                {
                    continue;
                }

                const string TilemapPath = "Assets/Tile Maps/Maps/";
                string       fileName    = Path.GetFileNameWithoutExtension(tilemapAsset);
                string       finalPath   = Path.Combine(TilemapPath, fileName) + ".asset";

                // ensure that the directory exists
                Directory.CreateDirectory(TilemapPath);

                TmxAsset tmxAsset = TilemapLoader.LoadTilemap(tilemapAsset);
                TmxAsset previous = (TmxAsset)AssetDatabase.LoadAssetAtPath(finalPath, typeof(TmxAsset));
                if (previous != null)
                {
                    previous.CopyFrom(tmxAsset);
                    FlaiDebug.LogWithTypeTag <TilemapImporter>("Tilemap {0} updated!", fileName);
                    EditorUtility.SetDirty(previous);
                }
                else
                {
                    AssetDatabase.CreateAsset(tmxAsset, finalPath);
                    EditorUtility.SetDirty(tmxAsset);
                    FlaiDebug.LogWithTypeTag <TilemapImporter>("Tilemap {0} imported succesfully!", fileName);
                }

                TilemapImporter.SaveTilemapFile(tilemapAsset);
                AssetDatabase.DeleteAsset(tilemapAsset);
            }

            AssetDatabase.Refresh();
            AssetDatabase.SaveAssets();
        }
Esempio n. 3
0
        private static void InitializeTilemapData(TmxAsset data, TmxData tmxData)
        {
            TilesetManager tilesetManager = TilemapLoader.CreateTilesetManager(tmxData);

            data.Initialize(tmxData.TmxTileLayers.Select(tl => new TilemapData(tl.TileData, tmxData.MapSize, tl.Properties, tl.Name)), tilesetManager);
        }