Exemplo n.º 1
0
    private void ChangeLoadingStep(LoadingStep step)
    {
        if (_loadingStep == step)
        {
            Logger.Warning("CHECK: set same loading step.");
            return;
        }

        _loadingStep = step;

        if (_loadingStep == LoadingStep.Login)
        {
            OnLoadingStepLogin();
        }
        else if (_loadingStep == LoadingStep.Data)
        {
            OnLoadingStepData();
        }
        else if (_loadingStep == LoadingStep.Main)
        {
            OnLoadingStepMain();
        }
        else if (_loadingStep == LoadingStep.Count)
        {
            OnLoadingStepEnd();
        }

        EventManager.Instance.Dispatch(EventId.LoadingStep, (int)_loadingStep);
    }
Exemplo n.º 2
0
    private void OnUpdateProgress(object sender, GameEventArgs e)
    {
        DataEventArgs ne     = (DataEventArgs)e;
        LoadingStep   stepId = (LoadingStep)ne.Param[0];
        float         value  = Convert.ToSingle(ne.Param[1]);

        switch (stepId)
        {
        case LoadingStep.UpdateVersion:
            progressNum = value * 0.3f;
            break;

        case LoadingStep.Preload:
            progressNum = value * 0.3f + 0.3f;
            break;

        case LoadingStep.ChangeScene:
            progressNum = value * 0.4f + 0.6f;
            break;
        }
        if (isLua)
        {
            luaTable.Set("progressNum", progressNum);
        }
        if (progressNum == 1)
        {
            this.Close();
        }
    }
Exemplo n.º 3
0
 public void LoadScene()
 {
     m_loadingQueue.Enqueue(new LoadingCommand(() => {
         Debug.Log("Loading scene");
         m_curLoadingStep = LoadingStep.eLoadingScene;
         StartCoroutine(_LoadScene());
     }));
 }
Exemplo n.º 4
0
 public void LoadCharacter(PlayerManager pm, GameMatch match)
 {
     m_loadingQueue.Enqueue(new LoadingCommand(() => {
         Debug.Log("Loading character");
         m_curLoadingStep = LoadingStep.eLoadingPlayers;
         StartCoroutine(_LoadCharacters(pm, match));
     }));
 }
Exemplo n.º 5
0
    void Awake()
    {
        updatePreclist = new List <UpdatePrec>();
        m_bInitHandler = false;

        GameMatch curMatch = GameSystem.Instance.mClient.mCurMatch;

        if (curMatch != null && curMatch.leagueType != GameMatch.LeagueType.ePVP &&
            (curMatch.leagueType != GameMatch.LeagueType.eRegular1V1 || curMatch.GetMatchType() == GameMatch.Type.eCareer3On3) &&
            (curMatch.leagueType != GameMatch.LeagueType.eQualifyingNew || curMatch.GetMatchType() == GameMatch.Type.eCareer3On3))
        {
            PlayerManager pm = GameSystem.Instance.mClient.mPlayerManager;
            single = pm.m_Players.Count <= 2;
        }

        Tip       = transform.FindChild("Window/Bottom/Tip").GetComponent <UILabel>();
        TipSimple = transform.FindChild("Window/Bottom/Tip_Simple").GetComponent <UILabel>();

        Title = transform.FindChild("Window/Top/TopBG/Icon").GetComponent <UISprite>();

        MyTeamName    = transform.FindChild("Window/Top/WeName").GetComponent <UILabel>();
        RivalTeamName = transform.FindChild("Window/Top/TheyName").GetComponent <UILabel>();

        //MyTeamRoles = transform.FindChild("Window/Middle/Left/Grid").GetComponent<UIGrid>();
        //RivalTeamRoles = transform.FindChild("Window/Middle/Right/Grid").GetComponent<UIGrid>();

        SingleBaseBg    = transform.FindChild("Window/Middle/NarrowBase").gameObject;
        MultiBaseBg     = transform.FindChild("Window/Middle/WideBase").gameObject;
        LblNarrowTip    = SingleBaseBg.transform.FindChild("Tip").GetComponent <UILabel> ();
        LblMultiBaseTip = MultiBaseBg.transform.FindChild("Tip").GetComponent <UILabel> ();

        Window   = transform.FindChild("Window").gameObject;
        BG       = transform.FindChild("Window/Bg").gameObject.GetComponent <UITexture>();
        BGSimple = transform.FindChild("Window/Bg_Simple").gameObject.GetComponent <UITexture>();

        foreach (KeyValuePair <uint, List <LuaComponent> > items in mapPlayerIdLoadingState)
        {
            items.Value.Clear();
        }
        mapPlayerIdLoadingState.Clear();

        NetworkConn conn = GameSystem.Instance.mNetworkManager.m_platConn;

        if (conn != null)
        {
            conn.EnableTimeout(false);
        }
        conn = GameSystem.Instance.mNetworkManager.m_gameConn;
        if (conn != null)
        {
            conn.EnableTimeout(false);
        }

        GameSystem.Instance.mClient.mUIManager.isInMatchLoading = true;
        m_curLoadingStep = LoadingStep.eInit;
    }
Exemplo n.º 6
0
    public void LoadUI(GameMatch match)
    {
        List <string> uiList;

        match.GetUIList(out uiList);

        m_loadingQueue.Enqueue(new LoadingCommand(() => {
            Debug.Log("Loading ui");
            m_curLoadingStep = LoadingStep.eLoadingUI;
            StartCoroutine(_LoadUi(uiList));
        }, true));
    }
Exemplo n.º 7
0
    public void OnSceneLoaded()
    {
        if (pvp)
        {
            GameMsgSender.SendPVPLoadProgress(50);
        }
        else
        {
            _RefreshUIPercFunc(50);
        }

        m_curLoadingStep = LoadingStep.eLoadedScene;
    }
Exemplo n.º 8
0
 internal static void UnloadMods()
 {
     CurrentLoadingStep = LoadingStep.UNLOAD;
     foreach (var modid in loadOrder)
     {
         var mod = Mods[modid];
         try
         {
             mod.Unload();
         }
         catch (Exception e)
         {
             throw new Exception($"Error unloading mod '{modid}'!\n{e.GetType().Name}: {e}");
         }
     }
 }
Exemplo n.º 9
0
 internal static void UnLoadMods()
 {
     CurrentLoadingStep = LoadingStep.UNLOAD;
     foreach (string key in loadOrder.ToList().Reverse <string>())
     {
         SRMod mod = Mods[key];
         try
         {
             mod.UnLoad();
         }
         catch (Exception ex)
         {
             Debug.LogError(new Exception(string.Format("Error unloading mod '{0}'!\n{1}: {2}", (object)key, (object)ex.GetType().Name, (object)ex)));
         }
     }
 }
Exemplo n.º 10
0
        public static void PostLoadMods()
        {
            CurrentLoadingStep = LoadingStep.POSTLOAD;
            foreach (var mod in Mods)
            {
                try
                {
                    mod.Value.PostLoad();
                }
                catch (Exception e)
                {
                    throw new Exception($"Error post-loading mod '{mod.Key}'!\n{e.GetType().Name}: {e.Message}");
                }
            }

            CurrentLoadingStep = LoadingStep.FINISHED;
        }
Exemplo n.º 11
0
        internal static void PostLoadMods()
        {
            CurrentLoadingStep = LoadingStep.POSTLOAD;
            foreach (var modid in loadOrder)
            {
                var mod = Mods[modid];
                try
                {
                    mod.PostLoad();
                }
                catch (Exception e)
                {
                    throw new Exception($"Error post-loading mod '{modid}'!\n{e.GetType().Name}: {e}");
                }
            }

            CurrentLoadingStep = LoadingStep.FINISHED;
        }
Exemplo n.º 12
0
        private static void AddLoadingSteps()
        {
            LoadingStep[] steps = new LoadingStep[] {
                new LoadingStep(StepConfigure, "Configuring", 0f),
                new LoadingStep(StepSelectGTAPath(), "Select path to GTA", 0.0f),
                new LoadingStep(StepLoadArchives, "Loading archives", 1.7f),
                new LoadingStep(StepLoadSplashScreen, "Loading splash screen", 0.06f),
                new LoadingStep(StepSetSplash1, "Set splash 1"),
                new LoadingStep(StepLoadAudio, "Loading audio"),
                //new LoadingStep ( StepLoadFonts,"Loading fonts"),
                new LoadingStep(StepLoadCollision, "Loading collision files", 0.9f),
                new LoadingStep(StepLoadItemInfo, "Loading item info", 2.4f),
                new LoadingStep(StepLoadHandling, "Loading handling", 0.01f),
                //new LoadingStep ( () => { throw new System.Exception ("testing error handling"); }, "testing error handling", 0.01f ),
                new LoadingStep(StepLoadAnimGroups, "Loading animation groups", 0.02f),
                new LoadingStep(StepLoadCarColors, "Loading car colors", 0.04f),
                new LoadingStep(StepLoadWeaponsData, "Loading weapons data", 0.05f),
                new LoadingStep(StepSetSplash2, "Set splash 2"),
                new LoadingStep(StepLoadMap, "Loading map", 2.1f),
                new LoadingStep(StepLoadSpecialTextures, "Loading special textures", 0.01f),
                //	new LoadingStep ( StepLoadGXT, "Loading GXT", 0.15f),
            };


            for (int i = 0; i < steps.Length; i++)
            {
                AddLoadingStep(steps [i]);
            }


            if (Cell.Instance != null)
            {
                // add steps for cell
                AddLoadingStep(new LoadingStep(() => Cell.Instance.CreateStaticGeometry(), "Creating static geometry", 5.8f));
                AddLoadingStep(new LoadingStep(() => Cell.Instance.InitStaticGeometry(), "Init static geometry", 0.35f));
                AddLoadingStep(new LoadingStep(() => Cell.Instance.LoadParkedVehicles(), "Loading parked vehicles", 0.2f));
                AddLoadingStep(new LoadingStep(() => Cell.Instance.CreateEnexes(), "Creating enexes", 0.1f));
                AddLoadingStep(new LoadingStep(() => Cell.Instance.AddMapObjectsToDivisions(), "Adding map objects to divisions", 0.85f));
                AddLoadingStep(new LoadingStep(() => Cell.Instance.LoadWater(), "Loading water", 0.08f));
                AddLoadingStep(new LoadingStep(() => Cell.Instance.FinalizeLoad(), "Finalize world loading", 0.01f));
            }
        }
Exemplo n.º 13
0
    private IEnumerator _LoadUi(List <string> uiNames)
    {
        yield return(new WaitForSeconds(1.5f));

        for (int i = 0; i < uiNames.Count; i++)
        {
            ResourceLoadManager.Instance.LoadPrefab(uiNames[i]);
        }

        if (pvp)
        {
            GameMsgSender.SendPVPLoadProgress((uint)20);
        }
        else
        {
            _RefreshUIPercFunc(20);
        }
        m_curLoadingStep = LoadingStep.eLoadedUI;
        Debug.Log("Load ui.");
    }
Exemplo n.º 14
0
 internal static void PreLoadMods()
 {
     CurrentLoadingStep      = LoadingStep.PRELOAD;
     Console.Console.Reload += Main.Reload;
     foreach (var modid in loadOrder)
     {
         var mod = Mods[modid];
         try
         {
             EnumHolderResolver.RegisterAllEnums(mod.EntryType.Module);
             ConfigManager.PopulateConfigs(mod);
             mod.PreLoad();
         }
         catch (Exception e)
         {
             throw new Exception($"Error pre-loading mod '{modid}'!\n{e.GetType().Name}: {e}");
         }
     }
     IdentifiableRegistry.CategorizeAllIds();
     GadgetRegistry.CategorizeAllIds();
 }
Exemplo n.º 15
0
    private IEnumerator _LoadCharacters(PlayerManager pm, GameMatch match)
    {
        yield return(new WaitForSeconds(1.5f));

        if (pvp)
        {
            GameMatch_PVP match_pvp = match as GameMatch_PVP;
            match_pvp.LoadPlayers();
            GameMsgSender.SendPVPLoadProgress(30);
        }
        else
        {
            foreach (Player player in pm)
            {
                GameSystem.Instance.mClient.mCurMatch.CreateTeamMember(player);
            }
            _RefreshUIPercFunc(30);
        }
        m_curLoadingStep = LoadingStep.eLoadedPlayers;
        Debug.Log("Load character.");
    }
Exemplo n.º 16
0
 internal static void ReloadMods()
 {
     CurrentLoadingStep = LoadingStep.RELOAD;
     foreach (var modid in loadOrder)
     {
         var mod = Mods[modid];
         try
         {
             SRMod.ForceModContext(mod);
             foreach (var v in mod.Configs)
             {
                 v.TryLoadFromFile();
             }
             SRMod.ClearModContext();
             mod.Reload();
         }
         catch (Exception e)
         {
             throw new Exception($"Error reloading mod '{modid}'!\n{e.GetType().Name}: {e}");
         }
     }
     CurrentLoadingStep = LoadingStep.FINISHED;
 }
Exemplo n.º 17
0
 internal static void ReLoadMods()
 {
     CurrentLoadingStep = LoadingStep.RELOAD;
     foreach (string key in loadOrder)
     {
         SRMod mod = Mods[key];
         try
         {
             SRMod.ForceModContext(mod);
             foreach (var v in mod.Configs)
             {
                 v.TryLoadFromFile();
             }
             SRMod.ClearModContext();
             mod.ReLoad();
         }
         catch (Exception ex)
         {
             Debug.LogError(new Exception(string.Format("Error reloading mod '{0}'!\n{1}: {2}", (object)key, (object)ex.GetType().Name, (object)ex)));
         }
     }
     CurrentLoadingStep = LoadingStep.FINISHED;
 }
Exemplo n.º 18
0
 private static void AddLoadingStep(LoadingStep step)
 {
     m_loadingSteps.AddIfNotPresent(step);
 }
Exemplo n.º 19
0
    void Update()
    {
        for (int i = updatePreclist.Count - 1; i >= 0; i--)
        {
            UpdatePrec up = updatePreclist[i];
            up.curTime += Time.deltaTime;
            if (up.curTime > updatePreclist[i].targetTime)
            {
                up.PrecValue--;
                up.curTime = 0.0f;
                up.loadingItem.percentage++;
                LuaComponent loadingItem = up.loadingItem.transform.GetComponent <LuaComponent>();
                if (loadingItem.table != null)
                {
                    loadingItem.table.Set("loadingState", CommonFunction.GetConstString("STR_LOADING") + up.loadingItem.percentage + "%");
                }
            }
            if (up.PrecValue == 0)
            {
                if (m_curLoadingCmd != null)
                {
                    if (up.loadingItem.ri != null)
                    {
                        if (up.loadingItem.ri.acc_id == MainPlayer.Instance.AccountID)
                        {
                            m_curLoadingCmd.m_bDone = true;
                        }
                    }
                    else
                    {
                        m_curLoadingCmd.m_bDone = true;
                    }
                }

                updatePreclist.RemoveAt(i);
            }
        }

        _InitGameMsgHandler();

        //loading queue process
        if (m_curLoadingCmd == null && m_loadingQueue.Count != 0)
        {
            m_curLoadingCmd = m_loadingQueue.Dequeue();
            m_curLoadingCmd.Execute();
        }
        if (m_curLoadingCmd != null && m_curLoadingCmd.m_bDone)
        {
            if (m_curLoadingCmd.m_bFinalCmd)
            {
                m_curLoadingStep = LoadingStep.eLoadingComplete;
            }
            m_curLoadingCmd = null;
        }
        if (m_curLoadingStep == LoadingStep.eInit)
        {
            return;
        }

        if (m_wait != null)
        {
            m_wait.Update(Time.deltaTime);
        }

        GameMatch_PVP match = GameSystem.Instance.mClient.mCurMatch as GameMatch_PVP;

        if (match == null)
        {
            if (m_curLoadingStep == LoadingStep.eLoadingComplete)
            {
                if (onComplete != null)
                {
                    onComplete();
                }
                Object.Destroy(gameObject);
            }
        }
        else
        {
            if (m_curLoadingStep == LoadingStep.eLoadedScene && match.m_bPlayerDataReady && !m_pvpLoadPlayer)
            {
                LoadCharacter(GameSystem.Instance.mClient.mPlayerManager, match);
                m_pvpLoadPlayer = true;
            }

            if (m_curLoadingStep == LoadingStep.eLoadedPlayers && !m_pvpLoadUI)
            {
                LoadUI(match);
                m_pvpLoadUI = true;
            }

            if (m_curLoadingStep == LoadingStep.eLoadingComplete && !m_pvpLoadComplete)
            {
                if (onComplete != null)
                {
                    onComplete();
                }
                m_pvpLoadComplete = true;
                GameMsgSender.SendLoadingComplete(match.GetMatchType());
            }

            if (m_curLoadingStep == LoadingStep.eLoadingComplete && disConnected)
            {
                disConnected = false;
                ShowOffLine();
            }

            if (m_delayDestroy && !MainPlayer.Instance.inPvpJoining)
            {
//               if( m_delayLoadLua != null)
//               {
//                   m_delayLoadLua.ForEach((LuaComponent item) =>
//                                 {
//                                     item.table.Set("loadingState", CommonFunction.GetConstString("STR_LOAD_COMPLETE"));
//                                     item.table.Set("loadDone", true);
//                                 });

//               }
                Object.Destroy(gameObject);
            }
        }
    }