public void ShowFirstCard(string currentDeck) { var spreadsheetConnector = new SpreadsheetConnector(); var deck = spreadsheetConnector.GetDeck(currentDeck); View.ShowCard(deck.CurrentCard.Question, deck.CurrentCard.Answer); }
public string AddNewDeck(string newDeckName) { if (InvalidData(newDeckName)) { return(null); } var spreadsheetConnector = new SpreadsheetConnector(); spreadsheetConnector.AppendData(new List <Card> { new Card(newDeckName, "Sample Question: 1+1 = ?", "Sample Answer: 1+1 = 2") }); return(newDeckName); }
public void GetPreviousCard(string currentDeck, string question, string answer) { if (!DeckLoaded(currentDeck)) { return; } var spreadsheetConnector = new SpreadsheetConnector(); var deck = spreadsheetConnector.GetDeck(currentDeck); deck.GetPreviousCard(question, answer); View.HideAnswer(); View.ShowCard(deck.CurrentCard.Question, deck.CurrentCard.Answer); }
public void DeleteDeck(string currentDeck) { if (!DeckLoaded(currentDeck)) { return; } if (MessageBox.Show("Delete this deck?", "Delete", MessageBoxButtons.OK) == DialogResult.OK) { var spreadsheetConnector = new SpreadsheetConnector(); spreadsheetConnector.DeleteDeck(currentDeck); View.Reset(); } }
private bool DuplicateData(string currentDeck, string question, string answer) { var spreadsheetConnector = new SpreadsheetConnector(); var deck = spreadsheetConnector.GetDeck(currentDeck); foreach (var card in deck.Cards) { if (card.Question == question && card.Answer == answer) { return(true); } } return(false); }
public void AddCardToDeck(string currentDeck, string question, string answer) { if (InvalidData(currentDeck, question, answer)) { return; } var spreadsheetConnector = new SpreadsheetConnector(); spreadsheetConnector.AppendData(new List <Card>() { new Card(currentDeck, question, answer) }); View.ClearAddCardContents(); }
public void UpdateEditedCard(string deckName, string question, string answer, string newQuestion, string newAnswer) { if (InvalidData(deckName, newQuestion, newAnswer)) { return; } var spreadsheetConnector = new SpreadsheetConnector(); spreadsheetConnector.DeleteCard(deckName, question, answer); spreadsheetConnector.AppendData(new List <Card>() { new Card(deckName, newQuestion, newAnswer) }); }
private bool DuplicateData(string newDeckName) { var spreadsheetConnector = new SpreadsheetConnector(); var allCards = spreadsheetConnector.GetAllData(); foreach (var card in allCards) { if (card.DeckName == newDeckName) { return(true); } } return(false); }
public void DeleteCurrentCard(string currentDeck, string question, string answer) { if (!DeckLoaded(currentDeck)) { return; } var spreadsheetConnector = new SpreadsheetConnector(); if (MessageBox.Show("Delete this card from the deck?", "Delete", MessageBoxButtons.OK) == DialogResult.OK) { spreadsheetConnector.DeleteCard(currentDeck, question, answer); ShowFirstCard(currentDeck); } }
public void PresentComboBox() { var spreadsheetConnector = new SpreadsheetConnector(); var data = spreadsheetConnector.GetAllData(); var deckNames = new List <string>(); foreach (var card in data) { if (deckNames.Contains(card.DeckName)) { continue; } deckNames.Add(card.DeckName); } View.LoadComboBox(deckNames); }
public static void Generate(SpreadsheetConnector connector, GameTextGenerateInfo generateInfo) { if (generateInfo == null) { return; } var progressTitle = "Generate Progress"; var progressMessage = string.Empty; var gameTextConfig = GameTextConfig.Instance; progressMessage = "Connection Spreadsheet."; EditorUtility.DisplayProgressBar(progressTitle, progressMessage, 0f); var asset = LoadAsset(gameTextConfig.ScriptableObjectFolderPath, generateInfo.AssetPath); progressMessage = "Load GameText form Spreadsheet."; EditorUtility.DisplayProgressBar(progressTitle, progressMessage, 0f); // Spreadsheetに接続しデータを取得 (同期通信). var spreadsheets = connector.GetSpreadsheet(gameTextConfig.SpreadsheetId).ToArray(); EditorUtility.DisplayProgressBar(progressTitle, progressMessage, 1f); if (spreadsheets.Any()) { // 全更新するので最も最近編集されたシート情報から最終更新日を取得. var spreadsheetsUpdateDate = spreadsheets.Select(x => x.LastUpdateDate).Max().ToUnixTime(); var lastUpdateDate = asset.updateTime.HasValue ? asset.updateTime.Value : DateTime.MinValue.ToUnixTime(); // ローカルデータが最新なら更新処理は行わない. if (lastUpdateDate < spreadsheetsUpdateDate) { AssetDatabase.StartAssetEditing(); progressMessage = "Generating GameTextScript."; EditorUtility.DisplayProgressBar(progressTitle, progressMessage, 0f); GameTextScriptGenerator.Generate(spreadsheets, gameTextConfig, generateInfo.TextColumn); EditorUtility.DisplayProgressBar(progressTitle, progressMessage, 0.2f); progressMessage = "Generating GameTextAsset."; EditorUtility.DisplayProgressBar(progressTitle, progressMessage, 0.5f); GameTextAssetGenerator.Build(asset, spreadsheets, gameTextConfig, generateInfo.TextColumn); EditorUtility.DisplayProgressBar(progressTitle, progressMessage, 0.8f); EditorUtility.DisplayProgressBar(progressTitle, progressMessage, 1f); UnityConsole.Info("GameTextを出力しました"); SaveLastUpdateDate(asset, spreadsheetsUpdateDate); AssetDatabase.SaveAssets(); AssetDatabase.StopAssetEditing(); } else { UnityConsole.Info("GameTextは最新の状態です"); } } else { Debug.LogError("Spreadsheetにデータがありません."); } EditorUtility.ClearProgressBar(); }