123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using Sirenix.OdinInspector;
- using KairoEngine.Core;
- namespace KairoEngine.Statistics
- {
- public enum StatisticType
- {
- time,
- integer,
- text
- }
- [System.Serializable, HideMonoScript]
- public class StatisticData
- {
- [HorizontalGroup(180), HideLabel] public string title;
- [ShowIf("@category == StatisticType.time"), HorizontalGroup(), HideLabel, ShowInInspector] private float time;
- [ShowIf("@category == StatisticType.integer"), HorizontalGroup(), HideLabel, ShowInInspector] private int integer;
- [ShowIf("@category == StatisticType.text"), HorizontalGroup(), HideLabel, ShowInInspector] private string text;
- [HorizontalGroup(80), HideLabel] public StatisticType category;
- [HorizontalGroup(), HideLabel, Tooltip("Persistent Data?")] public bool persistent = false;
- public void AddTime(float t)
- {
- time += t;
- TriggerEvent(time);
- }
- public void AddInteger(int n)
- {
- integer += n;
- TriggerEvent(integer);
- }
- public float GetTime() => time;
- public int GetInteger() => integer;
- public string GetText() => text;
- public void SetTime(float t)
- {
- time = t;
- TriggerEvent(time);
- }
- public void SetInteger(int n)
- {
- integer = n;
- TriggerEvent(integer);
- }
- public void SetText(string t)
- {
- text = t;
- TriggerEvent(text);
- }
- public void Reset()
- {
- time = 0f;
- integer = 0;
- text = "";
- }
- private void TriggerEvent(float time) => GenericEvents.Trigger("StatisticDataChanged", title, time);
- private void TriggerEvent(int integer) => GenericEvents.Trigger("StatisticDataChanged", title, integer);
- private void TriggerEvent(string text) => GenericEvents.Trigger("StatisticDataChanged", title, text);
- }
- }
|