Пример #1
0
        //TODO combine/put all this data in separate data structure
        public void AppRun(AssetDataAbstractBuilder parInitialAssetBuilder,
                           IAssetDatabaseUpdateStrategy parInitialAssetDatabaseUpdateStrategy,
                           SoundManagerColleague parViewSoundManagerColleague, ViewProviderColleague parViewSideViewProviderColleague)
        {
            if (CurrentAppState.CurrentBaseAppState != EBaseAppStates.Created)
            {
                throw new Exception("Already launched application model cannot be launched again!");
            }

            CurrentAppState = new AppState()
            {
                CurrentBaseAppState = EBaseAppStates.Running
            };

            //initialize resources manager
            AppResourceManager = new ResourceManager(AppInfoConsts.ResourcesAssetsDirpath, parInitialAssetBuilder,
                                                     parInitialAssetDatabaseUpdateStrategy);

            // AppResourceManager.LoadAssetPack("packTest");
            // AppResourceManager.LoadAssetPack("gfx_smd");

            //   Console.WriteLine($"{AppResourceManager.GetAssetData<AssetDataText>("packTest", "/data.txt").TextData[0]}");

            //initialize sound manager
            ActualSoundManager = new AppSoundManager(AppResourceManager, this);
            ActualSoundManager.AppSoundManagerMediator.ViewSoundManagerColleague = parViewSoundManagerColleague;
            parViewSoundManagerColleague.Mediator = ActualSoundManager.AppSoundManagerMediator;
            ActualSoundManager.UpdateLibrary();

            AppViewProviderMediator.ViewProviderViewSide = parViewSideViewProviderColleague;

            InitializeHumanPlayers();

            /*
             * var testObj = AppGamePool.GetObject<GameObject>(typeof(GameObject));
             * testObj.Init(this);
             * Console.WriteLine($"{testObj.LinkedAppModel}");
             * testObj.DisableAndSendToPool();
             * Console.WriteLine($"{testObj.LinkedAppModel}");
             * Console.WriteLine($"{testObj.Test}");
             */

            GameObject launchingObject = AppGamePool.GetObject <GameObject>(typeof(GameObject));

            launchingObject.Init(this);

            launchingObject.AddComponent <AppStartComponent>(AppGamePool
                                                             .GetObject <AppStartComponent>(typeof(AppStartComponent)).Init(launchingObject));

            //var testComp = AppGamePool.GetObject<TestInputExitComponent>(typeof(TestInputExitComponent));
            //testComp.Init(testObj);

            //RegisterFixedUpdatableObject(new InputTestUpdatableObject(this));
            //new InputTestUpdatableObject(this);
            //TODO: Application startup logic
            //TODO: Settings loading
            //TODO: App state machine definitions
            //TODO: Multithreading for physics
        }
 /// <summary>
 /// Отправить запрос "сотруднику"
 /// </summary>
 /// <param name="parSoundManagerRequest">Запрос</param>
 /// <param name="parColleague">Целевой "сотрудник"</param>
 public override void Request(SoundManagerRequest parSoundManagerRequest, SoundManagerColleague parColleague)
 {
     if (parColleague == ViewSoundManagerColleague)
     {
         ViewSoundManagerColleague?.ProcessRequest(parSoundManagerRequest);
     }
     else if (parColleague == MainAppSoundManagerColleague)
     {
         MainAppSoundManagerColleague?.ProcessRequest(parSoundManagerRequest);
     }
 }
 /// <summary>
 /// Отправить сообщение "сотруднику"
 /// </summary>
 /// <param name="parSoundManagerMessage">Сообщение</param>
 /// <param name="parColleague">Целевой "сотрудник"</param>
 public override void Send(SoundManagerMessage parSoundManagerMessage, SoundManagerColleague parColleague)
 {
     if (parColleague == ViewSoundManagerColleague)
     {
         ViewSoundManagerColleague?.ProcessMessage(parSoundManagerMessage);
     }
     else if (parColleague == MainAppSoundManagerColleague)
     {
         MainAppSoundManagerColleague?.ProcessMessage(parSoundManagerMessage);
     }
 }
Пример #4
0
 /// <summary>
 /// Отправить запрос "сотруднику"
 /// </summary>
 /// <param name="parSoundManagerRequest">Запрос</param>
 /// <param name="parColleague">Целевой "сотрудник"</param>
 public abstract void Request(SoundManagerRequest parSoundManagerRequest, SoundManagerColleague parColleague);
Пример #5
0
 /// <summary>
 /// Отправить сообщение "сотруднику"
 /// </summary>
 /// <param name="parSoundManagerMessage">Сообщение</param>
 /// <param name="parColleague">Целевой "сотрудник"</param>
 public abstract void Send(SoundManagerMessage parSoundManagerMessage, SoundManagerColleague parColleague);