Beispiel #1
0
        public UIManager()
        {
            GameCursor   = new GameCursor(this);
            _sbUI        = Service.Get <SpriteBatchUI>();
            InputManager = Service.Get <InputManager>();

            InputManager.MouseDragging += (sender, e) =>
            {
                if (_isDraggingControl)
                {
                    DoDragControl(Mouse.Position);
                }
            };

            InputManager.LeftMouseButtonDown += (sender, e) =>
            {
                if (!IsModalControlOpen && ObjectsBlockingInputExists)
                {
                    return;
                }

                if (MouseOverControl != null)
                {
                    MakeTopMostGump(MouseOverControl);
                    MouseOverControl.InvokeMouseDown(Mouse.Position, MouseButton.Left);

                    if (MouseOverControl.AcceptKeyboardInput)
                    {
                        _keyboardFocusControl = MouseOverControl;
                    }
                    _mouseDownControls[(int)MouseButton.Left] = MouseOverControl;
                }
                else
                {
                    if (IsModalControlOpen)
                    {
                        _gumps.ForEach(s =>
                        {
                            if (s.ControlInfo.IsModal && s.ControlInfo.ModalClickOutsideAreaClosesThisControl)
                            {
                                s.Dispose();
                            }
                        });
                    }
                }
            };

            InputManager.LeftMouseButtonUp += (sender, e) =>
            {
                if (!IsModalControlOpen && ObjectsBlockingInputExists)
                {
                    return;
                }

                if (MouseOverControl == null)
                {
                    return;
                }
                int btn = (int)MouseButton.Left;
                EndDragControl(Mouse.Position);

                if (MouseOverControl != null)
                {
                    if (_mouseDownControls[btn] != null && MouseOverControl == _mouseDownControls[btn])
                    {
                        MouseOverControl.InvokeMouseClick(Mouse.Position, MouseButton.Left);
                    }
                    MouseOverControl.InvokeMouseUp(Mouse.Position, MouseButton.Left);

                    if (_mouseDownControls[btn] != null && MouseOverControl != _mouseDownControls[btn])
                    {
                        _mouseDownControls[btn].InvokeMouseUp(Mouse.Position, MouseButton.Left);
                    }
                }
                else
                {
                    if (_mouseDownControls[btn] != null)
                    {
                        _mouseDownControls[btn].InvokeMouseUp(Mouse.Position, MouseButton.Left);
                    }
                }

                _mouseDownControls[btn] = null;
            };

            InputManager.LeftMouseDoubleClick += () =>
            {
                if (!IsModalControlOpen && ObjectsBlockingInputExists)
                {
                    return(false);
                }
                if (MouseOverControl != null && IsMouseOverUI)
                {
                    return(MouseOverControl.InvokeMouseDoubleClick(Mouse.Position, MouseButton.Left));
                }

                return(false);
            };

            InputManager.RightMouseButtonDown += (sender, e) =>
            {
                if (!IsModalControlOpen && ObjectsBlockingInputExists)
                {
                    return;
                }

                if (MouseOverControl != null)
                {
                    MakeTopMostGump(MouseOverControl);
                    MouseOverControl.InvokeMouseDown(Mouse.Position, MouseButton.Right);

                    if (MouseOverControl.AcceptKeyboardInput)
                    {
                        _keyboardFocusControl = MouseOverControl;
                    }
                    _mouseDownControls[(int)MouseButton.Right] = MouseOverControl;
                }
                else
                {
                    if (IsModalControlOpen)
                    {
                        _gumps.ForEach(s =>
                        {
                            if (s.ControlInfo.IsModal && s.ControlInfo.ModalClickOutsideAreaClosesThisControl)
                            {
                                s.Dispose();
                            }
                        });
                    }
                }
            };

            InputManager.RightMouseButtonUp += (sender, e) =>
            {
                if (!IsModalControlOpen && ObjectsBlockingInputExists)
                {
                    return;
                }

                if (MouseOverControl == null)
                {
                    return;
                }
                int btn = (int)MouseButton.Right;
                EndDragControl(Mouse.Position);

                if (MouseOverControl != null)
                {
                    if (_mouseDownControls[btn] != null && MouseOverControl == _mouseDownControls[btn])
                    {
                        MouseOverControl.InvokeMouseClick(Mouse.Position, MouseButton.Right);
                    }
                    MouseOverControl.InvokeMouseUp(Mouse.Position, MouseButton.Right);

                    if (_mouseDownControls[btn] != null && MouseOverControl != _mouseDownControls[btn])
                    {
                        _mouseDownControls[btn].InvokeMouseUp(Mouse.Position, MouseButton.Right);
                    }
                }
                else
                {
                    if (_mouseDownControls[btn] != null)
                    {
                        _mouseDownControls[btn].InvokeMouseUp(Mouse.Position, MouseButton.Right);
                    }
                }

                _mouseDownControls[btn] = null;
            };

            InputManager.MouseWheel += (sender, isup) =>
            {
                if (!IsModalControlOpen && ObjectsBlockingInputExists)
                {
                    return;
                }

                if (MouseOverControl != null && MouseOverControl.AcceptMouseInput)
                {
                    MouseOverControl.InvokeMouseWheel(isup ? MouseEvent.WheelScrollUp : MouseEvent.WheelScrollDown);
                }
            };
            InputManager.KeyDown   += (sender, e) => { _keyboardFocusControl?.InvokeKeyDown(e.keysym.sym, e.keysym.mod); };
            InputManager.KeyUp     += (sender, e) => { _keyboardFocusControl?.InvokeKeyUp(e.keysym.sym, e.keysym.mod); };
            InputManager.TextInput += (sender, e) => { _keyboardFocusControl?.InvokeTextInput(e); };
        }
Beispiel #2
0
 public void Draw(SpriteBatchUI sb, Vector2Int position)
 {
     _texture.Draw(sb, position, Utility.GetHueVector(0, false, (_alpha < 1.0f), true));
 }
 public override void Draw(SpriteBatchUI spriteBatch)
 {
     spriteBatch.Draw2D(m_texture, Position, 0, false, false);
     base.Draw(spriteBatch);
 }
Beispiel #4
0
 public virtual bool Draw(SpriteBatch3D sb3D, SpriteBatchUI sbUI)
 {
     return(true);
 }
Beispiel #5
0
 public override void Draw(SpriteBatchUI spriteBatch, Point position, double frameMS)
 {
     spriteBatch.Draw2DTiled(CheckeredTransTexture, new Rectangle(position.X, position.Y, Width, Height), Vector3.Zero);
     base.Draw(spriteBatch, position, frameMS);
 }
Beispiel #6
0
        public override void Draw(SpriteBatchUI spriteBatch, Point position, double frameMS)
        {
            base.Draw(spriteBatch, position, frameMS);

            spriteBatch.Draw2D(((WorldView)m_World.GetView()).MiniMap.Texture, new Vector3(position.X + 8, position.Y + 8, 0), Vector3.Zero);
        }
Beispiel #7
0
 public override void Draw(SpriteBatchUI spriteBatch)
 {
     m_textRenderer.Draw(spriteBatch, Position);
     base.Draw(spriteBatch);
 }
Beispiel #8
0
 public override void Draw(SpriteBatchUI spriteBatch)
 {
     m_texture = ASCIIText.GetTextTexture(Text, FontID);
     spriteBatch.Draw2D(m_texture, Position, Hue, true, false);
     base.Draw(spriteBatch);
 }
Beispiel #9
0
 public override void Draw(SpriteBatchUI spriteBatch, Vector2Int position, double frameMS)
 {
     _rendered.Draw(spriteBatch, position, Utility.GetHueVector(Hue, true, false, true));
     base.Draw(spriteBatch, position, frameMS);
 }
Beispiel #10
0
 public void Draw(SpriteBatchUI sb, Point position)
 {
     m_Texture.Draw(sb, position);
 }
Beispiel #11
0
        protected override void Initialize()
        {
            //uncomment it and fill it to save your first settings
            //Settings settings1 = new Settings()
            //{

            //};

            //ConfigurationResolver.Save(settings1, "settings.json");
            Settings settings = ConfigurationResolver.Load <Settings>(Path.Combine(Bootstrap.ExeDirectory, "settings.json"));

            Service.Register(settings);
            Log.Message(LogTypes.Trace, "Checking for Ultima Online installation...");

            try
            {
                FileManager.UoFolderPath = settings.UltimaOnlineDirectory;
            }
            catch (FileNotFoundException e)
            {
                Log.Message(LogTypes.Error, "Wrong Ultima Online installation folder.");

                throw e;
            }

            Log.Message(LogTypes.Trace, "Done!");
            Log.Message(LogTypes.Trace, $"Ultima Online installation folder: {FileManager.UoFolderPath}");
            Log.Message(LogTypes.Trace, "Loading files...");
            Stopwatch stopwatch = Stopwatch.StartNew();

            FileManager.LoadFiles();
            uint[]    hues     = Hues.CreateShaderColors();
            Texture2D texture0 = new Texture2D(GraphicsDevice, 32, Hues.HuesCount);

            texture0.SetData(hues, 0, 32 * Hues.HuesCount);
            Texture2D texture1 = new Texture2D(GraphicsDevice, 32, Hues.HuesCount);

            texture1.SetData(hues, 32 * Hues.HuesCount, 32 * Hues.HuesCount);
            GraphicsDevice.Textures[1] = texture0;
            GraphicsDevice.Textures[2] = texture1;
            Log.Message(LogTypes.Trace, $"Files loaded in: {stopwatch.ElapsedMilliseconds} ms!");
            stopwatch.Stop();

            //Register Service Stack
            Service.Register(this);
            Service.Register(_sb3D = new SpriteBatch3D(GraphicsDevice));
            Service.Register(_sbUI = new SpriteBatchUI(GraphicsDevice));
            Service.Register(new InputManager());
            Service.Register(_uiManager      = new UIManager());
            Service.Register(_sceneManager   = new SceneManager());
            Service.Register(_journalManager = new JournalData());

            //Register Command Stack
            PartySystem.RegisterCommands();
            _inputManager = Service.Get <InputManager>();
            Log.Message(LogTypes.Trace, "Network calibration...");
            PacketHandlers.Load();
            PacketsTable.AdjustPacketSizeByVersion(FileManager.ClientVersion);
            Log.Message(LogTypes.Trace, "Done!");
            MaxFPS = settings.MaxFPS;

            _infoText = new RenderedText
            {
                IsUnicode = true,
                Font      = 3,
                FontStyle = FontStyle.BlackBorder,
                Align     = TEXT_ALIGN_TYPE.TS_LEFT,
                MaxWidth  = 150
            };
            base.Initialize();
        }
Beispiel #12
0
        public override bool Draw(SpriteBatchUI spriteBatch, Vector3 position, Vector3?hue = null)
        {
            _gameText.Draw(spriteBatch, position);

            return(base.Draw(spriteBatch, position, hue));
        }
Beispiel #13
0
 public override void Draw(SpriteBatchUI spriteBatch, Point position)
 {
     base.Draw(spriteBatch, position);
 }
Beispiel #14
0
 public override void Draw(SpriteBatchUI spriteBatch)
 {
     base.Draw(spriteBatch);
 }
Beispiel #15
0
        public void Draw(SpriteBatchUI sb, Point position)
        {
            Vector3 v = new Vector3(position.X - m_Offset.X, position.Y - m_Offset.Y, 0);

            sb.Draw2D(m_Texture, v, m_SourceRect, Utility.GetHueVector(m_Hue));
        }
Beispiel #16
0
 public override bool Draw(SpriteBatchUI spriteBatch, Point position, Vector3?hue = null)
 {
     return(spriteBatch.Draw2D(TransparentTexture, new Rectangle(position.X, position.Y, Width, Height), ShaderHuesTraslator.GetHueVector(0, false, .5f, false)));
 }
Beispiel #17
0
 public override void Draw(SpriteBatchUI spriteBatch, Point position, double frameMS)
 {
     spriteBatch.Draw2D(m_texture, new Vector3(position.X, position.Y, 0), Utility.GetHueVector(0, false, false, true));
     base.Draw(spriteBatch, position, frameMS);
 }