/// <summary> /// Adds a new level event to the list on the UI. /// </summary> /// <param name="levelEvent">Level event to add</param> void AddNewLevelEventToUI(Agenda.LevelEvent levelEvent) { // Instantiate levelEvent GO on the UI and add it to the list. LevelEventUI levelEventUI = (Instantiate(levelEventPrefab, contentGO.transform) as GameObject).GetComponent <LevelEventUI>(); levelEventUI.Initialize(levelEvent.id, agenda, levelEvent.title, levelEvent.description); levelEventsUI.Add(levelEventUI); }
/// <summary> /// Provides a simple interface for adding new level envents to the list on the ScriptableObject. /// </summary> void AddNewLevelEvent() { newLevelEventTitle = EditorGUILayout.TextField("Title: ", newLevelEventTitle); newLevelEventDescription = EditorGUILayout.TextField("Description: ", newLevelEventDescription); newLevelEventYear = EditorGUILayout.TextField("Year: ", newLevelEventYear); newLevelEventMonth = EditorGUILayout.TextField("Month: ", newLevelEventMonth); newLevelEventDay = EditorGUILayout.TextField("Day: ", newLevelEventDay); newLevelEventHour = EditorGUILayout.TextField("Hour: ", newLevelEventHour); newLevelEventMinutes = EditorGUILayout.TextField("Minutes: ", newLevelEventMinutes); if (GUILayout.Button("ADD LEVEL EVENT")) { if (string.IsNullOrEmpty(newLevelEventTitle) || string.IsNullOrEmpty(newLevelEventDescription)) { Debug.LogError("Level event Title or Description are empty."); return; } int year = 0; if (!int.TryParse(newLevelEventYear, out year)) { Debug.LogError("Couldn't parse year into an int"); return; } int month = 0; if (!int.TryParse(newLevelEventMonth, out month)) { Debug.LogError("Couldn't parse month into an int"); return; } else { month = month < 1 || month > 12 ? 1 : month; } int day = 0; if (!int.TryParse(newLevelEventDay, out day)) { Debug.LogError("Couldn't parse day into an int"); return; } else { day = day < 1 || day > 31 ? 1 : day; } int hour = 0; if (!int.TryParse(newLevelEventHour, out hour)) { Debug.LogError("Couldn't parse hour into an int"); return; } else { hour = hour < 0 || hour > 23 ? 0 : hour; } int minutes = 0; if (!int.TryParse(newLevelEventMinutes, out minutes)) { Debug.LogError("Couldn't parse minutes into an int"); return; } else { minutes = minutes < 0 || minutes > 59 ? 0 : minutes; } Agenda.LevelEvent levelEvent = new Agenda.LevelEvent( levelEvents.levelEvents.Count, newLevelEventTitle, newLevelEventDescription, new System.DateTime(year, month, day, hour, minutes, 0)); levelEvents.levelEvents.Add(levelEvent); EditorUtility.SetDirty(target); } }