private MetaContentEditor createEditor(MetaData data, MetaContentEditorShell shell) { switch (data.Type) { case MetaDataType.Title: shell.ViewToggle.Toggle(true); TitleEditor result = Instantiate(_titleEditorPrefab); result.Data = data as TitleData; return(result); case MetaDataType.Tags: shell.ViewToggle.Toggle(true); TagsEditor tagsEditor = Instantiate(_tagsEditorPrefab); tagsEditor.Data = data as TagsData; return(tagsEditor); case MetaDataType.CreationDate: shell.ViewToggle.Toggle(false); CreationDateEditor creationDateEditor = Instantiate(_creationDateEditor); creationDateEditor.Data = data as CreationDateData; return(creationDateEditor); case MetaDataType.LastChangedDate: shell.ViewToggle.Toggle(false); LastChangeDateEditor lastChangeDate = Instantiate(_lastChangeDateEditor); lastChangeDate.Data = data as LastChangeDateData; return(lastChangeDate); case MetaDataType.Comment: shell.ViewToggle.Toggle(true); CommentEditor commentEditor = Instantiate(_commentEditor); commentEditor.Data = data as CommentData; return(commentEditor); case MetaDataType.Description: shell.ViewToggle.Toggle(true); DescriptionEditor descriptionEditor = Instantiate(_descriptionEditor); descriptionEditor.Data = data as DescriptionData; return(descriptionEditor); case MetaDataType.PreviewImage: shell.ViewToggle.Toggle(true); PreviewImageEditor previewImageEditor = Instantiate(_previewImageEditor); previewImageEditor.Data = data as PreviewImageData; return(previewImageEditor); case MetaDataType.Author: shell.ViewToggle.Toggle(true); AuthorsEditor authorsEditor = Instantiate(_authorsEditor); authorsEditor.Data = data as AuthorData; return(authorsEditor); default: throw new NotImplementedException(); } }
/// <summary> /// Initialize Triatla /// </summary> public static void Initialize() { TitleEditor.ChangeTitle(); InitializeBoard(12, () => { // Check for key presses Task.Run(MoveHandler.StartKeyPress); // Render board - Graphics RenderBoard(); }); }
public static async Task <bool> RollCredits() { // Make some kind of scroll 'animation' for (var i = 0; i < BufferHeight; i++) { MoveBufferArea(0, 0, BufferWidth, BufferHeight, 0, 1); await Task.Delay(350); } // Typing animation credits scene foreach (var name in Names) { CursorTop = 0; MoveBufferArea(0, 0, BufferWidth, BufferHeight, 0, 1); await Task.Delay(500); foreach (var c in name.Text) { lock (Out) { ForegroundColor = name.Color; Write(c); ResetColor(); } await Task.Delay(Rand.Next(100)); } WriteLine(); } // Make some kind of scroll 'animation' for (var i = 0; i < BufferHeight; i++) { MoveBufferArea(0, 0, BufferWidth, BufferHeight, 0, 1); await Task.Delay(500); } // Wait for a second await Task.Delay(1000); // Say one last message - Thank you for playing const string text = "Thank you for playing .."; CursorTop = BufferHeight / 2; CursorLeft = BufferWidth / 2 - text.Length / 2; WriteLine(text); TitleEditor.EndTitle(); return(true); }
private static void InitializeBoard(int size, Action callback) { SetSize(size); // Sets Size of the console, etc. // Initializes the 2D Array var dat = new BDat[size, size]; for (var i = 0; i < dat.GetLength(0); i++) { for (var j = 0; j < dat.GetLength(1); j++) { var d = new BDat(j, i); d.OnStateChanged += (s, g) => { RenderBoard(); }; dat[i, j] = d; } } // Subscribe to selection changed event BoardData.Selection.OnVectorChange += (s, g) => { RenderBoard(); }; // Set board data to dat (temp data) BoardData.Data = dat; BoardData.OnWinnerSelected += (s, g) => { var win = new WinnerData { Winner = g, WinTime = DateTime.Now }; BoardData.Winner = win; //RenderBoard(); }; BoardData.OnPlaceChanged += (s, g) => { // Check neighbors and check winner BoardData.Data.CheckNeighbors(g, 5, (i, state) => { var c = state.StateChar; if (HighestScoreData.Data.ContainsKey(c) && HighestScoreData.Data[c] is HighestScoreData score) { if (score.Score > i) { return; } var tempD = new HighestScoreData { Score = i, Character = state }; HighestScoreData.Data[c] = tempD; } if (i >= 5) // Check if any winner { BoardData.CallWinnerSelected(state); } TitleEditor.RefreshTitle(); }); if (!BoardData.Data.IsFilled()) { RenderBoard(); } }; // Invoke callback callback?.Invoke(); }
public void SetNewTitle(string newTitle) { TitleEditor.TypeText(newTitle); TitleSaveButton.Click(); }