Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using UnityEditor;
- using System.Collections;
- using System.Collections.Generic;
- public class AchievementEditor : EditorWindow {
- Achievement achievement;
- Vector2 scrollPosition;
- int selected;
- bool editingAchi;
- int i;
- private List<string> achievements = new List<string>();
- private string id = "0"; //Used for Editor window id
- private string name = "Type name here...";
- private string desc = "Type description here...";
- private bool hidden = false;
- [MenuItem("Tools/Achievement Manager")]
- public static void Init(){
- AchievementEditor window = (AchievementEditor)EditorWindow.GetWindow(typeof(AchievementEditor));
- window.title = "Achievements";
- }
- public void LoadAchievements()
- {
- for (i = 0; i < achievement.achievements.Count; i++) {
- achievements.Add(achievement.achievements[i].name);
- }
- }
- public void OnEnable()
- {
- achievement = (Achievement)Resources.Load ("AchievementManager", typeof(Achievement));
- if(achievements.Count == 0)
- {
- LoadAchievements();
- }
- }
- void OnGUI(){
- EditorGUILayout.BeginHorizontal ();
- {
- scrollPosition = EditorGUILayout.BeginScrollView (scrollPosition, true, true, GUILayout.Width (position.width / 2.05f));
- {
- selected = GUILayout.SelectionGrid (selected, achievements.ToArray (), 2);
- }
- EditorGUILayout.EndScrollView ();
- EditorGUILayout.BeginVertical();
- {
- //If button "Add achievement" is clicked then set id textfield to achievement.achievements.Count
- if (GUILayout.Button ("Add Achievement")) {
- achievement.achievements.Add (new Achievement.AchievementItem ());
- id = (achievement.achievements.Count - 1).ToString ();
- achievement.achievements [StringToIntConverter (id)].id = StringToIntConverter (id);
- achievement.achievements [StringToIntConverter (id)].name = "Template " + id;
- achievements.Add (achievement.achievements [i].name);
- selected = 0;
- }
- if (GUILayout.Button ("Edit Achievement")) {
- if (selected <= (achievement.achievements.Count - 1)) {
- achievement.achievements [selected].name = name;
- achievement.achievements [selected].description = desc;
- achievement.achievements [selected].hidden = hidden;
- achievements [selected] = name;
- editingAchi = false;
- } else {
- Debug.Log ("A achievement with such ID doesn't exist");
- }
- }
- if (GUILayout.Button ("Remove Achievement")) {
- if (selected <= (achievement.achievements.Count - 1)) {
- achievement.achievements.RemoveAt (selected);
- achievements.RemoveAt (selected);
- selected = 0;
- } else {
- Debug.Log ("A achievement with such ID doesn't exist");
- }
- if(achievements.Count == 0)
- {
- selected = -1;
- Debug.Log ("No achievements to select.");
- }
- }
- }
- EditorGUILayout.EndVertical();
- }
- EditorGUILayout.EndHorizontal ();
- EditorGUILayout.Separator ();
- EditorGUILayout.BeginVertical ();
- {
- EditorGUILayout.LabelField ("ID:");
- id = EditorGUILayout.TextField (id);
- GUILayout.Space(7f);
- EditorGUILayout.LabelField ("Achievement Name:");
- name = EditorGUILayout.TextField (name);
- GUILayout.Space(7f);
- EditorGUILayout.LabelField ("Description:");
- desc = EditorGUILayout.TextArea (desc);
- GUILayout.Space(7f);
- EditorGUILayout.LabelField ("Hidden:");
- hidden = EditorGUILayout.Toggle (hidden);
- }
- EditorGUILayout.EndVertical ();
- GUILayout.Space(20f);
- if(selected > -1 && GUI.changed && !editingAchi)
- {
- name = achievement.achievements[selected].name;
- desc = achievement.achievements[selected].description;
- hidden = achievement.achievements[selected].hidden;
- }
- if(selected > -1 && GUI.changed)
- {
- id = achievement.achievements[selected].id.ToString();
- }
- GUILayout.Space (30);
- EditorGUILayout.LabelField ("Selected ID: " + selected.ToString());
- EditorGUILayout.LabelField ("List count: " + achievements.Count.ToString());
- EditorGUILayout.LabelField ("Editing?: " + editingAchi.ToString());
- }
- int StringToIntConverter(string value)
- {
- int id = int.Parse (value); //Converts value to int "idd"
- return id; //returns the int "idd"
- }
- bool IsNumeric(string value)
- {
- int number;
- bool id = int.TryParse (value, out number);
- return id;
- }
- void CheckForErrors(int errorid)
- {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement