58 lines
2.3 KiB
C#
58 lines
2.3 KiB
C#
using UnityGameFramework.Runtime;
|
|
using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
|
|
|
|
namespace GeometryTD.Procedure
|
|
{
|
|
public class ProcedureCheckResources : ProcedureBase
|
|
{
|
|
private bool m_CheckResourcesComplete = false;
|
|
private bool m_NeedUpdateResources = false;
|
|
private int m_UpdateResourceCount = 0;
|
|
private long m_UpdateResourceTotalCompressedLength = 0L;
|
|
|
|
public override bool UseNativeDialog => true;
|
|
|
|
protected override void OnEnter(ProcedureOwner procedureOwner)
|
|
{
|
|
base.OnEnter(procedureOwner);
|
|
|
|
m_CheckResourcesComplete = false;
|
|
m_NeedUpdateResources = false;
|
|
m_UpdateResourceCount = 0;
|
|
m_UpdateResourceTotalCompressedLength = 0L;
|
|
|
|
GameEntry.Resource.CheckResources(OnCheckResourcesComplete);
|
|
}
|
|
|
|
protected override void OnUpdate(ProcedureOwner procedureOwner, float elapseSeconds, float realElapseSeconds)
|
|
{
|
|
base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds);
|
|
|
|
if (!m_CheckResourcesComplete)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (m_NeedUpdateResources)
|
|
{
|
|
procedureOwner.SetData<VarInt32>("UpdateResourceCount", m_UpdateResourceCount);
|
|
procedureOwner.SetData<VarInt64>("UpdateResourceTotalCompressedLength", m_UpdateResourceTotalCompressedLength);
|
|
ChangeState<ProcedureUpdateResources>(procedureOwner);
|
|
}
|
|
else
|
|
{
|
|
ChangeState<ProcedurePreload>(procedureOwner);
|
|
}
|
|
}
|
|
|
|
private void OnCheckResourcesComplete(int movedCount, int removedCount, int updateCount, long updateTotalLength, long updateTotalCompressedLength)
|
|
{
|
|
m_CheckResourcesComplete = true;
|
|
m_NeedUpdateResources = updateCount > 0;
|
|
m_UpdateResourceCount = updateCount;
|
|
m_UpdateResourceTotalCompressedLength = updateTotalCompressedLength;
|
|
Log.Info("Check resources complete, '{0}' resources need to update, compressed length is '{1}', uncompressed length is '{2}'.", updateCount.ToString(), updateTotalCompressedLength.ToString(), updateTotalLength.ToString());
|
|
}
|
|
}
|
|
}
|