move LastMousePosition et al from Widget to Viewport
This commit is contained in:
@@ -30,6 +30,9 @@ namespace OpenRA.Graphics
|
|||||||
|
|
||||||
float cursorFrame = 0f;
|
float cursorFrame = 0f;
|
||||||
|
|
||||||
|
public static int TicksSinceLastMove = 0;
|
||||||
|
public static int2 LastMousePos;
|
||||||
|
|
||||||
public void Scroll(float2 delta)
|
public void Scroll(float2 delta)
|
||||||
{
|
{
|
||||||
scrollPosition = scrollPosition + delta;
|
scrollPosition = scrollPosition + delta;
|
||||||
@@ -60,9 +63,9 @@ namespace OpenRA.Graphics
|
|||||||
Widget.DoDraw(world);
|
Widget.DoDraw(world);
|
||||||
Timer.Time( "widgets: {0}" );
|
Timer.Time( "widgets: {0}" );
|
||||||
|
|
||||||
var cursorName = Widget.RootWidget.GetCursorOuter(Widget.LastMousePos) ?? "default";
|
var cursorName = Widget.RootWidget.GetCursorOuter(Viewport.LastMousePos) ?? "default";
|
||||||
var c = new Cursor(cursorName);
|
var c = new Cursor(cursorName);
|
||||||
c.Draw((int)cursorFrame, Widget.LastMousePos + Location);
|
c.Draw((int)cursorFrame, Viewport.LastMousePos + Location);
|
||||||
Timer.Time( "cursors: {0}" );
|
Timer.Time( "cursors: {0}" );
|
||||||
|
|
||||||
renderer.RgbaSpriteRenderer.Flush();
|
renderer.RgbaSpriteRenderer.Flush();
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ namespace OpenRA
|
|||||||
|
|
||||||
public void DrawBuildingGrid( World world, string name, BuildingInfo bi )
|
public void DrawBuildingGrid( World world, string name, BuildingInfo bi )
|
||||||
{
|
{
|
||||||
var position = Game.viewport.ViewToWorld(Widget.LastMousePos).ToInt2();
|
var position = Game.viewport.ViewToWorld(Viewport.LastMousePos).ToInt2();
|
||||||
var topLeft = position - Footprint.AdjustForBuildingSize( bi );
|
var topLeft = position - Footprint.AdjustForBuildingSize( bi );
|
||||||
|
|
||||||
// Linebuild for walls.
|
// Linebuild for walls.
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ namespace OpenRA.Widgets
|
|||||||
|
|
||||||
var firstOfThis = queue.AllItems(queueName).FirstOrDefault(a => a.Item == item.Name);
|
var firstOfThis = queue.AllItems(queueName).FirstOrDefault(a => a.Item == item.Name);
|
||||||
|
|
||||||
if (rect.Contains(Widget.LastMousePos.ToPoint()))
|
if (rect.Contains(Viewport.LastMousePos.ToPoint()))
|
||||||
tooltipItem = item.Name;
|
tooltipItem = item.Name;
|
||||||
|
|
||||||
var overlayPos = drawPos + new float2((64 - ready.Image.size.X) / 2, 2);
|
var overlayPos = drawPos + new float2((64 - ready.Image.size.X) / 2, 2);
|
||||||
@@ -424,7 +424,7 @@ namespace OpenRA.Widgets
|
|||||||
var rect = new Rectangle((int)x,(int)y,(int)tabWidth,(int)tabHeight);
|
var rect = new Rectangle((int)x,(int)y,(int)tabWidth,(int)tabHeight);
|
||||||
tabs.Add(Pair.New(rect, HandleTabClick(groupName, world)));
|
tabs.Add(Pair.New(rect, HandleTabClick(groupName, world)));
|
||||||
|
|
||||||
if (rect.Contains(Widget.LastMousePos.ToPoint()))
|
if (rect.Contains(Viewport.LastMousePos.ToPoint()))
|
||||||
{
|
{
|
||||||
var text = CategoryNameRemaps.ContainsKey(groupName) ? CategoryNameRemaps[groupName] : groupName;
|
var text = CategoryNameRemaps.ContainsKey(groupName) ? CategoryNameRemaps[groupName] : groupName;
|
||||||
var sz = Game.Renderer.BoldFont.Measure(text);
|
var sz = Game.Renderer.BoldFont.Measure(text);
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace OpenRA.Widgets
|
|||||||
var image = ChromeProvider.GetImage(Image + "-button", GetImage());
|
var image = ChromeProvider.GetImage(Image + "-button", GetImage());
|
||||||
var rect = new Rectangle(RenderBounds.X, RenderBounds.Y, (int)image.size.X, (int)image.size.Y);
|
var rect = new Rectangle(RenderBounds.X, RenderBounds.Y, (int)image.size.X, (int)image.size.Y);
|
||||||
|
|
||||||
if (rect.Contains(Widget.LastMousePos.ToPoint()))
|
if (rect.Contains(Viewport.LastMousePos.ToPoint()))
|
||||||
{
|
{
|
||||||
rect = rect.InflateBy(3, 3, 3, 3);
|
rect = rect.InflateBy(3, 3, 3, 3);
|
||||||
var pos = new int2(rect.Left, rect.Top);
|
var pos = new int2(rect.Left, rect.Top);
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ namespace OpenRA.Widgets
|
|||||||
var drawPos = new float2(rectBounds.X + 5, y);
|
var drawPos = new float2(rectBounds.X + 5, y);
|
||||||
var rect = new Rectangle(rectBounds.X + 5, y, 64, 48);
|
var rect = new Rectangle(rectBounds.X + 5, y, 64, 48);
|
||||||
|
|
||||||
if (rect.Contains(Widget.LastMousePos.ToPoint()))
|
if (rect.Contains(Viewport.LastMousePos.ToPoint()))
|
||||||
{
|
{
|
||||||
var pos = drawPos.ToInt2();
|
var pos = drawPos.ToInt2();
|
||||||
var tl = new int2(pos.X-3,pos.Y-3);
|
var tl = new int2(pos.X-3,pos.Y-3);
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using OpenRA.Graphics;
|
||||||
|
|
||||||
namespace OpenRA.Widgets
|
namespace OpenRA.Widgets
|
||||||
{
|
{
|
||||||
@@ -38,7 +39,7 @@ namespace OpenRA.Widgets
|
|||||||
if (mi.Event == MouseInputEvent.Move &&
|
if (mi.Event == MouseInputEvent.Move &&
|
||||||
(mi.Button == MouseButton.Middle || mi.Button == (MouseButton.Left | MouseButton.Right)))
|
(mi.Button == MouseButton.Middle || mi.Button == (MouseButton.Left | MouseButton.Right)))
|
||||||
{
|
{
|
||||||
Game.viewport.Scroll(Widget.LastMousePos - mi.Location);
|
Game.viewport.Scroll(Viewport.LastMousePos - mi.Location);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@@ -94,13 +95,13 @@ namespace OpenRA.Widgets
|
|||||||
if (Game.Settings.ViewportEdgeScroll)
|
if (Game.Settings.ViewportEdgeScroll)
|
||||||
{
|
{
|
||||||
// Check for edge-scroll
|
// Check for edge-scroll
|
||||||
if (Widget.LastMousePos.X < EdgeScrollThreshold)
|
if (Viewport.LastMousePos.X < EdgeScrollThreshold)
|
||||||
Edge = Edge.Set(ScrollDirection.Left, true);
|
Edge = Edge.Set(ScrollDirection.Left, true);
|
||||||
if (Widget.LastMousePos.Y < EdgeScrollThreshold)
|
if (Viewport.LastMousePos.Y < EdgeScrollThreshold)
|
||||||
Edge = Edge.Set(ScrollDirection.Up, true);
|
Edge = Edge.Set(ScrollDirection.Up, true);
|
||||||
if (Widget.LastMousePos.X >= Game.viewport.Width - EdgeScrollThreshold)
|
if (Viewport.LastMousePos.X >= Game.viewport.Width - EdgeScrollThreshold)
|
||||||
Edge = Edge.Set(ScrollDirection.Right, true);
|
Edge = Edge.Set(ScrollDirection.Right, true);
|
||||||
if (Widget.LastMousePos.Y >= Game.viewport.Height - EdgeScrollThreshold)
|
if (Viewport.LastMousePos.Y >= Game.viewport.Height - EdgeScrollThreshold)
|
||||||
Edge = Edge.Set(ScrollDirection.Down, true);
|
Edge = Edge.Set(ScrollDirection.Down, true);
|
||||||
}
|
}
|
||||||
var scroll = new float2(0,0);
|
var scroll = new float2(0,0);
|
||||||
|
|||||||
@@ -203,8 +203,6 @@ namespace OpenRA.Widgets
|
|||||||
|
|
||||||
public virtual bool HandleInputInner(MouseInput mi) { return !ClickThrough; }
|
public virtual bool HandleInputInner(MouseInput mi) { return !ClickThrough; }
|
||||||
|
|
||||||
public static int TicksSinceLastMove = 0;
|
|
||||||
public static int2 LastMousePos;
|
|
||||||
public static bool HandleInput(World world, MouseInput mi)
|
public static bool HandleInput(World world, MouseInput mi)
|
||||||
{
|
{
|
||||||
bool handled = false;
|
bool handled = false;
|
||||||
@@ -216,8 +214,8 @@ namespace OpenRA.Widgets
|
|||||||
|
|
||||||
if (mi.Event == MouseInputEvent.Move)
|
if (mi.Event == MouseInputEvent.Move)
|
||||||
{
|
{
|
||||||
LastMousePos = mi.Location;
|
Viewport.LastMousePos = mi.Location;
|
||||||
TicksSinceLastMove = 0;
|
Viewport.TicksSinceLastMove = 0;
|
||||||
}
|
}
|
||||||
return handled;
|
return handled;
|
||||||
}
|
}
|
||||||
@@ -344,7 +342,7 @@ namespace OpenRA.Widgets
|
|||||||
|
|
||||||
if (!world.GameHasStarted) return;
|
if (!world.GameHasStarted) return;
|
||||||
if (world.LocalPlayer == null) return;
|
if (world.LocalPlayer == null) return;
|
||||||
++TicksSinceLastMove;
|
++Viewport.TicksSinceLastMove;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DoDraw(World world)
|
public static void DoDraw(World world)
|
||||||
|
|||||||
@@ -22,10 +22,10 @@ namespace OpenRA.Widgets
|
|||||||
public WorldTooltipWidget() : base() { }
|
public WorldTooltipWidget() : base() { }
|
||||||
public override void DrawInner(World world)
|
public override void DrawInner(World world)
|
||||||
{
|
{
|
||||||
if (Widget.TicksSinceLastMove < TooltipDelay || world == null || world.LocalPlayer == null)
|
if (Viewport.TicksSinceLastMove < TooltipDelay || world == null || world.LocalPlayer == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var cell = Game.viewport.ViewToWorld(Widget.LastMousePos).ToInt2();
|
var cell = Game.viewport.ViewToWorld(Viewport.LastMousePos).ToInt2();
|
||||||
if (!world.Map.IsInMap(cell)) return;
|
if (!world.Map.IsInMap(cell)) return;
|
||||||
|
|
||||||
if (!world.LocalPlayer.Shroud.IsExplored(cell))
|
if (!world.LocalPlayer.Shroud.IsExplored(cell))
|
||||||
@@ -34,16 +34,16 @@ namespace OpenRA.Widgets
|
|||||||
var usz = Game.Renderer.BoldFont.Measure(utext) + new int2(20, 24);
|
var usz = Game.Renderer.BoldFont.Measure(utext) + new int2(20, 24);
|
||||||
|
|
||||||
WidgetUtils.DrawPanel("dialog4", Rectangle.FromLTRB(
|
WidgetUtils.DrawPanel("dialog4", Rectangle.FromLTRB(
|
||||||
Widget.LastMousePos.X + 20, Widget.LastMousePos.Y + 20,
|
Viewport.LastMousePos.X + 20, Viewport.LastMousePos.Y + 20,
|
||||||
Widget.LastMousePos.X + usz.X + 20, Widget.LastMousePos.Y + usz.Y + 20));
|
Viewport.LastMousePos.X + usz.X + 20, Viewport.LastMousePos.Y + usz.Y + 20));
|
||||||
|
|
||||||
Game.Renderer.BoldFont.DrawText(utext,
|
Game.Renderer.BoldFont.DrawText(utext,
|
||||||
new float2(Widget.LastMousePos.X + 30, Widget.LastMousePos.Y + 30), Color.White);
|
new float2(Viewport.LastMousePos.X + 30, Viewport.LastMousePos.Y + 30), Color.White);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var actor = world.FindUnitsAtMouse(Widget.LastMousePos).FirstOrDefault();
|
var actor = world.FindUnitsAtMouse(Viewport.LastMousePos).FirstOrDefault();
|
||||||
if (actor == null || !actor.IsVisible())
|
if (actor == null || !actor.IsVisible())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -67,23 +67,23 @@ namespace OpenRA.Widgets
|
|||||||
sz.Y += 24;
|
sz.Y += 24;
|
||||||
|
|
||||||
WidgetUtils.DrawPanel("dialog4", Rectangle.FromLTRB(
|
WidgetUtils.DrawPanel("dialog4", Rectangle.FromLTRB(
|
||||||
Widget.LastMousePos.X + 20, Widget.LastMousePos.Y + 20,
|
Viewport.LastMousePos.X + 20, Viewport.LastMousePos.Y + 20,
|
||||||
Widget.LastMousePos.X + sz.X + 20, Widget.LastMousePos.Y + sz.Y + 20));
|
Viewport.LastMousePos.X + sz.X + 20, Viewport.LastMousePos.Y + sz.Y + 20));
|
||||||
|
|
||||||
Game.Renderer.BoldFont.DrawText(text,
|
Game.Renderer.BoldFont.DrawText(text,
|
||||||
new float2(Widget.LastMousePos.X + 30, Widget.LastMousePos.Y + 30), Color.White);
|
new float2(Viewport.LastMousePos.X + 30, Viewport.LastMousePos.Y + 30), Color.White);
|
||||||
|
|
||||||
if (text2 != "")
|
if (text2 != "")
|
||||||
{
|
{
|
||||||
Game.Renderer.RegularFont.DrawText(text2,
|
Game.Renderer.RegularFont.DrawText(text2,
|
||||||
new float2(Widget.LastMousePos.X + 65, Widget.LastMousePos.Y + 50), actor.Owner.Color);
|
new float2(Viewport.LastMousePos.X + 65, Viewport.LastMousePos.Y + 50), actor.Owner.Color);
|
||||||
|
|
||||||
Game.Renderer.RegularFont.DrawText(text3,
|
Game.Renderer.RegularFont.DrawText(text3,
|
||||||
new float2(Widget.LastMousePos.X + 65 + sz2.X, Widget.LastMousePos.Y + 50), Color.White);
|
new float2(Viewport.LastMousePos.X + 65 + sz2.X, Viewport.LastMousePos.Y + 50), Color.White);
|
||||||
|
|
||||||
WidgetUtils.DrawRGBA(
|
WidgetUtils.DrawRGBA(
|
||||||
ChromeProvider.GetImage("flags", actor.Owner.Country.Race),
|
ChromeProvider.GetImage("flags", actor.Owner.Country.Race),
|
||||||
new float2(Widget.LastMousePos.X + 30, Widget.LastMousePos.Y + 50));
|
new float2(Viewport.LastMousePos.X + 30, Viewport.LastMousePos.Y + 50));
|
||||||
}
|
}
|
||||||
Game.Renderer.RgbaSpriteRenderer.Flush();
|
Game.Renderer.RgbaSpriteRenderer.Flush();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user