From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../PTC/Process/Process_PtcG2C_UnitAppear.cs | 95 ++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/PTC/Process/Process_PtcG2C_UnitAppear.cs (limited to 'Client/Assets/Scripts/XMainClient/PTC/Process/Process_PtcG2C_UnitAppear.cs') diff --git a/Client/Assets/Scripts/XMainClient/PTC/Process/Process_PtcG2C_UnitAppear.cs b/Client/Assets/Scripts/XMainClient/PTC/Process/Process_PtcG2C_UnitAppear.cs new file mode 100644 index 00000000..714a8ab2 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/PTC/Process/Process_PtcG2C_UnitAppear.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using KKSG; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class Process_PtcG2C_UnitAppear + { + private static Queue delayQueue = new Queue(); + + private static XTimerMgr.ElapsedEventHandler processCb = null; + + private static PtcG2C_UnitAppear currentPtc = null; + + private static int currentProcessCount = 0; + + private static bool processImmediate = true; + + public static void Process(PtcG2C_UnitAppear roPtc) + { + bool flag = !XSingleton.singleton.SyncMode; + if (!flag) + { + bool flag2 = Process_PtcG2C_UnitAppear.processImmediate; + if (flag2) + { + for (int i = 0; i < roPtc.Data.units.Count; i++) + { + XSingleton.singleton.CreateEntityByUnitAppearance(roPtc.Data.units[i]); + } + } + else + { + Protocol.ManualReturn(); + bool flag3 = Process_PtcG2C_UnitAppear.processCb == null; + if (flag3) + { + Process_PtcG2C_UnitAppear.processCb = new XTimerMgr.ElapsedEventHandler(Process_PtcG2C_UnitAppear.DelayProcess); + } + bool flag4 = Process_PtcG2C_UnitAppear.currentPtc != null; + if (flag4) + { + Process_PtcG2C_UnitAppear.delayQueue.Enqueue(roPtc); + } + else + { + Process_PtcG2C_UnitAppear.currentPtc = roPtc; + Process_PtcG2C_UnitAppear.currentProcessCount = 0; + } + XSingleton.singleton.SetTimer(0.01f, Process_PtcG2C_UnitAppear.processCb, null); + } + } + } + + private static void DelayProcess(object o) + { + bool flag = Process_PtcG2C_UnitAppear.currentPtc != null; + if (flag) + { + bool flag2 = Process_PtcG2C_UnitAppear.currentProcessCount < Process_PtcG2C_UnitAppear.currentPtc.Data.units.Count; + if (flag2) + { + UnitAppearance unit = Process_PtcG2C_UnitAppear.currentPtc.Data.units[Process_PtcG2C_UnitAppear.currentProcessCount]; + XSingleton.singleton.CreateEntityByUnitAppearance(unit); + Process_PtcG2C_UnitAppear.currentProcessCount++; + bool flag3 = Process_PtcG2C_UnitAppear.currentProcessCount < Process_PtcG2C_UnitAppear.currentPtc.Data.units.Count; + if (flag3) + { + XSingleton.singleton.SetTimer(0.01f, Process_PtcG2C_UnitAppear.processCb, null); + } + else + { + bool flag4 = Process_PtcG2C_UnitAppear.delayQueue.Count > 0; + if (flag4) + { + Process_PtcG2C_UnitAppear.currentPtc = Process_PtcG2C_UnitAppear.delayQueue.Dequeue(); + Process_PtcG2C_UnitAppear.currentProcessCount = 0; + XSingleton.singleton.SetTimer(0.01f, Process_PtcG2C_UnitAppear.processCb, null); + } + else + { + bool flag5 = Process_PtcG2C_UnitAppear.currentPtc != null; + if (flag5) + { + Protocol.ReturnProtocolThread(Process_PtcG2C_UnitAppear.currentPtc); + Process_PtcG2C_UnitAppear.currentPtc = null; + } + } + } + } + } + } + } +} -- cgit v1.1-26-g67d0