Beispiel #1
0
        public static void DrawCursorSingle(SpriteBatch sb, Color color, float rot = float.NaN, float scale = 1f, Vector2 manualPosition = default(Vector2), int cursorSlot = 0, int specialMode = 0)
        {
            bool    flag1    = false;
            bool    flag2    = true;
            bool    flag3    = true;
            Vector2 origin   = Vector2.Zero;
            Vector2 position = new Vector2((float)Main.mouseX, (float)Main.mouseY);

            if (manualPosition != Vector2.Zero)
            {
                position = manualPosition;
            }
            if (float.IsNaN(rot))
            {
                rot = 0.0f;
            }
            else
            {
                flag1 = true;
                rot  -= 2.356194f;
            }
            if (cursorSlot == 4 || cursorSlot == 5)
            {
                flag2  = false;
                origin = new Vector2(8f);
                if (flag1 && specialMode == 0)
                {
                    float num1 = rot;
                    if ((double)num1 < 0.0)
                    {
                        num1 += 6.283185f;
                    }
                    for (float num2 = 0.0f; (double)num2 < 4.0; ++num2)
                    {
                        if ((double)Math.Abs(num1 - 1.570796f * num2) <= 0.785398185253143)
                        {
                            rot = 1.570796f * num2;
                            break;
                        }
                    }
                }
            }
            if (Main.ThickMouse && cursorSlot == 0 || cursorSlot == 1)
            {
                Main.DrawThickCursor(cursorSlot == 1);
            }
            if (flag2)
            {
                sb.Draw(Main.cursorTextures[cursorSlot], position + Vector2.One, new Rectangle?(), Utils.MultiplyRGB(color, new Color(0.2f, 0.2f, 0.2f, 0.5f)), rot, origin, scale * 1.1f, SpriteEffects.None, 0.0f);
            }
            if (!flag3)
            {
                return;
            }
            sb.Draw(Main.cursorTextures[cursorSlot], position, new Rectangle?(), color, rot, origin, scale, SpriteEffects.None, 0.0f);
        }