Advertisement
GuerreroCraft61

Untitled

Apr 13th, 2019
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.86 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEditor;
  4. using UnityEngine;
  5.  
  6. [CustomEditor(typeof(DataBase))]
  7. public class DatabaseEditor : Editor {
  8.  
  9.     private DataBase database;
  10.  
  11.     private string searchString;
  12.     private string searchString2;
  13.     private string searchString3;
  14.     private string searchString4;
  15.     private bool shouldSearch;
  16.     private bool shouldSearch2;
  17.     private bool shouldSearch3;
  18.     private bool shouldSearch4;
  19.     private int i;
  20.  
  21.     private void OnEnable() {
  22.         database = (DataBase) target;
  23.     }
  24.  
  25.     public override void OnInspectorGUI() {
  26.         base.DrawDefaultInspector();
  27.         if (database) {
  28.             EditorGUILayout.BeginHorizontal("Box"); //Crear un cuadro
  29.             GUILayout.Label("Items in Database: " + database.items.Count); //Cantidad de objetos que hay en el base de datos
  30.             EditorGUILayout.EndHorizontal(); //Terminar el cuadro
  31.  
  32.             EditorGUILayout.BeginHorizontal("Box"); //Crear un cuadro
  33.             GUILayout.Label("Search (ID/Name/Desc.): "); //Texto de que Search
  34.             searchString = GUILayout.TextField(searchString); //El cuadro para escribir
  35.             EditorGUILayout.EndHorizontal(); //Terminar el cuadro
  36.  
  37.             EditorGUILayout.BeginHorizontal("Box"); //Crear un cuadro
  38.             GUILayout.Label("Search (Cost) (int): "); //Texto de que Search
  39.             searchString2 = GUILayout.TextField(searchString2); //El cuadro para escribir
  40.             EditorGUILayout.EndHorizontal(); //Terminar el cuadro
  41.  
  42.             EditorGUILayout.BeginHorizontal("Box"); //Crear un cuadro
  43.             GUILayout.Label("Search (SellCost) (int): "); //Texto de que Search
  44.             searchString3 = GUILayout.TextField(searchString3); //El cuadro para escribir
  45.             EditorGUILayout.EndHorizontal(); //Terminar el cuadro
  46.  
  47.             EditorGUILayout.BeginHorizontal("Box"); //Crear un cuadro
  48.             GUILayout.Label("Search (UseLevel) (int): "); //Texto de que Search
  49.             searchString4 = GUILayout.TextField(searchString4); //El cuadro para escribir
  50.             EditorGUILayout.EndHorizontal(); //Terminar el cuadro
  51.  
  52.             bool isNumeric2 = int.TryParse(searchString2, out int n2);
  53.             bool isNumeric3 = int.TryParse(searchString3, out int n3);
  54.             bool isNumeric4 = int.TryParse(searchString4, out int n4);
  55.  
  56.             if (System.String.IsNullOrEmpty(searchString)) { //Si searchString es nulo no buscara nada y pondra todo
  57.                 shouldSearch = false;
  58.             } else {
  59.                 shouldSearch = true;
  60.             }
  61.             if (System.String.IsNullOrEmpty(searchString2)) { //Si searchString es nulo no buscara nada y pondra todo
  62.                 shouldSearch2 = false;
  63.             } else {
  64.                 if (isNumeric2) {
  65.                     shouldSearch2 = true;
  66.                 }
  67.             }
  68.             if (System.String.IsNullOrEmpty(searchString3)) { //Si searchString es nulo no buscara nada y pondra todo
  69.                 shouldSearch3 = false;
  70.             } else {
  71.                 if (isNumeric3) {
  72.                     shouldSearch3 = true;
  73.                 }
  74.             }
  75.             if (System.String.IsNullOrEmpty(searchString4)) { //Si searchString es nulo no buscara nada y pondra todo
  76.                 shouldSearch4 = false;
  77.             } else {
  78.                 if (isNumeric4) {
  79.                     shouldSearch4 = true;
  80.                 }
  81.             }
  82.  
  83.             foreach (Item item in database.items) {
  84.                 if (shouldSearch) {
  85.                     if (item.name.Equals(searchString.ToLower()) ||
  86.                         item.name.Equals(searchString.ToUpper()) ||
  87.                         item.name.Contains(searchString.ToLower()) ||
  88.                         item.name.Contains(searchString.ToUpper()) ||
  89.                         item.id.ToString() == searchString ||
  90.                         item.description.Equals(searchString.ToLower()) ||
  91.                         item.description.Equals(searchString.ToUpper()) ||
  92.                         item.description.Contains(searchString.ToLower()) ||
  93.                         item.description.Contains(searchString.ToUpper())) {
  94.                         DisplayItem(item);
  95.                     }
  96.                 } else if (shouldSearch2) {
  97.                     if (item.cost.ToString() == searchString2) {
  98.                         DisplayItem(item);
  99.                     }
  100.                 } else if (shouldSearch3) {
  101.                     if (item.sellCost.ToString() == searchString3) {
  102.                         DisplayItem(item);
  103.                     }
  104.                 } else if (shouldSearch4) {
  105.                     if (item.useLevel.ToString() == searchString4) {
  106.                         DisplayItem(item);
  107.                     }
  108.                 } else { //Si shouldSearch es false no buscara nada y pondra todo
  109.                     DisplayItem(item);
  110.                 }
  111.                 item.descriptionLenght = item.description.Length; //Definir cuantas letras tiene la descripcion
  112.             }
  113.         }
  114.         if (GUILayout.Button("Reset ID to 0")) {
  115.             i = 0;
  116.         }
  117.         if (GUILayout.Button("Remove 1 ID")) {
  118.             i--;
  119.             i--;
  120.         }
  121.     }
  122.  
  123.     private void DisplayItem(Item item) {
  124.         GUIStyle labelStyle = new GUIStyle(GUI.skin.label); //Crear un nuevo estilo para no modificar el estilo general
  125.         labelStyle.wordWrap = true; //Poner texto debajo, para que no se expanda el editor
  126.  
  127.         GUIStyle valueStyle = new GUIStyle(GUI.skin.label); //Crear un nuevo estilo para no modificar el estilo general
  128.         valueStyle.wordWrap = true; //Poner texto debajo, para que no se expanda el editor
  129.         valueStyle.alignment = TextAnchor.MiddleCenter;
  130.         valueStyle.fixedWidth = 50;
  131.         valueStyle.margin = new RectOffset(0, 50, 0, 0);
  132.  
  133.         EditorGUILayout.BeginVertical("Box"); //Crear un cuadro
  134.  
  135.         EditorGUILayout.BeginHorizontal();
  136.         GUILayout.Label("ID: ");
  137.         GUILayout.Label(item.id.ToString(), valueStyle);
  138.         if (GUILayout.Button("Set ID")) {
  139.             item.id = i++;
  140.         }
  141.         EditorGUILayout.EndHorizontal();
  142.  
  143.         EditorGUILayout.BeginHorizontal();
  144.         GUILayout.Label("Name: ");
  145.         GUILayout.Label(item.name, labelStyle);
  146.         EditorGUILayout.EndHorizontal();
  147.  
  148.         //EditorGUILayout.BeginHorizontal();
  149.         if (!string.IsNullOrWhiteSpace(item.description)) {
  150.             GUILayout.Label("Description: ");
  151.             if (item.descriptionLenght < 45) {
  152.                 item.scrollPos = EditorGUILayout.BeginScrollView(item.scrollPos, GUILayout.MinHeight(1), GUILayout.MinHeight(20));
  153.             } else if (item.descriptionLenght >= 45 && item.descriptionLenght < 90) {
  154.                 item.scrollPos = EditorGUILayout.BeginScrollView(item.scrollPos, GUILayout.MinHeight(1), GUILayout.MinHeight(35));
  155.             } else if (item.descriptionLenght >= 90 && item.descriptionLenght < 135) {
  156.                 item.scrollPos = EditorGUILayout.BeginScrollView(item.scrollPos, GUILayout.MinHeight(1), GUILayout.MinHeight(50));
  157.             } else if (item.descriptionLenght >= 135 && item.descriptionLenght < 180) {
  158.                 item.scrollPos = EditorGUILayout.BeginScrollView(item.scrollPos, GUILayout.MinHeight(1), GUILayout.MinHeight(65));
  159.             } else if (item.descriptionLenght >= 180) {
  160.                 item.scrollPos = EditorGUILayout.BeginScrollView(item.scrollPos, GUILayout.MinHeight(1), GUILayout.MinHeight(70));
  161.             }
  162.             GUILayout.Label(item.description, labelStyle);
  163.             EditorGUILayout.EndScrollView();
  164.         } else {
  165.             EditorGUILayout.BeginHorizontal();
  166.             GUILayout.Label("Description: ");
  167.             GUILayout.Label("Sin descripcion");
  168.             EditorGUILayout.EndHorizontal();
  169.         }
  170.         //  EditorGUILayout.EndHorizontal();
  171.  
  172.         EditorGUILayout.BeginHorizontal();
  173.         GUILayout.Label("Cost: ");
  174.         GUILayout.Label(item.cost.ToString(), valueStyle);
  175.         EditorGUILayout.EndHorizontal();
  176.  
  177.         EditorGUILayout.BeginHorizontal();
  178.         GUILayout.Label("Sell cost: ");
  179.         GUILayout.Label(item.sellCost.ToString(), valueStyle);
  180.         EditorGUILayout.EndHorizontal();
  181.  
  182.         EditorGUILayout.BeginHorizontal();
  183.         GUILayout.Label("Use level: ");
  184.         GUILayout.Label(item.useLevel.ToString(), valueStyle);
  185.         EditorGUILayout.EndHorizontal();
  186.  
  187.         EditorGUILayout.BeginHorizontal();
  188.         GUILayout.Label("Damage: ");
  189.         GUILayout.Label(item.stats.damage.ToString(), valueStyle);
  190.         EditorGUILayout.EndHorizontal();
  191.  
  192.         EditorGUILayout.BeginHorizontal();
  193.         GUILayout.Label("Defense: ");
  194.         GUILayout.Label(item.stats.defense.ToString(), valueStyle);
  195.         EditorGUILayout.EndHorizontal();
  196.  
  197.         EditorGUILayout.EndVertical(); //Terminar el cuadro
  198.     }
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement