public CraftingWindow(WorldConfiguration conf, PlayerEntityManager player, IconFactory iconFactory, InputsManager inputsManager)
 {
     _conf          = conf;
     _player        = player;
     _iconFactory   = iconFactory;
     _inputsManager = inputsManager;
 }
        public CraftingInventory(
            D3DEngine engine,
            WorldConfiguration conf,
            PlayerEntityManager character,
            IconFactory iconFactory,
            InputsManager inputManager,
            SandboxCommonResources commonResources) :
            base(conf, character, iconFactory, inputManager)
        {
            _engine            = engine;
            _iconFactory       = iconFactory;
            _inputManager      = inputManager;
            _commonResources   = commonResources;
            _stInventoryWindow = ToDispose(new SpriteTexture(engine.Device, @"Images\Inventory\crafting_window.png"));

            _stLabelRecipes     = ToDispose(new SpriteTexture(engine.Device, @"Images\Inventory\label_crafting_recipes.png"));
            _stLabelIngredients = ToDispose(new SpriteTexture(engine.Device, @"Images\Inventory\label_ingredients.png"));
            _stLabelCraft       = ToDispose(new SpriteTexture(engine.Device, @"Images\Inventory\label_craft.png"));
            _stBtnCraft         = ToDispose(new SpriteTexture(engine.Device, @"Images\Inventory\inventory_close.png"));
            _stBtnCraftDown     = ToDispose(new SpriteTexture(engine.Device, @"Images\Inventory\inventory_close_down.png"));
            _stBtnCraftHover    = ToDispose(new SpriteTexture(engine.Device, @"Images\Inventory\inventory_close_hover.png"));

            CustomWindowImage = _stInventoryWindow;
            Bounds.Size       = new UniVector(627, 388);

            InitializeComponent();
        }
        public FirstPersonToolRenderer(
            D3DEngine d3DEngine,
            CameraManager <ICameraFocused> camManager,
            PlayerEntityManager playerEntityManager,
            VoxelModelManager voxelModelManager,
            VisualWorldParameters visualWorldParameters,
            SingleArrayChunkContainer chunkContainer,
            ISkyDome skyDome)
        {
            _d3dEngine = d3DEngine;

            _camManager        = camManager;
            _voxelModelManager = voxelModelManager;
            _chunkContainer    = chunkContainer;
            _skyDome           = skyDome;

            PlayerCharacter = playerEntityManager.PlayerCharacter;
            playerEntityManager.PlayerEntityChanged += _player_PlayerEntityChanged;

            _cubeRenderer = new CubeRenderer(d3DEngine, visualWorldParameters);

            _animationRotation = Quaternion.Identity;

            DrawOrders.UpdateIndex(0, 5000);

            this.IsDefferedLoadContent = true;
        }
Exemple #4
0
        public CharacterInventory(PlayerEntityManager playerEntityManager, IconFactory iconFactory, Point windowStartPosition,
                                  Point gridOffset, InputsManager inputManager)
            : base(playerEntityManager.PlayerCharacter.Inventory, iconFactory, windowStartPosition, gridOffset, inputManager)
        {
            _playerEntityManager = playerEntityManager;
            _iconFactory         = iconFactory;

            _playerEntityManager.PlayerEntityChanged += _playerEntityManager_PlayerEntityChanged;
        }
 public ContainerWindow(WorldConfiguration conf, PlayerEntityManager player, IconFactory iconFactory, InputsManager inputsManager) :
     base(null, iconFactory, new Point(0, 0), new Point(40, 200), inputsManager)
 {
     _conf          = conf;
     _player        = player;
     _iconFactory   = iconFactory;
     _inputsManager = inputsManager;
     Bounds.Size    = new UniVector(435, 387);
 }
        /// <summary>
        /// Creates a new PlayerEntityManager for the user of the given id.
        /// </summary>
        /// <param name="playerId">The id of the player to create a manager for.</param>
        /// <param name="playerEntityManagerStore">The </param>
        /// <returns></returns>
        public PlayerEntityManager Create(Guid playerId, IPlayerEntityManagerStore playerEntityManagerStore)
        {
            var manager = new PlayerEntityManager(_worldState, _stateManager, playerEntityManagerStore)
            {
                PlayerId = playerId
            };

            return(manager);
        }
        public EnergyBarsContainer(D3DEngine d3DEngine, PlayerEntityManager playerEntityManager)
        {
            _d3DEngine      = d3DEngine;
            _topPanelheight = 100;
            _d3DEngine.ScreenSize_Updated += ScreenSize_Updated;
            _playerEntityManager           = playerEntityManager;

            RefreshSize(_d3DEngine.ViewPort);
            CreateChildsComponents();
        }
 public PlayerManagerListener(PlayerEntityManager manager,
                              BattleListenerContainer battleListenerContainer,
                              IHubContext <WorldEntityHub> hubContext)
 {
     _manager = manager;
     _battleListenerContainer = battleListenerContainer;
     _hubContext                   = hubContext;
     _manager.OnDestroy           += ManagerOnDestroy;
     _manager.OnMovementStopped   += OnMovementStopped;
     _manager.OnJoinBattleSuccess += OnJoinBattleSuccess;
     _manager.OnBattleInitiated   += OnBattleInitiated;
 }
Exemple #9
0
        public ToolBarUi(PlayerEntityManager player, IconFactory iconFactory, InputsManager inputManager, EntityFactory factory)
        {
            _playerManager = player;
            _factory       = factory;

            Name = "Toolbar";

            int nbrButton = _playerManager.PlayerCharacter.Toolbar.Count;

            _toolbarSlots = new List <InventoryCell>(nbrButton);

            //float fromX = ((bounds.Right.Offset - bounds.Left.Offset) - (ButtonSize * (nbrButton))) / 2;

            for (int x = 0; x < nbrButton; x++)
            {
                var btn = new InventoryCell(null, iconFactory, new Vector2I(0, x), inputManager)
                {
                    //Bounds = new UniRectangle(fromX + (x * ButtonSize), 0, ButtonSize, ButtonSize)
                    DrawCellBackground = false
                };
                btn.MouseDown  += BtnMouseDown;
                btn.MouseUp    += btn_MouseUp;
                btn.MouseEnter += btn_MouseEnter;
                btn.MouseLeave += btn_MouseLeave;

                var bluePrintId = _playerManager.PlayerCharacter.Toolbar[x];

                if (bluePrintId != 0)
                {
                    btn.Slot = _playerManager.PlayerCharacter.FindSlot(s => s.Item.BluePrintId == bluePrintId);

                    if (btn.Slot == null)
                    {
                        try
                        {
                            btn.Slot = new ContainedSlot
                            {
                                Item = (IItem)_factory.CreateFromBluePrint(bluePrintId)
                            };
                        }
                        catch (ArgumentOutOfRangeException)
                        {
                            _playerManager.PlayerCharacter.Toolbar[x] = 0;
                            logger.Error("Unable to create entity from Id = {0}. Configuration was probably changed.", bluePrintId);
                        }
                    }
                }

                _toolbarSlots.Add(btn);

                Children.Add(btn);
            }
        }
        public GhostedEntityRenderer(
            PlayerEntityManager playerEntityManager,
            VoxelModelManager voxelModelManager,
            CameraManager <ICameraFocused> cameraManager
            )
        {
            _playerEntityManager = playerEntityManager;
            _voxelModelManager   = voxelModelManager;
            _cameraManager       = cameraManager;
            Transform            = Matrix.Identity;
            Display = true;

            DrawOrders.UpdateIndex(0, 1070);
        }
 public RealmGameSoundManager(ISoundEngine soundEngine,
                              CameraManager <ICameraFocused> cameraManager,
                              SingleArrayChunkContainer singleArray,
                              IVisualDynamicEntityManager dynamicEntityManager,
                              IChunkEntityImpactManager chunkEntityImpactManager,
                              IWorldChunks worldChunk,
                              IClock gameClockTime,
                              PlayerEntityManager playerEntityManager,
                              VisualWorldParameters visualWorldParameters,
                              IClock worlClock)
     : base(soundEngine, cameraManager, singleArray, dynamicEntityManager, chunkEntityImpactManager, worldChunk, gameClockTime, playerEntityManager, visualWorldParameters, worlClock)
 {
     PreLoadSound("Hurt", @"Sounds\Events\hurt.adpcm.wav", 0.3f, 16.0f, 100);
     PreLoadSound("Dying", @"Sounds\Events\dying.adpcm.wav", 0.5f, 16.0f, 1000);
 }
Exemple #12
0
        public RealmsHud(MainScreen screen,
                         D3DEngine d3DEngine,
                         ToolBarUi toolbar,
                         InputsManager inputManager,
                         CameraManager <ICameraFocused> camManager,
                         PlayerEntityManager playerEntityManager,
                         IWeather weather,
                         IWorldChunks worldChunks
                         ) :
            base(screen, d3DEngine, toolbar, inputManager, camManager, playerEntityManager, weather, worldChunks)
        {
            _screen    = screen;
            _d3DEngine = d3DEngine;

            _d3DEngine.ScreenSize_Updated += UpdateLayout;
        }
Exemple #13
0
        public WeatherContainer(D3DEngine d3DEngine,
                                IWeather weather,
                                IWorldChunks worldChunks,
                                PlayerEntityManager playerEntityManager)
        {
            _d3DEngine           = d3DEngine;
            _weather             = weather;
            _topPanelheight      = 100;
            _worldChunks         = worldChunks;
            _playerEntityManager = playerEntityManager;

            _d3DEngine.ScreenSize_Updated += ScreenSize_Updated;

            RefreshSize(_d3DEngine.ViewPort);
            CreateChildsComponents();
        }
        public PlayerInventory(D3DEngine engine, PlayerEntityManager character, IconFactory iconFactory, InputsManager inputManager, SandboxCommonResources commonResources) :
            base(character, iconFactory, new Point(200, 120), new Point(270, 50), inputManager)
        {
            _commonResources             = commonResources;
            _stInventoryWindow           = new SpriteTexture(engine.Device, @"Images\Inventory\inventory_window.png");
            _stInventoryCloseButton      = new SpriteTexture(engine.Device, @"Images\Inventory\inventory_close.png");
            _stInventoryCloseButtonHover = new SpriteTexture(engine.Device, @"Images\Inventory\inventory_close_hover.png");
            _stInventoryCloseButtonDown  = new SpriteTexture(engine.Device, @"Images\Inventory\inventory_close_down.png");
            _stInventoryCloseButtonLabel = new SpriteTexture(engine.Device, @"Images\Inventory\inventory_close_label.png");

            CustomWindowImage = _stInventoryWindow;
            Bounds.Size       = new S33M3CoreComponents.GUI.Nuclex.UniVector(674, 388);

            CellsCreated();
            PrepareCells();
        }
        /// <summary>
        /// Creates new instance of EntityMessageTranslator
        /// </summary>
        public EntityMessageTranslator(
            ServerComponent server,
            PlayerEntityManager playerEntityManager,
            IVisualDynamicEntityManager dynamicEntityManager,
            IChunkEntityImpactManager landscapeManager,
            SyncManager syncManager)
        {
            _server = server;

            //Handle Entity received Message from Server
            _server.MessageEntityIn              += ServerMessageEntityIn;
            _server.MessageEntityOut             += ServerMessageEntityOut;
            _server.MessagePosition              += ServerMessagePosition;
            _server.MessageDirection             += ServerMessageDirection;
            _server.MessageEntityLock            += ServerMessageEntityLock;
            _server.MessageEntityUse             += _server_MessageEntityUse;
            _server.MessageEntityEquipment       += _server_MessageEntityEquipment;
            _server.MessageUseFeedback           += _server_MessageUseFeedback;
            _server.MessageItemTransfer          += _server_MessageItemTransfer;
            _server.MessageEntityVoxelModel      += ServerOnMessageEntityVoxelModel;
            _server.MessageEntityHealth          += _server_MessageEntityHealth;
            _server.MessageEntityHealthState     += _server_MessageEntityHealthState;
            _server.MessageEntityAfflictionState += _server_MessageEntityAfflictionState;

            if (dynamicEntityManager == null)
            {
                throw new ArgumentNullException("dynamicEntityManager");
            }
            if (landscapeManager == null)
            {
                throw new ArgumentNullException("landscapeManager");
            }
            if (syncManager == null)
            {
                throw new ArgumentNullException("syncManager");
            }
            if (playerEntityManager == null)
            {
                throw new ArgumentNullException("playerEntityManager");
            }

            _dynamicEntityManager = dynamicEntityManager;
            _landscapeManager     = landscapeManager;
            _syncManager          = syncManager;
            PlayerEntity          = playerEntityManager.PlayerCharacter;
            playerEntityManager.PlayerEntityChanged += (sender, args) => { PlayerEntity = args.PlayerCharacter; };
        }
Exemple #16
0
        public GameSoundManager(ISoundEngine soundEngine,
                                CameraManager <ICameraFocused> cameraManager,
                                SingleArrayChunkContainer singleArray,
                                IVisualDynamicEntityManager dynamicEntityManager,
                                IChunkEntityImpactManager chunkEntityImpactManager,
                                IWorldChunks worldChunk,
                                IClock gameClockTime,
                                PlayerEntityManager playerEntityManager,
                                VisualWorldParameters visualWorldParameters,
                                IClock worlClock)
        {
            _cameraManager            = cameraManager;
            _soundEngine              = soundEngine;
            _singleArray              = singleArray;
            _worldChunk               = worldChunk;
            _chunkEntityImpactManager = chunkEntityImpactManager;
            _gameClockTime            = gameClockTime;
            _playerEntityManager      = playerEntityManager;
            _visualWorldParameters    = visualWorldParameters;
            _worlClock = worlClock;
            if (visualWorldParameters.WorldParameters.Configuration is UtopiaWorldConfiguration)
            {
                _biomesParams = ((UtopiaWorldConfiguration)visualWorldParameters.WorldParameters.Configuration).ProcessorParam;
            }

            _dynamicEntityManager = dynamicEntityManager;
            _stepsTracker.Add(new DynamicEntitySoundTrack {
                Entity = _playerEntityManager.Player, Position = _playerEntityManager.Player.Position, isLocalSound = true
            });
            _playerEntityManager.PlayerEntityChanged += _playerEntityManager_PlayerEntityChanged;

            //Register to Events

            _dynamicEntityManager.EntityAdded             += DynamicEntityManagerEntityAdded;
            _dynamicEntityManager.EntityRemoved           += DynamicEntityManagerEntityRemoved;
            _chunkEntityImpactManager.BlockReplaced       += _chunkEntityImpactManager_BlockReplaced;
            _chunkEntityImpactManager.StaticEntityAdd     += StaticEntityAdd;
            _chunkEntityImpactManager.StaticEntityRemoved += StaticEntityRemoved;

            _rnd        = new FastRandom();
            MoodsSounds = new Dictionary <MoodSoundKey, List <IUtopiaSoundSource> >();

            IsDefferedLoadContent = true; //Make LoadContent executed in thread
        }
Exemple #17
0
        void CurrentGameScope_Disposed(object sender, EventArgs e)
        {
            _inputsManager.ActionsManager.KeyboardAction -= ActionsManager_KeyboardAction;
            _inputsManager = null;

            _serverComponent.ConnectionStatusChanged -= ServerComponentOnConnectionStausChanged;
            _serverComponent = null;

            _hud.CraftingButton.Pressed  -= CraftingButton_Pressed;
            _hud.InventoryButton.Pressed -= InventoryButton_Pressed;
            _hud = null;

            _playerEntityManager.NeedToShowInventory -= playerEntityManager_NeedToShowInventory;
            _playerEntityManager = null;

            var chat = _ioc.Get <ChatComponent>();

            chat.ActivatedChanged -= chat_ActivatedChanged;
        }
Exemple #18
0
        public SandboxToolBar(D3DEngine engine,
                              PlayerEntityManager player,
                              IconFactory iconFactory,
                              InputsManager inputManager,
                              EntityFactory factory
                              ) : base(player, iconFactory, inputManager, factory)
        {
            _stBackground       = new SpriteTexture(engine.Device, @"Images\Inventory\toolbar_bg.png");
            _stToolbarSlot      = new SpriteTexture(engine.Device, @"Images\Inventory\toolbar_slot.png");
            _stToolbatSlotHover = new SpriteTexture(engine.Device, @"Images\Inventory\toolbar_slot_active.png");

            Background = _stBackground;

            Bounds = new UniRectangle(0, 0, 656, 116);

            var offset = new Vector2I(50, 48);
            var size   = new Vector2I(57, 57);

            for (int i = 0; i < _toolbarSlots.Count; i++)
            {
                var inventoryCell = _toolbarSlots[i];
                inventoryCell.Bounds                = new UniRectangle(offset.X + (size.X) * i, offset.Y, 42, 42);
                inventoryCell.CustomBackground      = _stToolbarSlot;
                inventoryCell.CustomBackgroundHover = _stToolbatSlotHover;
                inventoryCell.DrawIconsGroupId      = 3;
                inventoryCell.DrawIconsActiveCellId = 4;
                inventoryCell.Color = new ByteColor(255, 255, 255, 120);

                var label = new LabelControl
                {
                    Text = (i + 1).ToString(),
                    IsClickTransparent = true,
                    Color     = new ByteColor(255, 255, 255, 80),
                    Bounds    = new UniRectangle(offset.X + (size.X) * i + 18, offset.Y + 42, 10, 10),
                    IsVisible = inventoryCell.Slot != null
                };

                _numbersLabels.Add(label);
                Children.Add(label);
            }

            SlotChanged += SandboxToolBar_SlotChanged;
        }
        //  解析转会记录,缓存到PlayerEntity中
        public void Process(ITakerReptile.Dto.BaseData data)
        {
            BRData bd = data as BRData;
            PlayerTransferParam param = bd.Param as PlayerTransferParam;

            CheckSetHistoryParam(param);

            string txt;

            if (!HtmlDecode(bd.Html, out txt))
            {
                return;
            }

            var xml = new XmlHelper(txt);

            //  解析成各个数据块
            var cdataFlag = "//c";
            var cdata     = xml.GetValue(cdataFlag);

            if (string.IsNullOrEmpty(cdata))
            {
                return;
            }

            var root   = GetHtmlRoot(cdata);
            var tbody  = root.SelectSingleNode("//tbody");
            var player = PlayerEntityManager.AddOrGetCacheEntity <PlayerEntity>(param.PlayerId);

            foreach (var node in tbody.ChildNodes)
            {
                TransferHistory th = new TransferHistory();
                th.TeamId      = RegexGetStr(node.ChildNodes[0].InnerHtml, "teamid','", "',");
                th.DuringTime  = node.ChildNodes[1].InnerText;
                th.Description = node.ChildNodes[2].InnerText;
                player.CompareSetTransferHistory(th);
            }
        }
Exemple #20
0
        public Hud(MainScreen screen,
                   D3DEngine d3DEngine,
                   ToolBarUi toolbar,
                   InputsManager inputManager,
                   CameraManager <ICameraFocused> camManager,
                   PlayerEntityManager playerEntityManager,
                   IWeather weather,
                   IWorldChunks worldChunks)
        {
            IsDefferedLoadContent = true;

            _screen              = screen;
            _inputManager        = inputManager;
            _playerEntityManager = playerEntityManager;

            _d3DEngine = d3DEngine;
            DrawOrders.UpdateIndex(0, 10000);
            _d3DEngine.ScreenSize_Updated += D3DEngineViewPortUpdated;
            ToolbarUi           = toolbar;
            toolbar.LayoutFlags = ControlLayoutFlags.Skip;
            _camManager         = camManager;

            _inputManager.KeyboardManager.IsRunning = true;
            IsHidden = false;

            _tooltip                   = new TooltipControl();
            _energyBar                 = new EnergyBarsContainer(d3DEngine, playerEntityManager);
            _energyBar.LayoutFlags     = ControlLayoutFlags.Skip;
            _energyBar.Bounds.Location = new UniVector(0, 0); //Always bound to top left location of the screen !

            _weatherContainer                 = new WeatherContainer(d3DEngine, weather, worldChunks, playerEntityManager);
            _weatherContainer.LayoutFlags     = ControlLayoutFlags.Skip;
            _weatherContainer.Bounds.Location = new UniVector(0, 0); //Always bound to top left location of the screen !

            _screen.ToolTipShow += _screen_ToolTipShow;
            _screen.ToolTipHide += _screen_ToolTipHide;
        }
Exemple #21
0
        public ContainerInventory(
            D3DEngine engine,
            IconFactory iconFactory,
            InputsManager inputManager,
            SandboxCommonResources commonResources,
            WorldConfiguration config,
            PlayerEntityManager playerEntityManager
            ) : base(config, playerEntityManager, iconFactory, inputManager)
        {
            _commonResources = commonResources;

            _stBtnCraft      = ToDispose(new SpriteTexture(engine.Device, @"Images\Inventory\inventory_close.png"));
            _stBtnCraftDown  = ToDispose(new SpriteTexture(engine.Device, @"Images\Inventory\inventory_close_down.png"));
            _stBtnCraftHover = ToDispose(new SpriteTexture(engine.Device, @"Images\Inventory\inventory_close_hover.png"));

            //Bounds.Size = new S33M3CoreComponents.GUI.Nuclex.UniVector(312, 388);
            InitializeComponent();

            _craftButton.CustomImage      = _stBtnCraft;
            _craftButton.CustomImageDown  = _stBtnCraftDown;
            _craftButton.CustomImageHover = _stBtnCraftHover;
            _craftButton.CustomFont       = _commonResources.FontBebasNeue25;
            _craftButton.Text             = "CRAFT";
        }
Exemple #22
0
        public override void Initialize(DeviceContext context)
        {
            GameScope.CurrentGameScope.Disposed += CurrentGameScope_Disposed;

            var cameraManager = _ioc.Get <CameraManager <ICameraFocused> >();
            var timerManager  = _ioc.Get <TimerManager>();

            _inputsManager = _ioc.Get <InputsManager>();
            _inputsManager.ActionsManager.KeyboardAction += ActionsManager_KeyboardAction;

            var guiManager  = _ioc.Get <GuiManager>();
            var iconFactory = _ioc.Get <IconFactory>();
            var gameClock   = _ioc.Get <IClock>();
            var inventory   = _ioc.Get <InventoryComponent>();
            var windRose    = _ioc.Get <WindRoseComponent>();

            var chat = _ioc.Get <ChatComponent>();

            chat.ActivatedChanged += chat_ActivatedChanged;


            _hud = (RealmsHud)_ioc.Get <Hud>();
            _hud.CraftingButton.Pressed  += CraftingButton_Pressed;
            _hud.InventoryButton.Pressed += InventoryButton_Pressed;

            var skyBackBuffer = _ioc.Get <StaggingBackBuffer>("SkyBuffer");

            skyBackBuffer.DrawOrders.UpdateIndex(0, 50, "SkyBuffer");
            if (ClientSettings.Current.Settings.GraphicalParameters.LandscapeFog == "SkyFog")
            {
                skyBackBuffer.EnableComponent(true);
            }

            var skyDome = _ioc.Get <ISkyDome>();

            //Rendering time changed depending on landscape fog option, TRUE = Faster drawing (Because we are actively using depth testing)
            if (ClientSettings.Current.Settings.GraphicalParameters.LandscapeFog == "SkyFog")
            {
                skyDome.DrawOrders.UpdateIndex(0, 40);
            }
            else
            {
                skyDome.DrawOrders.UpdateIndex(0, 990);
            }

            var weather              = _ioc.Get <IWeather>();
            var worldChunks          = _ioc.Get <IWorldChunks>();
            var worldShadowMap       = ClientSettings.Current.Settings.GraphicalParameters.ShadowMap ? _ioc.Get <WorldShadowMap>() : null;
            var pickingRenderer      = _ioc.Get <IPickingRenderer>();
            var dynamicEntityManager = _ioc.Get <IVisualDynamicEntityManager>();

            _playerEntityManager = (PlayerEntityManager)_ioc.Get <IPlayerManager>();
            _playerEntityManager.PlayerCharacter.Inventory.ItemPut   += InventoryOnItemPut;
            _playerEntityManager.PlayerCharacter.Inventory.ItemTaken += InventoryOnItemTaken;
            _playerEntityManager.NeedToShowInventory += playerEntityManager_NeedToShowInventory;

            var sharedFrameCB = _ioc.Get <SharedFrameCB>();

            _sandboxGameSoundManager = (RealmGameSoundManager)_ioc.Get <GameSoundManager>();
            _serverComponent         = _ioc.Get <ServerComponent>();
            _serverComponent.ConnectionStatusChanged += ServerComponentOnConnectionStausChanged;

            var fadeComponent       = _ioc.Get <FadeComponent>();
            var voxelModelManager   = _ioc.Get <VoxelModelManager>();
            var adminConsole        = _ioc.Get <AdminConsole>();
            var toolRenderer        = _ioc.Get <FirstPersonToolRenderer>();
            var particuleEngine     = _ioc.Get <UtopiaParticuleEngine>();
            var ghostedRenderer     = _ioc.Get <GhostedEntityRenderer>();
            var crafting            = _ioc.Get <CraftingComponent>();
            var charSelection       = _ioc.Get <CharacterSelectionComponent>();
            var inventoryEvents     = _ioc.Get <InventoryEventComponent>();
            var pickingManager      = _ioc.Get <PickingManager>();
            var cracksRenderer      = _ioc.Get <CracksRenderer>();
            var postEffectComponent = _ioc.Get <PostEffectComponent>();

            AddComponent(cameraManager);
            AddComponent(_serverComponent);
            AddComponent(_inputsManager);
            AddComponent(iconFactory);
            AddComponent(timerManager);
            AddComponent(skyBackBuffer);
            AddComponent(_playerEntityManager);
            AddComponent(dynamicEntityManager);
            AddComponent(_hud);
            AddComponent(guiManager);
            AddComponent(pickingRenderer);
            AddComponent(inventory);
            AddComponent(windRose);
            AddComponent(chat);
            AddComponent(skyDome);
            AddComponent(gameClock);
            AddComponent(weather);
            AddComponent(worldChunks);
            AddComponent(sharedFrameCB);
            AddComponent(_sandboxGameSoundManager);
            AddComponent(fadeComponent);
            AddComponent(voxelModelManager);
            AddComponent(toolRenderer);
            AddComponent(particuleEngine);
            AddComponent(ghostedRenderer);
            AddComponent(crafting);
            AddComponent(inventoryEvents);
            AddComponent(pickingManager);
            AddComponent(cracksRenderer);
            AddComponent(charSelection);
            AddComponent(postEffectComponent);

            if (worldShadowMap != null)
            {
                AddComponent(worldShadowMap);
            }

#if DEBUG
            //Check if the GamePlay Components equal those that have been loaded inside the LoadingGameState
            foreach (var gc in _ioc.Get <LoadingGameState>().GameComponents.Except(GameComponents))
            {
                if (gc.GetType() != typeof(Realms.Client.Components.GUI.LoadingComponent))
                {
                    logger.Warn("Missing GamePlayState component, present inside LoadingGameState : {0}", gc.GetType().ToString());
                }
            }

            //Check if the GamePlay Components equal those that have been loaded inside the LoadingGameState
            foreach (var gc in GameComponents.Except(_ioc.Get <LoadingGameState>().GameComponents))
            {
                if (gc.GetType() != typeof(LoadingComponent))
                {
                    logger.Warn("Missing LoadingGameState component, present inside GamePlayState : {0}", gc.GetType().ToString());
                }
            }
#endif
            base.Initialize(context);
        }
Exemple #23
0
        public void Process(ITakerReptile.Dto.BaseData data)
        {
            BRData      bd    = data as BRData;
            PlayerParam param = bd.Param as PlayerParam;

            CheckSetHistoryParam(param);

            string txt;

            if (!HtmlDecode(bd.Html, out txt))
            {
                return;
            }

            var xml = new XmlHelper(txt);

            //  解析成各个数据块
            var cdataFlag = "//c";
            var cdata     = xml.GetValues(cdataFlag);

            //  解析球员基本信息
            var playerInfo = cdata[1];
            var root       = GetHtmlRoot(playerInfo);
            var tbody      = root.SelectSingleNode("//div[@class='multiview_wrap']/table/tbody");

            Dictionary <string, string> infoDic = new Dictionary <string, string>();

            foreach (var node in tbody.ChildNodes)
            {
                infoDic.Add(node.ChildNodes[0].InnerText, node.ChildNodes[1].InnerText);
            }
            var currentPlayerEntity = new PlayerEntity()
            {
                PlayerId = param.PlayerId
            };

            foreach (var info in infoDic)
            {
                switch (info.Key)
                {
                case "全名:":
                case "姓名:":
                case "Full name:":
                case "Name:":
                    currentPlayerEntity.FullName = info.Value;
                    break;

                case "国家:":
                case "Country:":
                    currentPlayerEntity.Country = info.Value;
                    break;

                case "第二国籍:":
                case "Secondary country:":
                    currentPlayerEntity.SecondaryCountry = info.Value;
                    break;

                case "出生日期:":
                case "Date of birth:":
                    currentPlayerEntity.Birth = info.Value;
                    break;

                case "年龄:":
                case "Age:":
                    currentPlayerEntity.Age = info.Value;
                    break;

                case "身高:":
                case "Height:":
                    currentPlayerEntity.Height = info.Value;
                    break;

                case "体重:":
                case "Weight:":
                    currentPlayerEntity.Weight = info.Value;
                    break;

                case "位置:":
                case "Position:":
                    currentPlayerEntity.Position = info.Value;
                    break;

                case "球衣号码:":
                case "Shirt number:":
                    currentPlayerEntity.ShirtNumber = info.Value;
                    break;

                case "球队:":
                case "Team:":
                    currentPlayerEntity.TeamName = info.Value;
                    break;

                case "惯用脚:":
                case "Preferred foot:":
                    currentPlayerEntity.PreferredFoot = info.Value;
                    break;
                }
            }
            var pe = PlayerEntityManager.AddOrGetCacheEntity <PlayerEntity>(param.PlayerId);

            pe.CompareSetInfo(currentPlayerEntity);

            //  解析全部参赛记录
            //  记录比赛Id
            //  缓存出场信息PlayerTimeRecord
            //  缓存进球,牌,助攻信息PlayerStatisticsRecord
            var recordData = cdata[2];

            root = GetHtmlRoot(recordData);
            var tbodys = root.SelectNodes("//tbody");

            foreach (var tb in tbodys)
            {
                foreach (var node in tb.ChildNodes)
                {
                    var scoreStr = node.SelectSingleNode("td[@class='score']");
                    if (scoreStr == null || string.IsNullOrEmpty(scoreStr.InnerHtml))
                    {
                        continue;
                    }
                    var matchId = RegexGetStr(scoreStr.InnerHtml, "matchid','", "\'");
                    var nowPsr  = new PlayerStatisticsRecord();
                    nowPsr.MatchId  = matchId;
                    nowPsr.PlayerId = param.PlayerId;
                    nowPsr.Goals    = Convert.ToInt32(node.SelectSingleNode("td[@class='goals']").InnerText);
                    var assists = node.SelectSingleNode("td[@class='assists']");
                    nowPsr.Assists       = assists == null ? 0 : Convert.ToInt32(assists.InnerText);
                    nowPsr.YellowCard    = Convert.ToInt32(node.SelectSingleNode("td[@class='yellow']").InnerText);
                    nowPsr.YellowRedCard = Convert.ToInt32(node.SelectSingleNode("td[@class='yellowred']").InnerText);
                    nowPsr.RedCard       = Convert.ToInt32(node.SelectSingleNode("td[@class='red last']").InnerText);
                    var psr = PlayerStatisticsRecordManager.AddOrGetCacheEntity <PlayerStatisticsRecord>(param.PlayerId + "_" + matchId);
                    psr.CompareSet(nowPsr);

                    var nowPtr = new PlayerTimeRecord();
                    nowPtr.MatchId       = matchId;
                    nowPtr.PlayerId      = param.PlayerId;
                    nowPtr.IsStarting    = Convert.ToInt32(node.SelectSingleNode("td[@class='started']").InnerText) == 1;
                    nowPtr.IsInPlay      = Convert.ToInt32(node.SelectSingleNode("td[@class='in']").InnerText) == 1;
                    nowPtr.IsOutPlay     = Convert.ToInt32(node.SelectSingleNode("td[@class='out']").InnerText) == 1;
                    nowPtr.MinutesPlayed = Convert.ToInt32(node.SelectSingleNode("td[@class='min']").InnerText);
                    var ptr = PlayerTimeRecordManager.AddOrGetCacheEntity <PlayerTimeRecord>(param.PlayerId + "_" + matchId);
                    ptr.CompareSet(nowPtr);
                }
            }


            //  如果有添加获取转会记录的任务
            if (txt.IndexOf("o=\"2\"") > 0)
            {
                PlayerTransferParam ptParam = param.CopyCreateParam <PlayerTransferParam>();
                PlayerManager.AddOrUpdateParam(ptParam);
            }
        }
        public override void InitCacheManager()
        {
            var organizerEntityManager = new OrganizerEntityManager();

            IocUnity.RegisterInstance <ICacheManager>(typeof(OrganizerEntityManager).Name, organizerEntityManager);
            DicCacheManagers.Add(typeof(OrganizerEntityManager).Name, (ICacheManager)organizerEntityManager);

            var leagueEntityManager = new LeagueEntityManager();

            IocUnity.RegisterInstance <ICacheManager>(typeof(LeagueEntityManager).Name, leagueEntityManager);
            DicCacheManagers.Add(typeof(LeagueEntityManager).Name, (ICacheManager)leagueEntityManager);

            var matchEntityManager = new MatchEntityManager();

            IocUnity.RegisterInstance <ICacheManager>(typeof(MatchEntityManager).Name, matchEntityManager);
            DicCacheManagers.Add(typeof(MatchEntityManager).Name, (ICacheManager)matchEntityManager);

            var playerEntityManager = new PlayerEntityManager();

            IocUnity.RegisterInstance <ICacheManager>(typeof(PlayerEntityManager).Name, playerEntityManager);
            DicCacheManagers.Add(typeof(PlayerEntityManager).Name, (ICacheManager)playerEntityManager);

            var playerPenaltiesManager = new PlayerPenaltiesManager();

            IocUnity.RegisterInstance <ICacheManager>(typeof(PlayerPenaltiesManager).Name, playerPenaltiesManager);
            DicCacheManagers.Add(typeof(PlayerPenaltiesManager).Name, (ICacheManager)playerPenaltiesManager);

            var PlayerStatisticsRecordManager = new PlayerStatisticsRecordManager();

            IocUnity.RegisterInstance <ICacheManager>(typeof(PlayerStatisticsRecordManager).Name, PlayerStatisticsRecordManager);
            DicCacheManagers.Add(typeof(PlayerStatisticsRecordManager).Name, (ICacheManager)PlayerStatisticsRecordManager);

            var playerTimeRecordManager = new PlayerTimeRecordManager();

            IocUnity.RegisterInstance <ICacheManager>(typeof(PlayerTimeRecordManager).Name, playerTimeRecordManager);
            DicCacheManagers.Add(typeof(PlayerTimeRecordManager).Name, (ICacheManager)playerTimeRecordManager);

            var seasonEntityManager = new SeasonEntityManager();

            IocUnity.RegisterInstance <ICacheManager>(typeof(SeasonEntityManager).Name, seasonEntityManager);
            DicCacheManagers.Add(typeof(SeasonEntityManager).Name, (ICacheManager)seasonEntityManager);

            var seasonTypeInfoManager = new SeasonTypeInfoManager();

            IocUnity.RegisterInstance <ICacheManager>(typeof(SeasonTypeInfoManager).Name, seasonTypeInfoManager);
            DicCacheManagers.Add(typeof(SeasonTypeInfoManager).Name, (ICacheManager)seasonTypeInfoManager);

            var seasonTableInfoManager = new SeasonTableInfoManager();

            IocUnity.RegisterInstance <ICacheManager>(typeof(SeasonTableInfoManager).Name, seasonTableInfoManager);
            DicCacheManagers.Add(typeof(SeasonTableInfoManager).Name, (ICacheManager)seasonTableInfoManager);

            var seasonTeamsManager = new SeasonTeamsManager();

            IocUnity.RegisterInstance <ICacheManager>(typeof(SeasonTeamsManager).Name, seasonTeamsManager);
            DicCacheManagers.Add(typeof(SeasonTeamsManager).Name, (ICacheManager)seasonTeamsManager);

            var teamEntityManager = new TeamEntityManager();

            IocUnity.RegisterInstance <ICacheManager>(typeof(TeamEntityManager).Name, teamEntityManager);
            DicCacheManagers.Add(typeof(TeamEntityManager).Name, (ICacheManager)teamEntityManager);

            var teamPlayersManager = new TeamPlayersManager();

            IocUnity.RegisterInstance <ICacheManager>(typeof(TeamPlayersManager).Name, teamPlayersManager);
            DicCacheManagers.Add(typeof(TeamPlayersManager).Name, (ICacheManager)teamPlayersManager);
        }