private void HandleMapCheck(PacketReceivedEventArgs args)
        {
            var mapName = args.Message.ReadString();
            var mapVersion = args.Message.ReadInt32();

            var mapExistence = File.Exists(Constants.FILEPATH_CACHE + "Maps/" + mapName + ".map");

            var mapVersionMatch = false;

            if (mapExistence == true)
            {
                this.Map = new World.Map();
                this.Map.LoadCache(mapName);
                mapVersionMatch = (this.Map.Version == mapVersion);
            }

            var net = ServiceLocator.NetManager;
            var packet = new Packet(PacketType.MapCheckPacket);

            packet.Message.Write(mapExistence & mapVersionMatch);

            net.SendMessage(packet.Message, Lidgren.Network.NetDeliveryMethod.ReliableOrdered, ChannelTypes.WORLD);
        }
Example #2
0
 private void SendMovement(int x, int y, Directions direction)
 {
     var packet = new Packet(PacketType.PlayerMovementPacket);
     packet.Message.Write(x);
     packet.Message.Write(y);
     packet.Message.Write((byte)this.Direction);
     ServiceLocator.NetManager.SendMessage(packet.Message, Lidgren.Network.NetDeliveryMethod.ReliableOrdered, ChannelTypes.WORLD);
 }
Example #3
0
        public void TryDropInventoryItem(int mouseX, int mouseY)
        {
            var slotNum = this.MouseCordToSlotNum(mouseX, mouseY);

            if (this.GetInventoryItem(slotNum) == null) return;

            var dropItemPacket = new Packet(PacketType.DropItemPacket);
            dropItemPacket.Message.Write(slotNum);
            ServiceLocator.NetManager.SendMessage(dropItemPacket.Message, NetDeliveryMethod.ReliableOrdered, ChannelTypes.WORLD);
        }
        private void buttonSendRegistartion_LeftMouseClickedCallback(object sender, CallbackArgs e)
        {
            ServiceLocator.NetManager.Connect();

            var registrationPacket = new Packet(PacketType.RegistrationPacket);
            registrationPacket.Message.Write(this.GUI.Get<EditBox>("textUser").Text);
            registrationPacket.Message.Write(this.GUI.Get<EditBox>("textPassword").Text);

            ServiceLocator.NetManager.SendMessage(registrationPacket.Message, NetDeliveryMethod.ReliableOrdered, ChannelTypes.WORLD);
        }
        private void buttonSendLogin_LeftMouseClickedCallback(object sender, CallbackArgs e)
        {
            this.GUI.Get<Label>("labelStatus").Text = "Connecting to the server...";
            this.GUI.Get<Label>("labelStatus").Position = new Vector2f((Window.Size.X / 2) - (this.GUI.Get<Label>("labelStatus").Size.X / 2), 50);

            ServiceLocator.NetManager.Connect();

            this.GUI.Get<Label>("labelStatus").Text = "Connected! Sending login information...";
            this.GUI.Get<Label>("labelStatus").Position = new Vector2f((Window.Size.X / 2) - (this.GUI.Get<Label>("labelStatus").Size.X / 2), 50);

            var loginPacket = new Packet(PacketType.LoginPacket);
            loginPacket.Message.Write(this.GUI.Get<EditBox>("textUser").Text);
            loginPacket.Message.Write(this.GUI.Get<EditBox>("textPassword").Text);

            ServiceLocator.NetManager.SendMessage(loginPacket.Message, NetDeliveryMethod.ReliableOrdered, ChannelTypes.WORLD);
        }
Example #6
0
        public void TryPickupItem()
        {
            var playerManager = ServiceLocator.WorldManager.PlayerManager;

            var x = playerManager.GetPlayer(playerManager.ClientID).Position.X * 32;
            var y = playerManager.GetPlayer(playerManager.ClientID).Position.Y * 32;

            var mapItem = this.FindMapItem(new Vector2f(x, y));

            if (mapItem == null) return;

            var packet = new Packet(PacketType.PickupItemPacket);
            packet.Message.Write(x);
            packet.Message.Write(y);
            ServiceLocator.NetManager.SendMessage(packet.Message, NetDeliveryMethod.ReliableOrdered, ChannelTypes.WORLD);
        }
        private void textMyChat_ReturnKeyPressedCallback(object sender, CallbackArgs e)
        {
            var textMyChat = this.GUI.Get<EditBox>("textMyChat");
            var chatMessagePacket = new Packet(PacketType.ChatMessagePacket);

            chatMessagePacket.Message.Write(textMyChat.Text);
            ServiceLocator.NetManager.SendMessage(chatMessagePacket.Message, NetDeliveryMethod.Unreliable, ChannelTypes.CHAT);
            textMyChat.Text = "";
        }
        private void HandleMapData(PacketReceivedEventArgs args)
        {
            var map = new Map
            {
                Name = args.Message.ReadString(),
                Version = args.Message.ReadInt32()
            };

            map.ResizeMap(args.Message.ReadInt32(), args.Message.ReadInt32());

            for (int x = 0; x < map.Width; x++)
            {
                for (int y = 0; y < map.Height; y++)
                {
                    map.SetTile(x, y, new Map.Tile());

                    map.GetTile(x, y).Blocked = args.Message.ReadBoolean();

                    foreach (Map.Layers layer in Enum.GetValues(typeof(Map.Layers)))
                    {
                        if (!args.Message.ReadBoolean()) continue;

                        var textureNumber = args.Message.ReadInt32();
                        var left = args.Message.ReadInt32();
                        var top = args.Message.ReadInt32();
                        var width = args.Message.ReadInt32();
                        var height = args.Message.ReadInt32();

                        var textureRect = new IntRect(left, top, width, height);

                        var tileSprite = new Sprite(ServiceLocator.ScreenManager.ActiveScreen.TextureManager.GetTexture("tileset" + textureNumber.ToString()))
                        {
                            TextureRect = textureRect
                        };

                        map.GetTile(x, y).SetLayer(layer, new Map.Tile.Layer(tileSprite, x, y));
                    }
                }
            }

            var mapNpcCount = args.Message.ReadInt32();

            for (int i = 0; i < mapNpcCount; i++)
            {
                var npc = new Npc()
                {
                    Name = args.Message.ReadString(),
                    Level = args.Message.ReadInt32(),
                    Sprite = new Sprite(ServiceLocator.ScreenManager.ActiveScreen.TextureManager.GetTexture("npc" + args.Message.ReadInt32())),
                };
                var position = args.Message.ReadVector();
                npc.Position = new SFML.System.Vector2i(position.X, position.Y);
            }

            map.CacheMap();
            this.Map = map;

            // Notify the server that we're now in the game.
            var net = ServiceLocator.NetManager;
            var packet = new Packet(PacketType.MapCheckPacket);
            packet.Message.Write(true);
            net.SendMessage(packet.Message, Lidgren.Network.NetDeliveryMethod.ReliableOrdered, ChannelTypes.WORLD);
        }