Example #1
0
    public void DrawMainView()
    {
        var customStyle = new GUIStyle();

        customStyle.alignment = TextAnchor.UpperCenter;
        customStyle.fontSize  = 17;
        GUI.Label(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, EditorGUILayout.GetControlRect().width, 30), "List of specialized classes:", customStyle);

        // Create color for each line
        GUIStyle gsLinePair = new GUIStyle();

        gsLinePair.normal.background = MakeTextureColor.MakeTexture(600, 1, new Color(0.5f, 0.5f, 0.5f, 0.5f));
        GUIStyle gsLineOdd = new GUIStyle();

        gsLineOdd.normal.background = MakeTextureColor.MakeTexture(600, 1, new Color(0.5f, 0.5f, 0.5f, 0.0f));

        EditorGUILayout.BeginVertical();
        scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition);

        for (int i = 0; i < Database.Instance.specializedClasses.Count; i++)
        {
            SpecializedClass specializedClass = Database.Instance.specializedClasses[i];

            // Changing line color
            if (i % 2 == 0)
            {
                GUILayout.BeginHorizontal(gsLinePair);
            }
            else
            {
                GUILayout.BeginHorizontal(gsLineOdd);
            }
            Rect rect = EditorGUILayout.GetControlRect();
            GUI.Label(rect, specializedClass.name);
            if (Event.current.type == EventType.MouseUp && rect.Contains(Event.current.mousePosition))
            {
                editor = Editor.CreateEditor(specializedClass);
                listSpecializedClass.index = Database.Instance.specializedClasses.IndexOf(specializedClass);
            }
            if (GUILayout.Button(new GUIContent("Edit"), GUILayout.Width(50)))
            {
                editor = Editor.CreateEditor(specializedClass);
                listSpecializedClass.index = Database.Instance.specializedClasses.IndexOf(specializedClass);
            }
            else if (GUILayout.Button(new GUIContent("Remove"), GUILayout.Width(90)))
            {
                removeSpecializedClass(specializedClass);
            }
            GUILayout.EndHorizontal();
        }

        EditorGUILayout.EndScrollView();
        EditorGUILayout.EndVertical();
    }
Example #2
0
    public override void OnInspectorGUI()
    {
        // Create color for each line
        GUIStyle gsLinePair = new GUIStyle();

        gsLinePair.normal.background = MakeTextureColor.MakeTexture(600, 1, new Color(0.5f, 0.5f, 0.5f, 0.5f));
        GUIStyle gsLineOdd = new GUIStyle();

        gsLineOdd.normal.background = MakeTextureColor.MakeTexture(600, 1, new Color(0.5f, 0.5f, 0.5f, 0.0f));


        // Atributes
        GUILayout.BeginVertical("Box");
        var titleStyle = new GUIStyle();

        titleStyle.alignment = TextAnchor.UpperCenter;
        titleStyle.fontSize  = 15;
        titleStyle.fontStyle = FontStyle.Bold;
        GUI.Label(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, EditorGUILayout.GetControlRect().width, 30), "Attributes:", titleStyle);
        for (int i = 0; i < Database.Instance.attributes.Count; i++)
        {
            Attribute attribute = Database.Instance.attributes[i];
            // Changing line color
            if (i % 2 == 0)
            {
                GUILayout.BeginHorizontal(gsLinePair);
            }
            else
            {
                GUILayout.BeginHorizontal(gsLineOdd);
            }
            Rect rect = EditorGUILayout.GetControlRect();
            GUI.Label(rect, attribute.name);
            GUILayout.EndHorizontal();
        }
        GUILayout.EndVertical();

        // Tags
        GUILayout.BeginVertical("Box");
        GUI.Label(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, EditorGUILayout.GetControlRect().width, 30), "Tags:", titleStyle);
        for (int i = 0; i < Database.Instance.tags.Count; i++)
        {
            string tag = Database.Instance.tags[i].tagName;
            // Changing line color
            if (i % 2 == 0)
            {
                GUILayout.BeginHorizontal(gsLinePair);
            }
            else
            {
                GUILayout.BeginHorizontal(gsLineOdd);
            }
            Rect rect = EditorGUILayout.GetControlRect();
            GUI.Label(rect, tag);
            GUILayout.EndHorizontal();
        }
        GUILayout.EndVertical();

        // Slot types
        GUILayout.BeginVertical("Box");
        GUI.Label(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, EditorGUILayout.GetControlRect().width, 30), "Slot types:", titleStyle);
        for (int i = 0; i < Database.Instance.slotTypes.Count; i++)
        {
            SlotType slotType = Database.Instance.slotTypes[i];
            // Changing line color
            if (i % 2 == 0)
            {
                GUILayout.BeginHorizontal(gsLinePair);
            }
            else
            {
                GUILayout.BeginHorizontal(gsLineOdd);
            }
            Rect rect = EditorGUILayout.GetControlRect();
            GUI.Label(rect, slotType.slotName);
            GUILayout.EndHorizontal();
        }
        GUILayout.EndVertical();

        // Items
        GUILayout.BeginVertical("Box");
        GUI.Label(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, EditorGUILayout.GetControlRect().width, 30), "Items:", titleStyle);
        for (int i = 0; i < Database.Instance.items.Count; i++)
        {
            Modifier item = Database.Instance.items[i];
            // Changing line color
            if (i % 2 == 0)
            {
                GUILayout.BeginHorizontal(gsLinePair);
            }
            else
            {
                GUILayout.BeginHorizontal(gsLineOdd);
            }
            Rect rect = EditorGUILayout.GetControlRect();
            GUI.Label(rect, item.name);
            GUILayout.EndHorizontal();
        }
        GUILayout.EndVertical();

        // Specialized classes
        GUILayout.BeginVertical("Box");
        GUI.Label(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, EditorGUILayout.GetControlRect().width, 30), "Specialized classes:", titleStyle);
        for (int i = 0; i < Database.Instance.specializedClasses.Count; i++)
        {
            SpecializedClass specializedClass = Database.Instance.specializedClasses[i];
            // Changing line color
            if (i % 2 == 0)
            {
                GUILayout.BeginHorizontal(gsLinePair);
            }
            else
            {
                GUILayout.BeginHorizontal(gsLineOdd);
            }
            Rect rect = EditorGUILayout.GetControlRect();
            GUI.Label(rect, specializedClass.name);
            GUILayout.EndHorizontal();
        }
        GUILayout.EndVertical();

        // Characters
        GUILayout.BeginVertical("Box");
        GUI.Label(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, EditorGUILayout.GetControlRect().width, 30), "Characters:", titleStyle);
        for (int i = 0; i < Database.Instance.characters.Count; i++)
        {
            Character character = Database.Instance.characters[i];
            // Changing line color
            if (i % 2 == 0)
            {
                GUILayout.BeginHorizontal(gsLinePair);
            }
            else
            {
                GUILayout.BeginHorizontal(gsLineOdd);
            }
            Rect rect = EditorGUILayout.GetControlRect();
            GUI.Label(rect, character.name);
            GUILayout.EndHorizontal();
        }
        GUILayout.EndVertical();

        // Teams
        GUILayout.BeginVertical("Box");
        GUI.Label(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, EditorGUILayout.GetControlRect().width, 30), "Teams:", titleStyle);
        for (int i = 0; i < Database.Instance.teams.Count; i++)
        {
            Team team = Database.Instance.teams[i];
            // Changing line color
            if (i % 2 == 0)
            {
                GUILayout.BeginHorizontal(gsLinePair);
            }
            else
            {
                GUILayout.BeginHorizontal(gsLineOdd);
            }
            Rect rect = EditorGUILayout.GetControlRect();
            GUI.Label(rect, team.name);
            GUILayout.EndHorizontal();
        }
        GUILayout.EndVertical();
    }