Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }