From 81e102fe446543b7015cb6a7f2f180d993ecf624 Mon Sep 17 00:00:00 2001 From: Simon Holmberg Date: Mon, 29 Oct 2012 15:15:33 +0100 Subject: [PATCH] UI is no longer being stupid with bubbling --- DepthsBelow/DepthsBelow/Interface.cs | 57 +++++---------------------- DepthsBelow/DepthsBelow/MouseInput.cs | 6 +-- 2 files changed, 12 insertions(+), 51 deletions(-) diff --git a/DepthsBelow/DepthsBelow/Interface.cs b/DepthsBelow/DepthsBelow/Interface.cs index ac7c857..df1b472 100755 --- a/DepthsBelow/DepthsBelow/Interface.cs +++ b/DepthsBelow/DepthsBelow/Interface.cs @@ -45,52 +45,6 @@ namespace DepthsBelow selectionFrame.Visible = false; UIParent["selectionFrame"] = selectionFrame; - // OnClick - UIParent.OnClick += delegate(Frame frame, GUIManager.MouseEventArgs args) - { - KeyboardState ks = Keyboard.GetState(); - MouseState ms = args.MouseState; - - var mousePos = new Point(ms.X, ms.Y); - var mouseRectangle = new Rectangle(mousePos.X, mousePos.Y, 1, 1); - var mouseWorldPos = core.Camera.ScreenToWorld(new Vector2(mousePos.X, mousePos.Y)); - var mouseWorldRectangle = new Rectangle((int)mouseWorldPos.X, (int)mouseWorldPos.Y, 1, 1); - - if (args.LeftButton == ButtonState.Pressed) - { - Debug.WriteLine("Left button pressed on UIParent"); - // Deselect all units - /*if (!ks.IsKeyDown(Keys.LeftControl)) - { - foreach (var unit in core.Squad) - unit.Selected = false; - - foreach (var unitFrame in UnitFrames) - unitFrame.Color = Color.Black; - } - - // Select all units in the rectangle - foreach (var soldier in core.Squad) - { - if (mouseWorldRectangle.Intersects(soldier.GetComponent().Rectangle)) - { - soldier.Selected = true; - - foreach (var unitFrame in UnitFrames) - { - if (unitFrame["soldier"] == soldier) - unitFrame.Color = Color.Blue; - } - } - }*/ - } - - - - // Hide the selection rectangle - //selectionRectangle = Rectangle.Empty; - }; - // OnPress UIParent.OnPress += delegate(Frame frame, GUIManager.MouseEventArgs args) { @@ -493,12 +447,13 @@ namespace DepthsBelow PanicFrames.Add(CreatePanicFrame()); // TODO: Remove this test ;) - soldier.GetComponent().HP = random.Next(0, (int)soldier.GetComponent().MaxHP - 1); + //soldier.GetComponent().HP = random.Next(0, (int)soldier.GetComponent().MaxHP - 1); var uFrame = CreateUnitFrame(soldier); uFrame["soldier"] = soldier; soldier["unitFrame"] = uFrame; - uFrame.OnClick += delegate(Frame f, GUIManager.MouseEventArgs e) + uFrame.OnPress += delegate(Frame frame, GUIManager.MouseEventArgs args) { }; + uFrame.OnRelease += delegate(Frame f, GUIManager.MouseEventArgs e) { var s = (Soldier)f["soldier"]; KeyboardState ks = Keyboard.GetState(); @@ -557,6 +512,12 @@ namespace DepthsBelow var frame = (GUI.Frame) soldier["unitFrame"]; frame.X = lastFrame.X; frame.Y = lastFrame.Y + lastFrame.Height; + + // Update HP + //var healthBarBg = (GUI.Frame)frame["healthBarBg"]; + //var healthBar = (GUI.Frame)frame["healthBar"]; + //healthBar.Width = (int)((healthBarBg.Width - 2) * (soldier.GetComponent().HP / soldier.GetComponent().MaxHP)); + lastFrame = frame; } } diff --git a/DepthsBelow/DepthsBelow/MouseInput.cs b/DepthsBelow/DepthsBelow/MouseInput.cs index 9de74db..7dfb5e8 100755 --- a/DepthsBelow/DepthsBelow/MouseInput.cs +++ b/DepthsBelow/DepthsBelow/MouseInput.cs @@ -142,7 +142,7 @@ namespace DepthsBelow Time = gameTime.TotalGameTime, LeftButton = ButtonState.Pressed }; - GUIManager.RaiseAt("OnClick", mouseEvent, new Point(ms.X, ms.Y)); + //GUIManager.RaiseAt("OnClick", mouseEvent, new Point(ms.X, ms.Y)); GUIManager.RaiseAt("OnRelease", mouseEvent, new Point(ms.X, ms.Y)); } if (ms.MiddleButton == ButtonState.Released && lastMouseState.MiddleButton == ButtonState.Pressed) @@ -153,7 +153,7 @@ namespace DepthsBelow Time = gameTime.TotalGameTime, MiddleButton = ButtonState.Pressed }; - GUIManager.RaiseAt("OnClick", mouseEvent, new Point(ms.X, ms.Y)); + //GUIManager.RaiseAt("OnClick", mouseEvent, new Point(ms.X, ms.Y)); GUIManager.RaiseAt("OnRelease", mouseEvent, new Point(ms.X, ms.Y)); } if (ms.RightButton == ButtonState.Released && lastMouseState.RightButton == ButtonState.Pressed) @@ -164,7 +164,7 @@ namespace DepthsBelow Time = gameTime.TotalGameTime, RightButton = ButtonState.Pressed }; - GUIManager.RaiseAt("OnClick", mouseEvent, new Point(ms.X, ms.Y)); + //GUIManager.RaiseAt("OnClick", mouseEvent, new Point(ms.X, ms.Y)); GUIManager.RaiseAt("OnRelease", mouseEvent, new Point(ms.X, ms.Y)); }