Exemplo n.º 1
0
        private unsafe void ProcessMessage(MyPacket p)
        {
            HandlerId         id;
            Action <MyPacket> action;

            id.messageId     = (MyMessageId)p.BitStream.ReadByte(8);
            id.receiverIndex = p.BitStream.ReadByte(8);
            if (((ulong)id.messageId) < this.m_thisFrameTraffic.Length)
            {
                int *numPtr1 = (int *)ref this.m_thisFrameTraffic[(int)id.messageId];
                numPtr1[0] += p.BitStream.ByteLength;
            }
            p.Sender = new Endpoint(p.Sender.Id, id.receiverIndex);
            if (!this.m_handlers.TryGetValue(id, out action))
            {
                HandlerId key = new HandlerId {
                    messageId     = id.messageId,
                    receiverIndex = 0xff
                };
                this.m_handlers.TryGetValue(key, out action);
            }
            if (action == null)
            {
                p.Return();
            }
            else
            {
                MyStatsGraph.Begin(MyEnum <MyMessageId> .GetName(id.messageId), 0x7fffffff, "ProcessMessage", 0xe2, @"E:\Repo1\Sources\Sandbox.Game\Engine\Multiplayer\MyTransportLayer.cs");
                action(p);
                MyStatsGraph.End(new float?((float)p.BitStream.ByteLength), 0f, "", "{0} B", null, "ProcessMessage", 0xe4, @"E:\Repo1\Sources\Sandbox.Game\Engine\Multiplayer\MyTransportLayer.cs");
            }
        }
Exemplo n.º 2
0
 private HandlerIdViewModels()
 {
     Global.IsPublishHandlerIdAddedEvent = true;
     foreach (var item in HandlerId.GetHandlerIds())
     {
         _dicById.Add(item.Id, new HandlerIdViewModel(item));
     }
     Global.Access <HandlerIdAddedEvent>(
         Guid.Parse("b4dfdf20-d4f3-4a71-b42b-d33c142b7f15"),
         "新的处理器标识出现后更新VM内存数据",
         LogEnum.Console,
         action: message => {
         if (!_dicById.ContainsKey(message.Source.Id))
         {
             _dicById.Add(message.Source.Id, new HandlerIdViewModel(message.Source));
             OnPropertyChanged(nameof(List));
         }
     });
     Global.Access <HandlerIdUpdatedEvent>(
         Guid.Parse("7fed4d98-12ca-4291-be07-42e75fe87ad1"),
         "处理器标识信息更新后更新VM内存数据",
         LogEnum.Console,
         action: message => {
         if (_dicById.ContainsKey(message.Source.Id))
         {
             var vm = _dicById[message.Source.Id];
             vm.Update(message.Source);
         }
     });
 }
Exemplo n.º 3
0
        public void Unregister(MyMessageId messageId, byte receiverIndex)
        {
            HandlerId key = new HandlerId {
                messageId     = messageId,
                receiverIndex = receiverIndex
            };

            this.m_handlers.Remove(key);
        }
Exemplo n.º 4
0
        public void Register(MyMessageId messageId, byte receiverIndex, Action <MyPacket> handler)
        {
            HandlerId key = new HandlerId {
                messageId     = messageId,
                receiverIndex = receiverIndex
            };

            this.m_handlers.Add(key, handler);
        }
        private object UnitySliderSubHandler(HandlerId handlerId)
        {
            UnitySlider castedSlider = (UnitySlider)UnityObject;

            switch (handlerId.HandlerType)
            {
            case HandlerType.SliderData:
                return(new SliderDataHolder()
                {
                    SliderBounds = castedSlider.SliderBounds,
                    TickLabels = castedSlider.TickLabels,
                    MainSliderHolders = castedSlider.MainSliderValues,
                    GuessSliderHolders = castedSlider.GuessSliderValues,
                });

            default:
                throw new ArgumentException($"Unknown handler id: '{handlerId.HandlerType}'");
            }
        }
        private object UnityImageSubHandler(HandlerId handlerId)
        {
            UnityImage castedImage = (UnityImage)UnityObject;

            switch (handlerId.HandlerType)
            {
            case HandlerType.Sprite:
                return(new SpriteHolder()
                {
                    Sprites = castedImage.Sprites,
                    SpriteGridWidth = castedImage.SpriteGridWidth,
                    SpriteGridHeight = castedImage.SpriteGridHeight,
                    BackgroundColor = castedImage.BackgroundColor
                });

            default:
                throw new ArgumentException($"Unknown handler id: '{handlerId.SubType}'");
            }
        }
Exemplo n.º 7
0
Arquivo: Player.cs Projeto: bjowes/cwg
        public Player(string playerName)
        {
            //This players unique identifiers
            myHandlerId = new HandlerId(playerName + "Handler");
            myPlayerId  = new InstanceId(playerName + "Instance");

            // Open DOB connection. Register player and joystick, subscribe for gameStates
            connection.Open(playerName, "", 0, this, this);
            connection.RegisterEntityHandler(Consoden.TankGame.Player.ClassTypeId, myHandlerId, Safir.Dob.InstanceIdPolicy.Enumeration.HandlerDecidesInstanceId, this);
            connection.RegisterEntityHandler(Consoden.TankGame.Joystick.ClassTypeId, myHandlerId, Safir.Dob.InstanceIdPolicy.Enumeration.HandlerDecidesInstanceId, this);
            connection.SubscribeEntity(Consoden.TankGame.GameState.ClassTypeId, this);

            //Create our player entity
            Consoden.TankGame.Player player = new Consoden.TankGame.Player();
            player.Name.Val = playerName;
            connection.SetAll(player, myPlayerId, myHandlerId);

            //Run the game player
            Run();
        }
Exemplo n.º 8
0
Arquivo: Player.cs Projeto: bjowes/cwg
        public Player(string playerName)
        {
            //This players unique identifiers
            myHandlerId = new HandlerId (playerName + "Handler");
            myPlayerId = new InstanceId (playerName + "Instance");

            // Open DOB connection. Register player and joystick, subscribe for gameStates
            connection.Open (playerName, "", 0, this, this);
            connection.RegisterEntityHandler (Consoden.TankGame.Player.ClassTypeId, myHandlerId, Safir.Dob.InstanceIdPolicy.Enumeration.HandlerDecidesInstanceId, this);
            connection.RegisterEntityHandler (Consoden.TankGame.Joystick.ClassTypeId, myHandlerId, Safir.Dob.InstanceIdPolicy.Enumeration.HandlerDecidesInstanceId, this);
            connection.SubscribeEntity (Consoden.TankGame.GameState.ClassTypeId, this);

            //Create our player entity
            Consoden.TankGame.Player player = new Consoden.TankGame.Player ();
            player.Name.Val = playerName;
            connection.SetAll (player, myPlayerId, myHandlerId);

            //Run the game player
            Run ();
        }
Exemplo n.º 9
0
 /// <summary>
 /// Gets a handler specified by the Id
 /// </summary>
 /// <param name="id">The Id of the wanted handler</param>
 /// <returns>The wanted handler</returns>
 public static IHandler GetHandler(HandlerId id)
 {
     return Handlers.Find(handler => handler.Id == id);
 }
Exemplo n.º 10
0
 public bool Equals(HandlerId obj)
 {
     return(obj != null && (this.HandlerType == obj.HandlerType && this.SubType == obj.SubType));
 }