コード例 #1
0
        /// <summary>
        /// Handles initialization of the GameScreen. This will be invoked after the GameScreen has been
        /// completely and successfully added to the ScreenManager. It is highly recommended that you
        /// use this instead of the constructor. This is invoked only once.
        /// </summary>
        public override void Initialize()
        {
            _gameControls    = new GameplayScreenControls(this);
            _dragDropHandler = new DragDropHandler(this);

            _socket = ClientSockets.Instance;

            _world             = new World(this, new Camera2D(GameData.ScreenSize), new UserInfo(Socket));
            _world.MapChanged += World_MapChanged;

            _sayHandler       = new SayHandler(this);
            _profanityHandler = new ProfanityHandler();

            // Create some misc goodies that require a reference to the Socket
            _equipmentInfoRequester = new EquipmentInfoRequester(UserInfo.Equipped, Socket);
            _inventoryInfoRequester = new InventoryInfoRequester(UserInfo.Inventory, Socket);

            // Other inits
            InitializeGUI();
            _characterTargeter = new CharacterTargeter(World);

            // NOTE: Test lighting
            _userLight = new Light {
                Size = new Vector2(512), IsEnabled = false
            };
            DrawingManager.LightManager.Add(_userLight);
        }
コード例 #2
0
        /// <summary>
        /// Handles screen activation, which occurs every time the screen becomes the current
        /// active screen. Objects in here often will want to be destroyed on Deactivate().
        /// </summary>
        public override void Activate()
        {
            base.Activate();

            if (_sockets == null)
                _sockets = ClientSockets.Instance;

            _sockets.PacketHandler.AccountCharacterInfos.AccountCharactersLoaded += HandleCharInfosUpdated;
        }
コード例 #3
0
ファイル: DemoGame.cs プロジェクト: wtfcolt/game
        /// <summary>
        /// Initializes a new instance of the <see cref="DemoGame"/> class.
        /// </summary>
        public DemoGame() : base(
                new Point((int)GameData.ScreenSize.X, (int)GameData.ScreenSize.Y),
                new Point((int)GameData.ScreenSize.X, (int)GameData.ScreenSize.Y), "NetGore")
        {
            EngineSettingsInitializer.Initialize();

            // Create the screen manager
            var skinManager = new SkinManager("Default");

            _screenManager = new ScreenManager(this, skinManager, "Font/Arial", 24);

            // Initialize the socket manager
            ClientSockets.Initialize(ScreenManager);
            _sockets = ClientSockets.Instance;

            // Read the GrhInfo
            LoadGrhInfo();

            var lightGD = GrhInfo.GetData("Effect", "light");

            _screenManager.DrawingManager.LightManager.DefaultSprite = new Grh(lightGD);

            // Set up our custom chat bubbles
            ChatBubble.CreateChatBubbleInstance = CreateChatBubbleInstanceHandler;

            // Create the screens
            new OptionsScreen(ScreenManager);
            new GameplayScreen(ScreenManager);
            new MainMenuScreen(ScreenManager);
            new LoginScreen(ScreenManager);
            new CharacterSelectionScreen(ScreenManager);
            new CreateCharacterScreen(ScreenManager);
            new NewAccountScreen(ScreenManager);

            ScreenManager.ConsoleScreen = new ConsoleScreen(ScreenManager);
            ScreenManager.SetScreen <MainMenuScreen>();

            ShowMouseCursor = true;

            KeyPressed -= DemoGame_KeyPressed;
            KeyPressed += DemoGame_KeyPressed;

            var clientSettings = ClientSettings.Default;

            // Apply some of the initial settings
            ScreenManager.AudioManager.SoundManager.Volume = clientSettings.Audio_SoundVolume;
            ScreenManager.AudioManager.MusicManager.Volume = clientSettings.Audio_MusicVolume;

            UseVerticalSync = clientSettings.Graphics_VSync;
            IsFullscreen    = clientSettings.Graphics_Fullscreen;

            // Listen for changes to the settings
            clientSettings.PropertyChanged -= Default_PropertyChanged;
            clientSettings.PropertyChanged += Default_PropertyChanged;
        }
コード例 #4
0
        /// <summary>
        /// Handles screen activation, which occurs every time the screen becomes the current
        /// active screen. Objects in here often will want to be destroyed on Deactivate().
        /// </summary>
        public override void Activate()
        {
            base.Activate();

            if (_sockets == null)
            {
                _sockets = ClientSockets.Instance;
            }

            _sockets.PacketHandler.AccountCharacterInfos.AccountCharactersLoaded += HandleCharInfosUpdated;
        }
コード例 #5
0
        /// <summary>
        /// Handles screen activation, which occurs every time the screen becomes the current
        /// active screen. Objects in here often will want to be destroyed on Deactivate().
        /// </summary>
        public override void Activate()
        {
            base.Activate();

            if (_sockets == null)
                _sockets = ClientSockets.Instance;

            _btnCreateCharacter.IsEnabled = true;
            _cStatus.IsVisible = false;

            _sockets.PacketHandler.ReceivedCreateAccountCharacter += PacketHandler_ReceivedCreateAccountCharacter;
        }
コード例 #6
0
ファイル: DemoGame.cs プロジェクト: wtfcolt/game
        /// <summary>
        /// Initializes a new instance of the <see cref="DemoGame"/> class.
        /// </summary>
        public DemoGame() : base(
            new Point((int)GameData.ScreenSize.X, (int)GameData.ScreenSize.Y), 
            new Point((int)GameData.ScreenSize.X, (int)GameData.ScreenSize.Y), "NetGore")
        {
            EngineSettingsInitializer.Initialize();

            // Create the screen manager
            var skinManager = new SkinManager("Default");
            _screenManager = new ScreenManager(this, skinManager, "Font/Arial", 24);

            // Initialize the socket manager
            ClientSockets.Initialize(ScreenManager);
            _sockets = ClientSockets.Instance;

            // Read the GrhInfo
            LoadGrhInfo();

            var lightGD = GrhInfo.GetData("Effect", "light");
            _screenManager.DrawingManager.LightManager.DefaultSprite = new Grh(lightGD);

            // Set up our custom chat bubbles
            ChatBubble.CreateChatBubbleInstance = CreateChatBubbleInstanceHandler;

            // Create the screens
            new OptionsScreen(ScreenManager);
            new GameplayScreen(ScreenManager);
            new MainMenuScreen(ScreenManager);
            new LoginScreen(ScreenManager);
            new CharacterSelectionScreen(ScreenManager);
            new CreateCharacterScreen(ScreenManager);
            new NewAccountScreen(ScreenManager);

            ScreenManager.ConsoleScreen = new ConsoleScreen(ScreenManager);
            ScreenManager.SetScreen<MainMenuScreen>();

            ShowMouseCursor = true;

            KeyPressed -= DemoGame_KeyPressed;
            KeyPressed += DemoGame_KeyPressed;

            var clientSettings = ClientSettings.Default;

            // Apply some of the initial settings
            ScreenManager.AudioManager.SoundManager.Volume = clientSettings.Audio_SoundVolume;
            ScreenManager.AudioManager.MusicManager.Volume = clientSettings.Audio_MusicVolume;

            UseVerticalSync = clientSettings.Graphics_VSync;
            IsFullscreen = clientSettings.Graphics_Fullscreen;

            // Listen for changes to the settings
            clientSettings.PropertyChanged -= Default_PropertyChanged;
            clientSettings.PropertyChanged += Default_PropertyChanged;
        }
コード例 #7
0
ファイル: NewAccountScreen.cs プロジェクト: wtfcolt/game
        /// <summary>
        /// Handles initialization of the GameScreen. This will be invoked after the GameScreen has been
        /// completely and successfully added to the ScreenManager. It is highly recommended that you
        /// use this instead of the constructor. This is invoked only once.
        /// </summary>
        public override void Initialize()
        {
            base.Initialize();

            _sockets = ClientSockets.Instance;

            _sockets.PacketHandler.ReceivedCreateAccount -= PacketHandler_ReceivedCreateAccount;
            _sockets.PacketHandler.ReceivedCreateAccount += PacketHandler_ReceivedCreateAccount;

            var cScreen = new Panel(GUIManager, Vector2.Zero, ScreenManager.ScreenSize);

            // Create the new account fields. Use a different font since our default TextBox font doesn't support some characters
            // needed for email, and it'd look funny to only change it for the email textbox.
            var textBoxFont = GameScreenHelper.DefaultChatFont;

            GameScreenHelper.CreateMenuLabel(cScreen, new Vector2(60, 180), "Name:");
            _cNameText = new TextBox(cScreen, new Vector2(220, 180), new Vector2(200, 40))
            {
                IsMultiLine = false, Text = string.Empty, Font = textBoxFont
            };

            GameScreenHelper.CreateMenuLabel(cScreen, new Vector2(60, 260), "Password:"******"Email:");
            _cEmailText = new TextBox(cScreen, new Vector2(220, 320), new Vector2(200, 40))
            {
                IsMultiLine = false, Text = string.Empty, Font = textBoxFont
            };

            var textBoxPos  = new Vector2(60, _cEmailText.Position.Y + _cEmailText.Size.Y + 20);
            var textBoxSize = new Vector2(cScreen.ClientSize.X - (textBoxPos.X * 2), cScreen.ClientSize.Y - textBoxPos.Y - 60);

            _cStatus = new TextBox(cScreen, textBoxPos, textBoxSize)
            {
                ForeColor = Color.Red, Border = null, CanFocus = false, IsMultiLine = true, IsEnabled = false
            };

            // Create the menu buttons
            var menuButtons = GameScreenHelper.CreateMenuButtons(ScreenManager, cScreen, "Create Account", "Back");

            menuButtons["Create Account"].Clicked += ClickButton_CreateAccount;
            menuButtons["Back"].Clicked           += delegate { ScreenManager.SetScreen <MainMenuScreen>(); };

            _createAccountButton = menuButtons["Create Account"];

            _sockets.StatusChanged -= _sockets_StatusChanged;
            _sockets.StatusChanged += _sockets_StatusChanged;
        }
コード例 #8
0
        /// <summary>
        /// Handles screen activation, which occurs every time the screen becomes the current
        /// active screen. Objects in here often will want to be destroyed on Deactivate().
        /// </summary>
        public override void Activate()
        {
            base.Activate();

            if (_sockets == null)
                _sockets = ClientSockets.Instance;

            // Add event listeners
            _sockets.PacketHandler.AccountCharacterInfos.AccountCharactersLoaded -= HandleCharInfosUpdated;
            _sockets.PacketHandler.AccountCharacterInfos.AccountCharactersLoaded += HandleCharInfosUpdated;

            // Ensure the old user info is cleared out
            ScreenManager.GetScreen<GameplayScreen>().UserInfo.Clear();
        }
コード例 #9
0
        /// <summary>
        /// Handles screen activation, which occurs every time the screen becomes the current
        /// active screen. Objects in here often will want to be destroyed on Deactivate().
        /// </summary>
        public override void Activate()
        {
            base.Activate();

            if (_sockets == null)
            {
                _sockets = ClientSockets.Instance;
            }

            _btnCreateCharacter.IsEnabled = true;
            _cStatus.IsVisible            = false;

            _sockets.PacketHandler.ReceivedCreateAccountCharacter += PacketHandler_ReceivedCreateAccountCharacter;
        }
コード例 #10
0
        /// <summary>
        /// Initializes the <see cref="ClientSockets"/> instance. This only needs to be called once.
        /// </summary>
        /// <param name="screenManager">The <see cref="IScreenManager"/> instance.</param>
        /// <exception cref="ArgumentNullException"><see cref="screenManager"/> is null.</exception>
        public static void Initialize(IScreenManager screenManager)
        {
            if (screenManager == null)
            {
                throw new ArgumentNullException("screenManager");
            }

            if (Instance != null)
            {
                return;
            }

            _instance = new ClientSockets(screenManager);
        }
コード例 #11
0
        /// <summary>
        /// Handles screen activation, which occurs every time the screen becomes the current
        /// active screen. Objects in here often will want to be destroyed on Deactivate().
        /// </summary>
        public override void Activate()
        {
            base.Activate();

            if (_sockets == null)
            {
                _sockets = ClientSockets.Instance;
            }

            // Add event listeners
            _sockets.PacketHandler.AccountCharacterInfos.AccountCharactersLoaded -= HandleCharInfosUpdated;
            _sockets.PacketHandler.AccountCharacterInfos.AccountCharactersLoaded += HandleCharInfosUpdated;

            // Ensure the old user info is cleared out
            ScreenManager.GetScreen <GameplayScreen>().UserInfo.Clear();
        }
コード例 #12
0
ファイル: CreateCharacterScreen.cs プロジェクト: wtfcolt/game
        /// <summary>
        /// Handles screen activation, which occurs every time the screen becomes the current
        /// active screen. Objects in here often will want to be destroyed on Deactivate().
        /// </summary>
        public override void Activate()
        {
            base.Activate();

            if (_sockets == null)
                _sockets = ClientSockets.Instance;

            // Set event hooks (remove first to ensure only one listener is set)
            _sockets.PacketHandler.ReceivedCreateAccountCharacter -= PacketHandler_ReceivedCreateAccountCharacter;
            _sockets.PacketHandler.ReceivedCreateAccountCharacter += PacketHandler_ReceivedCreateAccountCharacter;

            // Reset the control states
            SetError(null);
            _btnCreateCharacter.IsEnabled = true;
            _txtName.Text = string.Empty;
        }
コード例 #13
0
ファイル: OnlineUsersForm.cs プロジェクト: Furt/netgore
        /// <summary>
        /// Initializes a new instance of the <see cref="OnlineUsersForm"/> class.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <exception cref="ArgumentNullException"><paramref name="userInfo" /> is <c>null</c>.</exception>
        public OnlineUsersForm(Control parent) : base(parent, Vector2.Zero, new Vector2(225, 400))
        {
            _sockets = ClientSockets.Instance;

            this.VisibleChanged -= OnlineUsersForm_VisibleChanged;
            this.VisibleChanged += OnlineUsersForm_VisibleChanged;

            Online = new List<String>();

            var items = new List<String>();
            for (var i = 0; i < (Online.Count); i++)
            {
                items.Add(i.ToString());
            }

            _lbOnlineUsers = new ListBox<String>(this, new Vector2(20, 20), this.ClientSize - new Vector2(50, 50)) { Items = items, ShowPaging = true, CanSelect = true };
        }
コード例 #14
0
        /// <summary>
        /// Handles screen activation, which occurs every time the screen becomes the current
        /// active screen. Objects in here often will want to be destroyed on Deactivate().
        /// </summary>
        public override void Activate()
        {
            base.Activate();

            if (_sockets == null)
            {
                _sockets = ClientSockets.Instance;
            }

            // Set event hooks (remove first to ensure only one listener is set)
            _sockets.PacketHandler.ReceivedCreateAccountCharacter -= PacketHandler_ReceivedCreateAccountCharacter;
            _sockets.PacketHandler.ReceivedCreateAccountCharacter += PacketHandler_ReceivedCreateAccountCharacter;

            // Reset the control states
            SetError(null);
            _btnCreateCharacter.IsEnabled = true;
            _txtName.Text = string.Empty;
        }
コード例 #15
0
        /// <summary>
        /// Updates the <see cref="Control"/>. This is called for every <see cref="Control"/>, even if it is disabled or
        /// not visible.
        /// </summary>
        /// <param name="currentTime">The current time in milliseconds.</param>
        ///
        protected override void UpdateControl(TickCount currentTime)
        {
            base.UpdateControl(currentTime);

            if (currentTime >= _nextUpdateTime)
            {
                if (_sockets == null)
                {
                    _sockets = ClientSockets.Instance;
                }

                using (var pw = ClientPacket.GetFriends())
                {
                    _sockets.Send(pw, ClientMessageType.General);
                }

                _nextUpdateTime = (TickCount)(currentTime + _updateTimeOut);
            }
        }
コード例 #16
0
        /// <summary>
        /// Method used to send the private message to the right player
        /// </summary>
        private void SendPrivateMessage()
        {
            string[] TextMessage    = InputTextBox.Text.Split(new char[] { ' ' }, 2);
            string   TargetCharName = TextMessage[0];
            string   Message        = TextMessage[1];

            // Empty input textbox
            InputTextBox.Text = "";

            // Send the message
            if (_sockets == null)
            {
                _sockets = ClientSockets.Instance;
            }

            using (var pw = ClientPacket.SendPrivateMessage(TargetCharName, Message))
            {
                _sockets.Send(pw, ClientMessageType.General);
            }
        }
コード例 #17
0
        /// <summary>
        /// Initializes a new instance of the <see cref="OnlineUsersForm"/> class.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <exception cref="ArgumentNullException"><paramref name="userInfo" /> is <c>null</c>.</exception>
        public OnlineUsersForm(Control parent) : base(parent, Vector2.Zero, new Vector2(225, 400))
        {
            _sockets = ClientSockets.Instance;

            this.VisibleChanged -= OnlineUsersForm_VisibleChanged;
            this.VisibleChanged += OnlineUsersForm_VisibleChanged;

            Online = new List <String>();

            var items = new List <String>();

            for (var i = 0; i < (Online.Count); i++)
            {
                items.Add(i.ToString());
            }

            _lbOnlineUsers = new ListBox <String>(this, new Vector2(20, 20), this.ClientSize - new Vector2(50, 50))
            {
                Items = items, ShowPaging = true, CanSelect = true
            };
        }
コード例 #18
0
        /// <summary>
        /// Saves the friendlist
        /// </summary>

        private void SaveFriends()
        {
            string FriendNames = "";

            // Make a string with the friend names so they can be stored in the Database.
            foreach (Friends _friend in _myFriends)
            {
                FriendNames += _friend.Name + ",";
            }

            FriendNames.TrimEnd(',');

            // Save the friends
            if (_sockets == null)
            {
                _sockets = ClientSockets.Instance;
            }

            using (var pw = ClientPacket.SaveFriends(FriendNames))
            {
                _sockets.Send(pw, ClientMessageType.General);
            }
        }
コード例 #19
0
ファイル: LoginScreen.cs プロジェクト: mateuscezar/netgore
        /// <summary>
        /// Handles initialization of the GameScreen. This will be invoked after the GameScreen has been
        /// completely and successfully added to the ScreenManager. It is highly recommended that you
        /// use this instead of the constructor. This is invoked only once.
        /// </summary>
        public override void Initialize()
        {
            base.Initialize();

            var decodedPass = MachineCrypto.ValidatedDecode(ClientSettings.Default.UI_EnteredPassword) ?? string.Empty;

            var cScreen = new Panel(GUIManager, Vector2.Zero, ScreenManager.ScreenSize);

            // Create the login fields
            GameScreenHelper.CreateMenuLabel(cScreen, new Vector2(60, 260), "Name:");
            _cNameText = new TextBox(cScreen, new Vector2(220, 260), new Vector2(200, 40)) { IsMultiLine = false, Text = ClientSettings.Default.UI_EnteredUserName };
            _cNameText.KeyPressed += cNameText_KeyPressed;
            _cNameText.TextChanged += cNameText_TextChanged;

            GameScreenHelper.CreateMenuLabel(cScreen, new Vector2(60, 320), "Password:"******"Remember Password",
                Value = ClientSettings.Default.UI_RememberPassword,
                ForeColor = Color.White,
                Font = GameScreenHelper.DefaultChatFont
            };
            _cRememberPassword.ValueChanged += _cRememberPassword_ValueChanged;

            // Display the admin account info
            const string adminAccountInfo = "Use the following account for the default admin account:" + "\n    Username: Spodi" + "\n    Password: qwerty123";
            new Label(cScreen, _cRememberPassword.Position + new Vector2(-32, _cRememberPassword.Size.Y + 32)) 
            { 
                Text = adminAccountInfo, 
                ForeColor = Color.Green, 
                Font = GameScreenHelper.DefaultChatFont 
            };

            // Create the menu buttons
            var menuButtons = GameScreenHelper.CreateMenuButtons(ScreenManager, cScreen, "Login", "Back");
            _btnLogin = menuButtons["Login"];
            _btnLogin.Clicked += _btnLogin_Clicked;
            menuButtons["Back"].Clicked += LoginScreen_Clicked;

            cScreen.SetFocus();

            // Set up the networking stuff for this screen
            _sockets = ClientSockets.Instance;

            _sockets.StatusChanged -= _sockets_StatusChanged;
            _sockets.StatusChanged += _sockets_StatusChanged;

            _sockets.PacketHandler.ReceivedLoginSuccessful -= PacketHandler_ReceivedLoginSuccessful;
            _sockets.PacketHandler.ReceivedLoginSuccessful += PacketHandler_ReceivedLoginSuccessful;

            _sockets.PacketHandler.ReceivedLoginUnsuccessful -= PacketHandler_ReceivedLoginUnsuccessful;
            _sockets.PacketHandler.ReceivedLoginUnsuccessful += PacketHandler_ReceivedLoginUnsuccessful;


        }
コード例 #20
0
ファイル: LoginScreen.cs プロジェクト: thepirateclub/netgore
        /// <summary>
        /// Handles initialization of the GameScreen. This will be invoked after the GameScreen has been
        /// completely and successfully added to the ScreenManager. It is highly recommended that you
        /// use this instead of the constructor. This is invoked only once.
        /// </summary>
        public override void Initialize()
        {
            base.Initialize();

            var decodedPass = MachineCrypto.ValidatedDecode(ClientSettings.Default.UI_EnteredPassword) ?? string.Empty;

            var cScreen = new Panel(GUIManager, Vector2.Zero, ScreenManager.ScreenSize);

            // Create the login fields
            GameScreenHelper.CreateMenuLabel(cScreen, new Vector2(60, 260), "Name:");
            _cNameText = new TextBox(cScreen, new Vector2(220, 260), new Vector2(200, 40))
            {
                IsMultiLine = false, Text = ClientSettings.Default.UI_EnteredUserName
            };
            _cNameText.KeyPressed  += cNameText_KeyPressed;
            _cNameText.TextChanged += cNameText_TextChanged;

            GameScreenHelper.CreateMenuLabel(cScreen, new Vector2(60, 320), "Password:"******"Remember Password",
                Value     = ClientSettings.Default.UI_RememberPassword,
                ForeColor = Color.White,
                Font      = GameScreenHelper.DefaultChatFont
            };
            _cRememberPassword.ValueChanged += _cRememberPassword_ValueChanged;

            // NOTE: Display the admin account info
            const string adminAccountInfo =
                "Use the following account for the default admin account:" + "\n    Username: Spodi" + "\n    Password: qwerty123";

            new Label(cScreen, _cRememberPassword.Position + new Vector2(-32, _cRememberPassword.Size.Y + 32))
            {
                Text = adminAccountInfo, ForeColor = Color.Green, Font = GameScreenHelper.DefaultChatFont
            };

            // Create the menu buttons
            var menuButtons = GameScreenHelper.CreateMenuButtons(ScreenManager, cScreen, "Login", "Back");

            _btnLogin                    = menuButtons["Login"];
            _btnLogin.Clicked           += _btnLogin_Clicked;
            menuButtons["Back"].Clicked += LoginScreen_Clicked;

            cScreen.SetFocus();

            // Set up the networking stuff for this screen
            _sockets = ClientSockets.Instance;
            _sockets.StatusChanged -= _sockets_StatusChanged;
            _sockets.StatusChanged += _sockets_StatusChanged;
            _sockets.PacketHandler.ReceivedLoginSuccessful   += PacketHandler_ReceivedLoginSuccessful;
            _sockets.PacketHandler.ReceivedLoginUnsuccessful += PacketHandler_ReceivedLoginUnsuccessful;
        }
コード例 #21
0
ファイル: GameplayScreen.cs プロジェクト: Vizzini/netgore
        /// <summary>
        /// Handles initialization of the GameScreen. This will be invoked after the GameScreen has been
        /// completely and successfully added to the ScreenManager. It is highly recommended that you
        /// use this instead of the constructor. This is invoked only once.
        /// </summary>
        public override void Initialize()
        {
            _gameControls = new GameplayScreenControls(this);
            _dragDropHandler = new DragDropHandler(this);

            _socket = ClientSockets.Instance;

            _world = new World(this, new Camera2D(GameData.ScreenSize), new UserInfo(Socket));
            _world.MapChanged += World_MapChanged;

            // Create some misc goodies that require a reference to the Socket
            _equipmentInfoRequester = new EquipmentInfoRequester(UserInfo.Equipped, Socket);
            _inventoryInfoRequester = new InventoryInfoRequester(UserInfo.Inventory, Socket);

            // Other inits
            InitializeGUI();
            _characterTargeter = new CharacterTargeter(World);

            // NOTE: Test lighting
            _userLight = new Light { Size = new Vector2(512), IsEnabled = false };
            DrawingManager.LightManager.Add(_userLight);
        }
コード例 #22
0
ファイル: FriendsForm.cs プロジェクト: mateuscezar/netgore
        /// <summary>
        /// Saves the friendlist
        /// </summary>

        private void SaveFriends()
        {
            string FriendNames = "";

            // Make a string with the friend names so they can be stored in the Database.
            foreach (Friends _friend in _myFriends)
            {
                FriendNames += _friend.Name + ",";
            }

            FriendNames.TrimEnd(',');

            // Save the friends
            if (_sockets == null) _sockets = ClientSockets.Instance;

            using (var pw = ClientPacket.SaveFriends(FriendNames))
            {
                _sockets.Send(pw, ClientMessageType.General);
            }
        }
コード例 #23
0
ファイル: NewAccountScreen.cs プロジェクト: wtfcolt/game
        /// <summary>
        /// Handles initialization of the GameScreen. This will be invoked after the GameScreen has been
        /// completely and successfully added to the ScreenManager. It is highly recommended that you
        /// use this instead of the constructor. This is invoked only once.
        /// </summary>
        public override void Initialize()
        {
            base.Initialize();

            _sockets = ClientSockets.Instance;

            _sockets.PacketHandler.ReceivedCreateAccount -= PacketHandler_ReceivedCreateAccount;
            _sockets.PacketHandler.ReceivedCreateAccount += PacketHandler_ReceivedCreateAccount;

            var cScreen = new Panel(GUIManager, Vector2.Zero, ScreenManager.ScreenSize);

            // Create the new account fields. Use a different font since our default TextBox font doesn't support some characters
            // needed for email, and it'd look funny to only change it for the email textbox.
            var textBoxFont = GameScreenHelper.DefaultChatFont;

            GameScreenHelper.CreateMenuLabel(cScreen, new Vector2(60, 180), "Name:");
            _cNameText = new TextBox(cScreen, new Vector2(220, 180), new Vector2(200, 40)) { IsMultiLine = false, Text = string.Empty, Font = textBoxFont };

            GameScreenHelper.CreateMenuLabel(cScreen, new Vector2(60, 260), "Password:"******"Email:");
            _cEmailText = new TextBox(cScreen, new Vector2(220, 320), new Vector2(200, 40)) { IsMultiLine = false, Text = string.Empty, Font = textBoxFont };

            var textBoxPos = new Vector2(60, _cEmailText.Position.Y + _cEmailText.Size.Y + 20);
            var textBoxSize = new Vector2(cScreen.ClientSize.X - (textBoxPos.X * 2), cScreen.ClientSize.Y - textBoxPos.Y - 60);
            _cStatus = new TextBox(cScreen, textBoxPos, textBoxSize) { ForeColor = Color.Red, Border = null, CanFocus = false, IsMultiLine = true, IsEnabled = false };

            // Create the menu buttons
            var menuButtons = GameScreenHelper.CreateMenuButtons(ScreenManager, cScreen, "Create Account", "Back");
            menuButtons["Create Account"].Clicked += ClickButton_CreateAccount;
            menuButtons["Back"].Clicked += delegate { ScreenManager.SetScreen<MainMenuScreen>(); };

            _createAccountButton = menuButtons["Create Account"];

            _sockets.StatusChanged -= _sockets_StatusChanged;
            _sockets.StatusChanged += _sockets_StatusChanged;
        }
コード例 #24
0
ファイル: FriendsForm.cs プロジェクト: mateuscezar/netgore
        /// <summary>
        /// Method used to send the private message to the right player
        /// </summary>
        private void SendPrivateMessage()
        {
            string[] TextMessage = InputTextBox.Text.Split(new char[] { ' ' }, 2);
            string TargetCharName = TextMessage[0];
            string Message = TextMessage[1];

            // Empty input textbox
            InputTextBox.Text = "";

            // Send the message
            if (_sockets == null) _sockets = ClientSockets.Instance;

            using (var pw = ClientPacket.SendPrivateMessage(TargetCharName, Message))
            {
                _sockets.Send(pw, ClientMessageType.General);
            }
        }
コード例 #25
0
ファイル: FriendsForm.cs プロジェクト: mateuscezar/netgore
        /// <summary>
        /// Updates the <see cref="Control"/>. This is called for every <see cref="Control"/>, even if it is disabled or
        /// not visible.
        /// </summary>
        /// <param name="currentTime">The current time in milliseconds.</param>
        /// 
        protected override void UpdateControl(TickCount currentTime)
        {
            base.UpdateControl(currentTime);

            if (currentTime >= _nextUpdateTime)
            {
                if (_sockets == null) _sockets = ClientSockets.Instance;

                using (var pw = ClientPacket.GetFriends())
                {
                    _sockets.Send(pw, ClientMessageType.General);
                }

                _nextUpdateTime = (TickCount)(currentTime + _updateTimeOut);
            }
        }
コード例 #26
0
ファイル: ClientSockets.cs プロジェクト: mateuscezar/netgore
        /// <summary>
        /// Initializes the <see cref="ClientSockets"/> instance. This only needs to be called once.
        /// </summary>
        /// <param name="screenManager">The <see cref="IScreenManager"/> instance.</param>
        /// <exception cref="ArgumentNullException"><see cref="screenManager"/> is null.</exception>
        public static void Initialize(IScreenManager screenManager)
        {
            if (screenManager == null)
                throw new ArgumentNullException("screenManager");

            if (Instance != null)
                return;

            _instance = new ClientSockets(screenManager);
        }