Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEditor;
- using UnityEngine;
- [CustomEditor(typeof(DataBase))]
- public class DatabaseEditor : Editor {
- private DataBase database;
- private string searchString;
- private string searchString2;
- private string searchString3;
- private string searchString4;
- private bool shouldSearch;
- private bool shouldSearch2;
- private bool shouldSearch3;
- private bool shouldSearch4;
- private int i;
- private void OnEnable() {
- database = (DataBase) target;
- }
- public override void OnInspectorGUI() {
- base.DrawDefaultInspector();
- if (database) {
- EditorGUILayout.BeginHorizontal("Box"); //Crear un cuadro
- GUILayout.Label("Items in Database: " + database.items.Count); //Cantidad de objetos que hay en el base de datos
- EditorGUILayout.EndHorizontal(); //Terminar el cuadro
- EditorGUILayout.BeginHorizontal("Box"); //Crear un cuadro
- GUILayout.Label("Search (ID/Name/Desc.): "); //Texto de que Search
- searchString = GUILayout.TextField(searchString); //El cuadro para escribir
- EditorGUILayout.EndHorizontal(); //Terminar el cuadro
- EditorGUILayout.BeginHorizontal("Box"); //Crear un cuadro
- GUILayout.Label("Search (Cost) (int): "); //Texto de que Search
- searchString2 = GUILayout.TextField(searchString2); //El cuadro para escribir
- EditorGUILayout.EndHorizontal(); //Terminar el cuadro
- EditorGUILayout.BeginHorizontal("Box"); //Crear un cuadro
- GUILayout.Label("Search (SellCost) (int): "); //Texto de que Search
- searchString3 = GUILayout.TextField(searchString3); //El cuadro para escribir
- EditorGUILayout.EndHorizontal(); //Terminar el cuadro
- EditorGUILayout.BeginHorizontal("Box"); //Crear un cuadro
- GUILayout.Label("Search (UseLevel) (int): "); //Texto de que Search
- searchString4 = GUILayout.TextField(searchString4); //El cuadro para escribir
- EditorGUILayout.EndHorizontal(); //Terminar el cuadro
- bool isNumeric2 = int.TryParse(searchString2, out int n2);
- bool isNumeric3 = int.TryParse(searchString3, out int n3);
- bool isNumeric4 = int.TryParse(searchString4, out int n4);
- if (System.String.IsNullOrEmpty(searchString)) { //Si searchString es nulo no buscara nada y pondra todo
- shouldSearch = false;
- } else {
- shouldSearch = true;
- }
- if (System.String.IsNullOrEmpty(searchString2)) { //Si searchString es nulo no buscara nada y pondra todo
- shouldSearch2 = false;
- } else {
- if (isNumeric2) {
- shouldSearch2 = true;
- }
- }
- if (System.String.IsNullOrEmpty(searchString3)) { //Si searchString es nulo no buscara nada y pondra todo
- shouldSearch3 = false;
- } else {
- if (isNumeric3) {
- shouldSearch3 = true;
- }
- }
- if (System.String.IsNullOrEmpty(searchString4)) { //Si searchString es nulo no buscara nada y pondra todo
- shouldSearch4 = false;
- } else {
- if (isNumeric4) {
- shouldSearch4 = true;
- }
- }
- foreach (Item item in database.items) {
- if (shouldSearch) {
- if (item.name.Equals(searchString.ToLower()) ||
- item.name.Equals(searchString.ToUpper()) ||
- item.name.Contains(searchString.ToLower()) ||
- item.name.Contains(searchString.ToUpper()) ||
- item.id.ToString() == searchString ||
- item.description.Equals(searchString.ToLower()) ||
- item.description.Equals(searchString.ToUpper()) ||
- item.description.Contains(searchString.ToLower()) ||
- item.description.Contains(searchString.ToUpper())) {
- DisplayItem(item);
- }
- } else if (shouldSearch2) {
- if (item.cost.ToString() == searchString2) {
- DisplayItem(item);
- }
- } else if (shouldSearch3) {
- if (item.sellCost.ToString() == searchString3) {
- DisplayItem(item);
- }
- } else if (shouldSearch4) {
- if (item.useLevel.ToString() == searchString4) {
- DisplayItem(item);
- }
- } else { //Si shouldSearch es false no buscara nada y pondra todo
- DisplayItem(item);
- }
- item.descriptionLenght = item.description.Length; //Definir cuantas letras tiene la descripcion
- }
- }
- if (GUILayout.Button("Reset ID to 0")) {
- i = 0;
- }
- if (GUILayout.Button("Remove 1 ID")) {
- i--;
- i--;
- }
- }
- private void DisplayItem(Item item) {
- GUIStyle labelStyle = new GUIStyle(GUI.skin.label); //Crear un nuevo estilo para no modificar el estilo general
- labelStyle.wordWrap = true; //Poner texto debajo, para que no se expanda el editor
- GUIStyle valueStyle = new GUIStyle(GUI.skin.label); //Crear un nuevo estilo para no modificar el estilo general
- valueStyle.wordWrap = true; //Poner texto debajo, para que no se expanda el editor
- valueStyle.alignment = TextAnchor.MiddleCenter;
- valueStyle.fixedWidth = 50;
- valueStyle.margin = new RectOffset(0, 50, 0, 0);
- EditorGUILayout.BeginVertical("Box"); //Crear un cuadro
- EditorGUILayout.BeginHorizontal();
- GUILayout.Label("ID: ");
- GUILayout.Label(item.id.ToString(), valueStyle);
- if (GUILayout.Button("Set ID")) {
- item.id = i++;
- }
- EditorGUILayout.EndHorizontal();
- EditorGUILayout.BeginHorizontal();
- GUILayout.Label("Name: ");
- GUILayout.Label(item.name, labelStyle);
- EditorGUILayout.EndHorizontal();
- //EditorGUILayout.BeginHorizontal();
- if (!string.IsNullOrWhiteSpace(item.description)) {
- GUILayout.Label("Description: ");
- if (item.descriptionLenght < 45) {
- item.scrollPos = EditorGUILayout.BeginScrollView(item.scrollPos, GUILayout.MinHeight(1), GUILayout.MinHeight(20));
- } else if (item.descriptionLenght >= 45 && item.descriptionLenght < 90) {
- item.scrollPos = EditorGUILayout.BeginScrollView(item.scrollPos, GUILayout.MinHeight(1), GUILayout.MinHeight(35));
- } else if (item.descriptionLenght >= 90 && item.descriptionLenght < 135) {
- item.scrollPos = EditorGUILayout.BeginScrollView(item.scrollPos, GUILayout.MinHeight(1), GUILayout.MinHeight(50));
- } else if (item.descriptionLenght >= 135 && item.descriptionLenght < 180) {
- item.scrollPos = EditorGUILayout.BeginScrollView(item.scrollPos, GUILayout.MinHeight(1), GUILayout.MinHeight(65));
- } else if (item.descriptionLenght >= 180) {
- item.scrollPos = EditorGUILayout.BeginScrollView(item.scrollPos, GUILayout.MinHeight(1), GUILayout.MinHeight(70));
- }
- GUILayout.Label(item.description, labelStyle);
- EditorGUILayout.EndScrollView();
- } else {
- EditorGUILayout.BeginHorizontal();
- GUILayout.Label("Description: ");
- GUILayout.Label("Sin descripcion");
- EditorGUILayout.EndHorizontal();
- }
- // EditorGUILayout.EndHorizontal();
- EditorGUILayout.BeginHorizontal();
- GUILayout.Label("Cost: ");
- GUILayout.Label(item.cost.ToString(), valueStyle);
- EditorGUILayout.EndHorizontal();
- EditorGUILayout.BeginHorizontal();
- GUILayout.Label("Sell cost: ");
- GUILayout.Label(item.sellCost.ToString(), valueStyle);
- EditorGUILayout.EndHorizontal();
- EditorGUILayout.BeginHorizontal();
- GUILayout.Label("Use level: ");
- GUILayout.Label(item.useLevel.ToString(), valueStyle);
- EditorGUILayout.EndHorizontal();
- EditorGUILayout.BeginHorizontal();
- GUILayout.Label("Damage: ");
- GUILayout.Label(item.stats.damage.ToString(), valueStyle);
- EditorGUILayout.EndHorizontal();
- EditorGUILayout.BeginHorizontal();
- GUILayout.Label("Defense: ");
- GUILayout.Label(item.stats.defense.ToString(), valueStyle);
- EditorGUILayout.EndHorizontal();
- EditorGUILayout.EndVertical(); //Terminar el cuadro
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement