Files
2026-03-04 10:03:45 +08:00

82 lines
1.3 KiB
C#

using System;
using Steamworks;
using UnityEngine;
namespace HeathenEngineering.SteamApi.Foundation
{
[Serializable]
[CreateAssetMenu(menuName = "Steamworks/Foundation/Float Stat Data")]
public class SteamFloatStatData : SteamStatData
{
[SerializeField]
private float value;
public float Value
{
get
{
return value;
}
set
{
SetFloatStat(value);
}
}
public override StatDataType DataType => StatDataType.Float;
public override float GetFloatValue()
{
return Value;
}
public override int GetIntValue()
{
return (int)Value;
}
public override void SetFloatStat(float value)
{
if (this.value != value)
{
this.value = value;
SteamUserStats.SetStat(statName, value);
ValueChanged.Invoke(this);
}
}
public override void SetIntStat(int value)
{
if (this.value != (float)value)
{
this.value = value;
SteamUserStats.SetStat(statName, value);
ValueChanged.Invoke(this);
}
}
public override void StoreStats()
{
SteamUserStats.StoreStats();
}
internal override void InternalUpdateValue(int value)
{
if ((float)value != Value)
{
Value = value;
ValueChanged.Invoke(this);
}
}
internal override void InternalUpdateValue(float value)
{
if (value != Value)
{
Value = value;
ValueChanged.Invoke(this);
}
}
}
}