public void End(Point tile)
{
if (region == null)
{
return;
}
EditorExtensionNode node = form.SelectedSquareType();
if (node != null)
{
foreach (Point p in Line(start, tile))
{
Vector3 loc = new Vector3(p.X + form.Map.View.X,
p.Y + form.Map.View.Y, form.Map.View.Z);
AbstractSquare sq = (AbstractSquare)node.CreateInstance();
change.AddOperation(form.Map.GetSafeSquare(loc), sq, loc);
form.Map.SetSquare(loc, sq);
}
}
if (change.Count > 0)
{
form.UndoRedo.AddChange(change);
}
change = null;
region.Invalidate();
region.Dispose();
region = null;
form.Map.ViewFrom(form.Map.View, true);
}