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