Exemple #1
0
    void OnGUI()
    {
        generate_sprite_sheet_image = GUILayout.Toggle(generate_sprite_sheet_image, "Generate Sprite Sheet Image");
        Select_Image();

        if (img == null)
        {
            return;
        }

        if (GUILayout.Button("Generate Tiles"))
        {
            //generate the top tile. They are A2 style tile
            Generate_Tiles(path, sub_blocks_top, sub_blocks_top_to_import,
                           mini_tile_w, mini_tile_h, wBlock, hBlock, generate_sprite_sheet_image);

            A3_Tiles_Importer_Window.Generate_Wall_Tiles(path, sub_blocks_wall, sub_blocks_wall_to_import, mini_tile_w, mini_tile_h, wBlock, hBlock, generate_sprite_sheet_image);
        }
        GUILayout.Label("Select the tile you want to import, then click the 'Generate Tiles' Button");
        //can select or deselect all
        GUILayout.BeginHorizontal();
        if (GUILayout.Button("Select All"))
        {
            if (sub_blocks_wall_to_import != null)
            {
                for (int i = 0; i < sub_blocks_wall_to_import.Count; i++)
                {
                    sub_blocks_wall_to_import[i] = true;
                }
            }

            if (sub_blocks_top_to_import != null)
            {
                for (int i = 0; i < sub_blocks_top_to_import.Count; i++)
                {
                    sub_blocks_top_to_import[i] = true;
                }
            }
        }
        if (GUILayout.Button("Select None"))
        {
            if (sub_blocks_wall_to_import != null)
            {
                for (int i = 0; i < sub_blocks_wall_to_import.Count; i++)
                {
                    sub_blocks_wall_to_import[i] = false;
                }
            }

            if (sub_blocks_top_to_import != null)
            {
                for (int i = 0; i < sub_blocks_top_to_import.Count; i++)
                {
                    sub_blocks_top_to_import[i] = false;
                }
            }
        }
        GUILayout.EndHorizontal();
        scrollPosition = GUILayout.BeginScrollView(scrollPosition, true, true, GUI.skin.horizontalScrollbar, GUI.skin.verticalScrollbar);
        GUILayout.BeginVertical();
        GUILayout.Space(10);
        GUILayout.BeginHorizontal();
        int topCount  = sub_blocks_top != null ? sub_blocks_top.Count : -1;
        int wallCount = sub_blocks_wall != null ? sub_blocks_wall.Count : -1;

        for (int i = 0; i < Math.Max(topCount, wallCount); i++)
        {
            if (i != 0 && i % 8 == 0)
            {
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
            }
            GUILayout.BeginVertical();
            if (sub_blocks_top != null)
            {
                Texture2D sub_top = sub_blocks_top[i];
                sub_blocks_top_to_import[i] = GUILayout.Toggle(sub_blocks_top_to_import[i], sub_top);
            }

            if (sub_blocks_wall != null)
            {
                Texture2D sub_wall = sub_blocks_wall[i];
                sub_blocks_wall_to_import[i] = GUILayout.Toggle(sub_blocks_wall_to_import[i], sub_wall);
            }

            GUILayout.EndVertical();
        }
        GUILayout.EndHorizontal();

        GUILayout.EndVertical();
        GUILayout.EndScrollView();
    }
    void OnGUI()
    {
        generate_sprite_sheet_image = GUILayout.Toggle(generate_sprite_sheet_image, "Generate Sprite Sheet Image");
        if (GUILayout.Button("Load Image"))
        {
            path = EditorUtility.OpenFilePanel("Load Tile Set", ".", "*.*");
            if (path != null && path != "" && File.Exists(path) && path.Contains("A4"))
            {
                img = new Texture2D(1, 1);
                byte[] bytedata = File.ReadAllBytes(path);
                img.LoadImage(bytedata);

                //get the sliced part
                Tiles_A4_Utility.A4_Tile_Slice_File(img, out wBlock, out hBlock, out mini_tile_w, out mini_tile_h, out sub_blocks_top, out sub_blocks_wall);
                sub_blocks_top_to_import = new List <bool>();
                for (int i = 0; i < sub_blocks_top.Count; i++)
                {
                    sub_blocks_top_to_import.Add(false);
                }

                sub_blocks_wall_to_import = new List <bool>();
                for (int i = 0; i < sub_blocks_wall.Count; i++)
                {
                    sub_blocks_wall_to_import.Add(false);
                }
            }
            else
            {
                if (path != null && path != "")
                {
                    EditorUtility.DisplayDialog("Selection error!", "You have to select a file or an A4 file compatibile with RPG MAKER tile set", "OK");
                }
            }
        }

        if (img == null)
        {
            return;
        }

        if (GUILayout.Button("Generate Tiles"))
        {
            //generate the top tile. They are A2 style tile
            Generate_Tiles(path, sub_blocks_top, sub_blocks_top_to_import,
                           mini_tile_w, mini_tile_h, wBlock, hBlock, generate_sprite_sheet_image);

            A3_Tiles_Importer_Window.Generate_Wall_Tiles(path, sub_blocks_wall, sub_blocks_wall_to_import, mini_tile_w, mini_tile_h, wBlock, hBlock, generate_sprite_sheet_image);
        }
        GUILayout.Label("Select the tile you want to import, then click the 'Generate Tiles' Button");
        scrollPosition = GUILayout.BeginScrollView(scrollPosition, true, true, GUI.skin.horizontalScrollbar, GUI.skin.verticalScrollbar);
        GUILayout.BeginVertical();
        GUILayout.Space(10);
        GUILayout.BeginHorizontal();
        for (int i = 0; i < sub_blocks_top.Count; i++)
        {
            if (i != 0 && i % 8 == 0)
            {
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
            }
            GUILayout.BeginVertical();
            Texture2D sub_top = sub_blocks_top[i];
            sub_blocks_top_to_import[i] = GUILayout.Toggle(sub_blocks_top_to_import[i], sub_top);

            Texture2D sub_wall = sub_blocks_wall[i];
            sub_blocks_wall_to_import[i] = GUILayout.Toggle(sub_blocks_wall_to_import[i], sub_wall);

            GUILayout.EndVertical();
        }
        GUILayout.EndHorizontal();

        GUILayout.EndVertical();
        GUILayout.EndScrollView();
    }