UI is no longer being stupid with bubbling
This commit is contained in:
@@ -45,52 +45,6 @@ namespace DepthsBelow
|
|||||||
selectionFrame.Visible = false;
|
selectionFrame.Visible = false;
|
||||||
UIParent["selectionFrame"] = selectionFrame;
|
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<Component.Collision>().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
|
// OnPress
|
||||||
UIParent.OnPress += delegate(Frame frame, GUIManager.MouseEventArgs args)
|
UIParent.OnPress += delegate(Frame frame, GUIManager.MouseEventArgs args)
|
||||||
{
|
{
|
||||||
@@ -493,12 +447,13 @@ namespace DepthsBelow
|
|||||||
PanicFrames.Add(CreatePanicFrame());
|
PanicFrames.Add(CreatePanicFrame());
|
||||||
|
|
||||||
// TODO: Remove this test ;)
|
// TODO: Remove this test ;)
|
||||||
soldier.GetComponent<Component.Stat>().HP = random.Next(0, (int)soldier.GetComponent<Component.Stat>().MaxHP - 1);
|
//soldier.GetComponent<Component.Stat>().HP = random.Next(0, (int)soldier.GetComponent<Component.Stat>().MaxHP - 1);
|
||||||
|
|
||||||
var uFrame = CreateUnitFrame(soldier);
|
var uFrame = CreateUnitFrame(soldier);
|
||||||
uFrame["soldier"] = soldier;
|
uFrame["soldier"] = soldier;
|
||||||
soldier["unitFrame"] = uFrame;
|
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"];
|
var s = (Soldier)f["soldier"];
|
||||||
KeyboardState ks = Keyboard.GetState();
|
KeyboardState ks = Keyboard.GetState();
|
||||||
@@ -557,6 +512,12 @@ namespace DepthsBelow
|
|||||||
var frame = (GUI.Frame) soldier["unitFrame"];
|
var frame = (GUI.Frame) soldier["unitFrame"];
|
||||||
frame.X = lastFrame.X;
|
frame.X = lastFrame.X;
|
||||||
frame.Y = lastFrame.Y + lastFrame.Height;
|
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<Component.Stat>().HP / soldier.GetComponent<Component.Stat>().MaxHP));
|
||||||
|
|
||||||
lastFrame = frame;
|
lastFrame = frame;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ namespace DepthsBelow
|
|||||||
Time = gameTime.TotalGameTime,
|
Time = gameTime.TotalGameTime,
|
||||||
LeftButton = ButtonState.Pressed
|
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));
|
GUIManager.RaiseAt("OnRelease", mouseEvent, new Point(ms.X, ms.Y));
|
||||||
}
|
}
|
||||||
if (ms.MiddleButton == ButtonState.Released && lastMouseState.MiddleButton == ButtonState.Pressed)
|
if (ms.MiddleButton == ButtonState.Released && lastMouseState.MiddleButton == ButtonState.Pressed)
|
||||||
@@ -153,7 +153,7 @@ namespace DepthsBelow
|
|||||||
Time = gameTime.TotalGameTime,
|
Time = gameTime.TotalGameTime,
|
||||||
MiddleButton = ButtonState.Pressed
|
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));
|
GUIManager.RaiseAt("OnRelease", mouseEvent, new Point(ms.X, ms.Y));
|
||||||
}
|
}
|
||||||
if (ms.RightButton == ButtonState.Released && lastMouseState.RightButton == ButtonState.Pressed)
|
if (ms.RightButton == ButtonState.Released && lastMouseState.RightButton == ButtonState.Pressed)
|
||||||
@@ -164,7 +164,7 @@ namespace DepthsBelow
|
|||||||
Time = gameTime.TotalGameTime,
|
Time = gameTime.TotalGameTime,
|
||||||
RightButton = ButtonState.Pressed
|
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));
|
GUIManager.RaiseAt("OnRelease", mouseEvent, new Point(ms.X, ms.Y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user