Easier actor selection in game by actor bounds center
This commit is contained in:
@@ -219,7 +219,8 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
return null;
|
||||
|
||||
var cell = MinimapPixelToCell(pos);
|
||||
var location = worldRenderer.Viewport.WorldToViewPx(worldRenderer.ScreenPxPosition(world.Map.CenterOfCell(cell)));
|
||||
var worldPixel = worldRenderer.ScreenPxPosition(world.Map.CenterOfCell(cell));
|
||||
var location = worldRenderer.Viewport.WorldToViewPx(worldPixel);
|
||||
|
||||
var mi = new MouseInput
|
||||
{
|
||||
@@ -228,7 +229,7 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
Modifiers = Game.GetModifierKeys()
|
||||
};
|
||||
|
||||
var cursor = world.OrderGenerator.GetCursor(world, cell, mi);
|
||||
var cursor = world.OrderGenerator.GetCursor(world, cell, worldPixel, mi);
|
||||
if (cursor == null)
|
||||
return "default";
|
||||
|
||||
|
||||
@@ -128,9 +128,10 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
return;
|
||||
}
|
||||
|
||||
var underCursor = world.ScreenMap.ActorsAt(worldRenderer.Viewport.ViewToWorldPx(Viewport.LastMousePos))
|
||||
var worldPixel = worldRenderer.Viewport.ViewToWorldPx(Viewport.LastMousePos);
|
||||
var underCursor = world.ScreenMap.ActorsAt(worldPixel)
|
||||
.Where(a => !world.FogObscures(a) && a.Info.HasTraitInfo<ITooltipInfo>())
|
||||
.WithHighestSelectionPriority();
|
||||
.WithHighestSelectionPriority(worldPixel);
|
||||
|
||||
if (underCursor != null)
|
||||
{
|
||||
@@ -140,9 +141,9 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
return;
|
||||
}
|
||||
|
||||
var frozen = world.ScreenMap.FrozenActorsAt(world.RenderPlayer, worldRenderer.Viewport.ViewToWorldPx(Viewport.LastMousePos))
|
||||
var frozen = world.ScreenMap.FrozenActorsAt(world.RenderPlayer, worldPixel)
|
||||
.Where(a => a.TooltipInfo != null && a.IsValid)
|
||||
.WithHighestSelectionPriority();
|
||||
.WithHighestSelectionPriority(worldPixel);
|
||||
|
||||
if (frozen != null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user