コード例 #1
0
    public void QueuingSpeech()
    {
        var sheet = new ES3Spreadsheet();

        sheet.Load(SpeechDataManager.instance.ScriptName);
        speechQueue = new Queue <SpeechInfo>();

        int speechStart  = 0;
        int speechLength = 0;

        foreach (SpeechDataManager.SpeechSheetInfo info in SpeechDataManager.instance.speechSheetInfos)
        {
            if (speechId != info.speechId)
            {
                continue;
            }
            else
            {
                speechStart  = info.speechRow;
                speechLength = info.speechLength;
                break;
            }
        }

        for (int row = speechStart; row < speechStart + speechLength - 1; row++)
        {
            SpeechInfo speechInfo = new SpeechInfo();
            speechInfo.speecher   = sheet.GetCell <string>(0, row);
            speechInfo.speechText = sheet.GetCell <string>(1, row);
            speechQueue.Enqueue(speechInfo);
        }
        SpeechStart();
    }
コード例 #2
0
ファイル: SpeechDataManager.cs プロジェクト: Lito0542/sannabi
    public void GetSpeechId()
    {
        speechSheetInfos = new List <SpeechSheetInfo>();
        int temp_Id;
        int temp_Row;
        int temp_Length;

        if (ES3.FileExists(ScriptName))
        {
            var sheet = new ES3Spreadsheet();
            sheet.Load(ScriptName);
            // Output the first row of the spreadsheet to console
            for (int row = 0; row < sheet.RowCount; row += 50)
            {
                temp_Id     = sheet.GetCell <int>(0, row - 1);
                temp_Row    = row;
                temp_Length = sheet.GetCell <int>(1, row - 1);
                SpeechSheetInfo temp_Info = new SpeechSheetInfo(temp_Id, temp_Row, temp_Length);
                speechSheetInfos.Add(temp_Info);
            }
        }

        else
        {
            Debug.Log("Error! ScriptFile is not exist");
            Debug.Log(ScriptName);
        }
    }
コード例 #3
0
        public void LoadData()
        {
            Spreadsheet = new ES3Spreadsheet();
            ES3Settings settings = new ES3Settings();

            settings.location = ES3.Location.Resources;
            Spreadsheet.Load("Data/ItemData.csv", settings);
            PopulateObjects();
        }
コード例 #4
0
    void Start()
    {
        currRow = 1;

        logTxtPath        = Application.persistentDataPath + "/log_" + DateTime.UtcNow.ToString("MM-dd-yyyy_h-mm-ss") + ".txt";
        logResultsCsvPath = Application.persistentDataPath + "/log_" + DateTime.UtcNow.ToString("MM-dd-yyyy_h-mm-ss") + ".csv";
        sheet             = new ES3Spreadsheet();

        numStaticCols = 9 + 4 + 24 + 12;
        numCardCols   = 2 * GameData.defaultCardDict.Count;
        totalCols     = numStaticCols + numCardCols;

        SaveSheetTitle();
    }
コード例 #5
0
ファイル: SaveSystem.cs プロジェクト: Lito0542/sannabi
    public void Save()
    {
        Debug.Log("Start Save");
        m_Count = SaveTargets.Count;
        foreach (SaveTarget obj in SaveTargets)
        {
            obj.SelfSaving(CountDown);
            LoadTargets.Remove(obj);
            LoadTargets.Add(obj);
        }
        SaveTargets.Clear();
        ES3.DeleteFile("MetaData.csv");
        var sheet = new ES3Spreadsheet();

        // Add data to cells in the spreadsheet.
        for (int row = 0; row < LoadTargets.Count; row++)
        {
            sheet.SetCell <string>(0, row, LoadTargets[row].name);
        }
        sheet.Save("MetaData.csv");
    }
コード例 #6
0
ファイル: SaveSystem.cs プロジェクト: Lito0542/sannabi
 public void Load()
 {
     LoadTargets.Clear();
     Debug.Log("Start Load");
     if (ES3.FileExists("MetaData.csv"))
     {
         var sheet = new ES3Spreadsheet();
         sheet.Load("MetaData.csv");
         // Output the first row of the spreadsheet to console.
         for (int row = 0; row < sheet.RowCount; row++)
         {
             GameObject  obj        = GameObject.Find(sheet.GetCell <string>(0, row));
             SavedObject saveTarget = obj.GetComponent <SavedObject>();
             LoadTargets.Add(saveTarget);
         }
     }
     m_Count = LoadTargets.Count;
     foreach (SaveTarget obj in LoadTargets)
     {
         obj.SelfLoading(CountDown);
     }
 }
コード例 #7
0
        private void Import()
        {
            string locFolderPath = Application.streamingAssetsPath + "/Localization";

            string[] files = Directory.GetFiles(locFolderPath);
            files = files.Where(x => x.EndsWith(".csv")).ToArray();

            for (int i = 0; i < files.Length; i++)
            {
                var sheet = new ES3Spreadsheet();
                sheet.Load(files[i]);
                int rowCount = sheet.RowCount;

                int rowDepth = 0, checkRow = 1;
                var compareAgainst = sheet.GetCell <string>(0, checkRow);


                while (true)
                {
                    checkRow++;
                    rowDepth++;

                    if (checkRow > rowCount)
                    {
                        Debug.Log("Break cuz to big: " + checkRow);
                        rowDepth--;
                        break;
                    }

                    if (sheet.GetCell <string>(0, checkRow) != compareAgainst)
                    {
                        Debug.Log("Break cuz found target");
                        break;
                    }
                }

                Debug.Log("Row Depth: " + rowDepth);


                for (int row = 1; row < rowCount - 1; row += rowDepth)
                {
                    Debug.Log("Current Row: " + row);
                    List <Dictionary <Language, string> > dictEntry =
                        new List <Dictionary <Language, string> >();

                    for (int subRow = row; subRow < row + rowDepth; subRow++)
                    {
                        var dict = new Dictionary <Language, string>();
                        for (int col = 1; col < sheet.ColumnCount; col++)
                        {
                            dict.Add(
                                LanguageUtil.LanguageAt(col - 1),
                                sheet.GetCell <string>(col, subRow)
                                );
                        }
                        dictEntry.Add(dict);
                        Debug.Log("sRow: " + subRow);
                    }

                    var locBase = GetLocalizationTarget(sheet.GetCell <string>(0, row));
                    locBase.SetLocalizedStrings(dictEntry);


                    Debug.Log($"Finished importing to the {locBase.name} ScriptableObject");
                }
            }


            Debug.Log("Localization import finished. Imported " + localisationTextAssets.Length);
        }
コード例 #8
0
        private void Export()
        {
            int languagesCount = Enum.GetNames(typeof(Language)).Length;

            //gather and count all unique types we will be exporting
            var spreadsheets = new Dictionary <string, ES3Spreadsheet>();

            for (int i = 0; i < localisationTextAssets.Length; i++)
            {
                string typeName = localisationTextAssets[i].PathToLocalizationFile();
                if (!spreadsheets.ContainsKey(typeName))
                {
                    spreadsheets.Add(typeName, new ES3Spreadsheet());
                }
            }

            //save our localization assets to proper files
            for (int i = 0; i < localisationTextAssets.Length; i++)
            {
                string         rowName  = localisationTextAssets[i].name;
                string         key      = localisationTextAssets[i].PathToLocalizationFile();
                ES3Spreadsheet sheet    = spreadsheets[key];
                int            startRow = sheet.RowCount;
                List <Dictionary <Language, string> > locStrings = localisationTextAssets[i].GetLocalizedStrings();
                int rowsToAdd = locStrings.Count + (sheet.ColumnCount == 0 ? 1 : 0);

                //TODO: Possibly, fill first row with the headers, so we can get rid of redundant checks
                for (int col = 0; col <= languagesCount; col++)
                {
                    for (int row = startRow; row < startRow + rowsToAdd; row++)
                    {
                        if (col == row && col == 0) //Top left corner
                        {
                            sheet.SetCell <string>(col, row, "Localization");
                        }
                        else if (col == 0)      //Key
                        {
                            sheet.SetCell <string>(col, row, rowName);
                        }
                        else if (row == 0)      //Header
                        {
                            sheet.SetCell <string>(
                                col, row, LanguageUtil.StringAt(col - 1));
                        }
                        else                                                 //Translation
                        {
                            int mod      = startRow == 0 ? -1 : 0;           // *Checks like this* can be avoided
                            var lDict    = locStrings[row - startRow + mod]; //dictionary<language, string> from list of dicts
                            var lDString = lDict[LanguageUtil.LanguageAt(col - 1)];
                            sheet.SetCell <string>(col, row, lDString);
                        }
                    }
                }
            }

            foreach (KeyValuePair <string, ES3Spreadsheet> es3Spreadsheet in spreadsheets)
            {
                es3Spreadsheet.Value.Save(es3Spreadsheet.Key);
            }

            Debug.Log("Localization export finished. Exported " + localisationTextAssets.Length + " lines in " + Enum.GetNames(typeof(Language)).Length + " languages");
        }