Add a ClosestEdgeCell and a ClosestMatchingEdgeCell function to lua

This commit is contained in:
abcdefg30
2016-03-12 21:45:47 +01:00
parent d907296f4e
commit cec2821f13

View File

@@ -78,6 +78,19 @@ namespace OpenRA.Mods.Common.Scripting
return Context.World.Map.ChooseRandomEdgeCell(Context.World.SharedRandom);
}
[Desc("Returns the closest cell on the visible border of the map from the given cell.")]
public CPos ClosestEdgeCell(CPos givenCell)
{
return Context.World.Map.ChooseClosestEdgeCell(givenCell);
}
[Desc("Returns the first cell on the visible border of the map from the given cell,",
"matching the filter function called as function(CPos cell).")]
public CPos ClosestMatchingEdgeCell(CPos givenCell, LuaFunction filter)
{
return FilteredObjects(Context.World.Map.AllEdgeCells.OrderBy(c => (givenCell - c).Length), filter).FirstOrDefault();
}
[Desc("Returns the center of a cell in world coordinates.")]
public WPos CenterOfCell(CPos cell)
{