public bool OnSelectionMade(TileSelectionManager tsm) { JobType jobType = (JobType)JobTypeField.GetValue(tsm); if (jobType <= _maxJobType) { return(false); } Vector3 startPosition = (Vector3)JobStartPosition.GetValue(tsm); Vector3 endPosition = (Vector3)JobEndPosition.GetValue(tsm); Vector3 selectionStartPosition = (Vector3)SelectionStartPosition.GetValue(tsm); Rectangle jobArea = new Rectangle((int)startPosition.X, (int)startPosition.Y, (int)(endPosition.X - startPosition.X), (int)(endPosition.Y - startPosition.Y)); IModJob modJob = _customJobs[jobType]; if (modJob.CreateJobs(jobArea, (int)endPosition.Z, selectionStartPosition)) { ClearSelection.Invoke(tsm, new object[0]); } return(true); }