Example #1
0
    void OnGUI()
    {
        GUILayout.BeginHorizontal(GUI.skin.FindStyle("Toolbar"));
        GUI.SetNextControlName("OrderAchievementButton");
        if (GUILayout.Button(actualOrder, GUI.skin.FindStyle("ToolBarButton")))
        {
            GUI.FocusControl("OrderAchievementButton");
            orderAchievements();
        }
        if (GUILayout.Button("Add Achievement", GUI.skin.FindStyle("ToolBarButton")))
        {
            achieverScript.addAchievement();
        }
        displayTags = GUILayout.Toggle(displayTags, "Display Tags", "ToolBarButton");
        GUILayout.FlexibleSpace();
        searchString = GUILayout.TextField(searchString, GUI.skin.FindStyle("ToolbarSeachTextField"), GUILayout.Width(140));
        if (GUILayout.Button("", GUI.skin.FindStyle("ToolbarSeachCancelButton")))
        {
            // Remove focus if cleared
            searchString = "";
            GUI.FocusControl(null);
        }
        GUILayout.EndHorizontal();
        EditorGUILayout.BeginHorizontal();
        EditorGUI.BeginChangeCheck();
        circle         = AssetDatabase.LoadAssetAtPath("Assets/ScoreLib/Sprites/Voyant.png", typeof(Texture)) as Texture;
        achieverScript = Achiever.instance;
        if (achieverScript == null)
        {
            return;
        }
        EditorGUILayout.EndHorizontal();
        EditorStyles.textField.wordWrap = true;

        EditorGUILayout.BeginVertical();
        scrollPos = EditorGUILayout.BeginScrollView(scrollPos);
        try
        {
            int i = 0;
            foreach (var achievement in Achiever.instance.achievementsScriptableObject.achievements.Where(a => a.tags.Contains(searchString) || a.name.Contains(searchString)).OrderBy(a => a.position))
            {
                if (achievement.position == -1)
                {
                    achievement.position = Achiever.instance.achievementsScriptableObject.achievements.IndexOf(achievement);
                }
                EditorGUILayout.BeginHorizontal();
                EditorGUIUtility.labelWidth = 40;
                achievement.name            = EditorGUILayout.TextField("Name", achievement.name, GUILayout.Width(140), GUILayout.Height(50));
                string resultCheckOperationnel;
                checkOperationel(achievement, out resultCheckOperationnel);
                Rect rectTexture1 = new Rect(new Vector2(5, i * 52 + 20), new Vector2(15, 15));
                GUI.DrawTexture(rectTexture1, circle, ScaleMode.ScaleToFit, true);//52 est parfait je suppose 50+1+1 donc height+margehaute+margebasse
                string resultCheckUsed;
                checkUsed(i, out resultCheckUsed);
                Rect rectTexture2 = new Rect(new Vector2(25, i * 52 + 20), new Vector2(15, 15));
                GUI.DrawTexture(rectTexture2, circle, ScaleMode.ScaleToFit, true);
                GUI.color = Color.white;
                textureTooltip(rectTexture1, resultCheckOperationnel);
                textureTooltip(rectTexture2, resultCheckUsed);

                /*
                 * if (rect.Contains(Event.current.mousePosition))
                 * {
                 *  Rect test = new Rect(GUILayoutUtility.GetLastRect().x + 40, GUILayoutUtility.GetLastRect().y, GUILayoutUtility.GetLastRect().width - 40, GUILayoutUtility.GetLastRect().height);
                 *  GUI.Box(test, "");
                 *  EditorGUI.HelpBox(test, "tooltip", MessageType.Warning);
                 * }*/
                EditorGUIUtility.labelWidth = 70;
                EditorGUILayout.PrefixLabel("Description");
                achievement.description     = EditorGUILayout.TextArea(achievement.description, GUILayout.Height(50), GUILayout.Width(150));
                EditorGUIUtility.labelWidth = 95;
                achievement.valueNeeded     = EditorGUILayout.FloatField("Required Value", achievement.valueNeeded);
                if (displayTags)
                {
                    EditorGUIUtility.labelWidth = 35;
                    EditorGUILayout.PrefixLabel("Tags");
                    achievement.tags = EditorGUILayout.TextArea(achievement.tags, GUILayout.Height(50), GUILayout.Width(100));
                }

                EditorGUIUtility.labelWidth = 60;
                achievement.croissant       = EditorGUILayout.Toggle("Croissant", achievement.croissant, GUILayout.Width(75));
                if (GUILayout.Button("Remove Achievement"))
                {
                    removeAchievement(achievement);
                }
                EditorGUILayout.EndHorizontal();
                i++;
            }
        }
        catch (System.NullReferenceException) { }
        catch (System.InvalidOperationException) { }
        EditorGUILayout.EndScrollView();
        if (EditorGUI.EndChangeCheck())
        {
            EditorUtility.SetDirty(achieverScript.achievementsScriptableObject);
        }
        EditorGUILayout.EndVertical();
    }
Example #2
0
    void OnGUI()
    {
        GUILayout.BeginHorizontal(GUI.skin.FindStyle("Toolbar"));
        GUI.SetNextControlName("OrderScoresButton");
        if (GUILayout.Button(actualOrder, GUI.skin.FindStyle("ToolBarButton")))
        {
            GUI.FocusControl("OrderScoresButton");
            orderScore();
        }
        if (GUILayout.Button("Add Score", GUI.skin.FindStyle("ToolBarButton")))
        {
            scorerScript.addScore();
        }
        if (GUILayout.Button("Reset PlayerPrefs", GUI.skin.FindStyle("ToolBarButton")))
        {
            PlayerPrefs.DeleteAll();
            foreach (var score in scorerScript.scoresScriptableObject.scores)
            {
                if (score.croissant)
                {
                    score.value = 0;
                }
                else
                {
                    score.value = int.MaxValue;
                }
            }
        }
        displayTags = GUILayout.Toggle(displayTags, "Display Tags", "ToolBarButton");
        GUILayout.FlexibleSpace();
        searchString = GUILayout.TextField(searchString, GUI.skin.FindStyle("ToolbarSeachTextField"), GUILayout.Width(140));
        if (GUILayout.Button("", GUI.skin.FindStyle("ToolbarSeachCancelButton")))
        {
            // Remove focus if cleared
            searchString = "";
            GUI.FocusControl(null);
        }
        GUILayout.EndHorizontal();
        EditorGUILayout.BeginHorizontal();
        EditorGUI.BeginChangeCheck();
        circle = AssetDatabase.LoadAssetAtPath("Assets/ScoreLib/Sprites/Voyant.png", typeof(Texture)) as Texture;

        scorerScript   = Scorer.instance;
        achieverScript = Achiever.instance;

        if (scorerScript == null || achieverScript == null)
        {
            return;
        }

        EditorGUILayout.EndHorizontal();
        EditorStyles.textField.wordWrap = true;

        EditorGUILayout.BeginVertical();
        scrollPos = EditorGUILayout.BeginScrollView(scrollPos);
        try
        {
            int i = 0;
            foreach (var score in scorerScript.scoresScriptableObject.scores.Where(a => a.tags.Contains(searchString) || a.name.Contains(searchString)).OrderBy(a => a.position))
            {
                if (score.position == -1)
                {
                    score.position = scorerScript.scoresScriptableObject.scores.IndexOf(score);
                }
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("Id " + scorerScript.scoresScriptableObject.scores.IndexOf(score), EditorStyles.boldLabel, GUILayout.Width(60));
                string resultCheckOperationnel;
                checkOperationel(score, out resultCheckOperationnel);
                Rect rectTexture = new Rect(new Vector2(54, i * 20 + 4), new Vector2(15, 15));
                GUI.DrawTexture(rectTexture, circle, ScaleMode.ScaleToFit, true);
                GUI.color = Color.white;
                EditorGUIUtility.labelWidth = 40;
                score.scoreType             = (Scorer.ScoreType)EditorGUILayout.EnumPopup("Type", score.scoreType, GUILayout.Width(155));
                AchieverWindow.textureTooltip(rectTexture, resultCheckOperationnel);
                EditorGUIUtility.labelWidth = 40;
                score.name = EditorGUILayout.TextField("Name", score.name);
                EditorGUIUtility.labelWidth = 70;
                EditorGUILayout.PrefixLabel("Description");
                score.description           = EditorGUILayout.TextArea(score.description, GUILayout.Width(150));
                EditorGUIUtility.labelWidth = 43;
                score.value = EditorGUILayout.FloatField("Value", score.value);
                if (displayTags)
                {
                    EditorGUIUtility.labelWidth = 35;
                    EditorGUILayout.PrefixLabel("Tags");
                    score.tags = EditorGUILayout.TextArea(score.tags, GUILayout.Width(100));
                }
                score.croissant = EditorGUILayout.Toggle("Croissant", score.croissant, GUILayout.Width(75));
                int achievementFlags = getAchievementFlags(score);
                achievementFlags = EditorGUILayout.MaskField("Achievements", achievementFlags, adapt(achieverScript.getNames()));
                updateListAchievement(score, achievementFlags);
                if (score.scoreType == Scorer.ScoreType.GameScore)
                {
                    int[]    namesOriginIndex;
                    string[] names = adapt(scorerScript.getNames(out namesOriginIndex));
                    int      relatedScoresFlags = getRelatedScoreFlags(score, namesOriginIndex);
                    relatedScoresFlags = EditorGUILayout.MaskField("Related Score", relatedScoresFlags, names);
                    updateListRelatedScore(score, relatedScoresFlags, namesOriginIndex);
                }

                if (GUILayout.Button("Remove Score"))
                {
                    removeScore(score);
                }
                EditorGUILayout.EndHorizontal();
                i++;
            }
        }
        catch (System.NullReferenceException) { }
        catch (System.InvalidOperationException) { }
        EditorGUILayout.EndScrollView();
        if (EditorGUI.EndChangeCheck())
        {
            EditorUtility.SetDirty(scorerScript.scoresScriptableObject);
        }
        EditorGUILayout.EndVertical();
    }