Ejemplo n.º 1
0
        private void StopRecording()
        {
            if (!_trackingCurrentLevel)
            {
                return;
            }

            _recorder.StopRecording();
            string aDateStamp    = System.DateTime.Now.ToString("dd-MM-yyyy");
            string aTimeStampEnd = System.DateTime.Now.ToString("HH-mm-ss");

            System.IO.Directory.CreateDirectory(Application.persistentDataPath + PATH_DIR);
            FileWriter.SetPath(string.Format("{0}{1}{2}_{3}_{4}.txt", Application.persistentDataPath, PATH_DIR, Application.loadedLevelName, aDateStamp, aTimeStampEnd));

            // session data
            FileWriter.WriteLine(string.Format("{{ \"SessionData\": {{ \"Game\": \"{0}\", \"DateStamp\": \"{1}\", \"TimeStampStart\": \"{2}\", \"TimeStampEnd\": \"{3}\" }}, \"Events\": {{ ", Application.loadedLevelName, aDateStamp, _timeStampStart, aTimeStampEnd));

            // events
            string[] lines = new string[_eventList.Count];
            int      i     = 0;

            foreach (EvaluationEvent anEvent in _eventList)
            {
                lines[i] = string.Format("\"{0}\": {{ ", anEvent.Name);

                int ii = 0;
                foreach (KeyValuePair <string, string> aDataSet in anEvent.Data)
                {
                    lines[i] += string.Format("\"{0}\": \"{1}\"", aDataSet.Key, aDataSet.Value);
                    if ((ii + 1) < anEvent.Data.Count)
                    {
                        lines[i] += ",";
                    }
                    ii++;
                }

                lines[i] += "}";
                if ((i + 1) < _eventList.Count)
                {
                    lines[i] += ",";
                }

                i++;
            }
            _eventList.Clear();
            FileWriter.WriteLines(lines);
            FileWriter.WriteLine(" }, \"PharusData\": { ");

            // coordinates
            System.Data.DataRow[] dataRows = _recorder.SelectFromTable();
            lines = new string[dataRows.Length];

            switch (Application.loadedLevelName)
            {
            default:
                for (int j = 0; j < lines.Length; j++)
                {
                    lines[j] = string.Format("\"{0}\": {{ ", dataRows[j]["id"]);
                    Vector2 pos = (Vector2)dataRows[j]["position"];
                    lines[j] += string.Format("\"GameTime\": \"{0}\", \"TrackRecordId\":\"{1}\", \"X\": \"{2}\", \"Y\": \"{3}\" }}", dataRows[j]["applicationTime"], dataRows[j]["trackRecordId"], pos.x, pos.y);
                    if ((j + 1) < lines.Length)
                    {
                        lines[j] += ",";
                    }
                }
                break;
//				case "FishFeast":
//					for(int j = 0; j < lines.Length; j++)
//					{
//						lines[j] = string.Format("\"{0}\": {{ ", dataRows[j]["id"]);
//						Vector2 pos = (Vector2)dataRows[j]["position"];
//						lines[j] += string.Format("\"GameTime\": \"{0}\", \"TrackRecordId\":\"{1}\", \"X\": \"{2}\", \"Y\": \"{3}\", \"Status\": \"{4}\", \"Size\": \"{5}\" }}", dataRows[j]["applicationTime"], dataRows[j]["trackRecordId"], pos.x, pos.y, dataRows[j]["status"], dataRows[j]["size"]);
//						if((j+1) < lines.Length)
//						{
//							lines[j] += ",";
//						}
//					}
//					break;
//				case "TowerOfPower":
//					for(int j = 0; j < lines.Length; j++)
//					{
//						lines[j] = string.Format("\"{0}\": {{ ", dataRows[j]["id"]);
//						Vector2 pos = (Vector2)dataRows[j]["position"];
//						lines[j] += string.Format("\"GameTime\": \"{0}\", \"TrackRecordId\":\"{1}\", \"X\": \"{2}\", \"Y\": \"{3}\", \"Team\": \"{4}\"}}", dataRows[j]["applicationTime"], dataRows[j]["trackRecordId"], pos.x, pos.y, dataRows[j]["team"]);
//						if((j+1) < lines.Length)
//						{
//							lines[j] += ",";
//						}
//					}
//					break;
            }

            _recorder.ClearTable();
            FileWriter.WriteLines(lines);
            FileWriter.WriteLine("} }");

            _trackingCurrentLevel = false;
        }