Ejemplo n.º 1
0
        private void dgAvailableDevs_ItemDataBound(object sender, DataGridItemEventArgs e)
        {
            DataGrid dg = sender as DataGrid;

            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.EditItem)
            {
                // display Comp Level description
                CompLevel level = (CompLevel)Convert.ToInt32(e.Item.Cells[3].Text);
                e.Item.Cells[3].Text = level.ToString();
            }

            if (e.Item.ItemType == ListItemType.EditItem)
            {
                // bind unassigned tasks ddl
                //IDataProvider data = DataProviderFactory.CreateInstance();
                //DataTable dt = data.GetTasks();
                //DataView dv = dt.DefaultView;
                //dv.RowFilter = "status=0";

                //DropDownList ddl = e.Item.Cells[4].FindControl("ddlTasks") as DropDownList;
                //ddl.DataSource = dv;
                //ddl.DataTextField = "name";
                //ddl.DataValueField = "id";
                //ddl.DataBind();

                //if (ddl.Items.Count == 0)
                //{
                //    e.Item.Cells[4].Text = "[no unassigned tasks]";
                //    dg.UpdateCommand -= new DataGridCommandEventHandler(this.dgAvailableDevs_UpdateCommand);
                //}
            }
        }
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        // find levels
        if (GUILayout.Button("Find Levels"))
        {
            Debug.Log(playlist.endLevel);
            // find all the levels
            playlist.levels.Clear();
            string[] scenes = AssetDatabase.FindAssets("t:Scene");
            string[] levels = AssetDatabase.FindAssets("t:LevelDetails");
            foreach (string lvl in levels)
            {
                LevelDetails level = (LevelDetails)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(lvl), typeof(LevelDetails));

                if (level.level_name != playlist.tutorial.level_name && level.level_name != playlist.endLevel.level_name)
                {
                    playlist.levels.Add(level);
                }
            }
            // find scenes in the levels folder and create level details
            foreach (string scene in scenes)
            {
                if (AssetDatabase.GUIDToAssetPath(scene).Contains("/Levels/"))
                {
                    string[] path     = AssetDatabase.GUIDToAssetPath(scene).Split('/');
                    string   lvl_path = "";
                    for (int i = 0; i < path.Length - 1; i++)
                    {
                        lvl_path += path[i] + "/";
                    }
                    string level_name = path[path.Length - 1].Replace(".unity", "");
                    // see if the level already exists
                    bool level_missing = true;
                    foreach (LevelDetails lvld in playlist.levels)
                    {
                        if (lvld.level_name == level_name)
                        {
                            level_missing = false;
                        }
                    }
                    if (level_name == playlist.tutorial.level_name || level_name == playlist.endLevel.level_name)
                    {
                        level_missing = false;
                    }
                    if (level_missing)
                    {
                        LevelDetails olevel = (LevelDetails)AssetDatabase.LoadAssetAtPath(lvl_path + level_name + ".asset", typeof(LevelDetails));
                        if (olevel == null)
                        {
                            LevelDetails nLevel = ScriptableObject.CreateInstance <LevelDetails>();
                            nLevel.level_name = level_name;
                            nLevel.name       = level_name;

                            AssetDatabase.CreateAsset(nLevel, lvl_path + level_name + ".asset");
                            if (!playlist.levels.Contains(nLevel))
                            {
                                playlist.levels.Add(nLevel);
                            }
                        }
                        else
                        {
                            if (!playlist.levels.Contains(olevel))
                            {
                                playlist.levels.Add(olevel);
                            }
                        }
                        EditorUtility.SetDirty(playlist);
                    }
                }
            }
        }
        // sort levels
        if (GUILayout.Button("Sort Levels"))
        {
            /*
             * foreach (LevelDetails lvl in playlist.levels)
             * {
             *  Debug.Log(lvl.level_name + ": " +lvl.level_rank.ToString());
             * }
             */
            //
            CompLevel compLevel = new CompLevel();
            playlist.levels.Sort(comparer: compLevel);
            playlist.SavePlaylistToChild(0);

            CompLevel2 compLevel2 = new CompLevel2();
            playlist.levels.Sort(comparer: compLevel2);
            playlist.SavePlaylistToChild(1);

            CompLevel3 compLevel3 = new CompLevel3();
            playlist.levels.Sort(comparer: compLevel3);
            playlist.SavePlaylistToChild(2);

            CompLevel4 compLevel4 = new CompLevel4();
            playlist.levels.Sort(comparer: compLevel4);
            playlist.SavePlaylistToChild(3);

            CompLevel5 compLevel5 = new CompLevel5();
            playlist.levels.Sort(comparer: compLevel5);
            playlist.SavePlaylistToChild(4);

            CompLevel6 compLevel6 = new CompLevel6();
            playlist.levels.Sort(comparer: compLevel6);
            playlist.SavePlaylistToChild(5);

            CompLevel7 compLevel7 = new CompLevel7();
            playlist.levels.Sort(comparer: compLevel7);
            playlist.SavePlaylistToChild(6);

            EditorUtility.SetDirty(playlist);
        }

        if (GUILayout.Button("Playlist 0"))
        {
            playlist.LoadPlaylist(0);
            EditorUtility.SetDirty(playlist);
        }
        if (GUILayout.Button("Playlist 1"))
        {
            playlist.LoadPlaylist(1);
            EditorUtility.SetDirty(playlist);
        }
        if (GUILayout.Button("Playlist 2"))
        {
            playlist.LoadPlaylist(2);
            EditorUtility.SetDirty(playlist);
        }
        if (GUILayout.Button("Playlist 3"))
        {
            playlist.LoadPlaylist(3);
            EditorUtility.SetDirty(playlist);
        }
        if (GUILayout.Button("Playlist 4"))
        {
            playlist.LoadPlaylist(4);
            EditorUtility.SetDirty(playlist);
        }
        if (GUILayout.Button("Playlist 5"))
        {
            playlist.LoadPlaylist(5);
            EditorUtility.SetDirty(playlist);
        }
        if (GUILayout.Button("Playlist 6"))
        {
            playlist.LoadPlaylist(6);
            EditorUtility.SetDirty(playlist);
        }
    }