Example #1
0
    private static void RefreshDatabase()
    {
        DatabaseManager m = new DatabaseManager();

        spawns = new SpawnSection();
        mobs   = new MobsSection();
        items  = new ItemsSection();
        skills = new SkillsSection();

        SpritesManager.Initialize();

        mobs.LoadMobs();
        items.LoadData();
        spawns.LoadMobs();
        skills.LoadMobs();
    }
Example #2
0
    void OnGUI()
    {
        globalTab = GUILayout.Toolbar(globalTab, new string[] { "Global", "Mobs", "Items", "Spawner", "Skills" });
        switch (globalTab)
        {
        case 0:
            GUILayout.Label("Tabs:");
            tab = GUILayout.Toolbar(tab, new string[] { "Stats", "Packets", "Items" });
            switch (tab)
            {
            case 0:
                GUILayout.Label("Stats Settings", EditorStyles.boldLabel);
                DrawStatsSection();
                break;

            case 1:
                DrawPacketsSection();
                break;

            case 2:
                DrawItemsSection();
                break;
            }
            break;

        case 1:
            GUILayout.Label("Tabs:");
            mobsTab = GUILayout.Toolbar(mobsTab, new string[] { "List", "Edit" });
            switch (mobsTab)
            {
            case 0:
                if (GUILayout.Button("Connect to Database..."))
                {
                    try
                    {
                        mobs.LoadMobs();
                    }
                    catch (Exception ex)
                    {
                        EditorUtility.DisplayDialog("Error", "Can't load database: " + ex.ToString(), "Ok");
                    }
                }

                if (GUILayout.Button("Save to JSON"))
                {
                    mobs.SaveToJson();
                }

                if (GUILayout.Button("Add"))
                {
                    mobs.editingData = new MobData();
                    mobsTab          = 1;
                    mobs.newEntry    = true;
                }

                foreach (var item in mobs.mobs)
                {
                    GUILayout.BeginHorizontal();
                    if (GUILayout.Button("Edit", GUILayout.Width(60)))
                    {
                        mobs.newEntry = false;
                        mobs.EditObject(item.Key);
                        mobsTab = 1;
                    }
                    GUILayout.Label(item.Key + ": " + item.Value.stats[StatType.NAME]);
                    GUILayout.EndHorizontal();
                }
                break;

            case 1:
                if (mobs.editingData == null)
                {
                    GUILayout.Label("Select data first from the list...");
                }
                else
                {
                    GUILayout.Label("Id");
                    GUILayout.Label(mobs.editingData.id.ToString());

                    GUILayout.Label("Name");
                    mobs.editingData.stats[StatType.NAME] = GUILayout.TextField((string)mobs.editingData.stats[StatType.NAME]);

                    GUILayout.Label("Health");
                    mobs.editingData.stats[StatType.HEALTH] = EditorGUILayout.IntField((int)mobs.editingData.stats[StatType.HEALTH]);

                    GUILayout.Label("Lvl");
                    mobs.editingData.stats[StatType.LEVEL] = (byte)EditorGUILayout.IntField((byte)mobs.editingData.stats[StatType.LEVEL]);

                    GUILayout.Label("Base Model");
                    mobs.editingData.baseModel = EditorGUILayout.TextField(mobs.editingData.baseModel);

                    GUILayout.Label("Damage");
                    GUILayout.BeginHorizontal();
                    mobs.editingData.stats[StatType.MIN_DMG] = EditorGUILayout.IntField((int)mobs.editingData.stats[StatType.MIN_DMG]);
                    mobs.editingData.stats[StatType.MAX_DMG] = EditorGUILayout.IntField((int)mobs.editingData.stats[StatType.MAX_DMG]);
                    GUILayout.EndHorizontal();

                    if (GUILayout.Button("Save", GUILayout.Width(60)))
                    {
                        mobs.SaveEditedObject();
                        mobsTab          = 0;
                        mobs.editingData = null;
                        RefreshDatabase();
                    }
                    if (GUILayout.Button("Back", GUILayout.Width(60)))
                    {
                        mobsTab          = 0;
                        mobs.editingData = null;
                        RefreshDatabase();
                    }
                }
                break;
            }
            break;

        case 2:
            GUILayout.Label("Tabs:");
            itemsTab = GUILayout.Toolbar(itemsTab, new string[] { "List", "Edit" });
            switch (itemsTab)
            {
            case 0:
                if (GUILayout.Button("Connect to Database..."))
                {
                    try
                    {
                        items.LoadData();
                    }
                    catch (Exception ex)
                    {
                        EditorUtility.DisplayDialog("Error", "Can't load database: " + ex.ToString(), "Ok");
                    }
                }

                if (GUILayout.Button("Save to JSON"))
                {
                    items.SaveToJson();
                }

                if (GUILayout.Button("Add"))
                {
                    items.editingData = new ItemData();
                    itemsTab          = 1;
                    items.newEntry    = true;
                }

                foreach (var item in items.items)
                {
                    GUILayout.BeginHorizontal();
                    if (GUILayout.Button("Edit", GUILayout.Width(60)))
                    {
                        items.newEntry = false;
                        items.EditObject(item.Key);
                        itemsTab = 1;
                    }
                    GUILayout.Label(item.Key + ": " + item.Value.name);
                    GUILayout.EndHorizontal();
                }
                break;

            case 1:
                if (items.editingData == null)
                {
                    GUILayout.Label("Select data first from the list...");
                }
                else
                {
                    GUILayout.Label("Id");
                    GUILayout.Label(items.editingData.id.ToString());

                    items.icon = (Sprite)EditorGUILayout.ObjectField("Icon", items.icon, typeof(Sprite), allowSceneObjects: false);

                    GUILayout.Label("Name");
                    items.editingData.name = GUILayout.TextField(items.editingData.name);

                    GUILayout.Label("Slot");
                    items.editingData.slot = (byte)(ItemSlot)EditorGUILayout.EnumPopup((ItemSlot)items.editingData.slot);

                    if (GUILayout.Button("Save", GUILayout.Width(60)))
                    {
                        items.SaveEditedObject();
                        itemsTab          = 0;
                        items.editingData = null;
                        RefreshDatabase();
                    }
                    if (GUILayout.Button("Back", GUILayout.Width(60)))
                    {
                        itemsTab          = 0;
                        items.editingData = null;
                        RefreshDatabase();
                    }
                }
                break;
            }
            break;

        case 3:
            GUILayout.Label("Tabs:");
            spawnsTab = GUILayout.Toolbar(spawnsTab, new string[] { "List", "Edit" });
            switch (spawnsTab)
            {
            case 0:
                if (GUILayout.Button("Connect to Database..."))
                {
                    try
                    {
                        spawns.LoadMobs();
                    }
                    catch (Exception ex)
                    {
                        EditorUtility.DisplayDialog("Error", "Can't load database: " + ex.ToString(), "Ok");
                    }
                }

                if (GUILayout.Button("Add"))
                {
                    spawns.editingData = new SpawnData();
                    spawnsTab          = 1;
                    spawns.newEntry    = true;
                }

                foreach (var item in spawns.spawns)
                {
                    GUILayout.BeginHorizontal();
                    if (GUILayout.Button("Edit", GUILayout.Width(60)))
                    {
                        spawns.newEntry = false;
                        spawns.EditObject(item.Key);
                        spawnsTab = 1;
                    }
                    if (GUILayout.Button("Delete", GUILayout.Width(60)))
                    {
                        if (EditorUtility.DisplayDialog("Delete entry", "Are you really want to delete this entry?", "Yes", "No"))
                        {
                            spawns.RemoveObject(item.Key);
                            RefreshDatabase();
                        }
                    }
                    GUILayout.Label(item.Key + ": " + item.Value.mobId + "[" + item.Value.pos.ToString() + "]");
                    GUILayout.EndHorizontal();
                }
                break;

            case 1:
                if (spawns.editingData == null)
                {
                    GUILayout.Label("Select data first from the list...");
                }
                else
                {
                    GUILayout.Label("Id");
                    GUILayout.Label(spawns.editingData.id.ToString());

                    GUILayout.Label("Mob Id");
                    spawns.editingData.mobId = EditorGUILayout.IntField(spawns.editingData.mobId);

                    GUILayout.Label("Rotation");
                    spawns.editingData.rot = (short)EditorGUILayout.IntField(spawns.editingData.rot);

                    GUILayout.Label("Position");
                    GUILayout.BeginHorizontal();
                    spawns.editingData.pos.X = EditorGUILayout.FloatField(spawns.editingData.pos.X);
                    spawns.editingData.pos.Y = EditorGUILayout.FloatField(spawns.editingData.pos.Y);
                    spawns.editingData.pos.Z = EditorGUILayout.FloatField(spawns.editingData.pos.Z);
                    GUILayout.EndHorizontal();

                    if (GUILayout.Button("Save"))
                    {
                        spawns.SaveEditedObject();
                        spawnsTab          = 0;
                        spawns.editingData = null;
                        RefreshDatabase();
                    }

                    if (GUILayout.Button("Back"))
                    {
                        spawnsTab          = 0;
                        spawns.editingData = null;
                        RefreshDatabase();
                    }
                }
                break;
            }
            break;

        case 4:
            GUILayout.Label("Tabs:");
            skillsTab = GUILayout.Toolbar(skillsTab, new string[] { "List", "Edit" });
            switch (skillsTab)
            {
            case 0:
                if (GUILayout.Button("Connect to Database..."))
                {
                    try
                    {
                        skills.LoadMobs();
                    }
                    catch (Exception ex)
                    {
                        EditorUtility.DisplayDialog("Error", "Can't load database: " + ex.ToString(), "Ok");
                    }
                }
                if (GUILayout.Button("Save to JSON"))
                {
                    skills.SaveToJson();
                }

                if (GUILayout.Button("Add"))
                {
                    skills.editingData = new SkillData();
                    skillsTab          = 1;
                    skills.newEntry    = true;
                }

                foreach (var item in skills.skills)
                {
                    GUILayout.BeginHorizontal();
                    if (GUILayout.Button("Edit", GUILayout.Width(60)))
                    {
                        skills.newEntry = false;
                        skills.EditObject(item.Key);
                        skillsTab = 1;
                    }
                    if (GUILayout.Button("Delete", GUILayout.Width(60)))
                    {
                        if (EditorUtility.DisplayDialog("Delete entry", "Are you really want to delete this entry?", "Yes", "No"))
                        {
                            skills.RemoveObject(item.Key);
                            RefreshDatabase();
                        }
                    }

                    GUILayout.Label(item.Key + ": " + item.Value.name);
                    GUILayout.EndHorizontal();
                }
                break;

            case 1:
                if (skills.editingData == null)
                {
                    GUILayout.Label("Select data first from the list...");
                }
                else
                {
                    GUILayout.Label("Id");
                    GUILayout.Label(skills.editingData.id.ToString());

                    skills.icon = (Sprite)EditorGUILayout.ObjectField("Icon", skills.icon, typeof(Sprite), allowSceneObjects: false);

                    GUILayout.Label("Name");
                    skills.editingData.name = GUILayout.TextField(skills.editingData.name);
                    GUILayout.Label("Description");
                    skills.editingData.description = GUILayout.TextField(skills.editingData.description);

                    if (GUILayout.Button("Save", GUILayout.Width(60)))
                    {
                        skills.SaveEditedObject();
                        skillsTab          = 0;
                        skills.editingData = null;
                        RefreshDatabase();
                    }

                    if (GUILayout.Button("Back", GUILayout.Width(60)))
                    {
                        skillsTab          = 0;
                        skills.editingData = null;
                        RefreshDatabase();
                    }
                }
                break;
            }
            break;
        }
    }