Esempio n. 1
0
 public void Update(TimeSpan elapsedGameTime, TimeSpan totalGameTime)
 {
     try
     {
         _editorHostGame?.Update(totalGameTime, elapsedGameTime);
     }
     finally
     {
         FlushLogs();
     }
 }
Esempio n. 2
0
        private void DoUpdate(GameTime gameTime)
        {
            foreach (var ws in _wantsUpdateSignals)
            {
                ws.Update();
            }

            if (_playing)
            {
                if (State == LoadedGameState.Paused ||
                    State == LoadedGameState.Loaded)
                {
                    State = LoadedGameState.Playing;

                    SyncPlaybackStateToEditor();
                }
            }
            else
            {
                if (State == LoadedGameState.Playing)
                {
                    State = LoadedGameState.Paused;

                    SyncPlaybackStateToEditor();
                }
            }

            /*if (!_isReadyForMainThread || _gameLoader == null)
             * {
             *  return;
             * }
             */

            if (!_hasAssignedGame)
            {
                InternalLog("Assigning host instance to game");
                _editorHostGame = new EditorHostGame(_game, _sharedRendererClientFactory);
                InternalLog("Assigned host instance to game");
                _hasAssignedGame = true;

                SyncPlaybackStateToEditor();
            }

            if (State == LoadedGameState.Playing)
            {
                try
                {
                    _editorHostGame?.Update(gameTime.TotalGameTime, gameTime.ElapsedGameTime);
                }
                finally
                {
                    FlushLogs();
                }
            }
            else
            {
                if (!(_game?.HasLoadedContent ?? true))
                {
                    _editorHostGame?.Update(gameTime.TotalGameTime, gameTime.ElapsedGameTime);
                }

                Thread.Sleep(0);
            }

            _hasRunGameUpdate = true;
        }