public void ShowGUI() { CustomGUILayout.MultiLineLabelGUI("Scene number:", sceneNumber.ToString()); CustomGUILayout.MultiLineLabelGUI("Active NavMesh:", navMesh.ToString()); CustomGUILayout.MultiLineLabelGUI("Default PlayerStart:", playerStart.ToString()); CustomGUILayout.MultiLineLabelGUI("Default SortingMap:", sortingMap.ToString()); CustomGUILayout.MultiLineLabelGUI("Default TintMap:", tintMap.ToString()); CustomGUILayout.MultiLineLabelGUI("OnStart cutscene:", onStartCutscene.ToString()); CustomGUILayout.MultiLineLabelGUI("OnLoadCutscene:", onLoadCutscene.ToString()); EditorGUILayout.LabelField("Remember data:"); if (allScriptData != null && allScriptData.Count > 0) { foreach (ScriptData scriptData in allScriptData) { RememberData rememberData = SaveSystem.FileFormatHandler.DeserializeObject <RememberData> (scriptData.data); if (rememberData != null) { CustomGUILayout.MultiLineLabelGUI(" " + rememberData.GetType().ToString() + ":", EditorJsonUtility.ToJson(rememberData, true)); } } } if (allTransformData != null && allTransformData.Count > 0) { foreach (TransformData transformData in allTransformData) { CustomGUILayout.MultiLineLabelGUI(" " + transformData.GetType().ToString() + ":", EditorJsonUtility.ToJson(transformData, true)); } } CustomGUILayout.MultiLineLabelGUI("Active ActionLists:", activeLists.ToString()); CustomGUILayout.MultiLineLabelGUI("Local Variables:", localVariablesData); }
public void ShowGUI() { CustomGUILayout.MultiLineLabelGUI("Current Player ID:", currentPlayerID.ToString()); CustomGUILayout.MultiLineLabelGUI("TimeScale:", timeScale.ToString()); if (KickStarter.variablesManager != null) { EditorGUILayout.LabelField("Global Variables:"); List <GVar> linkedVariables = SaveSystem.UnloadVariablesData(runtimeVariablesData, KickStarter.variablesManager.vars, true); foreach (GVar linkedVariable in linkedVariables) { if (linkedVariable.link != VarLink.OptionsData) { EditorGUILayout.LabelField(" " + linkedVariable.label + ":", linkedVariable.GetValue()); } } } else { CustomGUILayout.MultiLineLabelGUI("Global Variables:", runtimeVariablesData); } EditorGUILayout.LabelField("Menus:"); CustomGUILayout.MultiLineLabelGUI(" Menu locks:", menuLockData); CustomGUILayout.MultiLineLabelGUI(" Menu visibility:", menuVisibilityData); CustomGUILayout.MultiLineLabelGUI(" Menu element visibility:", menuElementVisibilityData); CustomGUILayout.MultiLineLabelGUI(" Menu journal pages:", menuJournalData); CustomGUILayout.MultiLineLabelGUI(" Direct-control gameplay?", canKeyboardControlMenusDuringGameplay.ToString()); EditorGUILayout.LabelField("Inventory:"); CustomGUILayout.MultiLineLabelGUI(" Selected InvItem ID:", selectedInventoryID.ToString()); CustomGUILayout.MultiLineLabelGUI(" Is giving item?", isGivingItem.ToString()); CustomGUILayout.MultiLineLabelGUI(" Global objectives:", globalObjectivesData); EditorGUILayout.LabelField("Systems:"); CustomGUILayout.MultiLineLabelGUI(" Cursors disabled?", cursorIsOff.ToString()); CustomGUILayout.MultiLineLabelGUI(" Input disabled?", inputIsOff.ToString()); CustomGUILayout.MultiLineLabelGUI(" Interaction disabled?", interactionIsOff.ToString()); CustomGUILayout.MultiLineLabelGUI(" Menus disabled?", menuIsOff.ToString()); CustomGUILayout.MultiLineLabelGUI(" Movement disabled?", movementIsOff.ToString()); CustomGUILayout.MultiLineLabelGUI(" Cameras disabled?", cameraIsOff.ToString()); CustomGUILayout.MultiLineLabelGUI(" Triggers disabled", triggerIsOff.ToString()); CustomGUILayout.MultiLineLabelGUI(" Players disabled?", playerIsOff.ToString()); CustomGUILayout.MultiLineLabelGUI("Toggle cursor state:", toggleCursorState.ToString()); CustomGUILayout.MultiLineLabelGUI("Movement method:", ((MovementMethod)movementMethod).ToString()); EditorGUILayout.LabelField("Music:"); CustomGUILayout.MultiLineLabelGUI(" Music queue data:", musicQueueData); CustomGUILayout.MultiLineLabelGUI(" Last music data:", lastMusicQueueData); CustomGUILayout.MultiLineLabelGUI(" Music time samples:", musicTimeSamples.ToString()); CustomGUILayout.MultiLineLabelGUI(" Last music samples:", lastMusicTimeSamples.ToString()); CustomGUILayout.MultiLineLabelGUI(" Old music samples:", oldMusicTimeSamples); EditorGUILayout.LabelField("Ambience:"); CustomGUILayout.MultiLineLabelGUI(" Ambience queue data:", ambienceQueueData); CustomGUILayout.MultiLineLabelGUI(" Last ambience data:", lastAmbienceQueueData); CustomGUILayout.MultiLineLabelGUI(" Ambience time samples:", ambienceTimeSamples.ToString()); CustomGUILayout.MultiLineLabelGUI(" Last ambience samples:", lastAmbienceTimeSamples.ToString()); CustomGUILayout.MultiLineLabelGUI(" Old ambience samples:", oldAmbienceTimeSamples); EditorGUILayout.LabelField("Speech:"); CustomGUILayout.MultiLineLabelGUI("Custom tokens:", customTokenData); CustomGUILayout.MultiLineLabelGUI("Spoken lines:", spokenLinesData); EditorGUILayout.LabelField("Active logic:"); CustomGUILayout.MultiLineLabelGUI(" Active Conversation:", activeConversation.ToString()); CustomGUILayout.MultiLineLabelGUI(" Active ArrowPrompt:", activeArrows.ToString()); CustomGUILayout.MultiLineLabelGUI(" Active ActionList assets:", activeAssetLists); CustomGUILayout.MultiLineLabelGUI(" Active inputs:", activeInputsData); }
public void ShowGUI() { try { CustomGUILayout.MultiLineLabelGUI("Player ID:", playerID.ToString()); EditorGUILayout.LabelField("Scene info:"); CustomGUILayout.MultiLineLabelGUI(" Current scene:", currentScene.ToString()); CustomGUILayout.MultiLineLabelGUI(" Previous scene:", previousScene.ToString()); CustomGUILayout.MultiLineLabelGUI(" Sub-scenes:", openSubScenes); if (tempPlayerStart != 0) { CustomGUILayout.MultiLineLabelGUI(" PlayerStart ID:", tempPlayerStart.ToString()); CustomGUILayout.MultiLineLabelGUI(" PlayerStart method:", tempTeleportPlayerStartMethod.ToString()); } EditorGUILayout.LabelField("Movement:"); CustomGUILayout.MultiLineLabelGUI(" Position:", "(" + playerLocX.ToString() + ", " + playerLocY.ToString() + ", " + playerLocZ.ToString() + ")"); CustomGUILayout.MultiLineLabelGUI(" Rotation:", playerRotY.ToString()); CustomGUILayout.MultiLineLabelGUI(" Walk speed:", playerWalkSpeed.ToString()); CustomGUILayout.MultiLineLabelGUI(" Run speed:", playerRunSpeed.ToString()); CustomGUILayout.MultiLineLabelGUI(" Is running?", playerIsRunning.ToString()); CustomGUILayout.MultiLineLabelGUI(" Up locked?", playerUpLock.ToString()); CustomGUILayout.MultiLineLabelGUI(" Down locked?", playerDownLock.ToString()); CustomGUILayout.MultiLineLabelGUI(" Left locked?", playerLeftlock.ToString()); CustomGUILayout.MultiLineLabelGUI(" Right locked?", playerRightLock.ToString()); CustomGUILayout.MultiLineLabelGUI(" Run locked?", playerRunLock.ToString()); CustomGUILayout.MultiLineLabelGUI(" Free-aim locked?", playerFreeAimLock.ToString()); CustomGUILayout.MultiLineLabelGUI(" Ignore gravity?", playerIgnoreGravity.ToString()); EditorGUILayout.LabelField("Animation:"); CustomGUILayout.MultiLineLabelGUI(" Idle animation:", playerIdleAnim); CustomGUILayout.MultiLineLabelGUI(" Walk animation:", playerWalkAnim); CustomGUILayout.MultiLineLabelGUI(" Talk animation:", playerTalkAnim); CustomGUILayout.MultiLineLabelGUI(" Run animation:", playerRunAnim); CustomGUILayout.MultiLineLabelGUI(" In custom state?", inCustomCharState.ToString()); CustomGUILayout.MultiLineLabelGUI(" Left hand IK:", leftHandIKState); CustomGUILayout.MultiLineLabelGUI(" Right hand IK:", rightHandIKState); EditorGUILayout.LabelField("Sound:"); CustomGUILayout.MultiLineLabelGUI(" Walk sound:", playerWalkSound); CustomGUILayout.MultiLineLabelGUI(" Run sound:", playerRunSound); EditorGUILayout.LabelField("Speech:"); CustomGUILayout.MultiLineLabelGUI(" Portrait graphic:", playerPortraitGraphic); CustomGUILayout.MultiLineLabelGUI(" Speech label:", playerSpeechLabel); CustomGUILayout.MultiLineLabelGUI(" Speech label ID:", playerDisplayLineID.ToString()); EditorGUILayout.LabelField("Pathfinding:"); CustomGUILayout.MultiLineLabelGUI(" Target node:", playerTargetNode.ToString()); CustomGUILayout.MultiLineLabelGUI(" Previous node:", playerPrevNode.ToString()); CustomGUILayout.MultiLineLabelGUI(" Path data:", playerPathData); CustomGUILayout.MultiLineLabelGUI(" Locked to path?", playerLockedPath.ToString()); CustomGUILayout.MultiLineLabelGUI(" Active path:", playerActivePath.ToString()); CustomGUILayout.MultiLineLabelGUI(" Path affects Y?", playerPathAffectY.ToString()); CustomGUILayout.MultiLineLabelGUI(" Last target node:", lastPlayerTargetNode.ToString()); CustomGUILayout.MultiLineLabelGUI(" Last previous node:", lastPlayerPrevNode.ToString()); CustomGUILayout.MultiLineLabelGUI(" Last active path:", lastPlayerActivePath.ToString()); EditorGUILayout.LabelField("Sprites:"); CustomGUILayout.MultiLineLabelGUI(" Lock direction?", playerLockDirection.ToString()); CustomGUILayout.MultiLineLabelGUI(" Sprite direction:", playerSpriteDirection); CustomGUILayout.MultiLineLabelGUI(" Scale locked?", playerLockScale.ToString()); CustomGUILayout.MultiLineLabelGUI(" Sprite scale:", playerSpriteScale.ToString()); CustomGUILayout.MultiLineLabelGUI(" Lock sorting?", playerLockSorting.ToString()); CustomGUILayout.MultiLineLabelGUI(" Sorting order:", playerSortingOrder.ToString()); CustomGUILayout.MultiLineLabelGUI(" Sorting layer:", playerSortingLayer); CustomGUILayout.MultiLineLabelGUI(" Follow default Sorting Map?", followSortingMap.ToString()); if (!followSortingMap) { CustomGUILayout.MultiLineLabelGUI(" Sorting map?", customSortingMapID.ToString()); } CustomGUILayout.MultiLineLabelGUI("Inventory:", inventoryData); CustomGUILayout.MultiLineLabelGUI(" Active Document:", activeDocumentID.ToString()); CustomGUILayout.MultiLineLabelGUI(" Collected Documents:", collectedDocumentData.ToString()); CustomGUILayout.MultiLineLabelGUI(" Last-open Document pages", lastOpenDocumentPagesData.ToString()); CustomGUILayout.MultiLineLabelGUI(" Objectives:", playerObjectivesData.ToString()); EditorGUILayout.LabelField("Head-turning:"); CustomGUILayout.MultiLineLabelGUI(" Head facing Hotspot?", playerLockHotspotHeadTurning.ToString()); CustomGUILayout.MultiLineLabelGUI(" Head turning?", isHeadTurning.ToString()); CustomGUILayout.MultiLineLabelGUI(" Head target:", headTargetID.ToString()); CustomGUILayout.MultiLineLabelGUI(" Head target position:", "(" + headTargetX + ", " + headTargetY + ", " + headTargetZ + ")"); EditorGUILayout.LabelField("Camera:"); CustomGUILayout.MultiLineLabelGUI(" Camera:", gameCamera.ToString()); CustomGUILayout.MultiLineLabelGUI(" Last nav cam:", lastNavCamera.ToString()); CustomGUILayout.MultiLineLabelGUI(" Last nav cam 2:", lastNavCamera2.ToString()); CustomGUILayout.MultiLineLabelGUI(" Camera position:", "(" + mainCameraLocX + ", " + mainCameraLocY + ", " + mainCameraLocZ + ")"); CustomGUILayout.MultiLineLabelGUI(" Camera rotation:", "(" + mainCameraRotX + ", " + mainCameraRotY + ", " + mainCameraRotZ + ")"); CustomGUILayout.MultiLineLabelGUI(" Split-screen?", isSplitScreen.ToString()); if (isSplitScreen) { CustomGUILayout.MultiLineLabelGUI(" Top-left split?", isTopLeftSplit.ToString()); CustomGUILayout.MultiLineLabelGUI(" Vertical split?", splitIsVertical.ToString()); CustomGUILayout.MultiLineLabelGUI(" Split camera:", splitCameraID.ToString()); CustomGUILayout.MultiLineLabelGUI(" Split amount main:", splitAmountMain.ToString()); CustomGUILayout.MultiLineLabelGUI(" Split amount other:", splitAmountOther.ToString()); CustomGUILayout.MultiLineLabelGUI(" Overlay rect:", "(" + overlayRectX + ", " + overlayRectY + ", " + overlayRectWidth + ", " + overlayRectHeight + ")"); } CustomGUILayout.MultiLineLabelGUI(" Shake intensity:", shakeIntensity.ToString()); if (shakeIntensity > 0f) { CustomGUILayout.MultiLineLabelGUI(" Shake duration", shakeDuration.ToString()); CustomGUILayout.MultiLineLabelGUI(" Shake effect:", ((CameraShakeEffect)shakeEffect).ToString()); } if (playerScriptData != null && playerScriptData.Count > 0) { EditorGUILayout.LabelField("Remember data:"); foreach (ScriptData scriptData in playerScriptData) { RememberData rememberData = SaveSystem.FileFormatHandler.DeserializeObject <RememberData> (scriptData.data); if (rememberData != null) { CustomGUILayout.MultiLineLabelGUI(" " + rememberData.GetType().ToString() + ":", EditorJsonUtility.ToJson(rememberData, true)); } } } } catch (Exception e) { ACDebug.LogWarning("Error displaying player data. Exception: " + e); } }
private void SaveFileGUI() { iSaveFileHandler saveFileHandler = SaveSystem.SaveFileHandler; iOptionsFileHandler optionsFileHandler = Options.OptionsFileHandler; iFileFormatHandler fileFormatHandler = SaveSystem.FileFormatHandler; iFileFormatHandler optionsFileFormatHandler = SaveSystem.OptionsFileFormatHandler; if (optionsFileHandler == null) { EditorGUILayout.HelpBox("No Options File Handler assigned - one must be set in order to locate Profile Data.", MessageType.Warning); return; } if (saveFileHandler == null) { EditorGUILayout.HelpBox("No Save File Handler assigned - one must be set in order to locate Save Data.", MessageType.Warning); return; } EditorGUILayout.BeginVertical(CustomStyles.thinBox); showHandlers = CustomGUILayout.ToggleHeader(showHandlers, "File and format handlers"); if (showHandlers) { if (saveFileHandler != null) { EditorGUILayout.LabelField("Save file location:", saveFileHandler.GetType().Name); } if (optionsFileHandler != null) { EditorGUILayout.LabelField("Options location:", optionsFileHandler.GetType().Name); } if (fileFormatHandler != null) { EditorGUILayout.LabelField("File format:", fileFormatHandler.GetType().Name); } if (optionsFileFormatHandler != null && fileFormatHandler == null || (optionsFileFormatHandler.GetType().Name != fileFormatHandler.GetType().Name)) { EditorGUILayout.LabelField("Options format:", optionsFileFormatHandler.GetType().Name); } EditorGUILayout.HelpBox("Save format and location handlers can be modified through script - see the Manual's 'Custom save formats and handling' chapter.", MessageType.Info); } EditorGUILayout.EndVertical(); if (settingsManager.useProfiles) { EditorGUILayout.Space(); EditorGUILayout.BeginVertical(CustomStyles.thinBox); showProfiles = CustomGUILayout.ToggleHeader(showProfiles, "Profiles"); if (showProfiles) { bool foundSome = false; for (int profileID = 0; profileID < Options.maxProfiles; profileID++) { if (optionsFileHandler.DoesProfileExist(profileID)) { foundSome = true; OptionsData tempOptionsData = Options.LoadPrefsFromID(profileID, false, false); string label = profileID.ToString() + ": " + tempOptionsData.label; if (profileID == Options.GetActiveProfileID()) { label += " (ACTIVE)"; } if (GUILayout.Toggle(selectedProfileID == profileID, label, "Button")) { if (selectedProfileID != profileID) { selectedProfileID = profileID; selectedSaveIndex = -1; foundSaveFiles.Clear(); } } } } if (!foundSome) { selectedProfileID = -1; EditorGUILayout.HelpBox("No save profiles found.", MessageType.Warning); } } EditorGUILayout.EndVertical(); } else { selectedProfileID = 0; } if (selectedProfileID < 0 || !optionsFileHandler.DoesProfileExist(selectedProfileID)) { EditorGUILayout.HelpBox("No save profiles found! Run the game to create a new save profile", MessageType.Warning); return; } EditorGUILayout.Space(); EditorGUILayout.BeginVertical(CustomStyles.thinBox); showProfile = CustomGUILayout.ToggleHeader(showProfile, "Profile " + selectedProfileID + ": Properties"); if (showProfile) { OptionsData prefsData = GetPrefsData(selectedProfileID); if (prefsData != null) { EditorGUILayout.LabelField("Label:", prefsData.label); EditorGUILayout.LabelField("ID:", prefsData.ID.ToString()); EditorGUILayout.LabelField("Language:", prefsData.language.ToString()); if (prefsData.language != prefsData.voiceLanguage) { EditorGUILayout.LabelField("Voice language:", prefsData.voiceLanguage.ToString()); } EditorGUILayout.LabelField("Show subtitles:", prefsData.showSubtitles.ToString()); EditorGUILayout.LabelField("SFX volume:", prefsData.sfxVolume.ToString()); EditorGUILayout.LabelField("Music volume:", prefsData.musicVolume.ToString()); EditorGUILayout.LabelField("Speech volume:", prefsData.speechVolume.ToString()); if (KickStarter.variablesManager != null) { List <GVar> linkedVariables = SaveSystem.UnloadVariablesData(prefsData.linkedVariables, KickStarter.variablesManager.vars, true); foreach (GVar linkedVariable in linkedVariables) { if (linkedVariable.link == VarLink.OptionsData) { EditorGUILayout.LabelField(linkedVariable.label + ":", linkedVariable.GetValue()); } } } else { EditorGUILayout.LabelField("Linked Variables:", prefsData.linkedVariables); } EditorGUILayout.BeginHorizontal(); if (settingsManager.useProfiles) { GUI.enabled = (selectedProfileID != Options.GetActiveProfileID()); if (GUILayout.Button("Make active")) { SwitchActiveProfile(selectedProfileID); } GUI.enabled = true; } if (GUILayout.Button("Delete profile")) { bool canDelete = EditorUtility.DisplayDialog("Delete profile?", "Are you sure you want to delete profile #" + selectedProfileID + "? This operation cannot be undone.", "Yes", "No"); if (canDelete) { Options.DeleteProfilePrefs(selectedProfileID); } } EditorGUILayout.EndHorizontal(); } } EditorGUILayout.EndVertical(); EditorGUILayout.Space(); foundSaveFiles = saveFileHandler.GatherSaveFiles(selectedProfileID); EditorGUILayout.BeginVertical(CustomStyles.thinBox); showSaves = CustomGUILayout.ToggleHeader(showSaves, "Save game files"); if (showSaves) { if (foundSaveFiles != null) { for (int saveIndex = 0; saveIndex < foundSaveFiles.Count; saveIndex++) { SaveFile saveFile = foundSaveFiles[saveIndex]; string label = saveFile.saveID.ToString() + ": " + saveFile.label; if (GUILayout.Toggle(selectedSaveIndex == saveIndex, label, "Button")) { selectedSaveIndex = saveIndex; } } } if (foundSaveFiles == null || foundSaveFiles.Count == 0) { selectedSaveIndex = -1; EditorGUILayout.HelpBox("No save game files found.", MessageType.Warning); } EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); GUI.enabled = Application.isPlaying; if (GUILayout.Button("Autosave")) { if (!PlayerMenus.IsSavingLocked(null, true)) { SwitchActiveProfile(selectedProfileID); SaveSystem.SaveAutoSave(); } } if (GUILayout.Button("Save new")) { if (!PlayerMenus.IsSavingLocked(null, true)) { SwitchActiveProfile(selectedProfileID); SaveSystem.SaveNewGame(); } } GUI.enabled = (foundSaveFiles != null && foundSaveFiles.Count > 0); if (GUILayout.Button("Delete all saves")) { bool canDelete = EditorUtility.DisplayDialog("Delete all save files?", "Are you sure you want to delete all save files? This operation cannot be undone.", "Yes", "No"); if (canDelete) { saveFileHandler.DeleteAll(selectedProfileID); } } EditorGUILayout.EndVertical(); } EditorGUILayout.EndVertical(); if (selectedSaveIndex < 0 || foundSaveFiles == null || selectedSaveIndex >= foundSaveFiles.Count) { return; } EditorGUILayout.Space(); SaveFile selectedSaveFile = foundSaveFiles[selectedSaveIndex]; EditorGUILayout.BeginVertical(CustomStyles.thinBox); showSave = CustomGUILayout.ToggleHeader(showSave, "Save game " + selectedSaveIndex + ": Properties"); if (showSave) { EditorGUILayout.LabelField("Label:", selectedSaveFile.label); EditorGUILayout.LabelField("ID:", selectedSaveFile.saveID.ToString()); CustomGUILayout.MultiLineLabelGUI("Filename:", selectedSaveFile.fileName); EditorGUILayout.LabelField("Timestamp:", selectedSaveFile.updatedTime.ToString()); if (!string.IsNullOrEmpty(selectedSaveFile.screenshotFilename)) { CustomGUILayout.MultiLineLabelGUI("Filename:", selectedSaveFile.screenshotFilename); } EditorGUILayout.LabelField("Is auto-save?", selectedSaveFile.isAutoSave.ToString()); GUILayout.BeginHorizontal(); GUI.enabled = Application.isPlaying; if (GUILayout.Button("Load")) { SwitchActiveProfile(selectedProfileID); SaveSystem.LoadGame(0, selectedSaveFile.saveID, true); } if (GUILayout.Button("Save over")) { if (!PlayerMenus.IsSavingLocked(null, true)) { SwitchActiveProfile(selectedProfileID); SaveSystem.SaveGame(0, selectedSaveFile.saveID, true); } } GUI.enabled = true; if (GUILayout.Button("Delete")) { bool canDelete = EditorUtility.DisplayDialog("Delete save file?", "Are you sure you want to delete the save file " + selectedSaveFile.label + "? This operation cannot be undone.", "Yes", "No"); if (canDelete) { saveFileHandler.Delete(selectedSaveFile); } } GUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); EditorGUILayout.Space(); EditorGUILayout.BeginVertical(CustomStyles.thinBox); showSaveData = CustomGUILayout.ToggleHeader(showSaveData, "Save game " + selectedSaveIndex + ": Data"); if (showSaveData) { if (GUI.changed || !runCache) { CacheSaveData(saveFileHandler, selectedSaveFile); } if (cachedSaveData != null) { cachedSaveData.ShowGUI(); } if (cachedLevelData != null) { for (int i = 0; i < cachedLevelData.Count; i++) { GUILayout.Box(string.Empty, GUILayout.ExpandWidth(true), GUILayout.Height(1)); EditorGUILayout.LabelField("Scene data " + i.ToString() + ":", CustomStyles.subHeader); cachedLevelData[i].ShowGUI(); } } } EditorGUILayout.EndVertical(); }