public void Initialize(object sender, PreGameInitializeEventArgs eventArgs) { _maxJobType = Enum.GetValues(typeof(JobType)).OfType <JobType>().Max(); JobType customJobType = _maxJobType; foreach (var modJob in _modJobs.Where(modJob => modJob.Value != null)) { _customJobTypes.Add(modJob.Metadata.JobName, ++customJobType); IModJob modJobInstance = modJob.Value; _customJobs.Add(customJobType, modJobInstance); } }
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); }