Advertisement
Guest User

Untitled

a guest
Oct 9th, 2014
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.36 KB | None | 0 0
  1. using UnityEngine;
  2. using UnityEditor;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5.  
  6. public class AchievementEditor : EditorWindow {
  7.  
  8.     Achievement achievement;
  9.     Vector2 scrollPosition;
  10.  
  11.     int selected;
  12.     bool editingAchi;
  13.     int i;
  14.  
  15.     private List<string> achievements = new List<string>();
  16.     private string id = "0"; //Used for Editor window id
  17.  
  18.     private string name = "Type name here...";
  19.     private string desc = "Type description here...";
  20.     private bool hidden = false;
  21.  
  22.     [MenuItem("Tools/Achievement Manager")]
  23.     public static void Init(){
  24.         AchievementEditor window = (AchievementEditor)EditorWindow.GetWindow(typeof(AchievementEditor));
  25.         window.title = "Achievements";
  26.     }
  27.  
  28.     public void LoadAchievements()
  29.     {
  30.         for (i = 0; i < achievement.achievements.Count; i++) {
  31.             achievements.Add(achievement.achievements[i].name);
  32.         }
  33.     }
  34.  
  35.     public void OnEnable()
  36.     {
  37.         achievement = (Achievement)Resources.Load ("AchievementManager", typeof(Achievement));
  38.        
  39.         if(achievements.Count == 0)
  40.         {
  41.             LoadAchievements();
  42.         }
  43.     }
  44.  
  45.     void OnGUI(){
  46.  
  47.         EditorGUILayout.BeginHorizontal ();
  48.         {
  49.             scrollPosition = EditorGUILayout.BeginScrollView (scrollPosition, true, true, GUILayout.Width (position.width / 2.05f));
  50.             {
  51.                     selected = GUILayout.SelectionGrid (selected, achievements.ToArray (), 2);
  52.             }
  53.             EditorGUILayout.EndScrollView ();
  54.  
  55.             EditorGUILayout.BeginVertical();
  56.             {
  57.                 //If button "Add achievement" is clicked then set id textfield to achievement.achievements.Count
  58.                 if (GUILayout.Button ("Add Achievement")) {
  59.                     achievement.achievements.Add (new Achievement.AchievementItem ());
  60.                     id = (achievement.achievements.Count - 1).ToString ();
  61.                     achievement.achievements [StringToIntConverter (id)].id = StringToIntConverter (id);
  62.                     achievement.achievements [StringToIntConverter (id)].name = "Template " + id;
  63.        
  64.                     achievements.Add (achievement.achievements [i].name);
  65.                     selected = 0;
  66.                 }
  67.                 if (GUILayout.Button ("Edit Achievement")) {
  68.                     if (selected <= (achievement.achievements.Count - 1)) {
  69.                         achievement.achievements [selected].name = name;
  70.                         achievement.achievements [selected].description = desc;
  71.                         achievement.achievements [selected].hidden = hidden;
  72.                         achievements [selected] = name;
  73.                         editingAchi = false;
  74.                     } else {
  75.                         Debug.Log ("A achievement with such ID doesn't exist");
  76.                     }
  77.                 }
  78.                 if (GUILayout.Button ("Remove Achievement")) {
  79.                     if (selected <= (achievement.achievements.Count - 1)) {
  80.                         achievement.achievements.RemoveAt (selected);
  81.                         achievements.RemoveAt (selected);
  82.                         selected = 0;
  83.                     } else {
  84.                         Debug.Log ("A achievement with such ID doesn't exist");
  85.                     }
  86.  
  87.                     if(achievements.Count == 0)
  88.                     {
  89.                         selected = -1;
  90.                         Debug.Log ("No achievements to select.");
  91.                     }
  92.                 }
  93.             }
  94.             EditorGUILayout.EndVertical();
  95.  
  96.         }
  97.         EditorGUILayout.EndHorizontal ();
  98.  
  99.         EditorGUILayout.Separator ();
  100.  
  101.         EditorGUILayout.BeginVertical ();
  102.         {
  103.             EditorGUILayout.LabelField ("ID:");
  104.             id = EditorGUILayout.TextField (id);
  105.  
  106.             GUILayout.Space(7f);
  107.  
  108.             EditorGUILayout.LabelField ("Achievement Name:");
  109.             name = EditorGUILayout.TextField (name);
  110.  
  111.             GUILayout.Space(7f);
  112.  
  113.             EditorGUILayout.LabelField ("Description:");
  114.             desc = EditorGUILayout.TextArea (desc);
  115.  
  116.             GUILayout.Space(7f);
  117.  
  118.             EditorGUILayout.LabelField ("Hidden:");
  119.             hidden = EditorGUILayout.Toggle (hidden);
  120.         }
  121.         EditorGUILayout.EndVertical ();
  122.  
  123.         GUILayout.Space(20f);
  124.  
  125.         if(selected > -1 && GUI.changed && !editingAchi)
  126.         {
  127.             name = achievement.achievements[selected].name;
  128.             desc = achievement.achievements[selected].description;
  129.             hidden = achievement.achievements[selected].hidden;
  130.         }
  131.         if(selected > -1 && GUI.changed)
  132.         {
  133.             id = achievement.achievements[selected].id.ToString();
  134.         }
  135.  
  136.         GUILayout.Space (30);
  137.  
  138.         EditorGUILayout.LabelField ("Selected ID: " + selected.ToString());
  139.         EditorGUILayout.LabelField ("List count: " + achievements.Count.ToString());
  140.         EditorGUILayout.LabelField ("Editing?: " + editingAchi.ToString());
  141.     }
  142.  
  143.     int StringToIntConverter(string value)
  144.     {
  145.         int id = int.Parse (value); //Converts value to int "idd"
  146.         return id; //returns the int "idd"
  147.     }
  148.  
  149.     bool IsNumeric(string value)
  150.     {
  151.         int number;
  152.         bool id = int.TryParse (value, out number);
  153.         return id;
  154.     }
  155.  
  156.     void CheckForErrors(int errorid)
  157.     {
  158.  
  159.     }
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement