Esempio n. 1
0
        public EventData[] GenerateEvent()
        {
            EventCustomData customData;

            switch (Type)
            {
            case EventType.LightBackTopLasers:
            case EventType.LightTrackRingNeons:
            case EventType.LightLeftLasers:
            case EventType.LightRightLasers:
            case EventType.LightBottomBackSideLasers:
            case EventType.Lasers:
            case EventType.BackTopTrackRing:
                customData = new EventCustomData
                {
                    Color   = Color.Copy(),
                    PropID  = PropID.Copy(),
                    LightID = LightID.Copy()
                };
                break;

            case EventType.RotationAllTrackRings:
            case EventType.RotationSmallTrackRings:
                customData = new RingCustomData
                {
                    CounterSpin = CounterLock.Copy(),
                    Direction   = Direction.Copy(),
                    NameFilter  = Filter.Copy(),
                    PropMult    = PropMult.Copy(),
                    Reset       = Reset.Copy(),
                    SpeedMult   = SpeedMult.Copy(),
                    StepMult    = StepMult.Copy(),
                    Prop        = Prop.Copy(),
                    Speed       = Speed.Copy(),
                    Step        = Step.Copy()
                };
                break;

            case EventType.RotatingLeftLasers:
            case EventType.RotatingRightLasers:
            case EventType.RotatingLasers:
                customData = new LaserCustomData
                {
                    Direction    = Direction.Copy(),
                    LockPosition = CounterLock.Copy(),
                    PreciseSpeed = Speed.Copy()
                };
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            if (Type == EventType.Lasers || Type == EventType.RotatingLasers || Type == EventType.BackTopTrackRing)
            {
                return new[] {
                           new EventData
                           {
                               CustomData = customData,
                               Value      = (int)Value,
                               Type       = Type == EventType.Lasers ? 2 : Type == EventType.RotatingLasers ? 12 : 0,
                               Time       = (float)StartTime
                           },
                           new EventData
                           {
                               CustomData = customData,
                               Value      = (int)Value,
                               Type       = Type == EventType.Lasers ? 3 :  Type == EventType.RotatingLasers ? 13 : 1,
                               Time       = (float)StartTime
                           },
                }
            }
            ;
            else
            {
                return new[] {
                           new EventData
                           {
                               CustomData = customData,
                               Value      = (int)Value,
                               Type       = (int)Type,
                               Time       = (float)StartTime
                           }
                }
            };
        }
    }