Ejemplo n.º 1
0
        public void UnregisterObserver(IUserInputObserver observer, UserInputLayer layer)
        {
            int num  = layer - UserInputLayer.InternalLowest;
            int num2 = this.observers[num].IndexOf(observer);

            if (num2 >= 0)
            {
                this.observers[num].RemoveAt(num2);
                this.miter.OnRemove(num2);
                this.niter.OnRemove(num2);
            }
        }
Ejemplo n.º 2
0
        public void RegisterObserver(IUserInputObserver observer, UserInputLayer layer)
        {
            if (observer == null)
            {
                return;
            }
            int num = layer - UserInputLayer.InternalLowest;

            if (this.observers[num].IndexOf(observer) < 0)
            {
                this.observers[num].Add(observer);
            }
        }
Ejemplo n.º 3
0
 protected void SendOnScroll(float delta, Vector2 screenPosition, UserInputLayer lowestLayer)
 {
     for (UserInputLayer userInputLayer = UserInputLayer.Screen; userInputLayer >= lowestLayer; userInputLayer--)
     {
         int num = userInputLayer - UserInputLayer.InternalLowest;
         this.miter.Init(this.observers[num]);
         while (this.miter.Active())
         {
             IUserInputObserver userInputObserver = this.observers[num][this.miter.Index];
             if (userInputObserver.OnScroll(delta, screenPosition) == EatResponse.Eaten)
             {
                 this.miter.Reset();
                 return;
             }
             this.miter.Next();
         }
         this.miter.Reset();
     }
 }
Ejemplo n.º 4
0
 protected void SendOnRelease(int touchIndex, UserInputLayer lowestLayer)
 {
     for (UserInputLayer userInputLayer = UserInputLayer.Screen; userInputLayer >= lowestLayer; userInputLayer--)
     {
         int num = userInputLayer - UserInputLayer.InternalLowest;
         this.miter.Init(this.observers[num]);
         while (this.miter.Active())
         {
             IUserInputObserver userInputObserver = this.observers[num][this.miter.Index];
             if (userInputObserver.OnRelease(touchIndex) == EatResponse.Eaten)
             {
                 this.miter.Reset();
                 return;
             }
             this.miter.Next();
         }
         this.miter.Reset();
     }
 }
Ejemplo n.º 5
0
 protected void SendOnDrag(int touchIndex, GameObject target, Vector2 screenPosition, Vector3 groundPosition, UserInputLayer lowestLayer)
 {
     for (UserInputLayer userInputLayer = UserInputLayer.Screen; userInputLayer >= lowestLayer; userInputLayer--)
     {
         int num = userInputLayer - UserInputLayer.InternalLowest;
         this.miter.Init(this.observers[num]);
         while (this.miter.Active())
         {
             IUserInputObserver userInputObserver = this.observers[num][this.miter.Index];
             if (userInputObserver.OnDrag(touchIndex, target, screenPosition, groundPosition) == EatResponse.Eaten)
             {
                 this.miter.Reset();
                 return;
             }
             this.miter.Next();
         }
         this.miter.Reset();
     }
 }
Ejemplo n.º 6
0
        public void ReleaseSubordinates(IUserInputObserver observer, UserInputLayer layer, int id)
        {
            int num  = layer - UserInputLayer.InternalLowest;
            int num2 = this.observers[num].IndexOf(observer);

            if (num2 >= 0)
            {
                bool flag = false;
                this.niter.Init(this.observers[num]);
                this.niter.Index = num2 + 1;
                while (this.niter.Active())
                {
                    observer = this.observers[num][this.niter.Index];
                    if (observer.OnRelease(id) == EatResponse.Eaten)
                    {
                        flag = true;
                        break;
                    }
                    this.niter.Next();
                }
                this.niter.Reset();
                num--;
                while (num >= 0 && !flag)
                {
                    this.niter.Init(this.observers[num]);
                    while (this.niter.Active())
                    {
                        observer = this.observers[num][this.niter.Index];
                        if (observer.OnRelease(id) == EatResponse.Eaten)
                        {
                            flag = true;
                            break;
                        }
                        this.niter.Next();
                    }
                    this.niter.Reset();
                    num--;
                }
            }
        }