Ejemplo n.º 1
0
    // Token: 0x06002C93 RID: 11411 RVA: 0x000A6EFC File Offset: 0x000A50FC
    public static bool Raycast(Ray ray, out global::ContextSprite sprite)
    {
        bool result = false;

        sprite = null;
        float num = float.PositiveInfinity;

        foreach (global::ContextSprite contextSprite in global::ContextSprite.g.visible)
        {
            if (contextSprite.contextRequestable)
            {
                Collider collider = contextSprite.contextRequestable.collider;
                if (!collider)
                {
                    collider = contextSprite.collider;
                }
                if (collider)
                {
                    if (!collider.enabled)
                    {
                        continue;
                    }
                    RaycastHit raycastHit;
                    if (contextSprite.collider.Raycast(ray, ref raycastHit, 5f))
                    {
                        float num2 = raycastHit.distance;
                        num2 *= num2;
                        if (num2 < num)
                        {
                            result = true;
                            num    = num2;
                            sprite = contextSprite;
                        }
                    }
                }
                float num3;
                if (contextSprite.renderer.bounds.IntersectRay(ray, ref num3))
                {
                    num3 *= num3;
                    if (num3 < num)
                    {
                        result = true;
                        num    = num3;
                        sprite = contextSprite;
                    }
                }
            }
        }
        return(result);
    }
Ejemplo n.º 2
0
 // Token: 0x06002C97 RID: 11415 RVA: 0x000A709C File Offset: 0x000A529C
 public static bool FindSprite(Component component, out global::ContextSprite sprite)
 {
     if (component is global::ContextSprite)
     {
         sprite = (global::ContextSprite)component;
         return(true);
     }
     if (component is global::IContextRequestable)
     {
         sprite = component.GetComponentInChildren <global::ContextSprite>();
         return(sprite && ((!sprite.contextRequestable) ? sprite._contextRequestable : sprite.contextRequestable) == component);
     }
     sprite = component.GetComponentInChildren <global::ContextSprite>();
     return(sprite);
 }
Ejemplo n.º 3
0
        // Token: 0x06002C9A RID: 11418 RVA: 0x000A7174 File Offset: 0x000A5374
        public static void Add(global::ContextSprite sprite)
        {
            global::ContextSprite.g.visible.Add(sprite);
            global::ContextSprite.g.count++;
            HashSet <global::ContextSprite> hashSet;

            if (!global::ContextSprite.g.requestableVisibleSprites.TryGetValue(sprite.contextRequestable, out hashSet))
            {
                hashSet = ((global::ContextSprite.g.hashRecycle.Count <= 0) ? new HashSet <global::ContextSprite>() : global::ContextSprite.g.hashRecycle.Dequeue());
                global::ContextSprite.g.requestableVisibleSprites[sprite.contextRequestable] = hashSet;
            }
            hashSet.Add(sprite);
            if (global::ContextSprite.CalculateFadeOut(ref sprite.fade, Time.time - sprite.timeRemoved))
            {
                sprite.UpdateMaterialProperties();
            }
        }
Ejemplo n.º 4
0
        // Token: 0x06002C9D RID: 11421 RVA: 0x000A7510 File Offset: 0x000A5710
        public static void Remove(global::ContextSprite sprite)
        {
            global::ContextSprite.g.visible.Remove(sprite);
            global::ContextSprite.g.count--;
            HashSet <global::ContextSprite> hashSet;

            if (global::ContextSprite.g.requestableVisibleSprites.TryGetValue(sprite.contextRequestable, out hashSet))
            {
                if (hashSet.Count == 1)
                {
                    hashSet.Clear();
                    if (global::ContextSprite.g.hashRecycle.Count < 5)
                    {
                        global::ContextSprite.g.hashRecycle.Enqueue(hashSet);
                    }
                    global::ContextSprite.g.requestableVisibleSprites.Remove(sprite.contextRequestable);
                }
                else
                {
                    hashSet.Remove(sprite);
                }
            }
            sprite.timeRemoved = Time.time;
        }