Ejemplo n.º 1
0
    public static void CreateWallMount()
    {
        ObjectTile tile = TileBuilder.CreateTile <ObjectTile>(LayerType.Objects);

        tile.Rotatable = true;
        tile.Offset    = true;

        TileBuilder.CreateAsset(tile, "WallMountTile");
    }
Ejemplo n.º 2
0
    public static void CreateTable()
    {
        ConnectedTile tile = TileBuilder.CreateTile <ConnectedTile>(LayerType.Objects);

        tile.texturePath     = "Tables";
        tile.connectCategory = ConnectCategory.Tables;
        tile.connectType     = ConnectType.ToSameCategory;

        TileBuilder.CreateAsset(tile, "TableTile");
    }
        public static void CreateWallConnected()
        {
            var tile = TileBuilder.CreateTile <ConnectedTile>(LayerType.Structures);

            tile.texturePath     = "Walls";
            tile.connectCategory = ConnectCategory.Walls;
            tile.connectType     = ConnectType.ToSameCategory;

            TileBuilder.CreateAsset(tile, "WallTile");
        }
Ejemplo n.º 4
0
    public static void CreateWindow()
    {
        ConnectedTile tile = TileBuilder.CreateTile <ConnectedTile>(LayerType.Windows);

        tile.texturePath     = "Windows";
        tile.connectCategory = ConnectCategory.Windows;
        tile.connectType     = ConnectType.ToSameCategory;

        TileBuilder.CreateAsset(tile, "WindowTile");
    }
        private static void LoadTiles(string path)
        {
            Object[] assets = AssetDatabase.LoadAllAssetsAtPath(path);

            foreach (KeyValuePair <string, DmiIcon> entry in DmiIconData.Data)
            {
                if (entry.Key.Contains("floors.dmi"))                 // TODO only supports floors right now
                {
                    string folderPath = Path.Combine(tilesPath, assets[0].name);

                    foreach (DmiState state in entry.Value.states)
                    {
                        int dmiIndex = int.Parse(state.unityName.Replace("floors_", ""));

                        int tileCount = state.frames * state.dirs;

                        for (int e = 0; e < state.frames * state.dirs; e++)
                        {
                            string tileName = state.state + (tileCount > 1 ? "_" + e : "");

                            SimpleTile tile = TileBuilder.CreateTile <SimpleTile>(LayerType.Floors);
                            tile.sprite    = assets[dmiIndex + e + 1] as Sprite;
                            tile.LayerType = LayerType.Floors;

                            if (tileName.Length == 0)
                            {
                                tileName = "FloorTile";
                            }

                            TileBuilder.CreateAsset(tile, tileName, folderPath);
                        }
                    }

                    break;
                }
            }
        }
Ejemplo n.º 6
0
    public static void GenerateTiles(string subject)
    {
        //Moving old tiles
        string basePath  = Application.dataPath + "/Resources/Prefabs/";
        string basePath2 = basePath + subject + "/";
        //			Debug.Log (basePath2);
        int counter = 0;
        int created = 0;

        string[] scan = Directory.GetFiles(basePath2, "*.prefab", SearchOption.AllDirectories);
        foreach (string file in scan)
        {
            counter++;
            int t = scan.Length;
            EditorUtility.DisplayProgressBar(counter + "/" + scan.Length + " Generating Tiles for " + subject, "Tile: " + counter,
                                             counter / (float)scan.Length);
            //			Debug.Log ("Longpath data: " + file);

            //Get the filename without extention and path
            string name = Path.GetFileNameWithoutExtension(file);
            //			Debug.Log ("Creating tile for prefab: " + name);

            //Generating the path needed to hook onto for selecting the game object
            string smallPath = file.Substring(file.IndexOf("Assets") + 0);
            //			Debug.Log ("smallpath data: " + smallPath);


            //Generating the path needed to chose the right tile output sub-folder
            string subPath = smallPath.Substring(smallPath.IndexOf(subject) + 7);
            //			Debug.Log ("subPath data: " + subPath);
            string barePath = subPath.Substring(0, subPath.LastIndexOf(Path.DirectorySeparatorChar));
            //			Debug.Log ("barePath data: " + barePath);

            //Check if tile already exists
            if (File.Exists(Application.dataPath + "/Tilemaps/Tiles/" + subject + "/" + barePath + "/" + name + ".asset"))
            {
                //		Debug.Log ("A tile for " + name + " already exists... Skipping...");
            }
            else
            {
                //setup building the tile//
                ObjectTile tile = TileBuilder.CreateTile <ObjectTile>(LayerType.Objects);

                //Cast the gameobject
                GameObject cast = AssetDatabase.LoadAssetAtPath(smallPath, typeof(GameObject)) as GameObject;
                if (barePath == "/WallMounts")
                {
                    tile.Rotatable = true;
                    tile.Offset    = true;
                }
                else
                {
                    tile.Rotatable = false;
                    tile.Offset    = false;
                }
                tile.Object = cast;
                //Create the tile
                TileBuilder.CreateAsset(tile, name, "Assets/Tilemaps/Tiles/" + subject + "/" + barePath);
                PreviewSpriteBuilder.Create(cast);
                created++;
            }
        }
        EditorUtility.ClearProgressBar();
        Debug.Log(created + " / " + counter + " Tiles created for prefabs");
    }
Ejemplo n.º 7
0
 public static void CreateSimpleObject()
 {
     TileBuilder.CreateTile <SimpleTile>(LayerType.None, "SimpleTile");
 }
Ejemplo n.º 8
0
 public static void CreateObject()
 {
     TileBuilder.CreateTile <ObjectTile>(LayerType.Objects, "ObjectTile");
 }
Ejemplo n.º 9
0
 public static void CreateFloor()
 {
     TileBuilder.CreateTile <SimpleTile>(LayerType.Floors, "FloorTile");
 }
Ejemplo n.º 10
0
 public static void CreateConnectedTile()
 {
     TileBuilder.CreateTile <ConnectedTile>(LayerType.None, "ConnectedTile");
 }
Ejemplo n.º 11
0
    public static void GenerateTileMapPalette()
    {
        var basePath = Application.dataPath + "/Resources/Prefabs/";

        var generatedFolder = Path.GetDirectoryName($"{ Application.dataPath }/Tilemaps/Palettes/Generated/");

        if (generatedFolder != null)
        {
            Directory.CreateDirectory(generatedFolder);
        }

        foreach (var palette in _palettes)
        {
            var    title = palette[0];
            string subPath;
            string assetPath;
            string filePath;

            // Create palette asset
            var go = new GameObject();
            go.AddComponent <Grid>();

            var layerOne = new GameObject
            {
                name = "Layer1"
            };
            layerOne.transform.SetParent(go.transform);
            var tilemap         = layerOne.AddComponent <Tilemap>();
            var tilemapRenderer = layerOne.AddComponent <TilemapRenderer>();
            tilemapRenderer.enabled = false;

            var y = 0;
            for (var i = 1; i < palette.Length; i++)
            {
                var x      = 0;
                var folder = palette[i];
                var files  = Directory.GetFiles(basePath + folder, "*.prefab", SearchOption.AllDirectories);
                foreach (var file in files)
                {
                    var name = Path.GetFileNameWithoutExtension(file);

                    subPath   = $"Tilemaps/Resources/Tiles/Generated/{ title }/{ name }";
                    assetPath = $"Assets/{ subPath }";
                    filePath  = $"{ Application.dataPath }/{ subPath }/{ name }.asset";

                    if (File.Exists(filePath))
                    {
                        File.Delete(filePath);
                    }

                    // Build the tile
                    var tile = TileBuilder.CreateTile <ObjectTile>(LayerType.Objects);
                    var cast = AssetDatabase.LoadAssetAtPath(file.Substring(file.IndexOf("Assets", StringComparison.Ordinal) + 0), typeof(GameObject)) as GameObject;
                    tile.Rotatable     = false;
                    tile.Offset        = false;
                    tile.Object        = cast;
                    tile.PreviewSprite = PreviewSpriteBuilder.GetSpriteWithoutSaving(cast);

                    TileBuilder.CreateAsset(tile, name, assetPath);

                    var pos = new Vector3Int(x, y, 0);

                    tilemap.SetEditorPreviewTile(pos, tile);
                    tilemap.SetTile(pos, tile);

                    EditorUtility.SetDirty(tile);

                    x++;
                }

                y--;
            }

            var paletteInstance = ScriptableObject.CreateInstance <GridPalette>();
            paletteInstance.name = "Palette Settings";

            subPath   = $"/Tilemaps/Palettes/Generated/{ title }.prefab";
            assetPath = $"Assets{ subPath }";
            filePath  = $"{ Application.dataPath }{ subPath }";

            if (File.Exists(filePath))
            {
                AssetDatabase.DeleteAsset(assetPath);
                AssetDatabase.SaveAssets();
            }

            var prefab = PrefabUtility.SaveAsPrefabAsset(go, assetPath);
            AssetDatabase.AddObjectToAsset(paletteInstance, prefab);
            AssetDatabase.SaveAssets();

            GameObject.DestroyImmediate(go);
        }
    }
Ejemplo n.º 12
0
 public static void CreateAnimatedTile()
 {
     TileBuilder.CreateTile <AnimatedTile>(LayerType.None, "AnimatedTile");
 }