Beispiel #1
0
    // Token: 0x06004437 RID: 17463 RVA: 0x000FDC10 File Offset: 0x000FBE10
    protected override void OnRebuildRenderData()
    {
        if (base.Atlas == null)
        {
            return;
        }
        global::dfAtlas.ItemInfo spriteInfo = base.SpriteInfo;
        if (spriteInfo == null)
        {
            return;
        }
        this.renderData.Material = base.Atlas.Material;
        if (spriteInfo.border.horizontal == 0 && spriteInfo.border.vertical == 0)
        {
            base.OnRebuildRenderData();
            return;
        }
        Color32 color = base.ApplyOpacity((!base.IsEnabled) ? this.disabledColor : this.color);

        global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions
        {
            atlas         = this.atlas,
            color         = color,
            fillAmount    = this.fillAmount,
            fillDirection = this.fillDirection,
            flip          = this.flip,
            invertFill    = this.invertFill,
            offset        = this.pivot.TransformToUpperLeft(base.Size),
            pixelsToUnits = base.PixelsToUnits(),
            size          = base.Size,
            spriteInfo    = base.SpriteInfo
        };
        global::dfSlicedSprite.renderSprite(this.renderData, options);
    }
Beispiel #2
0
 // Token: 0x06004682 RID: 18050 RVA: 0x00108E54 File Offset: 0x00107054
 private void renderSprite(global::dfMarkupToken token, Color32 color, Vector3 position, global::dfRenderData destination)
 {
     try
     {
         string value = token.GetAttribute(0).Value.Value;
         global::dfAtlas.ItemInfo itemInfo = this.SpriteAtlas[value];
         if (!(itemInfo == null))
         {
             global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions
             {
                 atlas         = this.SpriteAtlas,
                 color         = color,
                 fillAmount    = 1f,
                 offset        = position,
                 pixelsToUnits = base.PixelRatio,
                 size          = new Vector2((float)token.Width, (float)token.Height),
                 spriteInfo    = itemInfo
             };
             global::dfSprite.renderSprite(this.SpriteBuffer, options);
         }
     }
     finally
     {
     }
 }
Beispiel #3
0
 // Token: 0x0600443E RID: 17470 RVA: 0x000FEB78 File Offset: 0x000FCD78
 private static void rebuildColors(global::dfRenderData renderData, global::dfSprite.RenderOptions options)
 {
     for (int i = 0; i < 16; i++)
     {
         renderData.Colors.Add(options.color);
     }
 }
    // Token: 0x06004481 RID: 17537 RVA: 0x000FFB8C File Offset: 0x000FDD8C
    protected override void OnRebuildRenderData()
    {
        if (!(this.Atlas != null) || !(this.Atlas.Material != null) || !base.IsVisible)
        {
            return;
        }
        if (this.SpriteInfo == null)
        {
            return;
        }
        this.renderData.Material = this.Atlas.Material;
        Color32 color = base.ApplyOpacity((!base.IsEnabled) ? this.disabledColor : this.color);

        global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions
        {
            atlas         = this.Atlas,
            color         = color,
            fillAmount    = this.fillAmount,
            fillDirection = this.fillDirection,
            flip          = this.flip,
            invertFill    = this.invertFill,
            offset        = this.pivot.TransformToUpperLeft(base.Size),
            pixelsToUnits = base.PixelsToUnits(),
            size          = base.Size,
            spriteInfo    = this.SpriteInfo
        };
        global::dfSprite.renderSprite(this.renderData, options);
    }
Beispiel #5
0
    // Token: 0x060044B9 RID: 17593 RVA: 0x00100D10 File Offset: 0x000FEF10
    protected override void OnRebuildRenderData()
    {
        if (this.Atlas == null || string.IsNullOrEmpty(this.backgroundSprite))
        {
            return;
        }
        global::dfAtlas.ItemInfo itemInfo = this.Atlas[this.backgroundSprite];
        if (itemInfo == null)
        {
            return;
        }
        this.renderData.Material = this.Atlas.Material;
        Color32 color = base.ApplyOpacity((!base.IsEnabled) ? this.disabledColor : this.color);

        global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions
        {
            atlas         = this.atlas,
            color         = color,
            fillAmount    = 1f,
            offset        = this.pivot.TransformToUpperLeft(base.Size),
            pixelsToUnits = base.PixelsToUnits(),
            size          = base.Size,
            spriteInfo    = itemInfo
        };
        if (itemInfo.border.horizontal == 0 && itemInfo.border.vertical == 0)
        {
            global::dfSprite.renderSprite(this.renderData, options);
        }
        else
        {
            global::dfSlicedSprite.renderSprite(this.renderData, options);
        }
    }
    // Token: 0x06004486 RID: 17542 RVA: 0x000FFEE4 File Offset: 0x000FE0E4
    private static void rebuildUV(global::dfRenderData renderData, global::dfSprite.RenderOptions options)
    {
        Rect region = options.spriteInfo.region;
        global::dfList <Vector2> uv = renderData.UV;

        uv.Add(new Vector2(region.x, region.yMax));
        uv.Add(new Vector2(region.xMax, region.yMax));
        uv.Add(new Vector2(region.xMax, region.y));
        uv.Add(new Vector2(region.x, region.y));
        Vector2 value = Vector2.zero;

        if (options.flip.IsSet(global::dfSpriteFlip.FlipHorizontal))
        {
            value = uv[1];
            uv[1] = uv[0];
            uv[0] = value;
            value = uv[3];
            uv[3] = uv[2];
            uv[2] = value;
        }
        if (options.flip.IsSet(global::dfSpriteFlip.FlipVertical))
        {
            value = uv[0];
            uv[0] = uv[3];
            uv[3] = value;
            value = uv[1];
            uv[1] = uv[2];
            uv[2] = value;
        }
    }
    // Token: 0x06004373 RID: 17267 RVA: 0x000F9858 File Offset: 0x000F7A58
    private void renderBackground()
    {
        if (this.Atlas == null)
        {
            return;
        }
        global::dfAtlas.ItemInfo itemInfo = this.Atlas[this.backgroundSprite];
        if (itemInfo == null)
        {
            return;
        }
        Color32 color = base.ApplyOpacity((!base.IsEnabled) ? base.DisabledColor : base.Color);

        global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions
        {
            atlas         = this.atlas,
            color         = color,
            fillAmount    = 1f,
            offset        = this.pivot.TransformToUpperLeft(base.Size),
            pixelsToUnits = base.PixelsToUnits(),
            size          = base.Size,
            spriteInfo    = itemInfo
        };
        if (itemInfo.border.horizontal == 0 && itemInfo.border.vertical == 0)
        {
            global::dfSprite.renderSprite(this.renderData, options);
        }
        else
        {
            global::dfSlicedSprite.renderSprite(this.renderData, options);
        }
    }
    // Token: 0x06004211 RID: 16913 RVA: 0x000F3370 File Offset: 0x000F1570
    protected internal virtual void renderBackground()
    {
        if (this.Atlas == null)
        {
            return;
        }
        global::dfAtlas.ItemInfo itemInfo = this.getBackgroundSprite();
        if (itemInfo == null)
        {
            return;
        }
        Color32 color = base.ApplyOpacity(this.getActiveColor());

        global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions
        {
            atlas         = this.atlas,
            color         = color,
            fillAmount    = 1f,
            offset        = this.pivot.TransformToUpperLeft(base.Size),
            pixelsToUnits = base.PixelsToUnits(),
            size          = base.Size,
            spriteInfo    = itemInfo
        };
        if (itemInfo.border.horizontal == 0 && itemInfo.border.vertical == 0)
        {
            global::dfSprite.renderSprite(this.renderData, options);
        }
        else
        {
            global::dfSlicedSprite.renderSprite(this.renderData, options);
        }
    }
    // Token: 0x06004485 RID: 17541 RVA: 0x000FFE9C File Offset: 0x000FE09C
    private static void rebuildColors(global::dfRenderData renderData, global::dfSprite.RenderOptions options)
    {
        global::dfList <Color32> colors = renderData.Colors;

        colors.Add(options.color);
        colors.Add(options.color);
        colors.Add(options.color);
        colors.Add(options.color);
    }
Beispiel #10
0
    // Token: 0x06004439 RID: 17465 RVA: 0x000FDD98 File Offset: 0x000FBF98
    private static void rebuildTriangles(global::dfRenderData renderData, global::dfSprite.RenderOptions options)
    {
        int baseIndex = options.baseIndex;
        global::dfList <int> triangles = renderData.Triangles;

        for (int i = 0; i < global::dfSlicedSprite.triangleIndices.Length; i++)
        {
            triangles.Add(baseIndex + global::dfSlicedSprite.triangleIndices[i]);
        }
    }
    // Token: 0x06004372 RID: 17266 RVA: 0x000F9674 File Offset: 0x000F7874
    private void renderProgressFill()
    {
        if (this.Atlas == null)
        {
            return;
        }
        global::dfAtlas.ItemInfo itemInfo = this.Atlas[this.progressSprite];
        if (itemInfo == null)
        {
            return;
        }
        Vector3 vector;

        vector..ctor((float)this.padding.left, (float)(-(float)this.padding.top));
        Vector2 size;

        size..ctor(this.size.x - (float)this.padding.horizontal, this.size.y - (float)this.padding.vertical);
        float fillAmount = 1f;
        float num        = this.maxValue - this.minValue;
        float num2       = (this.rawValue - this.minValue) / num;
        global::dfProgressFillMode dfProgressFillMode = this.fillMode;

        if (dfProgressFillMode != global::dfProgressFillMode.Stretch || size.x * num2 < (float)itemInfo.border.horizontal)
        {
        }
        if (dfProgressFillMode == global::dfProgressFillMode.Fill)
        {
            fillAmount = num2;
        }
        else
        {
            size.x = Mathf.Max((float)itemInfo.border.horizontal, size.x * num2);
        }
        Color32 color = base.ApplyOpacity((!base.IsEnabled) ? base.DisabledColor : this.ProgressColor);

        global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions
        {
            atlas         = this.atlas,
            color         = color,
            fillAmount    = fillAmount,
            offset        = this.pivot.TransformToUpperLeft(base.Size) + vector,
            pixelsToUnits = base.PixelsToUnits(),
            size          = size,
            spriteInfo    = itemInfo
        };
        if (itemInfo.border.horizontal == 0 && itemInfo.border.vertical == 0)
        {
            global::dfSprite.renderSprite(this.renderData, options);
        }
        else
        {
            global::dfSlicedSprite.renderSprite(this.renderData, options);
        }
    }
    // Token: 0x06004483 RID: 17539 RVA: 0x000FFD20 File Offset: 0x000FDF20
    private static void rebuildTriangles(global::dfRenderData renderData, global::dfSprite.RenderOptions options)
    {
        int baseIndex = options.baseIndex;
        global::dfList <int> triangles = renderData.Triangles;

        triangles.EnsureCapacity(triangles.Count + global::dfSprite.TRIANGLE_INDICES.Length);
        for (int i = 0; i < global::dfSprite.TRIANGLE_INDICES.Length; i++)
        {
            triangles.Add(baseIndex + global::dfSprite.TRIANGLE_INDICES[i]);
        }
    }
 // Token: 0x06004482 RID: 17538 RVA: 0x000FFCBC File Offset: 0x000FDEBC
 internal static void renderSprite(global::dfRenderData data, global::dfSprite.RenderOptions options)
 {
     options.baseIndex = data.Vertices.Count;
     global::dfSprite.rebuildTriangles(data, options);
     global::dfSprite.rebuildVertices(data, options);
     global::dfSprite.rebuildUV(data, options);
     global::dfSprite.rebuildColors(data, options);
     if (options.fillAmount > -1f && options.fillAmount < 1f)
     {
         global::dfSprite.doFill(data, options);
     }
 }
Beispiel #14
0
    // Token: 0x0600443C RID: 17468 RVA: 0x000FE17C File Offset: 0x000FC37C
    private static void rebuildVertices(global::dfRenderData renderData, global::dfSprite.RenderOptions options)
    {
        float num  = 0f;
        float num2 = 0f;
        float num3 = Mathf.Ceil(options.size.x);
        float num4 = Mathf.Ceil(-options.size.y);

        global::dfAtlas.ItemInfo spriteInfo = options.spriteInfo;
        float num5 = (float)spriteInfo.border.left;
        float num6 = (float)spriteInfo.border.top;
        float num7 = (float)spriteInfo.border.right;
        float num8 = (float)spriteInfo.border.bottom;

        if (options.flip.IsSet(global::dfSpriteFlip.FlipHorizontal))
        {
            float num9 = num7;
            num7 = num5;
            num5 = num9;
        }
        if (options.flip.IsSet(global::dfSpriteFlip.FlipVertical))
        {
            float num10 = num8;
            num8 = num6;
            num6 = num10;
        }
        global::dfSlicedSprite.verts[0]  = new Vector3(num, num2, 0f) + options.offset;
        global::dfSlicedSprite.verts[1]  = global::dfSlicedSprite.verts[0] + new Vector3(num5, 0f, 0f);
        global::dfSlicedSprite.verts[2]  = global::dfSlicedSprite.verts[0] + new Vector3(num5, -num6, 0f);
        global::dfSlicedSprite.verts[3]  = global::dfSlicedSprite.verts[0] + new Vector3(0f, -num6, 0f);
        global::dfSlicedSprite.verts[4]  = new Vector3(num3 - num7, num2, 0f) + options.offset;
        global::dfSlicedSprite.verts[5]  = global::dfSlicedSprite.verts[4] + new Vector3(num7, 0f, 0f);
        global::dfSlicedSprite.verts[6]  = global::dfSlicedSprite.verts[4] + new Vector3(num7, -num6, 0f);
        global::dfSlicedSprite.verts[7]  = global::dfSlicedSprite.verts[4] + new Vector3(0f, -num6, 0f);
        global::dfSlicedSprite.verts[8]  = new Vector3(num, num4 + num8, 0f) + options.offset;
        global::dfSlicedSprite.verts[9]  = global::dfSlicedSprite.verts[8] + new Vector3(num5, 0f, 0f);
        global::dfSlicedSprite.verts[10] = global::dfSlicedSprite.verts[8] + new Vector3(num5, -num8, 0f);
        global::dfSlicedSprite.verts[11] = global::dfSlicedSprite.verts[8] + new Vector3(0f, -num8, 0f);
        global::dfSlicedSprite.verts[12] = new Vector3(num3 - num7, num4 + num8, 0f) + options.offset;
        global::dfSlicedSprite.verts[13] = global::dfSlicedSprite.verts[12] + new Vector3(num7, 0f, 0f);
        global::dfSlicedSprite.verts[14] = global::dfSlicedSprite.verts[12] + new Vector3(num7, -num8, 0f);
        global::dfSlicedSprite.verts[15] = global::dfSlicedSprite.verts[12] + new Vector3(0f, -num8, 0f);
        for (int i = 0; i < global::dfSlicedSprite.verts.Length; i++)
        {
            renderData.Vertices.Add((global::dfSlicedSprite.verts[i] * options.pixelsToUnits).Quantize(options.pixelsToUnits));
        }
    }
    // Token: 0x06004487 RID: 17543 RVA: 0x0010000C File Offset: 0x000FE20C
    private static void doFill(global::dfRenderData renderData, global::dfSprite.RenderOptions options)
    {
        int baseIndex = options.baseIndex;
        global::dfList <Vector3> vertices = renderData.Vertices;
        global::dfList <Vector2> uv       = renderData.UV;
        int index  = baseIndex;
        int index2 = baseIndex + 1;
        int index3 = baseIndex + 3;
        int index4 = baseIndex + 2;

        if (options.invertFill)
        {
            if (options.fillDirection == global::dfFillDirection.Horizontal)
            {
                index  = baseIndex + 1;
                index2 = baseIndex;
                index3 = baseIndex + 2;
                index4 = baseIndex + 3;
            }
            else
            {
                index  = baseIndex + 3;
                index2 = baseIndex + 2;
                index3 = baseIndex;
                index4 = baseIndex + 1;
            }
        }
        if (options.fillDirection == global::dfFillDirection.Horizontal)
        {
            vertices[index2] = Vector3.Lerp(vertices[index2], vertices[index], 1f - options.fillAmount);
            vertices[index4] = Vector3.Lerp(vertices[index4], vertices[index3], 1f - options.fillAmount);
            uv[index2]       = Vector2.Lerp(uv[index2], uv[index], 1f - options.fillAmount);
            uv[index4]       = Vector2.Lerp(uv[index4], uv[index3], 1f - options.fillAmount);
        }
        else
        {
            vertices[index3] = Vector3.Lerp(vertices[index3], vertices[index], 1f - options.fillAmount);
            vertices[index4] = Vector3.Lerp(vertices[index4], vertices[index2], 1f - options.fillAmount);
            uv[index3]       = Vector2.Lerp(uv[index3], uv[index], 1f - options.fillAmount);
            uv[index4]       = Vector2.Lerp(uv[index4], uv[index2], 1f - options.fillAmount);
        }
    }
Beispiel #16
0
 // Token: 0x060046BB RID: 18107 RVA: 0x0010AE44 File Offset: 0x00109044
 protected override global::dfRenderData OnRebuildRenderData()
 {
     this.renderData.Clear();
     if (this.Atlas != null && this.Atlas[this.Source] != null)
     {
         global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions
         {
             atlas         = this.Atlas,
             spriteInfo    = this.Atlas[this.Source],
             pixelsToUnits = 1f,
             size          = this.Size,
             color         = this.Style.Color,
             fillAmount    = 1f
         };
         global::dfSlicedSprite.renderSprite(this.renderData, options);
         this.renderData.Material  = this.Atlas.Material;
         this.renderData.Transform = Matrix4x4.identity;
     }
     return(this.renderData);
 }
    // Token: 0x06004484 RID: 17540 RVA: 0x000FFD78 File Offset: 0x000FDF78
    private static void rebuildVertices(global::dfRenderData renderData, global::dfSprite.RenderOptions options)
    {
        global::dfList <Vector3> vertices = renderData.Vertices;
        int   baseIndex = options.baseIndex;
        float num       = 0f;
        float num2      = 0f;
        float num3      = Mathf.Ceil(options.size.x);
        float num4      = Mathf.Ceil(-options.size.y);

        vertices.Add(new Vector3(num, num2, 0f) * options.pixelsToUnits);
        vertices.Add(new Vector3(num3, num2, 0f) * options.pixelsToUnits);
        vertices.Add(new Vector3(num3, num4, 0f) * options.pixelsToUnits);
        vertices.Add(new Vector3(num, num4, 0f) * options.pixelsToUnits);
        Vector3 vector = options.offset.RoundToInt() * options.pixelsToUnits;

        for (int i = 0; i < 4; i++)
        {
            vertices[baseIndex + i] = (vertices[baseIndex + i] + vector).Quantize(options.pixelsToUnits);
        }
    }
Beispiel #18
0
    // Token: 0x060042EB RID: 17131 RVA: 0x000F67F0 File Offset: 0x000F49F0
    private void renderSelection()
    {
        if (base.Atlas == null || this.selectedIndex < 0)
        {
            return;
        }
        global::dfAtlas.ItemInfo itemInfo = base.Atlas[this.ItemHighlight];
        if (itemInfo == null)
        {
            return;
        }
        float   pixelsToUnits = base.PixelsToUnits();
        Vector3 vector        = this.pivot.TransformToUpperLeft(base.Size);
        Vector3 offset;

        offset..ctor(vector.x + (float)this.listPadding.left, vector.y - (float)this.listPadding.top + this.scrollPosition, 0f);
        offset.y -= (float)(this.selectedIndex * this.itemHeight);
        Color32 color = base.ApplyOpacity(this.color);

        global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions
        {
            atlas         = this.atlas,
            color         = color,
            fillAmount    = 1f,
            pixelsToUnits = pixelsToUnits,
            size          = new Vector3(this.size.x - (float)this.listPadding.horizontal, (float)this.itemHeight),
            spriteInfo    = itemInfo,
            offset        = offset
        };
        if (itemInfo.border.horizontal > 0 || itemInfo.border.vertical > 0)
        {
            global::dfSlicedSprite.renderSprite(this.renderData, options);
        }
        else
        {
            global::dfSprite.renderSprite(this.renderData, options);
        }
    }
Beispiel #19
0
    // Token: 0x060042EA RID: 17130 RVA: 0x000F656C File Offset: 0x000F476C
    private void renderHover()
    {
        if (!Application.isPlaying)
        {
            return;
        }
        bool flag = base.Atlas == null || !base.IsEnabled || this.hoverIndex <0 || this.hoverIndex> this.items.Length - 1 || string.IsNullOrEmpty(this.ItemHover);

        if (flag)
        {
            return;
        }
        global::dfAtlas.ItemInfo itemInfo = base.Atlas[this.ItemHover];
        if (itemInfo == null)
        {
            return;
        }
        Vector3 vector = this.pivot.TransformToUpperLeft(base.Size);
        Vector3 offset;

        offset..ctor(vector.x + (float)this.listPadding.left, vector.y - (float)this.listPadding.top + this.scrollPosition, 0f);
        float num  = base.PixelsToUnits();
        int   num2 = this.hoverIndex * this.itemHeight;

        if (this.animateHover)
        {
            float num3 = Mathf.Abs(this.hoverTweenLocation - (float)num2);
            float num4 = (this.size.y - (float)this.listPadding.vertical) * 0.5f;
            if (num3 > num4)
            {
                this.hoverTweenLocation = (float)num2 + Mathf.Sign(this.hoverTweenLocation - (float)num2) * num4;
            }
            float num5 = Time.deltaTime / num * 2f;
            this.hoverTweenLocation = Mathf.MoveTowards(this.hoverTweenLocation, (float)num2, num5);
        }
        else
        {
            this.hoverTweenLocation = (float)num2;
        }
        offset.y -= this.hoverTweenLocation.Quantize(num);
        Color32 color = base.ApplyOpacity(this.color);

        global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions
        {
            atlas         = this.atlas,
            color         = color,
            fillAmount    = 1f,
            pixelsToUnits = base.PixelsToUnits(),
            size          = new Vector3(this.size.x - (float)this.listPadding.horizontal, (float)this.itemHeight),
            spriteInfo    = itemInfo,
            offset        = offset
        };
        if (itemInfo.border.horizontal > 0 || itemInfo.border.vertical > 0)
        {
            global::dfSlicedSprite.renderSprite(this.renderData, options);
        }
        else
        {
            global::dfSprite.renderSprite(this.renderData, options);
        }
        if ((float)num2 != this.hoverTweenLocation)
        {
            this.Invalidate();
        }
    }
Beispiel #20
0
    // Token: 0x0600443A RID: 17466 RVA: 0x000FDDDC File Offset: 0x000FBFDC
    private static void doFill(global::dfRenderData renderData, global::dfSprite.RenderOptions options)
    {
        int baseIndex = options.baseIndex;
        global::dfList <Vector3> vertices = renderData.Vertices;
        global::dfList <Vector2> dfList   = renderData.UV;

        int[][] array = global::dfSlicedSprite.getFillIndices(options.fillDirection, baseIndex);
        bool    flag  = options.invertFill;

        if (options.fillDirection == global::dfFillDirection.Vertical)
        {
            flag = !flag;
        }
        if (flag)
        {
            for (int i = 0; i < array.Length; i++)
            {
                Array.Reverse(array[i]);
            }
        }
        int   num  = (options.fillDirection != global::dfFillDirection.Horizontal) ? 1 : 0;
        float num2 = vertices[array[0][flag ? 3 : 0]][num];
        float num3 = vertices[array[0][flag ? 0 : 3]][num];
        float num4 = Mathf.Abs(num3 - num2);
        float num5 = flag ? (num3 - options.fillAmount * num4) : (num2 + options.fillAmount * num4);

        for (int j = 0; j < array.Length; j++)
        {
            if (!flag)
            {
                for (int k = 3; k > 0; k--)
                {
                    float num6 = vertices[array[j][k]][num];
                    if (num6 >= num5)
                    {
                        Vector3 value = vertices[array[j][k]];
                        value[num]            = num5;
                        vertices[array[j][k]] = value;
                        float num7 = vertices[array[j][k - 1]][num];
                        if (num7 <= num5)
                        {
                            float   num8   = num6 - num7;
                            float   num9   = (num5 - num7) / num8;
                            float   num10  = dfList[array[j][k]][num];
                            float   num11  = dfList[array[j][k - 1]][num];
                            Vector2 value2 = dfList[array[j][k]];
                            value2[num]         = Mathf.Lerp(num11, num10, num9);
                            dfList[array[j][k]] = value2;
                        }
                    }
                }
            }
            else
            {
                for (int l = 1; l < 4; l++)
                {
                    float num12 = vertices[array[j][l]][num];
                    if (num12 <= num5)
                    {
                        Vector3 value3 = vertices[array[j][l]];
                        value3[num]           = num5;
                        vertices[array[j][l]] = value3;
                        float num13 = vertices[array[j][l - 1]][num];
                        if (num13 >= num5)
                        {
                            float   num14  = num12 - num13;
                            float   num15  = (num5 - num13) / num14;
                            float   num16  = dfList[array[j][l]][num];
                            float   num17  = dfList[array[j][l - 1]][num];
                            Vector2 value4 = dfList[array[j][l]];
                            value4[num]         = Mathf.Lerp(num17, num16, num15);
                            dfList[array[j][l]] = value4;
                        }
                    }
                }
            }
        }
    }
Beispiel #21
0
    // Token: 0x0600443D RID: 17469 RVA: 0x000FE5C8 File Offset: 0x000FC7C8
    private static void rebuildUV(global::dfRenderData renderData, global::dfSprite.RenderOptions options)
    {
        global::dfAtlas atlas = options.atlas;
        Vector2         vector;

        vector..ctor((float)atlas.Texture.width, (float)atlas.Texture.height);
        global::dfAtlas.ItemInfo spriteInfo = options.spriteInfo;
        float num    = (float)spriteInfo.border.top / vector.y;
        float num2   = (float)spriteInfo.border.bottom / vector.y;
        float num3   = (float)spriteInfo.border.left / vector.x;
        float num4   = (float)spriteInfo.border.right / vector.x;
        Rect  region = spriteInfo.region;

        global::dfSlicedSprite.uv[0]  = new Vector2(region.x, region.yMax);
        global::dfSlicedSprite.uv[1]  = new Vector2(region.x + num3, region.yMax);
        global::dfSlicedSprite.uv[2]  = new Vector2(region.x + num3, region.yMax - num);
        global::dfSlicedSprite.uv[3]  = new Vector2(region.x, region.yMax - num);
        global::dfSlicedSprite.uv[4]  = new Vector2(region.xMax - num4, region.yMax);
        global::dfSlicedSprite.uv[5]  = new Vector2(region.xMax, region.yMax);
        global::dfSlicedSprite.uv[6]  = new Vector2(region.xMax, region.yMax - num);
        global::dfSlicedSprite.uv[7]  = new Vector2(region.xMax - num4, region.yMax - num);
        global::dfSlicedSprite.uv[8]  = new Vector2(region.x, region.y + num2);
        global::dfSlicedSprite.uv[9]  = new Vector2(region.x + num3, region.y + num2);
        global::dfSlicedSprite.uv[10] = new Vector2(region.x + num3, region.y);
        global::dfSlicedSprite.uv[11] = new Vector2(region.x, region.y);
        global::dfSlicedSprite.uv[12] = new Vector2(region.xMax - num4, region.y + num2);
        global::dfSlicedSprite.uv[13] = new Vector2(region.xMax, region.y + num2);
        global::dfSlicedSprite.uv[14] = new Vector2(region.xMax, region.y);
        global::dfSlicedSprite.uv[15] = new Vector2(region.xMax - num4, region.y);
        if (options.flip != global::dfSpriteFlip.None)
        {
            for (int i = 0; i < global::dfSlicedSprite.uv.Length; i += 4)
            {
                Vector2 vector2 = Vector2.zero;
                if (options.flip.IsSet(global::dfSpriteFlip.FlipHorizontal))
                {
                    vector2 = global::dfSlicedSprite.uv[i];
                    global::dfSlicedSprite.uv[i]     = global::dfSlicedSprite.uv[i + 1];
                    global::dfSlicedSprite.uv[i + 1] = vector2;
                    vector2 = global::dfSlicedSprite.uv[i + 2];
                    global::dfSlicedSprite.uv[i + 2] = global::dfSlicedSprite.uv[i + 3];
                    global::dfSlicedSprite.uv[i + 3] = vector2;
                }
                if (options.flip.IsSet(global::dfSpriteFlip.FlipVertical))
                {
                    vector2 = global::dfSlicedSprite.uv[i];
                    global::dfSlicedSprite.uv[i]     = global::dfSlicedSprite.uv[i + 3];
                    global::dfSlicedSprite.uv[i + 3] = vector2;
                    vector2 = global::dfSlicedSprite.uv[i + 1];
                    global::dfSlicedSprite.uv[i + 1] = global::dfSlicedSprite.uv[i + 2];
                    global::dfSlicedSprite.uv[i + 2] = vector2;
                }
            }
            if (options.flip.IsSet(global::dfSpriteFlip.FlipHorizontal))
            {
                Vector2[] array = new Vector2[global::dfSlicedSprite.uv.Length];
                Array.Copy(global::dfSlicedSprite.uv, array, global::dfSlicedSprite.uv.Length);
                Array.Copy(global::dfSlicedSprite.uv, 0, global::dfSlicedSprite.uv, 4, 4);
                Array.Copy(array, 4, global::dfSlicedSprite.uv, 0, 4);
                Array.Copy(global::dfSlicedSprite.uv, 8, global::dfSlicedSprite.uv, 12, 4);
                Array.Copy(array, 12, global::dfSlicedSprite.uv, 8, 4);
            }
            if (options.flip.IsSet(global::dfSpriteFlip.FlipVertical))
            {
                Vector2[] array2 = new Vector2[global::dfSlicedSprite.uv.Length];
                Array.Copy(global::dfSlicedSprite.uv, array2, global::dfSlicedSprite.uv.Length);
                Array.Copy(global::dfSlicedSprite.uv, 0, global::dfSlicedSprite.uv, 8, 4);
                Array.Copy(array2, 8, global::dfSlicedSprite.uv, 0, 4);
                Array.Copy(global::dfSlicedSprite.uv, 4, global::dfSlicedSprite.uv, 12, 4);
                Array.Copy(array2, 12, global::dfSlicedSprite.uv, 4, 4);
            }
        }
        for (int j = 0; j < global::dfSlicedSprite.uv.Length; j++)
        {
            renderData.UV.Add(global::dfSlicedSprite.uv[j]);
        }
    }