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; }
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; }
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); }
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; }
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; }; }
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 }
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; }
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); } }
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; }
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"; }
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); }
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); }