From f85a81e64067305fe81288d544ab2305d720ea7f Mon Sep 17 00:00:00 2001
From: Client_PangDeRong <593317293@qq.com>
Date: 星期三, 15 八月 2018 11:08:32 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/AssetVersion/InGameDownLoad.cs | 144 +++++++++++++++++++++++++++++------------------
1 files changed, 89 insertions(+), 55 deletions(-)
diff --git a/System/AssetVersion/InGameDownLoad.cs b/System/AssetVersion/InGameDownLoad.cs
index e09792d..a3d09db 100644
--- a/System/AssetVersion/InGameDownLoad.cs
+++ b/System/AssetVersion/InGameDownLoad.cs
@@ -16,20 +16,7 @@
public bool inGameDownLoadAllow = false;
- bool m_DominantDownLoadStarted = false;
- public bool dominantDownLoadStarted {
- get { return m_DominantDownLoadStarted; }
- private set {
- if (m_DominantDownLoadStarted != value)
- {
- m_DominantDownLoadStarted = value;
- if (dominantDownLoadEvent != null)
- {
- dominantDownLoadEvent();
- }
- }
- }
- }
+
public float progress {
get {
@@ -59,9 +46,24 @@
int downLoadedCountRecord = 0;//宸茬粡涓嬭浇瀹屾垚鐨勮祫婧愬寘鏁伴噺
public event Action<State> downLoadStateChangeEvent;
- public event Action dominantDownLoadEvent;
+ public event Action<Dominant> dominantDownLoadEvent;
Action onDownLoadOk;
+
+ Dominant m_DominantState = Dominant.None;
+ public Dominant dominantState {
+ get { return m_DominantState; }
+ private set {
+ if (m_DominantState != value)
+ {
+ m_DominantState = value;
+ if (dominantDownLoadEvent != null)
+ {
+ dominantDownLoadEvent(m_DominantState);
+ }
+ }
+ }
+ }
State m_State = State.None;
public State state {
@@ -145,7 +147,7 @@
GameNetSystem.Instance.SendInfo(send);
}
- public void TryDownLoad(bool _force)
+ public void TryDownLoad(Dominant _dominant)
{
if (!inGameDownLoadAllow)
{
@@ -157,36 +159,56 @@
return;
}
- if (_force)
+ if (_dominant < dominantState)
{
- if (!dominantDownLoadStarted)
- {
- backGroundDownLoadSizeRecord = RemoteFile.TotalDownloadedSize;
- downLoadedCountRecord = okCount;
-
- dominantDownLoadStarted = true;
- Pause();
- state = State.Prepared;
- }
-
- WindowCenter.Instance.Open<InGameDownLoadWin>();
+ return;
}
- else
+
+ switch (_dominant)
{
- if (InGameDownTestUtility.enable)
- {
- if (InGameDownTestUtility.isWifi)
+ case Dominant.None:
+ if (InGameDownTestUtility.enable)
{
- StartDownLoad();
+ if (InGameDownTestUtility.isWifi)
+ {
+ StartDownLoad();
+ }
}
- }
- else
- {
- if (Application.internetReachability == NetworkReachability.ReachableViaLocalAreaNetwork)
+ else
{
- StartDownLoad();
+ if (Application.internetReachability == NetworkReachability.ReachableViaLocalAreaNetwork)
+ {
+ StartDownLoad();
+ }
}
- }
+ break;
+ case Dominant.Half:
+ if (dominantState == Dominant.None)
+ {
+ backGroundDownLoadSizeRecord = RemoteFile.TotalDownloadedSize;
+ downLoadedCountRecord = okCount;
+ state = State.Prepared;
+ }
+ StartDownLoad();
+ dominantState = Dominant.Half;
+ break;
+ case Dominant.Whole:
+ if (dominantState == Dominant.None)
+ {
+ backGroundDownLoadSizeRecord = RemoteFile.TotalDownloadedSize;
+ downLoadedCountRecord = okCount;
+ Pause();
+ state = State.Prepared;
+ }
+ else if (dominantState == Dominant.Half)
+ {
+ Pause();
+ state = State.Prepared;
+ }
+
+ dominantState = Dominant.Whole;
+ WindowCenter.Instance.Open<InGameDownLoadWin>();
+ break;
}
}
@@ -258,7 +280,7 @@
if (!hasReward)
{
- if (!dominantDownLoadStarted)
+ if (dominantState == Dominant.None)
{
RequestDownLoadReward(false);
state = State.Completed;
@@ -302,6 +324,7 @@
}
}
+ Clock netSwitchClock;
NetworkReachability m_NetworkReachability = NetworkReachability.NotReachable;
NetworkReachability networkReachability {
get { return m_NetworkReachability; }
@@ -310,23 +333,27 @@
{
m_NetworkReachability = value;
- if (!dominantDownLoadStarted)
+ if (dominantState != Dominant.Whole)
{
switch (m_NetworkReachability)
{
case NetworkReachability.ReachableViaCarrierDataNetwork:
Pause();
- var endTime = DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond * 10);
- Clock.Create(endTime, () =>
+ var endTime = DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond * 3);
+ if (netSwitchClock != null)
{
- if (CheckDominantDownLoad())
- {
- TryDownLoad(true);
- }
- });
+ netSwitchClock.Stop();
+ }
+ netSwitchClock = Clock.Create(endTime, () =>
+ {
+ if (CheckDominantDownLoad())
+ {
+ TryDownLoad(Dominant.Whole);
+ }
+ });
break;
case NetworkReachability.ReachableViaLocalAreaNetwork:
- TryDownLoad(false);
+ TryDownLoad(Dominant.None);
break;
default:
break;
@@ -345,11 +372,11 @@
{
m_SimulateWifi = value;
- if (!dominantDownLoadStarted)
+ if (dominantState != Dominant.Whole)
{
if (m_SimulateWifi)
{
- TryDownLoad(false);
+ TryDownLoad(Dominant.None);
}
else
{
@@ -359,7 +386,7 @@
{
if (CheckDominantDownLoad())
{
- TryDownLoad(true);
+ TryDownLoad(Dominant.Whole);
}
});
}
@@ -397,7 +424,7 @@
public bool CheckDominantDownLoad()
{
- if (tasks == null || tasks.Count == 0 || isDone || dominantDownLoadStarted || NewBieCenter.Instance.inGuiding)
+ if (tasks == null || tasks.Count == 0 || isDone || dominantState == Dominant.Whole || NewBieCenter.Instance.inGuiding)
{
return false;
}
@@ -467,7 +494,7 @@
{
if (CheckDominantDownLoad())
{
- TryDownLoad(true);
+ TryDownLoad(Dominant.Whole);
}
}
break;
@@ -482,7 +509,7 @@
{
if (CheckDominantDownLoad())
{
- TryDownLoad(true);
+ TryDownLoad(Dominant.Whole);
}
}
}
@@ -538,6 +565,13 @@
Pause,
Award,
Completed,
+ }
+
+ public enum Dominant
+ {
+ None = 0,
+ Half = 1,
+ Whole = 2,
}
}
--
Gitblit v1.8.0