Пример #1
0
 public List <T> GetData <T>(WPEnum.GameData _gameData) where T : WPData
 {
     if (gameData != null)
     {
         if (gameData.ContainsKey(_gameData))
         {
             List <T> newList = new List <T>();
             for (int i = 0; i < gameData[_gameData].Count; ++i)
             {
                 newList.Add((T)gameData[_gameData][i]);
             }
             return(newList);
         }
     }
     return(null);
 }
Пример #2
0
    private void LoadData(WPEnum.GameData _gameData)
    {
        string dataName = _gameData.ToString().Substring(1);
        string dataPath = "Data/" + dataName;

        /*
         * if (!File.Exists(dataPath))
         * {
         *  WPGameCommon._WPDebug("해당하는 파일이 존재하지 않습니다! : " + dataPath);
         *  return;
         * }*/

        TextAsset newData = Resources.Load <TextAsset>(dataPath);

        if (newData == null)
        {
            WPGameCommon._WPDebug("해당하는 파일이 존재하지 않습니다! : " + dataPath);
            return;
        }

        string        csvString = newData.text;
        List <WPData> csvData   = new List <WPData>();

        string[] lines = Regex.Split(csvString, LINE_SPLIT_RE);

        if (lines.Length > 1)
        {
            string[] header = Regex.Split(lines[0], SPLIT_RE);

            for (int i = 1; i < lines.Length; ++i)
            {
                string[] values = Regex.Split(lines[i], SPLIT_RE);

                if (values.Length <= 0)
                {
                    continue;
                }

                string testString = string.Empty;

                Dictionary <string, object> entry = new Dictionary <string, object>();
                for (int j = 0; j < header.Length && j < values.Length; ++j)
                {
                    string value = values[j].TrimStart(TRIM_CHARS).TrimEnd(TRIM_CHARS).Replace("\\", "");
                    entry[header[j]] = value;
                    testString      += header[j] + ":" + value + "//";
                }

                switch (_gameData)
                {
                case WPEnum.GameData.eNews:
                {
                    if (WPData_News.CheckDataIntegrity(entry))
                    {
                        WPData_News newsData = new WPData_News(entry);
                        csvData.Add(newsData);
                    }
                    break;
                }

                case WPEnum.GameData.eSeed:
                {
                    if (WPData_Seed.CheckDataIntegrity(entry))
                    {
                        WPData_Seed seedData = new WPData_Seed(entry);
                        csvData.Add(seedData);
                    }
                    break;
                }

                case WPEnum.GameData.eFertilizer:
                {
                    if (WPData_Fertilizer.CheckDataIntegrity(entry))
                    {
                        WPData_Fertilizer fertilizerData = new WPData_Fertilizer(entry);
                        csvData.Add(fertilizerData);
                    }
                    break;
                }

                case WPEnum.GameData.eEvent:
                {
                    if (WPData_Event.CheckDataIntegrity(entry))
                    {
                        WPData_Event eventData = new WPData_Event(entry);
                        csvData.Add(eventData);
                    }
                    break;
                }
                }

                WPGameCommon._WPDebug(testString);
            }
            gameData.Add(_gameData, csvData);
        }
    }