Beispiel #1
0
        void LoadMegaloSystem()
        {
            MegaloSystemRef = KBlam.Engine.EngineRegistry.GetSystem <MegaloProto.MegaloProtoSystem>(GameBuildAndTarget.Build);

            var megalo_proto_system = MegaloSystemRef.System;
            var all_dbs_tasks       = megalo_proto_system.GetAllDatabasesAsync(GameBuildAndTarget.Build);

            Exception inner_exception = null;

            if (all_dbs_tasks.Item1.IsFaulted)
            {
                inner_exception = all_dbs_tasks.Item1.Exception.GetOnlyExceptionOrAll();
            }
            else if (all_dbs_tasks.Item2.IsFaulted)
            {
                inner_exception = all_dbs_tasks.Item2.Exception.GetOnlyExceptionOrAll();
            }

            if (inner_exception != null)
            {
                throw new InvalidOperationException("Megalo is not supported for this version or no DB exists for it: " +
                                                    GameBuildAndTarget.Build.ToDisplayString(),
                                                    inner_exception);
            }

            Task.WaitAll
                (all_dbs_tasks.Item1
                , all_dbs_tasks.Item2
                );

            megalo_proto_system.PrepareDatabasesForUse(all_dbs_tasks.Item1.Result, all_dbs_tasks.Item2.Result);
        }
Beispiel #2
0
 void ParseGameBuildFromOptionValue(string v)
 {
     KBlam.Engine.EngineBuildRevision build_revision = KBlam.Engine.EngineRegistry.TryParseExportedBuildName(v);
     if (build_revision != null)
     {
         mGameBuildAndTarget      = build_revision.BuildHandle.ToEngineTargetHandle();
         mGameEngineBlobSystemRef = KBlam.Engine.EngineRegistry.GetSystem <KBlam.Blob.BlobSystem>(mGameBuildAndTarget.Build);
         mGameEngineLangystemRef  = KBlam.Engine.EngineRegistry.GetSystem <KBlam.Localization.LanguageSystem>(mGameBuildAndTarget.Build);
     }
 }
Beispiel #3
0
        public void LoadSystems()
        {
            if (mIsLoaded)
            {
                return;
            }

            BlobSystemRef = KBlam.Engine.EngineRegistry.GetSystem <KBlam.Blob.BlobSystem>(GameBuildAndTarget.Build);
            LangSystemRef = KBlam.Engine.EngineRegistry.GetSystem <KBlam.Localization.LanguageSystem>(GameBuildAndTarget.Build);
            LoadMegaloSystem();

            mIsLoaded = true;
        }