예제 #1
0
        private IObservable <Unit> OnEventAsObservable()
        {
            switch (LifecycleEventType)
            {
            case LifecycleEventType.Start:
                // Only the `Start()` method is handled by its own instance
                return(StartProperty.Where(x => x).AsUnitObservable());

            case LifecycleEventType.Update:
                return(Component.UpdateAsObservable());

            case LifecycleEventType.FixedUpdate:
                return(Component.FixedUpdateAsObservable());

            case LifecycleEventType.LateUpdate:
                return(Component.LateUpdateAsObservable());

            case LifecycleEventType.Destroy:
                return(Component.OnDestroyAsObservable());

            case LifecycleEventType.Enable:
                return(OnEnableProperty.Where(x => x).AsUnitObservable());

            case LifecycleEventType.Disable:
                return(OnEnableProperty.Where(x => !x).AsUnitObservable());

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
예제 #2
0
        public DateTime GetStartDate(StartProperty prop)
        {
            if (prop == StartProperty.Once)
            {
                if (startOnceNowButton.Checked)
                {
                    return(DateTime.Now);
                }

                return(startOnceDateTimePicker.Value);
            }
            else if (prop == StartProperty.Periodically)
            {
                if (startPeriodicallyNowButton.Checked)
                {
                    return(DateTime.Now);
                }

                return(startPeriodicallyDateTimePicker.Value);
            }
            else
            {
                if (startConsecutivelyNowButton.Checked)
                {
                    return(DateTime.Now);
                }

                return(startConsecutivelyDateTimePicker.Value);
            }
        }
예제 #3
0
        public static TimeSpan GetTimeBetween(StartProperty prop)
        {
            float    every;
            Interval interval;

            if (prop == StartProperty.Periodically)
            {
                every    = (float)MainForm.Form.StartPeriodicallyEvery.Value;
                interval = IntervalUtils.GetInterval();
            }
            else
            {
                every    = (float)MainForm.Form.StartConsecutivelyDelay.Value;
                interval = IntervalUtils.GetInterval();
            }

            return(TimeSpanUtils.GenerateTimeSpan(every, interval));
        }
예제 #4
0
 set => this.SetValue(StartProperty, value);
예제 #5
0
 get => (PointVisualObject)GetValue(StartProperty); set => SetValue(StartProperty, value);
예제 #6
0
 set => SetValue(StartProperty, value);