Move MapPreviewWidget.HandleInputInner to the lobby delegate.

This commit is contained in:
Paul Chote
2011-01-05 22:16:01 +13:00
parent 7b5b84b1b7
commit 3e1db3e8ae
3 changed files with 23 additions and 35 deletions

View File

@@ -49,12 +49,24 @@ namespace OpenRA.Mods.RA.Widgets.Delegates
var mapPreview = lobby.GetWidget<MapPreviewWidget>("LOBBY_MAP_PREVIEW");
mapPreview.Map = () => Map;
mapPreview.OnSpawnClick = sp =>
mapPreview.OnMouseDown = mi =>
{
if (orderManager.LocalClient.State == Session.ClientState.Ready) return;
var owned = orderManager.LobbyInfo.Clients.Any(c => c.SpawnPoint == sp);
if (sp == 0 || !owned)
orderManager.IssueOrder(Order.Command("spawn {0}".F(sp)));
var map = mapPreview.Map();
if (map == null || mi.Button != MouseButton.Left
|| orderManager.LocalClient.State == Session.ClientState.Ready)
return false;
var p = map.Waypoints
.Select((sp, i) => Pair.New(mapPreview.ConvertToPreview(map, sp.Value), i))
.Where(a => (a.First - mi.Location).LengthSquared < 64)
.Select(a => a.Second + 1)
.FirstOrDefault();
var owned = orderManager.LobbyInfo.Clients.Any(c => c.SpawnPoint == p);
if (p == 0 || !owned)
orderManager.IssueOrder(Order.Command("spawn {0}".F(p)));
return true;
};
mapPreview.SpawnColors = () =>