TrainResultData.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. namespace ShotSimulator.Train.Info
  5. {
  6. public class TrainResultData
  7. {
  8. public Dictionary<MetricsType, MetricsData> metricsDic = new Dictionary<MetricsType, MetricsData>();
  9. public TrainResultData(List<MetricsInfo> info)
  10. {
  11. InitTrainResultData(info);
  12. }
  13. private void InitTrainResultData(List<MetricsInfo> metricsInfo)
  14. {
  15. metricsDic.Clear();
  16. for(int i = 0; i < metricsInfo.Count; i++)
  17. {
  18. if (!metricsDic.ContainsKey(metricsInfo[i].Type))
  19. {
  20. MetricsData data = new MetricsData()
  21. {
  22. typeNameID = TrainTaskLoader.GetInstance().m_MetricsTypeConfig.GetMetricsTypeNameID(metricsInfo[i].Type),
  23. valueType = TrainTaskLoader.GetInstance().m_MetricsTypeConfig.GetValueTypeByMetricsType(metricsInfo[i].Type),
  24. StageValues = metricsInfo[i].StageValues
  25. };
  26. metricsDic.Add(metricsInfo[i].Type, data);
  27. }
  28. }
  29. }
  30. public bool SetMetricsDataValue(MetricsType type, double value)
  31. {
  32. if (metricsDic.TryGetValue(type, out var data))
  33. {
  34. data.value = value;
  35. return true;
  36. }
  37. else
  38. {
  39. return false;
  40. }
  41. }
  42. public MetricsData GetMetrics(MetricsType type)
  43. {
  44. if(metricsDic.TryGetValue(type, out var data))
  45. {
  46. return data;
  47. }
  48. else
  49. {
  50. return null;
  51. }
  52. }
  53. public void ResetMetricsDataValue()
  54. {
  55. foreach(var data in metricsDic.Values)
  56. {
  57. data.value = 0;
  58. }
  59. }
  60. }
  61. }