82 lines
1.3 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|