public static bool SavePosition(SavedPosition position, string fullPath) { if (position == null) { return(false); } var json = JsonService.SerializeToJson(position); return(SaveFile(fullPath, json)); }
#pragma warning restore 649 // public void Initialize(Texture2D image, string title, long timestampTicks, bool isQuickSave) public void Initialize(SavedPosition position) { savedPosition = position; var previewImage = screenShotService.LoadScreenshot(position.ScreenShotFileName); var title = FileServices.ExtractPositionTitleFromScreenshotPath(position.ScreenShotFileName); Image.texture = previewImage; TitleMesh.text = title; TimeStampMesh.text = new DateTime(position.DateTimeTicks).ToString("d MMMM yyyy hh:mm"); QuickSaveIndicator.SetActive(position.positionType == SavedPositionType.QuickSave); }
private void SetWorldFromPositionData(SavedPosition data) { environment.GridSize = data.GridSize; environment.WorldTileSideSize = data.WorldTileSide; InitialWorldOffset = data.OriginalOffset; TraversedOffset = data.TraversedOffset; FindObjectOfType <CharacterController>().transform.SetPositionAndRotation( data.CharacterPosition, data.CharacterRotation); characterPosition.OldGridPosition = data.CharacterPosition.ToVector3Int(); }
/// <summary> /// Run from SaveLoadController on successful load /// </summary> /// <param name="data"></param> public void RebuildWorld(SavedPosition data) { characterPosition.OnPositionChanged.RemoveListener(SpawnNewLine); var gameController = FindObjectOfType <GameController>(); gameController.InputEnabled = false; ClearElementStores(); SetWorldFromPositionData(data); SpawnTerrainElements(false); InstantiateBuiltElementsFromPosition(data.BuiltElements); gameController.InputEnabled = true; characterPosition.OnPositionChanged.AddListener(SpawnNewLine); }
private void CreateSaveFile(SavedPositionType positionType, string screenshotFile, string newSaveFilePath) { var newSave = new SavedPosition() { GridSize = environment.GridSize, WorldTileSide = environment.WorldTileSideSize, positionType = positionType, OriginalOffset = terrain.InitialWorldOffset, TraversedOffset = terrain.TraversedOffset, CharacterPosition = characterTransform.position, CharacterRotation = characterTransform.rotation, ScreenShotFileName = screenshotFile, DateTimeTicks = DateTime.Now.Ticks, BuiltElements = GetBuildDescriptions(BuiltElementsStoreController.GetBuiltElements()) }; var saveResult = FileServices.SavePosition(newSave, newSaveFilePath); ReportMessage(saveResult ? Strings.SaveSuccessful : Strings.SaveFailed, saveResult); OnFileSave?.Invoke(saveResult); }
private void InstantiatePreviewForAnchor(int anchorIndex, SavedPosition position) { LoadPreviewController preview; switch (anchorIndex) { case 0: preview = preview1; preview1.gameObject.SetActive(true); break; case 1: preview = preview2; preview2.gameObject.SetActive(true); break; case 2: preview = preview3; preview3.gameObject.SetActive(true); break; default: throw new ArgumentOutOfRangeException($"Anchor index \"{anchorIndex}\" out of range"); } preview.Initialize(position); }
public void SaveWindowPositions() { IntPtr shellWindow = GetShellWindow(); this.windows.Clear(); EnumWindows(delegate(IntPtr _ptr, int lParam) { if (_ptr == shellWindow) { return(true); } if (!IsWindowVisible(_ptr)) { return(true); } int length = GetWindowTextLength(_ptr); if (length == 0) { return(true); } Rect getRect = new Rect(); GetWindowRect(_ptr, ref getRect); tagWINDOWPLACEMENT tagWINDOWPLACEMENT = new tagWINDOWPLACEMENT(); GetWindowPlacement(_ptr, ref tagWINDOWPLACEMENT); SavedPosition savedPosition = new SavedPosition() { Rect = getRect, Maximized = tagWINDOWPLACEMENT.showCmd == SW_SHOWMAXIMIZED }; this.windows.Add(_ptr, savedPosition); return(true); }, 0); }