ReadBoolean() public method

Reads a boolean value (stored as a single bit) written using Write(bool)
public ReadBoolean ( ) : bool
return bool
 public void Decode(NetIncomingMessage im)
 {
     this.Id = im.ReadInt32();
     this.MessageTime = im.ReadDouble();
     this.MoveUp = im.ReadBoolean();
     this.MoveDown = im.ReadBoolean();
     this.MoveLeft = im.ReadBoolean();
     this.MoveRight = im.ReadBoolean();
 }
 public override void Decode(NetIncomingMessage msg)
 {
     findSixes = msg.ReadBoolean();
     nPosition = new HashSet<int>();
     for (int i = msg.ReadByte(); i > 0; i--)
         nPosition.Add(msg.ReadByte());
 }
Esempio n. 3
0
 public void Decode(NetIncomingMessage im)
 {
     this.Username = im.ReadString();
     this.ID = im.ReadByte();
     this.Me = im.ReadBoolean();
     this.Color = new Color(im.ReadByte(), im.ReadByte(), im.ReadByte());
 }
Esempio n. 4
0
 private void ReadData(AttributeTypeID Type, NetIncomingMessage Message)
 {
     switch(Type) {
         case AttributeTypeID.Float:
             Data = Message.ReadFloat();
             break;
         case AttributeTypeID.Int:
             Data = Message.ReadInt32();
             break;
         case AttributeTypeID.List:
             Console.WriteLine("AttributeSystem: List<> Type not supported on network sync");
             break;
         case AttributeTypeID.Long:
             Data = Message.ReadInt64();
             break;
         case AttributeTypeID.Rectangle:
             Data = Message.ReadRectangle();
             break;
         case AttributeTypeID.String:
             Data = Message.ReadString();
             break;
         case AttributeTypeID.Vector2:
             Data = Message.ReadVector2();
             break;
         case AttributeTypeID.Bool:
             Data = Message.ReadBoolean();
             break;
         default:
             Console.WriteLine("Invalid Attribute Type: {0}", Type.ToString());
             break;
     }
 }
Esempio n. 5
0
        /// <summary>
        /// Writes a <see cref="NetIncomingMessage"/> buffer into the BitStream.
        /// </summary>
        /// <param name="source">The <see cref="NetIncomingMessage"/> who's contents will be copied to this BitStream.</param>
        public void Write(NetIncomingMessage source)
        {
#if DEBUG
            var startBSPos = PositionBits;
            var startMsgPos = (int)source.Position;
#endif

            // Read full 32-bit integers
            while (source.LengthBits - source.Position >= _bitsInt)
            {
                var v = source.ReadUInt32();
                Write(v);
            }

            // Read full 8-bit integers
            while (source.LengthBits - source.Position >= _bitsByte)
            {
                var v = source.ReadByte();
                Write(v);
            }

            // Read the remaining bits
            while (source.LengthBits > source.Position)
            {
                var v = source.ReadBoolean();
                Write(v);
            }

            Debug.Assert(source.Position == source.LengthBits);

#if DEBUG
            Debug.Assert(PositionBits - startBSPos == source.LengthBits - startMsgPos);
#endif
        }
Esempio n. 6
0
        public static Line ReadLine(NetIncomingMessage message, bool isServer=false)
        {
            float removeAnimation = message.ReadFloat();
            Vector2 animationEnd = message.ReadVector2();
            int turn = message.ReadInt32();
            bool wasGrowing = message.ReadBoolean();
            Vector2 begin = message.ReadVector2();
            Vector2 end = message.ReadVector2();
            float thickness = message.ReadFloat();

            if (!isServer) {
                animationEnd = Constants.FromField(animationEnd);
                begin = Constants.FromField(begin);
                end = Constants.FromField(end);
            }

            Line l = new Line (begin, end);
            l.removeAnimationTime = removeAnimation;
            l.animationEnd = animationEnd;
            l.turn = turn;
            l.color = Constants.COLORS[turn];
            l.wasGrowing = wasGrowing;
            l.thickness = thickness;

            return l;
        }
 public ClientDisconnectedTransferableData(NetIncomingMessage message)
 {
     SessionID = message.ReadInt64();
     ID = message.ReadInt32();
     IsValid = message.ReadBoolean();
     PlayerIndex = message.ReadInt16();
 }
Esempio n. 8
0
        public static void ToOtherPlayers(NetIncomingMessage im, OtherPlayer[] d)
        {
            bool alive = im.ReadBoolean();
            float xp = im.ReadFloat();
            float yp = im.ReadFloat();
            float zp = im.ReadFloat();
            Int32 id = im.ReadInt32();
            float xr = im.ReadFloat();
            float yr = im.ReadFloat();
            Int16 model = im.ReadInt16();
            if (d[id] == null)
            {
                d[id] = new OtherPlayer(xp, yp, zp, id, model, xr, yr);
            }
            d[id].model = model;
            d[id].xr = xr;
            d[id].yr = yr;

            if (!alive)
            {
                d[id].ChangeLifeStatus(false);
            }
            d[id].position = new Vector3(xp, yp, zp);
            d[id].boundingSphere.Center = new Vector3(d[id].position.X, d[id].position.Y + Constants.HEADMAX/2, d[id].position.Z);
        }
 public ProjectileTransferableData(NetIncomingMessage message)
 {
     SessionID = message.ReadInt64();
     ID = message.ReadInt32();
     IsValid = message.ReadBoolean();
     Position = message.ReadVector2();
     Angle = message.ReadFloat();
 }
Esempio n. 10
0
 public void Decode(NetIncomingMessage im)
 {
     this.ID = im.ReadByte();
     this.Position = new Point(im.ReadInt32(), im.ReadInt32());
     this.Velocity = new Point(im.ReadInt32(), im.ReadInt32());
     this.Movement = new Point(im.ReadInt32(), im.ReadInt32());
     this.IsJumping = im.ReadBoolean();
 }
 public HealthTransferableData(NetIncomingMessage message)
 {
     SessionID = message.ReadInt64();
     ID = message.ReadInt32();
     IsValid = message.ReadBoolean();
     PlayerIndex = message.ReadInt32();
     Value = message.ReadFloat();
 }
 /// <summary>
 /// Handles an incoming entity component message
 /// </summary>
 /// <param name="message">Raw network message</param>
 /// <returns>An IncomingEntityComponentMessage object</returns>
 public IncomingEntityComponentMessage HandleEntityComponentNetworkMessage(NetIncomingMessage message)
 {
     var componentFamily = (ComponentFamily) message.ReadByte();
     var messageParams = new List<object>();
     while (message.Position < message.LengthBits)
     {
         switch ((NetworkDataType) message.ReadByte())
         {
             case NetworkDataType.d_enum:
                 messageParams.Add(message.ReadInt32());
                 break;
             case NetworkDataType.d_bool:
                 messageParams.Add(message.ReadBoolean());
                 break;
             case NetworkDataType.d_byte:
                 messageParams.Add(message.ReadByte());
                 break;
             case NetworkDataType.d_sbyte:
                 messageParams.Add(message.ReadSByte());
                 break;
             case NetworkDataType.d_ushort:
                 messageParams.Add(message.ReadUInt16());
                 break;
             case NetworkDataType.d_short:
                 messageParams.Add(message.ReadInt16());
                 break;
             case NetworkDataType.d_int:
                 messageParams.Add(message.ReadInt32());
                 break;
             case NetworkDataType.d_uint:
                 messageParams.Add(message.ReadUInt32());
                 break;
             case NetworkDataType.d_ulong:
                 messageParams.Add(message.ReadUInt64());
                 break;
             case NetworkDataType.d_long:
                 messageParams.Add(message.ReadInt64());
                 break;
             case NetworkDataType.d_float:
                 messageParams.Add(message.ReadFloat());
                 break;
             case NetworkDataType.d_double:
                 messageParams.Add(message.ReadDouble());
                 break;
             case NetworkDataType.d_string:
                 messageParams.Add(message.ReadString());
                 break;
             case NetworkDataType.d_byteArray:
                 int length = message.ReadInt32();
                 messageParams.Add(message.ReadBytes(length));
                 break;
         }
     }
     return new IncomingEntityComponentMessage(componentFamily, messageParams);
 }
Esempio n. 13
0
 // TODO: Merge opcodes for move direction, something like that: Move(LookDirection)
 void DataProcessing(NetIncomingMessage message, ref Client client)
 {
     switch (message.ReadByte())
     {
         case (byte)MessageType.ClientMessage.NeedMap:
             Program.Log.Info("[RECEIVE][Client #" + client.ClientId + "] Need map ! Let's give it to him :)");
             ReceiveNeedMap(client);
             break;
         case (byte)MessageType.ClientMessage.MapSelection:
             Program.Log.Info("[RECEIVE][Client #" + client.ClientId + "] Has selected a map to play ! :)");
             ReceiveMapSelection(client, message.ReadString());
             break;
         case (byte)MessageType.ClientMessage.Credentials:
             ReceiveCredentials(client, message.ReadString(), message.ReadString());
             break;
         case (byte)MessageType.ClientMessage.Ready:
             Program.Log.Info("[RECEIVE][Client #" + client.ClientId + "] Ready message !");
             ReceiveReady(client, message.ReadBoolean());
             break;
         case (byte)MessageType.ClientMessage.WantToStartGame:
             Program.Log.Info("[RECEIVE][Client #" + client.ClientId + "] WantToStartGame message !");
             ReceiveWantToStartGame();
             break;
         case (byte)MessageType.ClientMessage.HasMap:
             Program.Log.Info("[RECEIVE][Client #" + client.ClientId + "] HasMap message !");
             ReceiveHasMap(client);
             break;
         case (byte)MessageType.ClientMessage.MoveDown:
             Program.Log.Info("[RECEIVE][Client #" + client.ClientId + "] Want to move down !");
             ReceiveMovePlayer(client, LookDirection.Down);
             break;
         case (byte)MessageType.ClientMessage.MoveLeft:
             Program.Log.Info("[RECEIVE][Client #" + client.ClientId + "] Want to move left !");
             ReceiveMovePlayer(client, LookDirection.Left);
             break;
         case (byte)MessageType.ClientMessage.MoveRight:
             Program.Log.Info("[RECEIVE][Client #" + client.ClientId + "] Want to move right !");
             ReceiveMovePlayer(client, LookDirection.Right);
             break;
         case (byte)MessageType.ClientMessage.MoveUp:
             Program.Log.Info("[RECEIVE][Client #" + client.ClientId + "] Want to move up !");
             ReceiveMovePlayer(client, LookDirection.Up);
             break;
         case (byte)MessageType.ClientMessage.Standing:
             Program.Log.Info("[RECEIVE][Client #" + client.ClientId + "] Want to stay here !");
             ReceiveMovePlayer(client, LookDirection.Idle, message.ReadTime(client.ClientConnection, true));
             break;
         case (byte)MessageType.ClientMessage.PlaceBomb:
             Program.Log.Info("[RECEIVE][Client #" + client.ClientId + "] Want to place bomb !");
             ReceiveBombPlacing(client);
             break;
     }
 }
Esempio n. 14
0
 public static OtherPlayer MsgToOtherPlayers(NetIncomingMessage im)
 {
     bool alive = im.ReadBoolean();
     float xp = im.ReadFloat();
     float yp = im.ReadFloat();
     float zp = im.ReadFloat();
     Int32 id = im.ReadInt32();
     float xr = im.ReadFloat();
     float yr = im.ReadFloat();
     Int16 model = im.ReadInt16();
     OtherPlayer d = new OtherPlayer(xp, yp, zp, id, xr, yr, false);
     d.model = model;
     return d;
 }
Esempio n. 15
0
 public static Player MsgToPlayer(NetIncomingMessage im, GraphicsDevice device)
 {
     bool alive = im.ReadBoolean();
     float xp = im.ReadFloat();
     float yp = im.ReadFloat();
     float zp = im.ReadFloat();
     Int32 id = im.ReadInt32();
     float xr = im.ReadFloat();
     xr = im.ReadFloat();
     Int32 mo = im.ReadInt32();
     Player d = new Player(xp, yp, zp, id, mo, device);
     Globals.player = d;
     return d;
 }
Esempio n. 16
0
 public void Read(NetIncomingMessage im)
 {
     if (FileInfoList == null)
     {
         FileInfoList = new List<Tuple<string, uint, bool>>();
     }
     int ListCount = im.ReadInt32();
     for (int i = 0; i < ListCount; ++i)
     {
         string Name     = im.ReadString();
         uint Size       = im.ReadUInt32();
         bool IsDire     = im.ReadBoolean();
         FileInfoList.Add(Tuple.Create<string, uint, bool>(Name, Size, IsDire));
     }
 }
Esempio n. 17
0
        public void LoadTerrainFromNetwork(NetIncomingMessage MapDataMessage)
        {
            TerrainTiles = new SpriteSheet(GameClient.ContentManager.Load<Texture2D>("Terrain2"), 40, 40);
            int TerrainCount = MapDataMessage.ReadInt32();
            for (int i = 0; i < TerrainCount; i++) {
                Terrain.Add(new TerrainTile()  {
                    X = MapDataMessage.ReadInt32(),
                    Y = MapDataMessage.ReadInt32(),
                    TileID = MapDataMessage.ReadByte(),
                    Passable = MapDataMessage.ReadBoolean(),
                });
            }

            Console.WriteLine("TerrainData Loaded");
        }
Esempio n. 18
0
 public void R(NetIncomingMessage im)
 {
     if(PlayerPack == null)
     {
         PlayerPack = new List<Tuple<uint, int, int, bool, uint>>();
     }
     int l = im.ReadInt32();
     for(int i = 0; i < l; ++i)
     {
         var id      = im.ReadUInt32();
         var x       = im.ReadInt32();
         var y       = im.ReadInt32();
         var alive   = im.ReadBoolean();
         var sid     = im.ReadUInt32();
         PlayerPack.Add(Tuple.Create<uint, int, int, bool, uint>(id, x, y, alive, sid));
     }
 }
Esempio n. 19
0
        public void HandleData(NetIncomingMessage msg)
        {
            NetMsgType datatype = (NetMsgType)msg.ReadByte();
            if (datatype == NetMsgType.Control)
            {
                Soul soul = (Soul)msg.SenderConnection.Tag;
                var key = (ControlKey)msg.ReadByte();
                var edge = msg.ReadBoolean();
                //Console.WriteLine("Received Control Message: " + key + (edge ? "Pressed" : "Released"));
                soul.currentShip.Controls.ReceiveMessage(key, edge);
            }
            else if (datatype == NetMsgType.ControlUpdate)
            {
                Soul soul = (Soul)msg.SenderConnection.Tag;
                var Pitch = msg.ReadFloat();
                var Yaw = msg.ReadFloat();
                var Roll = msg.ReadFloat();
                soul.currentShip.Controls.ReceiveMessage(Pitch, Yaw, Roll);
            }
            else if (datatype == NetMsgType.ShipDataOutput)
            {
                ShipDataOutputMessage data;
                data = new ShipDataOutputMessage(msg);
                Soul soul = new Soul(msg.SenderConnection);
                soul.currentSector = Sector.Redria;
                msg.SenderConnection.Tag = soul;

                soul.currentSector.Terrain.Load(msg.SenderConnection);
                soul.currentSector.Ships.Load(msg.SenderConnection);
                soul.currentSector.Objects.Load(msg.SenderConnection);
                var idRandomizer = new Random();

                var NewShip = new ShipObj(new Vector3(0, 100, 2), Quaternion.Identity,
                    data.GeneratedData);
                soul.currentShip = NewShip;
                NewShip.Client = soul;
                //Console.WriteLine(msg.SenderEndpoint.Address + "'s Ship ID: " + NewShip.ID);
                foreach (NetConnection c in Network.Server.Connections)
                {
                    MessageWriter.ClientEntityCreationMessage(c,
                        NewShip.ID, NewShip.Position, NewShip.Orientation,
                        data.GeneratedData.NoseID, data.GeneratedData.CoreID, data.GeneratedData.EngineID,
                        data.Weapons, msg.SenderConnection.RemoteUniqueIdentifier);
                }
            }
        }
Esempio n. 20
0
        private void BuildList(NetIncomingMessage message)
        {
            byte playerCount = message.ReadByte();
            int yOffset = 40;
            for (int i = 0; i < playerCount; i++)
            {
                string name = message.ReadString();
                var status = (SessionStatus) message.ReadByte();
                string job = message.ReadString();
                string ip = message.ReadString();
                bool isAdmin = message.ReadBoolean();

                var line = new Label("Name: " + name + "    Status: " + status + "    Job: " + job + "    IP: " + ip,
                                     "CALIBRI", _resourceManager)
                               {
                                   Position = new Point(5, yOffset + 5),
                                   Text = {Color = isAdmin ? Color.DarkCyan : Color.Black}
                               };

                components.Add(line);

                var kickButton = new Button("Kick", _resourceManager)
                                     {
                                         Position =
                                             new Point(line.ClientArea.Right + 10,
                                                       yOffset + (int) (line.ClientArea.Height/3f))
                                     };
                components.Add(kickButton);
                kickButton.UserData = ip;
                kickButton.Clicked += KickButtonClicked;
                kickButton.Update(0);

                var banButt = new Button("Ban", _resourceManager)
                                  {
                                      Position =
                                          new Point(kickButton.ClientArea.Right + 5,
                                                    yOffset + (int) (line.ClientArea.Height/3f))
                                  };
                components.Add(banButt);
                banButt.UserData = ip;
                banButt.Clicked += BanButtonClicked;

                yOffset += 35;
            }
        }
Esempio n. 21
0
        public static new Packet FromNetBuffer(NetIncomingMessage incomingMessage)
        {
            object o = null;
            var locked = incomingMessage.ReadBoolean();
            var type = (ContentType) incomingMessage.ReadByte();

            if (!locked)
            {
                var length = incomingMessage.ReadInt32();
                var bytes = incomingMessage.ReadBytes(length);

                o = SerializationHelper.ByteArrayToObject(bytes);
            }

            var packet = new ContentResultPacket(o, locked, type);

            return packet;
        }
Esempio n. 22
0
        internal void Read(NetIncomingMessage Message)
        {
            ChunkCoords.Read(Message);

            Vector3i BlockCoords = ChunkCoords * Size;
            for (int x = 0; x < Size.X; x++) {
                for (int y = 0; y < Size.Y; y++) {
                    for (int z = 0; z < Size.Z; z++) {
                        Vector3i BlockAt = BlockCoords + new Vector3i(x, y, z);

                        bool Value = Message.ReadBoolean();
                        if (Value) {
                            BlockData[x, y, z] = new Block();
                            BlockData[x, y, z].Read(Message);
                        }
                    }
                }
            }
        }
Esempio n. 23
0
        // Read in a list of cards from an incoming message.
        public static List<Card> ReadCards( NetIncomingMessage inc )
        {
            // Read the size of the list of cards.
            int size = inc.ReadInt32();

            List<Card> cards = new List<Card>();

            // Read the values of the properties of each card.
            for ( int i = 0; i < size; ++i )
            {
                string name = inc.ReadString();
                CardType type = (CardType)inc.ReadByte();
                string value = inc.ReadString();
                PropertyType color = (PropertyType)inc.ReadByte();
                PropertyType altColor = (PropertyType)inc.ReadByte();
                string uriPath = inc.ReadString();
                string actionID = inc.ReadString();
                string cardID = inc.ReadString();
                bool isFlipped = inc.ReadBoolean();
                cards.Add(new Card(name, type, Convert.ToInt32(value), color, altColor, uriPath, Convert.ToInt32(actionID), Convert.ToInt32(cardID), isFlipped));
            }

            return cards;
        }
Esempio n. 24
0
 public void HandleAdminMessage(NetMessage adminMsgType, NetIncomingMessage messageBody)
 {
     switch (adminMsgType)
     {
         case NetMessage.RequestAdminLogin:
             UserInterfaceManager.DisposeAllComponents<AdminPasswordDialog>(); //Remove old ones.
             UserInterfaceManager.AddComponent(new AdminPasswordDialog(new Size(200, 50), NetworkManager,
                                                                       ResourceManager)); //Create a new one.
             break;
         case NetMessage.RequestAdminPlayerlist:
             UserInterfaceManager.DisposeAllComponents<AdminPlayerPanel>();
             UserInterfaceManager.AddComponent(new AdminPlayerPanel(new Size(600, 200), NetworkManager,
                                                                    ResourceManager, messageBody));
             break;
         case NetMessage.RequestBanList:
             var banList = new Banlist();
             int entriesCount = messageBody.ReadInt32();
             for (int i = 0; i < entriesCount; i++)
             {
                 string ipAddress = messageBody.ReadString();
                 string reason = messageBody.ReadString();
                 bool tempBan = messageBody.ReadBoolean();
                 uint minutesLeft = messageBody.ReadUInt32();
                 var entry = new BanEntry
                                 {
                                     ip = ipAddress,
                                     reason = reason,
                                     tempBan = tempBan,
                                     expiresAt = DateTime.Now.AddMinutes(minutesLeft)
                                 };
                 banList.List.Add(entry);
             }
             UserInterfaceManager.DisposeAllComponents<AdminUnbanPanel>();
             UserInterfaceManager.AddComponent(new AdminUnbanPanel(new Size(620, 200), banList, NetworkManager,
                                                                   ResourceManager));
             break;
     }
 }
Esempio n. 25
0
 private void DataProcessing(byte type, NetIncomingMessage message)
 {
     _counter++;
     Debug.Print("[" + _counter + "]Message received from server !");
     switch (type)
     {
         case (byte)MessageType.ServerMessage.ClientId:
             Debug.Print("A message type 'ClientId' have been received from server !");
             ReceiveMyClientId(message.ReadInt32());
             break;
         case (byte)MessageType.ServerMessage.NewClientInfo:
             Debug.Print("A message type 'NewClientInfo' have been received from server !");
             ReceiveNewClientInfo(message.ReadInt32(), message.ReadString(), message.ReadBoolean());
             break;
         case (byte)MessageType.ServerMessage.IsReady:
             Debug.Print("A message type 'IsReady' have been received from server !");
             ReceiveIsReady(message.ReadInt32(), message.ReadBoolean());
             break;
         case (byte)MessageType.ServerMessage.AvailableMaps:
             Debug.Print("A message type 'AvailableMaps' have been received from server !");
             ReceiveAvailableMaps(message);
             break;
         case (byte)MessageType.ServerMessage.SelectedMap:
             Debug.Print("A message type 'SelectedMap' have been received from server !");
             ReceiveSelectedMap(message.ReadString());
             break;
         case (byte)MessageType.ServerMessage.Map:
             Debug.Print("A message type 'Map' have been received from server !");
             ReceiveMap(message);
             break;
         case (byte)MessageType.ServerMessage.GameWillStart:
             Debug.Print("A message type 'GameWillStart' have been received from server !");
             ReceiveGameWillStart();
             break;
         case (byte)MessageType.ServerMessage.StartGame:
             Debug.Print("A message type 'StartGame' have been received from server !");
             ReceiveStartGame(message);
             break;
         case (byte)MessageType.ServerMessage.PlayerPosition:
             Debug.Print("A message type 'PlayerPosition' have been received from server !");
             ReceivePosition(message.ReadFloat(), message.ReadFloat(), message.ReadByte(), message.ReadInt32());
             break;
         case (byte)MessageType.ServerMessage.RemovePlayer:
             Debug.Print("A message type 'RemovePlayer' have been received from server !");
             ReceiveRemovePlayer(message.ReadInt32());
             break;
         case (byte)MessageType.ServerMessage.PlayerPlacingBomb:
             Debug.Print("A message type 'PlayerPlacingBomb' have been received from server !");
             ReceivePlacingBomb(message.ReadInt32(), message.ReadPoint());
             break;
         case (byte)MessageType.ServerMessage.BombExploded:
             ReceiveBombExploded(message);
             break;
         case (byte)MessageType.ServerMessage.PlayerKill:
             ReceivePlayerKill(message.ReadInt32(), message.ReadInt32());
             break;
         case (byte)MessageType.ServerMessage.PlayerSuicide:
             ReceivePlayerSuicide(message.ReadInt32());
             break;
         case (byte)MessageType.ServerMessage.PowerUpDrop:
             ReceivePowerupDrop((PowerUpType)message.ReadByte(), message.ReadPoint());
             break;
         case (byte)MessageType.ServerMessage.PowerUpPickUp:
             ReceivePowerUpPickUp(message.ReadInt32(), message.ReadPoint(), (PowerUpType)message.ReadByte());
             break;
         case (byte)MessageType.ServerMessage.SuddenDeath:
             //ReceiveSuddenDeath();
             break;
         case (byte)MessageType.ServerMessage.RoundEnd:
             Debug.Print("A message type 'RoundEnd' have been received from server !");
             ReceiveRoundEnd();
             break;
         case (byte)MessageType.ServerMessage.End:
             Debug.Print("A message type 'End' have been received from server !");
             ReceiveEnd(message.ReadBoolean());
             break;
         case (byte)MessageType.ServerMessage.Pings:
             //Debug.Print("A message type 'Pings have been received from server !");
             ReceivePings(message);
             break;
     }
 }
Esempio n. 26
0
 protected override void Read(NetIncomingMessage message)
 {
     Type = (AuthType)message.ReadByte();
     Success = message.ReadBoolean();
     Message = message.ReadString();
 }
Esempio n. 27
0
 /// <summary>
 /// Method to process the received information.
 /// </summary>
 /// <param name="type">Type of the message. Indicates what the message's contents are.</param>
 /// <param name="msg">The message to process.</param>
 private void ProgressData(MPMessageType msgType, NetIncomingMessage msg)
 {
     Log.Message("Client received " + msgType);
     switch (msgType)
     {
         case MPMessageType.MoneyUpdate: // Receiving money
             long t = msg.ReadInt64();
             EcoExtBase.MPInternalMoneyAmount = t;
             break;
         case MPMessageType.DemandUpdate: // Receiving demand
             DemandExtBase.MPCommercialDemand = msg.ReadInt32();
             DemandExtBase.MPResidentalDemand = msg.ReadInt32();
             DemandExtBase.MPWorkplaceDemand = msg.ReadInt32();
             break;
         case MPMessageType.TileUpdate: // Receiving tile coordinates to unlock
             AreaExtBase.MPXCoordinate = msg.ReadInt32();
             AreaExtBase.MPZCoordinate = msg.ReadInt32();
             // INFO: The unlock process is activated simutaniously with the
             // EcoExtBase.OnUpdateMoneyAmount(long internalMoneyAmount).
             // Maybe I find a direct way to unlock a tile within AreaExtBase
             break;
         case MPMessageType.SimulationUpdate: // Receiving update on simulation information
             SimulationManager.instance.SelectedSimulationSpeed = msg.ReadInt32();
             SimulationManager.instance.SimulationPaused = msg.ReadBoolean();
             break;
         case MPMessageType.CitizenUpdate:
             CitizenManager.instance.m_citizenCount = msg.ReadInt32();
             break;
         default: // Unhandled ID (MPMessageType)
             OnClientReceivedUnhandledMessage(new ReceivedUnhandledMessageEventArgs(msg, msgType.ToString()));
             break;
     }
 }
Esempio n. 28
0
 public static void Read(Packets Packet, NetIncomingMessage I)
 {
     switch (Packet)
     {
         case Packets.Connection:
             if (MultiPlayer.Type("Game") == MultiPlayer.Types.Server)
             {
                 ulong ClientVersion = I.ReadUInt64();
                 if (ClientVersion == Globe.Version)
                 {
                     Player Connector = Player.Add(new Player(I.ReadString()) { Connection = I.SenderConnection });
                     if (Connector != null)
                     {
                         MultiPlayer.Send("Game", MultiPlayer.Construct("Game", Packet, Connector.Slot, Connector.Name), I.SenderConnection);
                         List<object> Details = new List<object>();
                         for (byte i = 0; i < Players.Length; i++)
                             if ((Players[i] != null) && (Players[i] != Connector))
                             {
                                 Details.Add(true);
                                 Details.Add(Players[i].Name);
                             }
                             else Details.Add(false);
                         I.SenderConnection.Approve(MultiPlayer.Construct("Game", Packets.Initial, (byte)Players.Length, Connector.Slot, Details));
                     }
                     else I.SenderConnection.Deny("Full");
                 }
                 else I.SenderConnection.Deny("Version indifference, Client: " + ClientVersion + " - Server: " + Globe.Version);
             }
             else if (MultiPlayer.Type("Game") == MultiPlayer.Types.Client) { byte Slot = I.ReadByte(); Player.Set(Slot, new Player(I.ReadString())); }
             break;
         case Packets.Disconnection:
             Player Disconnector = ((MultiPlayer.Type("Game") == MultiPlayer.Types.Server) ? Player.Get(I.SenderConnection) :
                 ((MultiPlayer.Type("Game") == MultiPlayer.Types.Client) ? Players[I.ReadByte()] : null));
             if (Disconnector != null) Player.Remove(Disconnector);
             if (MultiPlayer.Type("Game") == MultiPlayer.Types.Server) MultiPlayer.Send("Game", MultiPlayer.Construct("Game", Packets.Disconnection, Disconnector.Slot), I.SenderConnection);
             break;
         case Packets.Initial:
             if (MultiPlayer.Type("Game") == MultiPlayer.Types.Client)
             {
                 Players = new Player[I.ReadByte()];
                 Self = Player.Set(I.ReadByte(), new Player(MpName) { });
                 for (byte i = 0; i < Players.Length; i++)
                     if (I.ReadBoolean())
                     {
                         Players[i] = new Player(i, I.ReadString());
                     }
                 Timers.Add("Positions", (1 / 30d));
                 State = States.Game;
             }
             break;
         case Packets.Position:
             Player Sender = ((MultiPlayer.Type("Game") == MultiPlayer.Types.Server) ? Player.Get(I.SenderConnection) : null);
             Vector2 Position; float Angle;
             if (MultiPlayer.Type("Game") == MultiPlayer.Types.Server)
             {
                 if (Sender != null)
                 {
                     Sender.Position = I.ReadVector2();
                     Sender.Angle = I.ReadFloat();
                 }
             }
             else if (MultiPlayer.Type("Game") == MultiPlayer.Types.Client)
             {
                 byte Count = (byte)((I.LengthBytes - 1) / 12);
                 for (byte i = 0; i < Count; i++)
                 {
                     Sender = Players[I.ReadByte()];
                     Position = I.ReadVector2();
                     Angle = I.ReadFloat();
                     if (Sender != null)
                     {
                         Sender.Position = Position;
                         Sender.Angle = Angle;
                     }
                 }
             }
             break;
     }
 }
Esempio n. 29
0
 public override void OnAdvancedNetworkMessage(NetIncomingMessage msg)
 {
     byte byInstruction = msg.ReadByte();
     if (byInstruction == 0)
     {
         this.xPlayerLockedOnto = Program.game._EntityMaster_ReadActor(msg);
         if (this.xPlayerLockedOnto == null)
         {
             this.ChangeAction(SummerFaeAI.Action.Chillin);
             this.iCounter = 0;
             return;
         }
     }
     else if (byInstruction == 1)
     {
         SummerFaeAI.Action enAction = (SummerFaeAI.Action)msg.ReadInt32();
         this.ChangeAction(enAction);
         this.sSubAction = msg.ReadString();
         if (msg.ReadBoolean())
         {
             this.iCounter = 0;
         }
     }
 }
        protected void NewPlayerResponse(NetIncomingMessage msg)
        {
            int ownUid = msg.ReadInt32();
            NetManager.RemoteUID = ownUid;
            bool gameStarted = msg.ReadBoolean();
            string levelName = msg.ReadString();
            string levelData = msg.ReadString();

            int otherClientsCount = msg.ReadInt32();

            for (int i = 0; i < otherClientsCount; i++)
            {
                string name = msg.ReadString();
                int uid = msg.ReadInt32();

                NetPlayer player = new NetPlayer(0, 0);
                ClientInfo clientInfo = new ClientInfo();
                clientInfo.Name = name;
                clientInfo.X = player.X;
                clientInfo.Y = player.Y;
                clientInfo.UID = uid;
                player.UID = uid;

                if (!NetManager.connectedClients.ContainsKey(uid))
                {
                    NetManager.connectedClients.Add(clientInfo.UID, clientInfo);
                    EntityManager.AddNetPlayer(player);
                    JapeLog.WriteLine("New Player Added: " + name);
                }
            }

            if (gameStarted)
            {
                DownloadLevel(levelName, levelData);
                OnChangedLevel(levelName, 0);
            }

            JapeLog.WriteLine("Remote ID recieved: " + ownUid);
        }