示例#1
0
        private static void OnRootConsoleRender(object sender, UpdateEventArgs e)
        {
            if (_renderRequired)
            {
                _mapConsole.Clear();
                _statConsole.Clear();
                _messageConsole.Clear();
                _inventoryConsole.Clear();

                DungeonMap.Draw(_mapConsole, _statConsole);

                Player.Draw(_mapConsole, DungeonMap);
                Player.DrawStats(_statConsole);
                Player.DrawInventory(_inventoryConsole);

                MessageLog.Draw(_messageConsole);
                _messageConsole.SetBackColor(0, 0, _messageWidth, _messageHeight, Swatch.DbDark);
                TargetingSystem.Draw(_mapConsole);

                RLConsole.Blit(_mapConsole, 0, 0, _mapWidth, _mapHeight, _rootConsole, 0, _inventoryHeight);
                RLConsole.Blit(_statConsole, 0, 0, _statWidth, _statHeight, _rootConsole, _mapWidth, 0);
                RLConsole.Blit(_messageConsole, 0, 0, _messageWidth, _messageHeight, _rootConsole, 0, _screenHeight - _messageHeight);
                RLConsole.Blit(_inventoryConsole, 0, 0, _inventoryWidth, _inventoryHeight, _rootConsole, 0, 0);

                if (IsInventoryScreenShowing)
                {
                    InventoryScreen.Draw(_rootConsole, Player.Inventory);
                }
                if (IsDialogScreenShowing)
                {
                    DialogScreen.Draw(_rootConsole);
                }
                if (IsShopSelectionScreenShowing)
                {
                    ShopSelectionScreen.Draw(_rootConsole);
                }
                if (IsBuyScreenShowing)
                {
                    BuyScreen.Draw(_rootConsole);
                }
                if (IsSellScreenShowing)
                {
                    SellScreen.Draw(_rootConsole, Player.Inventory);
                }

                _rootConsole.Draw();
                _renderRequired = false;
            }
        }