public void NoDoors() { var roomTemplate = GameObject.Find("NoDoors"); Assert.That(roomTemplate, Is.Not.Null); var resultAll = RoomTemplateDiagnostics.CheckAll(roomTemplate); Assert.That(resultAll.HasErrors, Is.True); var resultComponents = RoomTemplateDiagnostics.CheckComponents(roomTemplate); Assert.That(resultComponents.HasErrors, Is.True); }
public void InvalidOutline() { var roomTemplate = GameObject.Find("InvalidOutline"); Assert.That(roomTemplate, Is.Not.Null); var resultAll = RoomTemplateDiagnostics.CheckAll(roomTemplate); Assert.That(resultAll.HasErrors, Is.True); var resultComponents = RoomTemplateDiagnostics.CheckComponents(roomTemplate); Assert.That(resultComponents.HasErrors, Is.False); }
public void WrongManualDoors() { var roomTemplate = GameObject.Find("WrongManualDoors"); Assert.That(roomTemplate, Is.Not.Null); var resultAll = RoomTemplateDiagnostics.CheckAll(roomTemplate); Assert.That(resultAll.HasErrors, Is.False); var resultComponents = RoomTemplateDiagnostics.CheckWrongManualDoors(roomTemplate, out var _); Assert.That(resultComponents.HasErrors, Is.True); }
public void HybridDoorsDuplicate() { var roomTemplate = GameObject.Find("HybridDoorsDuplicate"); Assert.That(roomTemplate, Is.Not.Null); var resultAll = RoomTemplateDiagnostics.CheckAll(roomTemplate); Assert.That(resultAll.HasErrors, Is.True); var resultComponents = RoomTemplateDiagnostics.CheckComponents(roomTemplate); Assert.That(resultComponents.HasErrors, Is.False); var resultDoors = RoomTemplateDiagnostics.CheckDoors(roomTemplate); Assert.That(resultDoors.HasErrors, Is.True); }
public override void OnInspectorGUI() { serializedObject.Update(); DrawDefaultInspector(); var roomTemplate = (RoomTemplateSettings)target; var validityCheck = RoomTemplateDiagnostics.CheckAll(roomTemplate.gameObject); if (!validityCheck.HasErrors) { EditorGUILayout.HelpBox("The room template is valid.", MessageType.Info); var wrongManualDoorsCheck = RoomTemplateDiagnostics.CheckWrongManualDoors(roomTemplate.gameObject, out var _); if (wrongManualDoorsCheck.HasErrors) { EditorGUILayout.HelpBox(string.Join("\n", wrongManualDoorsCheck.Errors).Trim(), MessageType.Warning); } } else { var sb = new StringBuilder(); sb.AppendLine("There are some problems with the room template:"); var errors = string.Join("\n", validityCheck.Errors); sb.Append(errors); EditorGUILayout.HelpBox(sb.ToString(), MessageType.Error); } var hasOutlineOverride = roomTemplate.HasOutlineOverride(); EditorGUILayout.HelpBox($"Using outline override: {hasOutlineOverride}", MessageType.None); if (hasOutlineOverride) { if (GUILayout.Button("Remove outline override", EditorStyles.miniButton)) { roomTemplate.RemoveOutlineOverride(); } } else { if (GUILayout.Button("Add outline override", EditorStyles.miniButton)) { roomTemplate.AddOutlineOverride(); } } var boundingBoxOutlineHandler = roomTemplate.GetComponent <BoundingBoxOutlineHandler>(); var boundingBoxRemoved = false; if (boundingBoxOutlineHandler == null) { if (GUILayout.Button("Add bounding box outline handler", EditorStyles.miniButton)) { roomTemplate.gameObject.AddComponent <BoundingBoxOutlineHandler>(); EditorUtility.SetDirty(roomTemplate); } } else { if (GUILayout.Button("Remove bounding box outline handler", EditorStyles.miniButton)) { DestroyImmediate(boundingBoxOutlineHandler, true); boundingBoxRemoved = true; EditorUtility.SetDirty(roomTemplate); } } serializedObject.ApplyModifiedProperties(); if (boundingBoxRemoved) { GUIUtility.ExitGUI(); } }