public virtual bool Begin() { if (!RaiseBeginningEvent(this)) { return(false); } UndoState = Player.DrawBegin(this); StartTime = DateTime.UtcNow; HasBegun = true; Map.QueueDrawOp(this); RaiseBeganEvent(this); return(true); }