public void UpdateTiles()
 {
     if (this.raycastMode != SGameGraphicRaycaster.RaycastMode.Sgame_tile)
     {
         return;
     }
     SGameGraphicRaycaster.Coord invalid = SGameGraphicRaycaster.Coord.Invalid;
     for (int i = 0; i < this.m_allItems.Count; i++)
     {
         SGameGraphicRaycaster.Item item = this.m_allItems[i];
         this.CalcItemCoord(ref invalid, item);
         if (!invalid.Equals(ref item.m_coord))
         {
             this.RemoveFromTileList(item);
             item.m_coord = invalid;
             this.AddToTileList(item);
         }
     }
 }
    private void CalcItemCoord(ref SGameGraphicRaycaster.Coord coord, SGameGraphicRaycaster.Item item)
    {
        item.m_rectTransform.GetWorldCorners(this.corners);
        int    num         = 2147483647;
        int    num2        = -2147483648;
        int    num3        = 2147483647;
        int    num4        = -2147483648;
        Camera worldCamera = this.canvas.worldCamera;

        for (int i = 0; i < this.corners.Length; i++)
        {
            Vector3 vector = CUIUtility.WorldToScreenPoint(worldCamera, this.corners[i]);
            num  = Mathf.Min((int)vector.x, num);
            num2 = Mathf.Max((int)vector.x, num2);
            num3 = Mathf.Min((int)vector.y, num3);
            num4 = Mathf.Max((int)vector.y, num4);
        }
        coord.x    = Mathf.Clamp(num / this.m_tileSizeX, 0, 3);
        coord.numX = Mathf.Clamp(num2 / this.m_tileSizeX, 0, 3) - coord.x + 1;
        coord.y    = Mathf.Clamp(num3 / this.m_tileSizeY, 0, 3);
        coord.numY = Mathf.Clamp(num4 / this.m_tileSizeY, 0, 3) - coord.y + 1;
    }
 public bool Equals(ref SGameGraphicRaycaster.Coord r)
 {
     return(r.x == this.x && r.y == this.y && r.numX == this.numX && r.numY == this.numY);
 }