2753 lines
196 KiB
C#
2753 lines
196 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: Terraria.DataStructures.PlayerDrawLayers
|
|
// Assembly: Terraria, Version=1.4.0.5, Culture=neutral, PublicKeyToken=null
|
|
// MVID: 67F9E73E-0A81-4937-A22C-5515CD405A83
|
|
// Assembly location: C:\Users\mikeyisbaeyt\Downloads\depotdownloader-2.4.5\depots\105601\6707058\Terraria.exe
|
|
|
|
using Microsoft.Xna.Framework;
|
|
using Microsoft.Xna.Framework.Graphics;
|
|
using ReLogic.Content;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using Terraria.GameContent;
|
|
using Terraria.Graphics;
|
|
using Terraria.Graphics.Shaders;
|
|
using Terraria.ID;
|
|
using Terraria.UI;
|
|
|
|
namespace Terraria.DataStructures
|
|
{
|
|
public static class PlayerDrawLayers
|
|
{
|
|
public static void DrawPlayer_extra_TorsoPlus(ref PlayerDrawSet drawinfo)
|
|
{
|
|
drawinfo.Position.Y += drawinfo.torsoOffset;
|
|
drawinfo.ItemLocation.Y += drawinfo.torsoOffset;
|
|
}
|
|
|
|
public static void DrawPlayer_extra_TorsoMinus(ref PlayerDrawSet drawinfo)
|
|
{
|
|
drawinfo.Position.Y -= drawinfo.torsoOffset;
|
|
drawinfo.ItemLocation.Y -= drawinfo.torsoOffset;
|
|
}
|
|
|
|
public static void DrawPlayer_extra_MountPlus(ref PlayerDrawSet drawinfo) => drawinfo.Position.Y += (float) ((int) drawinfo.mountOffSet / 2);
|
|
|
|
public static void DrawPlayer_extra_MountMinus(ref PlayerDrawSet drawinfo) => drawinfo.Position.Y -= (float) ((int) drawinfo.mountOffSet / 2);
|
|
|
|
public static void DrawCompositeArmorPiece(
|
|
ref PlayerDrawSet drawinfo,
|
|
CompositePlayerDrawContext context,
|
|
DrawData data)
|
|
{
|
|
drawinfo.DrawDataCache.Add(data);
|
|
switch (context)
|
|
{
|
|
case CompositePlayerDrawContext.BackShoulder:
|
|
case CompositePlayerDrawContext.BackArm:
|
|
case CompositePlayerDrawContext.FrontArm:
|
|
case CompositePlayerDrawContext.FrontShoulder:
|
|
if (drawinfo.armGlowColor.PackedValue > 0U)
|
|
{
|
|
DrawData drawData = data;
|
|
drawData.color = drawinfo.armGlowColor;
|
|
Rectangle rectangle = drawData.sourceRect.Value;
|
|
rectangle.Y += 224;
|
|
drawData.sourceRect = new Rectangle?(rectangle);
|
|
if (drawinfo.drawPlayer.body == 227)
|
|
{
|
|
Vector2 position = drawData.position;
|
|
for (int index = 0; index < 2; ++index)
|
|
{
|
|
Vector2 vector2 = new Vector2((float) Main.rand.Next(-10, 10) * 0.125f, (float) Main.rand.Next(-10, 10) * 0.125f);
|
|
drawData.position = position + vector2;
|
|
if (index == 0)
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
break;
|
|
}
|
|
break;
|
|
case CompositePlayerDrawContext.Torso:
|
|
if (drawinfo.bodyGlowColor.PackedValue > 0U)
|
|
{
|
|
DrawData drawData = data;
|
|
drawData.color = drawinfo.bodyGlowColor;
|
|
Rectangle rectangle = drawData.sourceRect.Value;
|
|
rectangle.Y += 224;
|
|
drawData.sourceRect = new Rectangle?(rectangle);
|
|
if (drawinfo.drawPlayer.body == 227)
|
|
{
|
|
Vector2 position = drawData.position;
|
|
for (int index = 0; index < 2; ++index)
|
|
{
|
|
Vector2 vector2 = new Vector2((float) Main.rand.Next(-10, 10) * 0.125f, (float) Main.rand.Next(-10, 10) * 0.125f);
|
|
drawData.position = position + vector2;
|
|
if (index == 0)
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
if (context != CompositePlayerDrawContext.FrontArm || drawinfo.drawPlayer.body != 205)
|
|
return;
|
|
Color color = new Color(100, 100, 100, 0);
|
|
ulong seed = (ulong) (drawinfo.drawPlayer.miscCounter / 4);
|
|
int num1 = 4;
|
|
for (int index = 0; index < num1; ++index)
|
|
{
|
|
float num2 = (float) Utils.RandomInt(ref seed, -10, 11) * 0.2f;
|
|
float num3 = (float) Utils.RandomInt(ref seed, -10, 1) * 0.15f;
|
|
DrawData drawData = data;
|
|
Rectangle rectangle = drawData.sourceRect.Value;
|
|
rectangle.Y += 224;
|
|
drawData.sourceRect = new Rectangle?(rectangle);
|
|
drawData.position.X += num2;
|
|
drawData.position.Y += num3;
|
|
drawData.color = color;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_01_BackHair(ref PlayerDrawSet drawinfo)
|
|
{
|
|
drawinfo.hairFrame = drawinfo.drawPlayer.bodyFrame;
|
|
drawinfo.hairFrame.Y -= 336;
|
|
if (drawinfo.hairFrame.Y < 0)
|
|
drawinfo.hairFrame.Y = 0;
|
|
int num = 26;
|
|
int hair = drawinfo.drawPlayer.hair;
|
|
drawinfo.backHairDraw = hair > 50 && (hair < 56 || hair > 63) && (hair < 74 || hair > 77) && (hair < 88 || hair > 89) && hair != 94 && hair != 100 && hair != 104 && hair != 112 && hair < 116;
|
|
if (hair == 133)
|
|
drawinfo.backHairDraw = true;
|
|
if (drawinfo.hideHair)
|
|
{
|
|
drawinfo.hairFrame.Height = 0;
|
|
}
|
|
else
|
|
{
|
|
if (!drawinfo.backHairDraw)
|
|
return;
|
|
if (drawinfo.drawPlayer.head == -1 || drawinfo.fullHair || drawinfo.drawsBackHairWithoutHeadgear)
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.PlayerHair[drawinfo.drawPlayer.hair].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.hairFrame), drawinfo.colorHair, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.hairDyePacked
|
|
});
|
|
else if (drawinfo.hatHair)
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.PlayerHairAlt[drawinfo.drawPlayer.hair].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.hairFrame), drawinfo.colorHair, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.hairDyePacked
|
|
});
|
|
if ((double) drawinfo.drawPlayer.gravDir != 1.0)
|
|
return;
|
|
drawinfo.hairFrame.Height = num;
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_02_MountBehindPlayer(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (!drawinfo.drawPlayer.mount.Active)
|
|
return;
|
|
PlayerDrawLayers.DrawMeowcartTrail(ref drawinfo);
|
|
PlayerDrawLayers.DrawTiedBalloons(ref drawinfo);
|
|
drawinfo.drawPlayer.mount.Draw(drawinfo.DrawDataCache, 0, drawinfo.drawPlayer, drawinfo.Position, drawinfo.colorMount, drawinfo.playerEffect, drawinfo.shadow);
|
|
drawinfo.drawPlayer.mount.Draw(drawinfo.DrawDataCache, 1, drawinfo.drawPlayer, drawinfo.Position, drawinfo.colorMount, drawinfo.playerEffect, drawinfo.shadow);
|
|
}
|
|
|
|
public static void DrawPlayer_03_Carpet(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.drawPlayer.carpetFrame < 0)
|
|
return;
|
|
Color colorArmorLegs = drawinfo.colorArmorLegs;
|
|
float num = 0.0f;
|
|
if ((double) drawinfo.drawPlayer.gravDir == -1.0)
|
|
num = 10f;
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.FlyingCarpet.Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) (drawinfo.drawPlayer.height / 2) + 28.0 * (double) drawinfo.drawPlayer.gravDir + (double) num)), new Rectangle?(new Rectangle(0, TextureAssets.FlyingCarpet.Height() / 6 * drawinfo.drawPlayer.carpetFrame, TextureAssets.FlyingCarpet.Width(), TextureAssets.FlyingCarpet.Height() / 6)), colorArmorLegs, drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.FlyingCarpet.Width() / 2), (float) (TextureAssets.FlyingCarpet.Height() / 8)), 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cCarpet
|
|
});
|
|
}
|
|
|
|
public static void DrawPlayer_03_PortableStool(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (!drawinfo.drawPlayer.portableStoolInfo.IsInUse)
|
|
return;
|
|
Texture2D texture2D = TextureAssets.Extra[102].Value;
|
|
Vector2 position = new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height + 28.0));
|
|
Rectangle r = texture2D.Frame();
|
|
Vector2 origin = r.Size() * new Vector2(0.5f, 1f);
|
|
drawinfo.DrawDataCache.Add(new DrawData(texture2D, position, new Rectangle?(r), drawinfo.colorArmorLegs, drawinfo.drawPlayer.bodyRotation, origin, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cPortableStool
|
|
});
|
|
}
|
|
|
|
public static void DrawPlayer_04_ElectrifiedDebuffBack(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (!drawinfo.drawPlayer.electrified || (double) drawinfo.shadow != 0.0)
|
|
return;
|
|
Texture2D texture = TextureAssets.GlowMask[25].Value;
|
|
int num1 = drawinfo.drawPlayer.miscCounter / 5;
|
|
for (int index = 0; index < 2; ++index)
|
|
{
|
|
int num2 = num1 % 7;
|
|
if (num2 <= 1 || num2 >= 5)
|
|
{
|
|
DrawData drawData = new DrawData(texture, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(new Rectangle(0, num2 * texture.Height / 7, texture.Width, texture.Height / 7)), drawinfo.colorElectricity, drawinfo.drawPlayer.bodyRotation, new Vector2((float) (texture.Width / 2), (float) (texture.Height / 14)), 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
num1 = num2 + 3;
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_05_ForbiddenSetRing(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (!drawinfo.drawPlayer.setForbidden || (double) drawinfo.shadow != 0.0)
|
|
return;
|
|
Color color1 = Color.Lerp(drawinfo.colorArmorBody, Color.White, 0.7f);
|
|
Texture2D texture2D = TextureAssets.Extra[74].Value;
|
|
Texture2D texture = TextureAssets.GlowMask[217].Value;
|
|
int num1 = !drawinfo.drawPlayer.setForbiddenCooldownLocked ? 1 : 0;
|
|
int num2 = (int) ((double) ((float) ((double) drawinfo.drawPlayer.miscCounter / 300.0 * 6.28318548202515)).ToRotationVector2().Y * 6.0);
|
|
float num3 = ((float) ((double) drawinfo.drawPlayer.miscCounter / 75.0 * 6.28318548202515)).ToRotationVector2().X * 4f;
|
|
Color color2 = new Color(80, 70, 40, 0) * (float) ((double) num3 / 8.0 + 0.5) * 0.8f;
|
|
if (num1 == 0)
|
|
{
|
|
num2 = 0;
|
|
num3 = 2f;
|
|
color2 = new Color(80, 70, 40, 0) * 0.3f;
|
|
color1 = color1.MultiplyRGB(new Color(0.5f, 0.5f, 1f));
|
|
}
|
|
Vector2 vector2 = new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2));
|
|
int num4 = 10;
|
|
int num5 = 20;
|
|
if (drawinfo.drawPlayer.head == 238)
|
|
{
|
|
num4 += 4;
|
|
num5 += 4;
|
|
}
|
|
Vector2 position = vector2 + new Vector2((float) (-drawinfo.drawPlayer.direction * num4), (float) ((double) -num5 * (double) drawinfo.drawPlayer.gravDir + (double) num2 * (double) drawinfo.drawPlayer.gravDir));
|
|
DrawData drawData = new DrawData(texture2D, position, new Rectangle?(), color1, drawinfo.drawPlayer.bodyRotation, texture2D.Size() / 2f, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cBody;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
for (float num6 = 0.0f; (double) num6 < 4.0; ++num6)
|
|
{
|
|
drawData = new DrawData(texture, position + (num6 * 1.570796f).ToRotationVector2() * num3, new Rectangle?(), color2, drawinfo.drawPlayer.bodyRotation, texture2D.Size() / 2f, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_01_3_BackHead(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.drawPlayer.head < 0 || drawinfo.drawPlayer.head >= 266)
|
|
return;
|
|
int index = ArmorIDs.Head.Sets.FrontToBackID[drawinfo.drawPlayer.head];
|
|
if (index < 0)
|
|
return;
|
|
Vector2 helmetOffset = drawinfo.helmetOffset;
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.ArmorHead[index].Value, helmetOffset + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cHead
|
|
});
|
|
}
|
|
|
|
public static void DrawPlayer_01_2_JimsCloak(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.drawPlayer.legs != 60 || drawinfo.isSitting || drawinfo.drawPlayer.invis || PlayerDrawLayers.ShouldOverrideLegs_CheckShoes(ref drawinfo) && !drawinfo.drawPlayer.wearsRobe)
|
|
return;
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Extra[153].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.legFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.legFrame.Height + 4.0)) + drawinfo.drawPlayer.legPosition + drawinfo.legVect, new Rectangle?(drawinfo.drawPlayer.legFrame), drawinfo.colorArmorLegs, drawinfo.drawPlayer.legRotation, drawinfo.legVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cLegs
|
|
});
|
|
}
|
|
|
|
public static void DrawPlayer_05_2_SafemanSun(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.drawPlayer.head != 238 || (double) drawinfo.shadow != 0.0)
|
|
return;
|
|
Color color1 = Color.Lerp(drawinfo.colorArmorBody, Color.White, 0.7f);
|
|
Texture2D texture2D = TextureAssets.Extra[152].Value;
|
|
Texture2D texture = TextureAssets.Extra[152].Value;
|
|
int num1 = (int) ((double) ((float) ((double) drawinfo.drawPlayer.miscCounter / 300.0 * 6.28318548202515)).ToRotationVector2().Y * 6.0);
|
|
float num2 = ((float) ((double) drawinfo.drawPlayer.miscCounter / 75.0 * 6.28318548202515)).ToRotationVector2().X * 4f;
|
|
Color color2 = new Color(80, 70, 40, 0) * (float) ((double) num2 / 8.0 + 0.5) * 0.8f;
|
|
Vector2 vector2 = new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2));
|
|
int num3 = 8;
|
|
int num4 = 20;
|
|
int num5 = num3 + 4;
|
|
int num6 = num4 + 4;
|
|
Vector2 position = vector2 + new Vector2((float) (-drawinfo.drawPlayer.direction * num5), (float) ((double) -num6 * (double) drawinfo.drawPlayer.gravDir + (double) num1 * (double) drawinfo.drawPlayer.gravDir));
|
|
DrawData drawData = new DrawData(texture2D, position, new Rectangle?(), color1, drawinfo.drawPlayer.bodyRotation, texture2D.Size() / 2f, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cHead;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
for (float num7 = 0.0f; (double) num7 < 4.0; ++num7)
|
|
{
|
|
drawData = new DrawData(texture, position + (num7 * 1.570796f).ToRotationVector2() * num2, new Rectangle?(), color2, drawinfo.drawPlayer.bodyRotation, texture2D.Size() / 2f, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cHead;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_06_WebbedDebuffBack(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (!drawinfo.drawPlayer.webbed || (double) drawinfo.shadow != 0.0 || (double) drawinfo.drawPlayer.velocity.Y == 0.0)
|
|
return;
|
|
Color color = drawinfo.colorArmorBody * 0.75f;
|
|
Texture2D texture2D = TextureAssets.Extra[32].Value;
|
|
DrawData drawData = new DrawData(texture2D, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(), color, drawinfo.drawPlayer.bodyRotation, texture2D.Size() / 2f, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
|
|
public static void DrawPlayer_07_LeinforsHairShampoo(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (!drawinfo.drawPlayer.leinforsHair || !drawinfo.fullHair && !drawinfo.hatHair && drawinfo.drawPlayer.head != -1 && drawinfo.drawPlayer.head != 0 || drawinfo.drawPlayer.hair == 12 || (double) drawinfo.shadow != 0.0 || (double) Main.rgbToHsl(drawinfo.colorHead).Z <= 0.200000002980232)
|
|
return;
|
|
if (Main.rand.Next(20) == 0 && !drawinfo.hatHair)
|
|
{
|
|
Rectangle r = Utils.CenteredRectangle(drawinfo.Position + drawinfo.drawPlayer.Size / 2f + new Vector2(0.0f, drawinfo.drawPlayer.gravDir * -20f), new Vector2(20f, 14f));
|
|
int index = Dust.NewDust(r.TopLeft(), r.Width, r.Height, 204, Alpha: 150, Scale: 0.3f);
|
|
Main.dust[index].fadeIn = 1f;
|
|
Main.dust[index].velocity *= 0.1f;
|
|
Main.dust[index].noLight = true;
|
|
Main.dust[index].shader = GameShaders.Armor.GetSecondaryShader(drawinfo.drawPlayer.cLeinShampoo, drawinfo.drawPlayer);
|
|
drawinfo.DustCache.Add(index);
|
|
}
|
|
if (Main.rand.Next(40) == 0 && drawinfo.hatHair)
|
|
{
|
|
Rectangle r = Utils.CenteredRectangle(drawinfo.Position + drawinfo.drawPlayer.Size / 2f + new Vector2((float) (drawinfo.drawPlayer.direction * -10), drawinfo.drawPlayer.gravDir * -10f), new Vector2(5f, 5f));
|
|
int index = Dust.NewDust(r.TopLeft(), r.Width, r.Height, 204, Alpha: 150, Scale: 0.3f);
|
|
Main.dust[index].fadeIn = 1f;
|
|
Main.dust[index].velocity *= 0.1f;
|
|
Main.dust[index].noLight = true;
|
|
Main.dust[index].shader = GameShaders.Armor.GetSecondaryShader(drawinfo.drawPlayer.cLeinShampoo, drawinfo.drawPlayer);
|
|
drawinfo.DustCache.Add(index);
|
|
}
|
|
if ((double) drawinfo.drawPlayer.velocity.X == 0.0 || !drawinfo.backHairDraw || Main.rand.Next(15) != 0)
|
|
return;
|
|
Rectangle r1 = Utils.CenteredRectangle(drawinfo.Position + drawinfo.drawPlayer.Size / 2f + new Vector2((float) (drawinfo.drawPlayer.direction * -14), 0.0f), new Vector2(4f, 30f));
|
|
int index1 = Dust.NewDust(r1.TopLeft(), r1.Width, r1.Height, 204, Alpha: 150, Scale: 0.3f);
|
|
Main.dust[index1].fadeIn = 1f;
|
|
Main.dust[index1].velocity *= 0.1f;
|
|
Main.dust[index1].noLight = true;
|
|
Main.dust[index1].shader = GameShaders.Armor.GetSecondaryShader(drawinfo.drawPlayer.cLeinShampoo, drawinfo.drawPlayer);
|
|
drawinfo.DustCache.Add(index1);
|
|
}
|
|
|
|
public static void DrawPlayer_08_Backpacks(ref PlayerDrawSet drawinfo)
|
|
{
|
|
drawinfo.backPack = false;
|
|
if (drawinfo.drawPlayer.wings != 0 && (double) drawinfo.drawPlayer.velocity.Y != 0.0 || drawinfo.heldItem.type != 1178 && drawinfo.heldItem.type != 779 && drawinfo.heldItem.type != 1295 && drawinfo.heldItem.type != 1910 && !drawinfo.drawPlayer.turtleArmor && drawinfo.drawPlayer.body != 106 && drawinfo.drawPlayer.body != 170 && (drawinfo.heldItem.type != 4818 || drawinfo.drawPlayer.ownedProjectileCounts[902] != 0))
|
|
return;
|
|
drawinfo.backPack = true;
|
|
int type = drawinfo.heldItem.type;
|
|
int index = 1;
|
|
float num1 = -4f;
|
|
float num2 = -8f;
|
|
int num3 = 0;
|
|
if (drawinfo.drawPlayer.turtleArmor)
|
|
{
|
|
index = 4;
|
|
num3 = drawinfo.cBody;
|
|
}
|
|
else if (drawinfo.drawPlayer.body == 106)
|
|
{
|
|
index = 6;
|
|
num3 = drawinfo.cBody;
|
|
}
|
|
else if (drawinfo.drawPlayer.body == 170)
|
|
{
|
|
index = 7;
|
|
num3 = drawinfo.cBody;
|
|
}
|
|
else
|
|
{
|
|
switch (type)
|
|
{
|
|
case 779:
|
|
index = 2;
|
|
break;
|
|
case 1178:
|
|
index = 1;
|
|
break;
|
|
case 1295:
|
|
index = 3;
|
|
break;
|
|
case 1910:
|
|
index = 5;
|
|
break;
|
|
case 4818:
|
|
index = 8;
|
|
break;
|
|
}
|
|
}
|
|
Vector2 vector2 = new Vector2(0.0f, 8f);
|
|
Vector2 position1 = (drawinfo.Position - Main.screenPosition + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.width / 2), (float) (drawinfo.drawPlayer.height - drawinfo.drawPlayer.bodyFrame.Height / 2)) + new Vector2(0.0f, -4f) + vector2).Floor();
|
|
Vector2 position2 = (drawinfo.Position - Main.screenPosition + new Vector2((float) (drawinfo.drawPlayer.width / 2), (float) (drawinfo.drawPlayer.height - drawinfo.drawPlayer.bodyFrame.Height / 2)) + new Vector2((num1 - 9f) * (float) drawinfo.drawPlayer.direction, (2f + num2) * drawinfo.drawPlayer.gravDir) + vector2).Floor();
|
|
switch (index)
|
|
{
|
|
case 4:
|
|
case 6:
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.BackPack[index].Value, position1, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorArmorBody, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = num3
|
|
});
|
|
break;
|
|
case 7:
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.BackPack[index].Value, position1, new Rectangle?(new Rectangle(0, drawinfo.drawPlayer.bodyFrame.Y, TextureAssets.BackPack[index].Width(), drawinfo.drawPlayer.bodyFrame.Height)), drawinfo.colorArmorBody, drawinfo.drawPlayer.bodyRotation, new Vector2((float) TextureAssets.BackPack[index].Width() * 0.5f, drawinfo.bodyVect.Y), 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = num3
|
|
});
|
|
break;
|
|
case 8:
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.BackPack[index].Value, position1, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorArmorBody, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = num3
|
|
});
|
|
break;
|
|
default:
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.BackPack[index].Value, position2, new Rectangle?(new Rectangle(0, 0, TextureAssets.BackPack[index].Width(), TextureAssets.BackPack[index].Height())), drawinfo.colorArmorBody, drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.BackPack[index].Width() / 2), (float) (TextureAssets.BackPack[index].Height() / 2)), 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = num3
|
|
});
|
|
break;
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_09_BackAc(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.backPack || drawinfo.drawPlayer.back <= (sbyte) 0 || drawinfo.drawPlayer.back >= (sbyte) 30 || drawinfo.drawPlayer.mount.Active)
|
|
return;
|
|
if (drawinfo.drawPlayer.front >= (sbyte) 1 && drawinfo.drawPlayer.front <= (sbyte) 4)
|
|
{
|
|
int num = drawinfo.drawPlayer.bodyFrame.Y / 56;
|
|
if (num < 1 || num > 5)
|
|
{
|
|
drawinfo.armorAdjust = 10;
|
|
}
|
|
else
|
|
{
|
|
if (drawinfo.drawPlayer.front == (sbyte) 1)
|
|
drawinfo.armorAdjust = 0;
|
|
if (drawinfo.drawPlayer.front == (sbyte) 2)
|
|
drawinfo.armorAdjust = 8;
|
|
if (drawinfo.drawPlayer.front == (sbyte) 3)
|
|
drawinfo.armorAdjust = 0;
|
|
if (drawinfo.drawPlayer.front == (sbyte) 4)
|
|
drawinfo.armorAdjust = 8;
|
|
}
|
|
}
|
|
Vector2 zero = Vector2.Zero;
|
|
Vector2 vector2 = new Vector2(0.0f, 8f);
|
|
Vector2 position1 = drawinfo.Position;
|
|
Vector2 position2 = (zero + position1 - Main.screenPosition + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.width / 2), (float) (drawinfo.drawPlayer.height - drawinfo.drawPlayer.bodyFrame.Height / 2)) + new Vector2(0.0f, -4f) + vector2).Floor();
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.AccBack[(int) drawinfo.drawPlayer.back].Value, position2, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorArmorBody, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cBack
|
|
});
|
|
}
|
|
|
|
public static void DrawPlayer_10_Wings(ref PlayerDrawSet drawinfo)
|
|
{
|
|
Vector2 directions = drawinfo.drawPlayer.Directions;
|
|
Vector2 vector2_1 = drawinfo.Position - Main.screenPosition + drawinfo.drawPlayer.Size / 2f;
|
|
Vector2 vector2_2 = new Vector2(0.0f, 7f);
|
|
Vector2 commonWingPosPreFloor = drawinfo.Position - Main.screenPosition + new Vector2((float) (drawinfo.drawPlayer.width / 2), (float) (drawinfo.drawPlayer.height - drawinfo.drawPlayer.bodyFrame.Height / 2)) + vector2_2;
|
|
if (drawinfo.backPack || drawinfo.drawPlayer.wings <= 0)
|
|
return;
|
|
Main.instance.LoadWings(drawinfo.drawPlayer.wings);
|
|
if (drawinfo.drawPlayer.wings == 22)
|
|
{
|
|
if (!drawinfo.drawPlayer.ShouldDrawWingsThatAreAlwaysAnimated())
|
|
return;
|
|
Main.instance.LoadItemFlames(1866);
|
|
Color colorArmorBody = drawinfo.colorArmorBody;
|
|
int num1 = 26;
|
|
int num2 = -9;
|
|
Vector2 vec = commonWingPosPreFloor + new Vector2((float) num2, (float) num1) * directions;
|
|
DrawData drawData;
|
|
if ((double) drawinfo.shadow == 0.0 && drawinfo.drawPlayer.grappling[0] == -1)
|
|
{
|
|
for (int index = 0; index < 7; ++index)
|
|
{
|
|
Color color = new Color(250 - index * 10, 250 - index * 10, 250 - index * 10, 150 - index * 10);
|
|
Vector2 vector2_3 = new Vector2((float) Main.rand.Next(-10, 11) * 0.2f, (float) Main.rand.Next(-10, 11) * 0.2f);
|
|
drawinfo.stealth *= drawinfo.stealth;
|
|
drawinfo.stealth *= 1f - drawinfo.shadow;
|
|
color = new Color((int) ((double) color.R * (double) drawinfo.stealth), (int) ((double) color.G * (double) drawinfo.stealth), (int) ((double) color.B * (double) drawinfo.stealth), (int) ((double) color.A * (double) drawinfo.stealth));
|
|
vector2_3.X = drawinfo.drawPlayer.itemFlamePos[index].X;
|
|
vector2_3.Y = -drawinfo.drawPlayer.itemFlamePos[index].Y;
|
|
vector2_3 *= 0.5f;
|
|
Vector2 position = (vec + vector2_3).Floor();
|
|
drawData = new DrawData(TextureAssets.ItemFlame[1866].Value, position, new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 7 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 7 - 2)), color, drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 14)), 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
drawData = new DrawData(TextureAssets.Wings[drawinfo.drawPlayer.wings].Value, vec.Floor(), new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 7 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 7)), colorArmorBody, drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 14)), 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
else if (drawinfo.drawPlayer.wings == 28)
|
|
{
|
|
if (!drawinfo.drawPlayer.ShouldDrawWingsThatAreAlwaysAnimated())
|
|
return;
|
|
Color colorArmorBody = drawinfo.colorArmorBody;
|
|
Vector2 vector2_4 = new Vector2(0.0f, 0.0f);
|
|
Texture2D texture2D = TextureAssets.Wings[drawinfo.drawPlayer.wings].Value;
|
|
Vector2 vec = drawinfo.Position + drawinfo.drawPlayer.Size * new Vector2(0.5f, 1f) - Main.screenPosition + vector2_4 * drawinfo.drawPlayer.Directions;
|
|
Rectangle r = texture2D.Frame(verticalFrames: 4, frameY: (drawinfo.drawPlayer.miscCounter / 5 % 4));
|
|
r.Width -= 2;
|
|
r.Height -= 2;
|
|
DrawData drawData = new DrawData(texture2D, vec.Floor(), new Rectangle?(r), Color.Lerp(colorArmorBody, Color.White, 1f), drawinfo.drawPlayer.bodyRotation, r.Size() / 2f, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
drawData = new DrawData(TextureAssets.Extra[38].Value, vec.Floor(), new Rectangle?(r), Color.Lerp(colorArmorBody, Color.White, 0.5f), drawinfo.drawPlayer.bodyRotation, r.Size() / 2f, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
else if (drawinfo.drawPlayer.wings == 45)
|
|
{
|
|
if (!drawinfo.drawPlayer.ShouldDrawWingsThatAreAlwaysAnimated())
|
|
return;
|
|
PlayerDrawLayers.DrawStarboardRainbowTrail(ref drawinfo, commonWingPosPreFloor, directions);
|
|
Color color1 = new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue);
|
|
int num3 = 22;
|
|
int num4 = 0;
|
|
Vector2 vec = commonWingPosPreFloor + new Vector2((float) num4, (float) num3) * directions;
|
|
double num5 = 1.0 - (double) drawinfo.shadow;
|
|
Color color2 = color1 * (float) num5;
|
|
DrawData drawData = new DrawData(TextureAssets.Wings[drawinfo.drawPlayer.wings].Value, vec.Floor(), new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 6 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 6)), color2, drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 12)), 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
if ((double) drawinfo.shadow != 0.0)
|
|
return;
|
|
float num6 = ((float) ((double) drawinfo.drawPlayer.miscCounter / 75.0 * 6.28318548202515)).ToRotationVector2().X * 4f;
|
|
Color color3 = new Color(70, 70, 70, 0) * (float) ((double) num6 / 8.0 + 0.5) * 0.4f;
|
|
for (float f = 0.0f; (double) f < 6.28318548202515; f += 1.570796f)
|
|
{
|
|
drawData = new DrawData(TextureAssets.Wings[drawinfo.drawPlayer.wings].Value, vec.Floor() + f.ToRotationVector2() * num6, new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 6 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 6)), color3, drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 12)), 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
else if (drawinfo.drawPlayer.wings == 34)
|
|
{
|
|
if (!drawinfo.drawPlayer.ShouldDrawWingsThatAreAlwaysAnimated())
|
|
return;
|
|
drawinfo.stealth *= drawinfo.stealth;
|
|
drawinfo.stealth *= 1f - drawinfo.shadow;
|
|
Color color = new Color((int) (250.0 * (double) drawinfo.stealth), (int) (250.0 * (double) drawinfo.stealth), (int) (250.0 * (double) drawinfo.stealth), (int) (100.0 * (double) drawinfo.stealth));
|
|
Vector2 vector2_5 = new Vector2(0.0f, 0.0f);
|
|
Texture2D texture2D = TextureAssets.Wings[drawinfo.drawPlayer.wings].Value;
|
|
Vector2 vec = drawinfo.Position + drawinfo.drawPlayer.Size / 2f - Main.screenPosition + vector2_5 * drawinfo.drawPlayer.Directions - Vector2.UnitX * (float) drawinfo.drawPlayer.direction * 4f;
|
|
Rectangle r = texture2D.Frame(verticalFrames: 6, frameY: drawinfo.drawPlayer.wingFrame);
|
|
r.Width -= 2;
|
|
r.Height -= 2;
|
|
drawinfo.DrawDataCache.Add(new DrawData(texture2D, vec.Floor(), new Rectangle?(r), color, drawinfo.drawPlayer.bodyRotation, r.Size() / 2f, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cWings
|
|
});
|
|
}
|
|
else if (drawinfo.drawPlayer.wings == 40)
|
|
{
|
|
drawinfo.stealth *= drawinfo.stealth;
|
|
drawinfo.stealth *= 1f - drawinfo.shadow;
|
|
Color color = new Color((int) (250.0 * (double) drawinfo.stealth), (int) (250.0 * (double) drawinfo.stealth), (int) (250.0 * (double) drawinfo.stealth), (int) (100.0 * (double) drawinfo.stealth));
|
|
Vector2 vector2_6 = new Vector2(-4f, 0.0f);
|
|
Texture2D texture2D = TextureAssets.Wings[drawinfo.drawPlayer.wings].Value;
|
|
Vector2 vector2_7 = commonWingPosPreFloor + vector2_6 * directions;
|
|
for (int index = 0; index < 1; ++index)
|
|
{
|
|
SpriteEffects playerEffect = drawinfo.playerEffect;
|
|
Vector2 scale = new Vector2(1f);
|
|
Vector2 zero = Vector2.Zero;
|
|
zero.X = (float) (drawinfo.drawPlayer.direction * 3);
|
|
if (index == 1)
|
|
{
|
|
playerEffect ^= SpriteEffects.FlipHorizontally;
|
|
scale = new Vector2(0.7f, 1f);
|
|
zero.X += (float) -drawinfo.drawPlayer.direction * 6f;
|
|
}
|
|
Vector2 vector2_8 = drawinfo.drawPlayer.velocity * -1.5f;
|
|
int num7 = 0;
|
|
int num8 = 8;
|
|
float num9 = 4f;
|
|
if ((double) drawinfo.drawPlayer.velocity.Y == 0.0)
|
|
{
|
|
num7 = 8;
|
|
num8 = 14;
|
|
num9 = 3f;
|
|
}
|
|
for (int frameY = num7; frameY < num8; ++frameY)
|
|
{
|
|
Vector2 vector2_9 = vector2_7;
|
|
Rectangle r = texture2D.Frame(verticalFrames: 14, frameY: frameY);
|
|
r.Width -= 2;
|
|
r.Height -= 2;
|
|
int num10 = (frameY - num7) % (int) num9;
|
|
Vector2 vector2_10 = new Vector2(0.0f, 0.5f).RotatedBy(((double) drawinfo.drawPlayer.miscCounterNormalized * (2.0 + (double) num10) + (double) num10 * 0.5 + (double) index * 1.29999995231628) * 6.28318548202515) * (float) (num10 + 1);
|
|
Vector2 vec = vector2_9 + vector2_10 + vector2_8 * ((float) num10 / num9) + zero;
|
|
drawinfo.DrawDataCache.Add(new DrawData(texture2D, vec.Floor(), new Rectangle?(r), color, drawinfo.drawPlayer.bodyRotation, r.Size() / 2f, scale, playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cWings
|
|
});
|
|
}
|
|
}
|
|
}
|
|
else if (drawinfo.drawPlayer.wings == 39)
|
|
{
|
|
if (!drawinfo.drawPlayer.ShouldDrawWingsThatAreAlwaysAnimated())
|
|
return;
|
|
drawinfo.stealth *= drawinfo.stealth;
|
|
drawinfo.stealth *= 1f - drawinfo.shadow;
|
|
Color colorArmorBody = drawinfo.colorArmorBody;
|
|
Vector2 vector2_11 = new Vector2(-6f, -7f);
|
|
Texture2D texture2D = TextureAssets.Wings[drawinfo.drawPlayer.wings].Value;
|
|
Vector2 vec = commonWingPosPreFloor + vector2_11 * directions;
|
|
Rectangle r = texture2D.Frame(verticalFrames: 6, frameY: drawinfo.drawPlayer.wingFrame);
|
|
r.Width -= 2;
|
|
r.Height -= 2;
|
|
drawinfo.DrawDataCache.Add(new DrawData(texture2D, vec.Floor(), new Rectangle?(r), colorArmorBody, drawinfo.drawPlayer.bodyRotation, r.Size() / 2f, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cWings
|
|
});
|
|
}
|
|
else
|
|
{
|
|
int num11 = 0;
|
|
int num12 = 0;
|
|
int num13 = 4;
|
|
if (drawinfo.drawPlayer.wings == 43)
|
|
{
|
|
num12 = -5;
|
|
num11 = -7;
|
|
num13 = 7;
|
|
}
|
|
else if (drawinfo.drawPlayer.wings == 44)
|
|
num13 = 7;
|
|
else if (drawinfo.drawPlayer.wings == 5)
|
|
{
|
|
num12 = 4;
|
|
num11 -= 4;
|
|
}
|
|
else if (drawinfo.drawPlayer.wings == 27)
|
|
num12 = 4;
|
|
Color color4 = drawinfo.colorArmorBody;
|
|
if (drawinfo.drawPlayer.wings == 9 || drawinfo.drawPlayer.wings == 29)
|
|
{
|
|
drawinfo.stealth *= drawinfo.stealth;
|
|
drawinfo.stealth *= 1f - drawinfo.shadow;
|
|
color4 = new Color((int) (250.0 * (double) drawinfo.stealth), (int) (250.0 * (double) drawinfo.stealth), (int) (250.0 * (double) drawinfo.stealth), (int) (100.0 * (double) drawinfo.stealth));
|
|
}
|
|
if (drawinfo.drawPlayer.wings == 10)
|
|
{
|
|
drawinfo.stealth *= drawinfo.stealth;
|
|
drawinfo.stealth *= 1f - drawinfo.shadow;
|
|
color4 = new Color((int) (250.0 * (double) drawinfo.stealth), (int) (250.0 * (double) drawinfo.stealth), (int) (250.0 * (double) drawinfo.stealth), (int) (175.0 * (double) drawinfo.stealth));
|
|
}
|
|
if (drawinfo.drawPlayer.wings == 11 && (int) color4.A > (int) Main.gFade)
|
|
color4.A = Main.gFade;
|
|
if (drawinfo.drawPlayer.wings == 31)
|
|
color4.A = (byte) (220.0 * (double) drawinfo.stealth);
|
|
if (drawinfo.drawPlayer.wings == 32)
|
|
color4.A = (byte) ((double) sbyte.MaxValue * (double) drawinfo.stealth);
|
|
if (drawinfo.drawPlayer.wings == 6)
|
|
{
|
|
color4.A = (byte) (160.0 * (double) drawinfo.stealth);
|
|
color4 *= 0.9f;
|
|
}
|
|
Vector2 vec = commonWingPosPreFloor + new Vector2((float) (num12 - 9), (float) (num11 + 2)) * directions;
|
|
DrawData drawData = new DrawData(TextureAssets.Wings[drawinfo.drawPlayer.wings].Value, vec.Floor(), new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / num13 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / num13)), color4, drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / num13 / 2)), 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
if (drawinfo.drawPlayer.wings == 43 && (double) drawinfo.shadow == 0.0)
|
|
{
|
|
Vector2 vector2_12 = vec;
|
|
Vector2 origin = new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / num13 / 2));
|
|
Rectangle rectangle = new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / num13 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / num13);
|
|
for (int index = 0; index < 2; ++index)
|
|
{
|
|
Vector2 vector2_13 = new Vector2((float) Main.rand.Next(-10, 10) * 0.125f, (float) Main.rand.Next(-10, 10) * 0.125f);
|
|
drawData = new DrawData(TextureAssets.GlowMask[272].Value, vector2_12 + vector2_13, new Rectangle?(rectangle), new Color(230, 230, 230, 60), drawinfo.drawPlayer.bodyRotation, origin, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
if (drawinfo.drawPlayer.wings == 23)
|
|
{
|
|
drawinfo.stealth *= drawinfo.stealth;
|
|
drawinfo.stealth *= 1f - drawinfo.shadow;
|
|
color4 = new Color((int) (200.0 * (double) drawinfo.stealth), (int) (200.0 * (double) drawinfo.stealth), (int) (200.0 * (double) drawinfo.stealth), (int) (200.0 * (double) drawinfo.stealth));
|
|
drawData = new DrawData(TextureAssets.Flames[8].Value, vec.Floor(), new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4)), color4, drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 8)), 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
else if (drawinfo.drawPlayer.wings == 27)
|
|
{
|
|
drawData = new DrawData(TextureAssets.GlowMask[92].Value, vec.Floor(), new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4)), new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, (int) sbyte.MaxValue) * drawinfo.stealth * (1f - drawinfo.shadow), drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 8)), 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
else if (drawinfo.drawPlayer.wings == 44)
|
|
{
|
|
PlayerRainbowWingsTextureContent playerRainbowWings = TextureAssets.RenderTargets.PlayerRainbowWings;
|
|
playerRainbowWings.Request();
|
|
if (!playerRainbowWings.IsReady)
|
|
return;
|
|
drawData = new DrawData((Texture2D) playerRainbowWings.GetTarget(), vec.Floor(), new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 7 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 7)), new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue) * drawinfo.stealth * (1f - drawinfo.shadow), drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 14)), 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
else if (drawinfo.drawPlayer.wings == 30)
|
|
{
|
|
drawData = new DrawData(TextureAssets.GlowMask[181].Value, vec.Floor(), new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4)), new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, (int) sbyte.MaxValue) * drawinfo.stealth * (1f - drawinfo.shadow), drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 8)), 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
else if (drawinfo.drawPlayer.wings == 38)
|
|
{
|
|
Color color5 = drawinfo.ArkhalisColor * drawinfo.stealth * (1f - drawinfo.shadow);
|
|
drawData = new DrawData(TextureAssets.GlowMask[251].Value, vec.Floor(), new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4)), color5, drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 8)), 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
for (int index = drawinfo.drawPlayer.shadowPos.Length - 2; index >= 0; --index)
|
|
{
|
|
Color color6 = color5;
|
|
color6.A = (byte) 0;
|
|
Color color7 = color6 * MathHelper.Lerp(1f, 0.0f, (float) index / 3f) * 0.1f;
|
|
Vector2 vector2_14 = drawinfo.drawPlayer.shadowPos[index] - drawinfo.drawPlayer.position;
|
|
for (float num14 = 0.0f; (double) num14 < 1.0; num14 += 0.01f)
|
|
{
|
|
Vector2 vector2_15 = new Vector2(2f, 0.0f).RotatedBy((double) num14 / 0.0399999991059303 * 6.28318548202515);
|
|
drawData = new DrawData(TextureAssets.GlowMask[251].Value, vector2_15 + vector2_14 * num14 + vec, new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4)), color7 * (1f - num14), drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 8)), 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
}
|
|
else if (drawinfo.drawPlayer.wings == 29)
|
|
{
|
|
drawData = new DrawData(TextureAssets.Wings[drawinfo.drawPlayer.wings].Value, vec.Floor(), new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4)), new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, 0) * drawinfo.stealth * (1f - drawinfo.shadow) * 0.5f, drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 8)), 1.06f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
else if (drawinfo.drawPlayer.wings == 36)
|
|
{
|
|
drawData = new DrawData(TextureAssets.GlowMask[213].Value, vec.Floor(), new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4)), new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, 0) * drawinfo.stealth * (1f - drawinfo.shadow), drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 8)), 1.06f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
Vector2 spinningpoint = new Vector2(0.0f, (float) (2.0 - (double) drawinfo.shadow * 2.0));
|
|
for (int index = 0; index < 4; ++index)
|
|
{
|
|
drawData = new DrawData(TextureAssets.GlowMask[213].Value, spinningpoint.RotatedBy(1.57079637050629 * (double) index) + vec.Floor(), new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4)), new Color((int) sbyte.MaxValue, (int) sbyte.MaxValue, (int) sbyte.MaxValue, (int) sbyte.MaxValue) * drawinfo.stealth * (1f - drawinfo.shadow), drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 8)), 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
else if (drawinfo.drawPlayer.wings == 31)
|
|
{
|
|
Color color8 = new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, 0);
|
|
Color color9 = Color.Lerp(Color.HotPink, Color.Crimson, (float) (Math.Cos(6.28318548202515 * ((double) drawinfo.drawPlayer.miscCounter / 100.0)) * 0.400000005960464 + 0.5));
|
|
color9.A = (byte) 0;
|
|
for (int index = 0; index < 4; ++index)
|
|
{
|
|
Vector2 vector2_16 = new Vector2((float) (Math.Cos(6.28318548202515 * ((double) drawinfo.drawPlayer.miscCounter / 60.0)) * 0.5 + 0.5), 0.0f).RotatedBy((double) index * 1.57079637050629) * 1f;
|
|
drawData = new DrawData(TextureAssets.Wings[drawinfo.drawPlayer.wings].Value, vec.Floor() + vector2_16, new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4)), color9 * drawinfo.stealth * (1f - drawinfo.shadow) * 0.5f, drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 8)), 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
drawData = new DrawData(TextureAssets.Wings[drawinfo.drawPlayer.wings].Value, vec.Floor(), new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4)), color9 * drawinfo.stealth * (1f - drawinfo.shadow) * 1f, drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 8)), 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
else
|
|
{
|
|
if (drawinfo.drawPlayer.wings != 32)
|
|
return;
|
|
drawData = new DrawData(TextureAssets.GlowMask[183].Value, vec.Floor(), new Rectangle?(new Rectangle(0, TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4 * drawinfo.drawPlayer.wingFrame, TextureAssets.Wings[drawinfo.drawPlayer.wings].Width(), TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 4)), new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, 0) * drawinfo.stealth * (1f - drawinfo.shadow), drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Width() / 2), (float) (TextureAssets.Wings[drawinfo.drawPlayer.wings].Height() / 8)), 1.06f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_11_Balloons(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.drawPlayer.balloon <= (sbyte) 0)
|
|
return;
|
|
int num = !Main.hasFocus || Main.ingameOptionsWindow && Main.autoPause ? 0 : DateTime.Now.Millisecond % 800 / 200;
|
|
Vector2 vector2_1 = Main.OffsetsPlayerOffhand[drawinfo.drawPlayer.bodyFrame.Y / 56];
|
|
if (drawinfo.drawPlayer.direction != 1)
|
|
vector2_1.X = (float) drawinfo.drawPlayer.width - vector2_1.X;
|
|
if ((double) drawinfo.drawPlayer.gravDir != 1.0)
|
|
vector2_1.Y -= (float) drawinfo.drawPlayer.height;
|
|
Vector2 vector2_2 = new Vector2(0.0f, 8f) + new Vector2(0.0f, 6f);
|
|
Vector2 vector2_3 = new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X + (double) vector2_1.X), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) vector2_1.Y * (double) drawinfo.drawPlayer.gravDir));
|
|
vector2_3 = drawinfo.Position - Main.screenPosition + vector2_1 * new Vector2(1f, drawinfo.drawPlayer.gravDir) + new Vector2(0.0f, (float) (drawinfo.drawPlayer.height - drawinfo.drawPlayer.bodyFrame.Height)) + vector2_2;
|
|
vector2_3 = vector2_3.Floor();
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.AccBalloon[(int) drawinfo.drawPlayer.balloon].Value, vector2_3, new Rectangle?(new Rectangle(0, TextureAssets.AccBalloon[(int) drawinfo.drawPlayer.balloon].Height() / 4 * num, TextureAssets.AccBalloon[(int) drawinfo.drawPlayer.balloon].Width(), TextureAssets.AccBalloon[(int) drawinfo.drawPlayer.balloon].Height() / 4)), drawinfo.colorArmorBody, drawinfo.drawPlayer.bodyRotation, new Vector2((float) (26 + drawinfo.drawPlayer.direction * 4), (float) (28.0 + (double) drawinfo.drawPlayer.gravDir * 6.0)), 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cBalloon
|
|
});
|
|
}
|
|
|
|
public static void DrawPlayer_12_Skin(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.usesCompositeTorso)
|
|
{
|
|
PlayerDrawLayers.DrawPlayer_12_Skin_Composite(ref drawinfo);
|
|
}
|
|
else
|
|
{
|
|
if (drawinfo.isSitting)
|
|
drawinfo.hidesBottomSkin = true;
|
|
DrawData drawData;
|
|
if (!drawinfo.hidesTopSkin)
|
|
{
|
|
drawinfo.Position.Y += drawinfo.torsoOffset;
|
|
drawData = new DrawData(TextureAssets.Players[drawinfo.skinVar, 3].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorBodySkin, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.skinDyePacked
|
|
};
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
drawinfo.Position.Y -= drawinfo.torsoOffset;
|
|
}
|
|
if (drawinfo.hidesBottomSkin || PlayerDrawLayers.IsBottomOverridden(ref drawinfo))
|
|
return;
|
|
if (drawinfo.isSitting)
|
|
{
|
|
PlayerDrawLayers.DrawSittingLegs(ref drawinfo, TextureAssets.Players[drawinfo.skinVar, 10].Value, drawinfo.colorLegs);
|
|
}
|
|
else
|
|
{
|
|
drawData = new DrawData(TextureAssets.Players[drawinfo.skinVar, 10].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.legFrame), drawinfo.colorLegs, drawinfo.drawPlayer.legRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static bool IsBottomOverridden(ref PlayerDrawSet drawinfo) => PlayerDrawLayers.ShouldOverrideLegs_CheckPants(ref drawinfo) || PlayerDrawLayers.ShouldOverrideLegs_CheckShoes(ref drawinfo);
|
|
|
|
public static bool ShouldOverrideLegs_CheckPants(ref PlayerDrawSet drawinfo)
|
|
{
|
|
switch (drawinfo.drawPlayer.legs)
|
|
{
|
|
case 67:
|
|
case 106:
|
|
case 138:
|
|
case 140:
|
|
case 143:
|
|
case 217:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public static bool ShouldOverrideLegs_CheckShoes(ref PlayerDrawSet drawinfo) => drawinfo.drawPlayer.shoe == (sbyte) 15;
|
|
|
|
public static void DrawPlayer_12_Skin_Composite(ref PlayerDrawSet drawinfo)
|
|
{
|
|
DrawData drawData1;
|
|
if (!drawinfo.hidesTopSkin && !drawinfo.drawPlayer.invis)
|
|
{
|
|
Vector2 vector2_1 = new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2));
|
|
vector2_1.Y += drawinfo.torsoOffset;
|
|
Vector2 vector2_2 = Main.OffsetsPlayerHeadgear[drawinfo.drawPlayer.bodyFrame.Y / drawinfo.drawPlayer.bodyFrame.Height];
|
|
vector2_2.Y -= 2f;
|
|
Vector2 position = vector2_1 + vector2_2;
|
|
float bodyRotation = drawinfo.drawPlayer.bodyRotation;
|
|
Vector2 vector2_3 = position;
|
|
Vector2 vector2_4 = position;
|
|
Vector2 bodyVect1 = drawinfo.bodyVect;
|
|
Vector2 bodyVect2 = drawinfo.bodyVect;
|
|
Vector2 compositeOffsetBackArm = PlayerDrawLayers.GetCompositeOffset_BackArm(ref drawinfo);
|
|
Vector2 vector2_5 = vector2_3 + compositeOffsetBackArm;
|
|
Vector2 vector2_6 = compositeOffsetBackArm;
|
|
Vector2 vector2_7 = bodyVect1 + vector2_6;
|
|
Vector2 compositeOffsetFrontArm = PlayerDrawLayers.GetCompositeOffset_FrontArm(ref drawinfo);
|
|
Vector2 vector2_8 = bodyVect2 + compositeOffsetFrontArm;
|
|
Vector2 vector2_9 = compositeOffsetFrontArm;
|
|
Vector2 vector2_10 = vector2_4 + vector2_9;
|
|
if (drawinfo.drawFloatingTube)
|
|
{
|
|
List<DrawData> drawDataCache = drawinfo.DrawDataCache;
|
|
drawData1 = new DrawData(TextureAssets.Extra[105].Value, position, new Rectangle?(new Rectangle(0, 0, 40, 56)), drawinfo.floatingTubeColor, bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.cFloatingTube;
|
|
DrawData drawData2 = drawData1;
|
|
drawDataCache.Add(drawData2);
|
|
}
|
|
List<DrawData> drawDataCache1 = drawinfo.DrawDataCache;
|
|
drawData1 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 3].Value, position, new Rectangle?(drawinfo.compTorsoFrame), drawinfo.colorBodySkin, bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.skinDyePacked;
|
|
DrawData drawData3 = drawData1;
|
|
drawDataCache1.Add(drawData3);
|
|
}
|
|
if (!drawinfo.hidesBottomSkin && !drawinfo.drawPlayer.invis && !PlayerDrawLayers.IsBottomOverridden(ref drawinfo))
|
|
{
|
|
if (drawinfo.isSitting)
|
|
{
|
|
PlayerDrawLayers.DrawSittingLegs(ref drawinfo, TextureAssets.Players[drawinfo.skinVar, 10].Value, drawinfo.colorLegs, drawinfo.skinDyePacked);
|
|
}
|
|
else
|
|
{
|
|
drawData1 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 10].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.legFrame), drawinfo.colorLegs, drawinfo.drawPlayer.legRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.skinDyePacked;
|
|
DrawData drawData4 = drawData1;
|
|
drawinfo.DrawDataCache.Add(drawData4);
|
|
}
|
|
}
|
|
PlayerDrawLayers.DrawPlayer_12_SkinComposite_BackArmShirt(ref drawinfo);
|
|
}
|
|
|
|
public static void DrawPlayer_12_SkinComposite_BackArmShirt(ref PlayerDrawSet drawinfo)
|
|
{
|
|
Vector2 vector2_1 = new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2));
|
|
Vector2 vector2_2 = Main.OffsetsPlayerHeadgear[drawinfo.drawPlayer.bodyFrame.Y / drawinfo.drawPlayer.bodyFrame.Height];
|
|
vector2_2.Y -= 2f;
|
|
Vector2 vector2_3 = vector2_1 + vector2_2 * (float) -drawinfo.playerEffect.HasFlag((Enum) SpriteEffects.FlipVertically).ToDirectionInt();
|
|
vector2_3.Y += drawinfo.torsoOffset;
|
|
float bodyRotation = drawinfo.drawPlayer.bodyRotation;
|
|
Vector2 vector2_4 = vector2_3;
|
|
Vector2 vector2_5 = vector2_3;
|
|
Vector2 bodyVect = drawinfo.bodyVect;
|
|
Vector2 compositeOffsetBackArm = PlayerDrawLayers.GetCompositeOffset_BackArm(ref drawinfo);
|
|
Vector2 position1 = vector2_4 + compositeOffsetBackArm;
|
|
Vector2 position2 = vector2_5 + drawinfo.backShoulderOffset;
|
|
Vector2 origin1 = bodyVect + compositeOffsetBackArm;
|
|
float rotation = bodyRotation + drawinfo.compositeBackArmRotation;
|
|
bool flag1 = !drawinfo.drawPlayer.invis;
|
|
bool flag2 = !drawinfo.drawPlayer.invis;
|
|
bool flag3 = drawinfo.drawPlayer.body > 0 && drawinfo.drawPlayer.body < 235;
|
|
bool flag4 = !drawinfo.hidesTopSkin;
|
|
bool flag5 = false;
|
|
DrawData drawData1;
|
|
if (flag3)
|
|
{
|
|
flag1 &= drawinfo.missingHand;
|
|
if (flag2 && drawinfo.missingArm)
|
|
{
|
|
if (flag4)
|
|
{
|
|
List<DrawData> drawDataCache = drawinfo.DrawDataCache;
|
|
drawData1 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 7].Value, position1, new Rectangle?(drawinfo.compBackArmFrame), drawinfo.colorBodySkin, rotation, origin1, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.skinDyePacked;
|
|
DrawData drawData2 = drawData1;
|
|
drawDataCache.Add(drawData2);
|
|
}
|
|
if (!flag5 & flag4)
|
|
{
|
|
List<DrawData> drawDataCache = drawinfo.DrawDataCache;
|
|
drawData1 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 5].Value, position1, new Rectangle?(drawinfo.compBackArmFrame), drawinfo.colorBodySkin, rotation, origin1, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.skinDyePacked;
|
|
DrawData drawData3 = drawData1;
|
|
drawDataCache.Add(drawData3);
|
|
flag5 = true;
|
|
}
|
|
flag2 = false;
|
|
}
|
|
if (!drawinfo.drawPlayer.invis || PlayerDrawLayers.IsArmorDrawnWhenInvisible(drawinfo.drawPlayer.body))
|
|
{
|
|
Texture2D texture = TextureAssets.ArmorBodyComposite[drawinfo.drawPlayer.body].Value;
|
|
if (!drawinfo.hideCompositeShoulders)
|
|
{
|
|
ref PlayerDrawSet local = ref drawinfo;
|
|
drawData1 = new DrawData(texture, position2, new Rectangle?(drawinfo.compBackShoulderFrame), drawinfo.colorArmorBody, bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.cBody;
|
|
DrawData data = drawData1;
|
|
PlayerDrawLayers.DrawCompositeArmorPiece(ref local, CompositePlayerDrawContext.BackShoulder, data);
|
|
}
|
|
ref PlayerDrawSet local1 = ref drawinfo;
|
|
drawData1 = new DrawData(texture, position1, new Rectangle?(drawinfo.compBackArmFrame), drawinfo.colorArmorBody, rotation, origin1, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.cBody;
|
|
DrawData data1 = drawData1;
|
|
PlayerDrawLayers.DrawCompositeArmorPiece(ref local1, CompositePlayerDrawContext.BackArm, data1);
|
|
}
|
|
}
|
|
if (flag1)
|
|
{
|
|
if (flag4)
|
|
{
|
|
if (flag2)
|
|
{
|
|
List<DrawData> drawDataCache = drawinfo.DrawDataCache;
|
|
drawData1 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 7].Value, position1, new Rectangle?(drawinfo.compBackArmFrame), drawinfo.colorBodySkin, rotation, origin1, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.skinDyePacked;
|
|
DrawData drawData4 = drawData1;
|
|
drawDataCache.Add(drawData4);
|
|
}
|
|
if (!flag5 & flag4)
|
|
{
|
|
List<DrawData> drawDataCache = drawinfo.DrawDataCache;
|
|
drawData1 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 5].Value, position1, new Rectangle?(drawinfo.compBackArmFrame), drawinfo.colorBodySkin, rotation, origin1, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.skinDyePacked;
|
|
DrawData drawData5 = drawData1;
|
|
drawDataCache.Add(drawData5);
|
|
}
|
|
}
|
|
if (!flag3)
|
|
{
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 8].Value, position1, new Rectangle?(drawinfo.compBackArmFrame), drawinfo.colorUnderShirt, rotation, origin1, 1f, drawinfo.playerEffect, 0));
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 13].Value, position1, new Rectangle?(drawinfo.compBackArmFrame), drawinfo.colorShirt, rotation, origin1, 1f, drawinfo.playerEffect, 0));
|
|
}
|
|
}
|
|
if (drawinfo.drawPlayer.handoff > (sbyte) 0 && drawinfo.drawPlayer.handoff < (sbyte) 14)
|
|
{
|
|
Texture2D texture = TextureAssets.AccHandsOffComposite[(int) drawinfo.drawPlayer.handoff].Value;
|
|
ref PlayerDrawSet local = ref drawinfo;
|
|
drawData1 = new DrawData(texture, position1, new Rectangle?(drawinfo.compBackArmFrame), drawinfo.colorArmorBody, rotation, origin1, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.cHandOff;
|
|
DrawData data = drawData1;
|
|
PlayerDrawLayers.DrawCompositeArmorPiece(ref local, CompositePlayerDrawContext.BackArmAccessory, data);
|
|
}
|
|
if (!drawinfo.drawPlayer.drawingFootball)
|
|
return;
|
|
Main.instance.LoadProjectile(861);
|
|
Texture2D texture2D = TextureAssets.Projectile[861].Value;
|
|
Rectangle r = texture2D.Frame(verticalFrames: 4);
|
|
Vector2 origin2 = r.Size() / 2f;
|
|
Vector2 position3 = position1 + new Vector2((float) (drawinfo.drawPlayer.direction * -2), drawinfo.drawPlayer.gravDir * 4f);
|
|
drawinfo.DrawDataCache.Add(new DrawData(texture2D, position3, new Rectangle?(r), drawinfo.colorArmorBody, bodyRotation + 0.7853982f * (float) drawinfo.drawPlayer.direction, origin2, 0.8f, drawinfo.playerEffect, 0));
|
|
}
|
|
|
|
public static void DrawPlayer_13_Leggings(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.isSitting && drawinfo.drawPlayer.legs != 140 && drawinfo.drawPlayer.legs != 217)
|
|
{
|
|
if (drawinfo.drawPlayer.legs > 0 && drawinfo.drawPlayer.legs < 218 && (!PlayerDrawLayers.ShouldOverrideLegs_CheckShoes(ref drawinfo) || drawinfo.drawPlayer.wearsRobe))
|
|
{
|
|
if (drawinfo.drawPlayer.invis)
|
|
return;
|
|
PlayerDrawLayers.DrawSittingLegs(ref drawinfo, TextureAssets.ArmorLeg[drawinfo.drawPlayer.legs].Value, drawinfo.colorArmorLegs, drawinfo.cLegs);
|
|
if (drawinfo.legsGlowMask == -1)
|
|
return;
|
|
PlayerDrawLayers.DrawSittingLegs(ref drawinfo, TextureAssets.GlowMask[drawinfo.legsGlowMask].Value, drawinfo.legsGlowColor, drawinfo.cLegs);
|
|
}
|
|
else
|
|
{
|
|
if (drawinfo.drawPlayer.invis || PlayerDrawLayers.ShouldOverrideLegs_CheckShoes(ref drawinfo))
|
|
return;
|
|
PlayerDrawLayers.DrawSittingLegs(ref drawinfo, TextureAssets.Players[drawinfo.skinVar, 11].Value, drawinfo.colorPants);
|
|
PlayerDrawLayers.DrawSittingLegs(ref drawinfo, TextureAssets.Players[drawinfo.skinVar, 12].Value, drawinfo.colorShoes);
|
|
}
|
|
}
|
|
else if (drawinfo.drawPlayer.legs == 140)
|
|
{
|
|
if (drawinfo.drawPlayer.invis || drawinfo.drawPlayer.mount.Active)
|
|
return;
|
|
Texture2D texture = TextureAssets.Extra[73].Value;
|
|
bool flag = drawinfo.drawPlayer.legFrame.Y != drawinfo.drawPlayer.legFrame.Height || Main.gameMenu;
|
|
int num1 = drawinfo.drawPlayer.miscCounter / 3 % 8;
|
|
if (flag)
|
|
num1 = drawinfo.drawPlayer.miscCounter / 4 % 8;
|
|
Rectangle r = new Rectangle(18 * flag.ToInt(), num1 * 26, 16, 24);
|
|
float num2 = 12f;
|
|
if (drawinfo.drawPlayer.bodyFrame.Height != 0)
|
|
num2 = 12f - Main.OffsetsPlayerHeadgear[drawinfo.drawPlayer.bodyFrame.Y / drawinfo.drawPlayer.bodyFrame.Height].Y;
|
|
Vector2 scale = new Vector2(1f, 1f);
|
|
Vector2 vector2_1 = drawinfo.Position + drawinfo.drawPlayer.Size * new Vector2(0.5f, (float) (0.5 + 0.5 * (double) drawinfo.drawPlayer.gravDir));
|
|
int direction = drawinfo.drawPlayer.direction;
|
|
Vector2 vector2_2 = new Vector2(0.0f, -num2 * drawinfo.drawPlayer.gravDir);
|
|
Vector2 vec = vector2_1 + vector2_2 - Main.screenPosition + drawinfo.drawPlayer.legPosition;
|
|
if (drawinfo.isSitting)
|
|
vec.Y += drawinfo.seatYOffset;
|
|
Vector2 position = vec.Floor();
|
|
drawinfo.DrawDataCache.Add(new DrawData(texture, position, new Rectangle?(r), drawinfo.colorArmorLegs, drawinfo.drawPlayer.legRotation, r.Size() * new Vector2(0.5f, (float) (0.5 - (double) drawinfo.drawPlayer.gravDir * 0.5)), scale, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cLegs
|
|
});
|
|
}
|
|
else if (drawinfo.drawPlayer.legs > 0 && drawinfo.drawPlayer.legs < 218 && (!PlayerDrawLayers.ShouldOverrideLegs_CheckShoes(ref drawinfo) || drawinfo.drawPlayer.wearsRobe))
|
|
{
|
|
if (drawinfo.drawPlayer.invis)
|
|
return;
|
|
DrawData drawData = new DrawData(TextureAssets.ArmorLeg[drawinfo.drawPlayer.legs].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.legFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.legFrame.Height + 4.0)) + drawinfo.drawPlayer.legPosition + drawinfo.legVect, new Rectangle?(drawinfo.drawPlayer.legFrame), drawinfo.colorArmorLegs, drawinfo.drawPlayer.legRotation, drawinfo.legVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cLegs;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
if (drawinfo.legsGlowMask == -1)
|
|
return;
|
|
if (drawinfo.legsGlowMask == 274)
|
|
{
|
|
for (int index = 0; index < 2; ++index)
|
|
{
|
|
Vector2 vector2 = new Vector2((float) Main.rand.Next(-10, 10) * 0.125f, (float) Main.rand.Next(-10, 10) * 0.125f);
|
|
drawData = new DrawData(TextureAssets.GlowMask[drawinfo.legsGlowMask].Value, vector2 + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.legFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.legFrame.Height + 4.0)) + drawinfo.drawPlayer.legPosition + drawinfo.legVect, new Rectangle?(drawinfo.drawPlayer.legFrame), drawinfo.legsGlowColor, drawinfo.drawPlayer.legRotation, drawinfo.legVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cLegs;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
drawData = new DrawData(TextureAssets.GlowMask[drawinfo.legsGlowMask].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.legFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.legFrame.Height + 4.0)) + drawinfo.drawPlayer.legPosition + drawinfo.legVect, new Rectangle?(drawinfo.drawPlayer.legFrame), drawinfo.legsGlowColor, drawinfo.drawPlayer.legRotation, drawinfo.legVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cLegs;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (drawinfo.drawPlayer.invis || PlayerDrawLayers.ShouldOverrideLegs_CheckShoes(ref drawinfo))
|
|
return;
|
|
DrawData drawData = new DrawData(TextureAssets.Players[drawinfo.skinVar, 11].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.legFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.legFrame.Height + 4.0)) + drawinfo.drawPlayer.legPosition + drawinfo.legVect, new Rectangle?(drawinfo.drawPlayer.legFrame), drawinfo.colorPants, drawinfo.drawPlayer.legRotation, drawinfo.legVect, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
drawData = new DrawData(TextureAssets.Players[drawinfo.skinVar, 12].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.legFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.legFrame.Height + 4.0)) + drawinfo.drawPlayer.legPosition + drawinfo.legVect, new Rectangle?(drawinfo.drawPlayer.legFrame), drawinfo.colorShoes, drawinfo.drawPlayer.legRotation, drawinfo.legVect, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
|
|
private static void DrawSittingLegs(
|
|
ref PlayerDrawSet drawinfo,
|
|
Texture2D textureToDraw,
|
|
Color matchingColor,
|
|
int shaderIndex = 0,
|
|
bool glowmask = false)
|
|
{
|
|
Vector2 vector2_1 = new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.legFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.legFrame.Height + 4.0)) + drawinfo.drawPlayer.legPosition + drawinfo.legVect;
|
|
Rectangle legFrame = drawinfo.drawPlayer.legFrame;
|
|
vector2_1.Y -= 2f;
|
|
vector2_1.Y += drawinfo.seatYOffset;
|
|
int num1 = 2;
|
|
int num2 = 42;
|
|
int num3 = 2;
|
|
int num4 = 2;
|
|
int num5 = 0;
|
|
int num6 = 0;
|
|
switch (drawinfo.drawPlayer.legs)
|
|
{
|
|
case 132:
|
|
num1 = -2;
|
|
num6 = 2;
|
|
break;
|
|
case 143:
|
|
num1 = 0;
|
|
num2 = 40;
|
|
break;
|
|
case 193:
|
|
case 194:
|
|
if (drawinfo.drawPlayer.body == 218)
|
|
{
|
|
num1 = -2;
|
|
num6 = 2;
|
|
vector2_1.Y += 2f;
|
|
break;
|
|
}
|
|
break;
|
|
case 210:
|
|
if (glowmask)
|
|
{
|
|
Vector2 vector2_2 = new Vector2((float) Main.rand.Next(-10, 10) * 0.125f, (float) Main.rand.Next(-10, 10) * 0.125f);
|
|
vector2_1 += vector2_2;
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
for (int index = num3; index >= 0; --index)
|
|
{
|
|
Vector2 position = vector2_1 + new Vector2((float) num1, 2f) * new Vector2((float) drawinfo.drawPlayer.direction, 1f);
|
|
Rectangle rectangle = legFrame;
|
|
rectangle.Y += index * 2;
|
|
rectangle.Y += num2;
|
|
rectangle.Height -= num2;
|
|
rectangle.Height -= index * 2;
|
|
if (index != num3)
|
|
rectangle.Height = 2;
|
|
position.X += (float) (drawinfo.drawPlayer.direction * num4 * index + num5 * drawinfo.drawPlayer.direction);
|
|
if (index != 0)
|
|
position.X += (float) (num6 * drawinfo.drawPlayer.direction);
|
|
position.Y += (float) num2;
|
|
drawinfo.DrawDataCache.Add(new DrawData(textureToDraw, position, new Rectangle?(rectangle), matchingColor, drawinfo.drawPlayer.legRotation, drawinfo.legVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = shaderIndex
|
|
});
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_14_Shoes(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.drawPlayer.shoe <= (sbyte) 0 || drawinfo.drawPlayer.shoe >= (sbyte) 25 || PlayerDrawLayers.ShouldOverrideLegs_CheckPants(ref drawinfo))
|
|
return;
|
|
if (drawinfo.isSitting)
|
|
PlayerDrawLayers.DrawSittingLegs(ref drawinfo, TextureAssets.AccShoes[(int) drawinfo.drawPlayer.shoe].Value, drawinfo.colorArmorLegs, drawinfo.cShoe);
|
|
else
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.AccShoes[(int) drawinfo.drawPlayer.shoe].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.legFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.legFrame.Height + 4.0)) + drawinfo.drawPlayer.legPosition + drawinfo.legVect, new Rectangle?(drawinfo.drawPlayer.legFrame), drawinfo.colorArmorLegs, drawinfo.drawPlayer.legRotation, drawinfo.legVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cShoe
|
|
});
|
|
}
|
|
|
|
public static void DrawPlayer_15_SkinLongCoat(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if ((drawinfo.skinVar == 3 || drawinfo.skinVar == 8 ? 1 : (drawinfo.skinVar == 7 ? 1 : 0)) == 0 || drawinfo.drawPlayer.body > 0 && drawinfo.drawPlayer.body < 235 || drawinfo.drawPlayer.invis)
|
|
return;
|
|
if (drawinfo.isSitting)
|
|
{
|
|
PlayerDrawLayers.DrawSittingLegs(ref drawinfo, TextureAssets.Players[drawinfo.skinVar, 14].Value, drawinfo.colorShirt);
|
|
}
|
|
else
|
|
{
|
|
DrawData drawData = new DrawData(TextureAssets.Players[drawinfo.skinVar, 14].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.legFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.legFrame.Height + 4.0)) + drawinfo.drawPlayer.legPosition + drawinfo.legVect, new Rectangle?(drawinfo.drawPlayer.legFrame), drawinfo.colorShirt, drawinfo.drawPlayer.legRotation, drawinfo.legVect, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_16_ArmorLongCoat(ref PlayerDrawSet drawinfo)
|
|
{
|
|
int i = -1;
|
|
switch (drawinfo.drawPlayer.body)
|
|
{
|
|
case 52:
|
|
i = !drawinfo.drawPlayer.Male ? 172 : 171;
|
|
break;
|
|
case 53:
|
|
i = !drawinfo.drawPlayer.Male ? 176 : 175;
|
|
break;
|
|
case 73:
|
|
i = 170;
|
|
break;
|
|
case 168:
|
|
i = 164;
|
|
break;
|
|
case 182:
|
|
i = 163;
|
|
break;
|
|
case 187:
|
|
i = 173;
|
|
break;
|
|
case 198:
|
|
i = 162;
|
|
break;
|
|
case 200:
|
|
i = 149;
|
|
break;
|
|
case 201:
|
|
i = 150;
|
|
break;
|
|
case 202:
|
|
i = 151;
|
|
break;
|
|
case 205:
|
|
i = 174;
|
|
break;
|
|
case 207:
|
|
i = 161;
|
|
break;
|
|
case 209:
|
|
i = 160;
|
|
break;
|
|
case 210:
|
|
i = !drawinfo.drawPlayer.Male ? 177 : 178;
|
|
break;
|
|
case 211:
|
|
i = !drawinfo.drawPlayer.Male ? 181 : 182;
|
|
break;
|
|
case 218:
|
|
i = 195;
|
|
break;
|
|
case 222:
|
|
i = !drawinfo.drawPlayer.Male ? 200 : 201;
|
|
break;
|
|
case 225:
|
|
i = 206;
|
|
break;
|
|
}
|
|
if (i == -1)
|
|
return;
|
|
Main.instance.LoadArmorLegs(i);
|
|
if (drawinfo.isSitting && i != 195)
|
|
PlayerDrawLayers.DrawSittingLegs(ref drawinfo, TextureAssets.ArmorLeg[i].Value, drawinfo.colorArmorBody, drawinfo.cBody);
|
|
else
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.ArmorLeg[i].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.legFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.legFrame.Height + 4.0)) + drawinfo.drawPlayer.legPosition + drawinfo.legVect, new Rectangle?(drawinfo.drawPlayer.legFrame), drawinfo.colorArmorBody, drawinfo.drawPlayer.legRotation, drawinfo.legVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cBody
|
|
});
|
|
}
|
|
|
|
public static void DrawPlayer_17_Torso(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.usesCompositeTorso)
|
|
PlayerDrawLayers.DrawPlayer_17_TorsoComposite(ref drawinfo);
|
|
else if (drawinfo.drawPlayer.body > 0 && drawinfo.drawPlayer.body < 235)
|
|
{
|
|
Rectangle bodyFrame = drawinfo.drawPlayer.bodyFrame;
|
|
int num = drawinfo.armorAdjust;
|
|
bodyFrame.X += num;
|
|
bodyFrame.Width -= num;
|
|
if (drawinfo.drawPlayer.direction == -1)
|
|
num = 0;
|
|
if (!drawinfo.drawPlayer.invis || drawinfo.drawPlayer.body != 21 && drawinfo.drawPlayer.body != 22)
|
|
{
|
|
DrawData drawData = new DrawData(drawinfo.drawPlayer.Male ? TextureAssets.ArmorBody[drawinfo.drawPlayer.body].Value : TextureAssets.FemaleBody[drawinfo.drawPlayer.body].Value, new Vector2((float) ((int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)) + num), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(bodyFrame), drawinfo.colorArmorBody, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cBody;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
if (drawinfo.bodyGlowMask != -1)
|
|
{
|
|
drawData = new DrawData(TextureAssets.GlowMask[drawinfo.bodyGlowMask].Value, new Vector2((float) ((int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)) + num), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(bodyFrame), drawinfo.bodyGlowColor, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cBody;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
if (!drawinfo.missingHand || drawinfo.drawPlayer.invis)
|
|
return;
|
|
DrawData drawData1 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 5].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorBodySkin, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.skinDyePacked
|
|
};
|
|
drawinfo.DrawDataCache.Add(drawData1);
|
|
}
|
|
else
|
|
{
|
|
if (drawinfo.drawPlayer.invis)
|
|
return;
|
|
if (!drawinfo.drawPlayer.Male)
|
|
{
|
|
DrawData drawData = new DrawData(TextureAssets.Players[drawinfo.skinVar, 4].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorUnderShirt, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
drawData = new DrawData(TextureAssets.Players[drawinfo.skinVar, 6].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorShirt, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
else
|
|
{
|
|
DrawData drawData = new DrawData(TextureAssets.Players[drawinfo.skinVar, 4].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorUnderShirt, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
drawData = new DrawData(TextureAssets.Players[drawinfo.skinVar, 6].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorShirt, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
DrawData drawData2 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 5].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorBodySkin, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.skinDyePacked
|
|
};
|
|
drawinfo.DrawDataCache.Add(drawData2);
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_17_TorsoComposite(ref PlayerDrawSet drawinfo)
|
|
{
|
|
Vector2 vector2_1 = new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2));
|
|
Vector2 vector2_2 = Main.OffsetsPlayerHeadgear[drawinfo.drawPlayer.bodyFrame.Y / drawinfo.drawPlayer.bodyFrame.Height];
|
|
vector2_2.Y -= 2f;
|
|
Vector2 position = vector2_1 + vector2_2 * (float) -drawinfo.playerEffect.HasFlag((Enum) SpriteEffects.FlipVertically).ToDirectionInt();
|
|
float bodyRotation = drawinfo.drawPlayer.bodyRotation;
|
|
Vector2 vector2_3 = position;
|
|
Vector2 bodyVect = drawinfo.bodyVect;
|
|
Vector2 compositeOffsetBackArm = PlayerDrawLayers.GetCompositeOffset_BackArm(ref drawinfo);
|
|
Vector2 vector2_4 = compositeOffsetBackArm;
|
|
Vector2 vector2_5 = vector2_3 + vector2_4;
|
|
Vector2 vector2_6 = bodyVect + compositeOffsetBackArm;
|
|
DrawData drawData1;
|
|
if (drawinfo.drawPlayer.body > 0 && drawinfo.drawPlayer.body < 235)
|
|
{
|
|
if (!drawinfo.drawPlayer.invis || PlayerDrawLayers.IsArmorDrawnWhenInvisible(drawinfo.drawPlayer.body))
|
|
{
|
|
Texture2D texture = TextureAssets.ArmorBodyComposite[drawinfo.drawPlayer.body].Value;
|
|
ref PlayerDrawSet local = ref drawinfo;
|
|
drawData1 = new DrawData(texture, position, new Rectangle?(drawinfo.compTorsoFrame), drawinfo.colorArmorBody, bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.cBody;
|
|
DrawData data = drawData1;
|
|
PlayerDrawLayers.DrawCompositeArmorPiece(ref local, CompositePlayerDrawContext.Torso, data);
|
|
}
|
|
}
|
|
else if (!drawinfo.drawPlayer.invis)
|
|
{
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 4].Value, position, new Rectangle?(drawinfo.compBackShoulderFrame), drawinfo.colorUnderShirt, bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0));
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 6].Value, position, new Rectangle?(drawinfo.compBackShoulderFrame), drawinfo.colorShirt, bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0));
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 4].Value, position, new Rectangle?(drawinfo.compTorsoFrame), drawinfo.colorUnderShirt, bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0));
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 6].Value, position, new Rectangle?(drawinfo.compTorsoFrame), drawinfo.colorShirt, bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0));
|
|
}
|
|
if (!drawinfo.drawFloatingTube)
|
|
return;
|
|
List<DrawData> drawDataCache = drawinfo.DrawDataCache;
|
|
drawData1 = new DrawData(TextureAssets.Extra[105].Value, position, new Rectangle?(new Rectangle(0, 56, 40, 56)), drawinfo.floatingTubeColor, bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.cFloatingTube;
|
|
DrawData drawData2 = drawData1;
|
|
drawDataCache.Add(drawData2);
|
|
}
|
|
|
|
public static void DrawPlayer_18_OffhandAcc(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.usesCompositeBackHandAcc || drawinfo.drawPlayer.handoff <= (sbyte) 0 || drawinfo.drawPlayer.handoff >= (sbyte) 14)
|
|
return;
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.AccHandsOff[(int) drawinfo.drawPlayer.handoff].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorArmorBody, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cHandOff
|
|
});
|
|
}
|
|
|
|
public static void DrawPlayer_19_WaistAcc(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.drawPlayer.waist <= (sbyte) 0 || drawinfo.drawPlayer.waist >= (sbyte) 17)
|
|
return;
|
|
Rectangle rectangle = drawinfo.drawPlayer.legFrame;
|
|
if (ArmorIDs.Waist.Sets.UsesTorsoFraming[(int) drawinfo.drawPlayer.waist])
|
|
rectangle = drawinfo.drawPlayer.bodyFrame;
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.AccWaist[(int) drawinfo.drawPlayer.waist].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.legFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.legFrame.Height + 4.0)) + drawinfo.drawPlayer.legPosition + drawinfo.legVect, new Rectangle?(rectangle), drawinfo.colorArmorLegs, drawinfo.drawPlayer.legRotation, drawinfo.legVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cWaist
|
|
});
|
|
}
|
|
|
|
public static void DrawPlayer_20_NeckAcc(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.drawPlayer.neck <= (sbyte) 0 || drawinfo.drawPlayer.neck >= (sbyte) 11)
|
|
return;
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.AccNeck[(int) drawinfo.drawPlayer.neck].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorArmorBody, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cNeck
|
|
});
|
|
}
|
|
|
|
public static void DrawPlayer_21_Head(ref PlayerDrawSet drawinfo)
|
|
{
|
|
Vector2 helmetOffset = drawinfo.helmetOffset;
|
|
PlayerDrawLayers.DrawPlayer_21_Head_TheFace(ref drawinfo);
|
|
bool flag1 = drawinfo.drawPlayer.head == 14 || drawinfo.drawPlayer.head == 56 || drawinfo.drawPlayer.head == 114 || drawinfo.drawPlayer.head == 158 || drawinfo.drawPlayer.head == 69 || drawinfo.drawPlayer.head == 180;
|
|
bool flag2 = drawinfo.drawPlayer.head == 28;
|
|
bool flag3 = drawinfo.drawPlayer.head == 39 || drawinfo.drawPlayer.head == 38;
|
|
DrawData drawData;
|
|
if (drawinfo.fullHair)
|
|
{
|
|
drawData = new DrawData(TextureAssets.ArmorHead[drawinfo.drawPlayer.head].Value, helmetOffset + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cHead;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
if (!drawinfo.drawPlayer.invis)
|
|
{
|
|
drawData = new DrawData(TextureAssets.PlayerHair[drawinfo.drawPlayer.hair].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.hairFrame), drawinfo.colorHair, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.hairDyePacked;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
if (drawinfo.hatHair && !drawinfo.drawPlayer.invis)
|
|
{
|
|
drawData = new DrawData(TextureAssets.PlayerHairAlt[drawinfo.drawPlayer.hair].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.hairFrame), drawinfo.colorHair, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.hairDyePacked;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
if (drawinfo.drawPlayer.head == 23)
|
|
{
|
|
if (!drawinfo.drawPlayer.invis)
|
|
{
|
|
drawData = new DrawData(TextureAssets.PlayerHair[drawinfo.drawPlayer.hair].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.hairFrame), drawinfo.colorHair, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.hairDyePacked;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
drawData = new DrawData(TextureAssets.ArmorHead[drawinfo.drawPlayer.head].Value, helmetOffset + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cHead;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
else if (flag1)
|
|
{
|
|
Rectangle bodyFrame = drawinfo.drawPlayer.bodyFrame;
|
|
Vector2 headVect = drawinfo.headVect;
|
|
if ((double) drawinfo.drawPlayer.gravDir == 1.0)
|
|
{
|
|
if (bodyFrame.Y != 0)
|
|
{
|
|
bodyFrame.Y -= 2;
|
|
bodyFrame.Height -= 8;
|
|
headVect.Y += 2f;
|
|
}
|
|
}
|
|
else if (bodyFrame.Y != 0)
|
|
{
|
|
bodyFrame.Y -= 2;
|
|
headVect.Y -= 10f;
|
|
bodyFrame.Height -= 8;
|
|
}
|
|
drawData = new DrawData(TextureAssets.ArmorHead[drawinfo.drawPlayer.head].Value, helmetOffset + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(bodyFrame), drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cHead;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
else if (drawinfo.drawPlayer.head == 259)
|
|
{
|
|
int verticalFrames = 27;
|
|
Texture2D texture2D = TextureAssets.ArmorHead[drawinfo.drawPlayer.head].Value;
|
|
Rectangle r = texture2D.Frame(verticalFrames: verticalFrames, frameY: drawinfo.drawPlayer.rabbitOrderFrame.DisplayFrame);
|
|
Vector2 origin = r.Size() / 2f;
|
|
int num1 = drawinfo.drawPlayer.babyBird.ToInt();
|
|
Vector2 specialHatDrawPosition = PlayerDrawLayers.DrawPlayer_21_Head_GetSpecialHatDrawPosition(ref drawinfo, ref helmetOffset, new Vector2((float) (1 + num1 * 2), (float) (drawinfo.drawPlayer.babyBird.ToInt() * -6 - 26)));
|
|
int hatStacks = PlayerDrawLayers.DrawPlayer_21_head_GetHatStacks(ref drawinfo, 4955);
|
|
float num2 = (float) Math.PI / 60f;
|
|
float num3 = (float) ((double) num2 * (double) drawinfo.drawPlayer.position.X % 6.28318548202515);
|
|
for (int index = hatStacks - 1; index >= 0; --index)
|
|
{
|
|
float x = (float) ((double) Vector2.UnitY.RotatedBy((double) num3 + (double) num2 * (double) index).X * ((double) index / 30.0) * 2.0) - (float) (index * 2 * drawinfo.drawPlayer.direction);
|
|
drawData = new DrawData(texture2D, specialHatDrawPosition + new Vector2(x, (float) (index * -14) * drawinfo.drawPlayer.gravDir), new Rectangle?(r), drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, origin, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cHead;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
if (!drawinfo.drawPlayer.invis)
|
|
{
|
|
drawData = new DrawData(TextureAssets.PlayerHair[drawinfo.drawPlayer.hair].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.hairFrame), drawinfo.colorHair, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.hairDyePacked;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
else if (drawinfo.drawPlayer.head > 0 && drawinfo.drawPlayer.head < 266 && !flag2)
|
|
{
|
|
if (!(drawinfo.drawPlayer.invis & flag3))
|
|
{
|
|
if (drawinfo.drawPlayer.head == 13)
|
|
{
|
|
int num4 = 0;
|
|
int index1 = 0;
|
|
if (drawinfo.drawPlayer.armor[index1] != null && drawinfo.drawPlayer.armor[index1].type == 205 && drawinfo.drawPlayer.armor[index1].stack > 0)
|
|
num4 += drawinfo.drawPlayer.armor[index1].stack;
|
|
int index2 = 10;
|
|
if (drawinfo.drawPlayer.armor[index2] != null && drawinfo.drawPlayer.armor[index2].type == 205 && drawinfo.drawPlayer.armor[index2].stack > 0)
|
|
num4 += drawinfo.drawPlayer.armor[index2].stack;
|
|
float num5 = (float) Math.PI / 60f;
|
|
float num6 = (float) ((double) num5 * (double) drawinfo.drawPlayer.position.X % 6.28318548202515);
|
|
for (int index3 = 0; index3 < num4; ++index3)
|
|
{
|
|
float num7 = (float) ((double) Vector2.UnitY.RotatedBy((double) num6 + (double) num5 * (double) index3).X * ((double) index3 / 30.0) * 2.0);
|
|
drawData = new DrawData(TextureAssets.ArmorHead[drawinfo.drawPlayer.head].Value, helmetOffset + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)) + num7, (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0 - (double) (4 * index3))) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cHead;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
else if (drawinfo.drawPlayer.head == 265)
|
|
{
|
|
int verticalFrames = 6;
|
|
Texture2D texture2D = TextureAssets.ArmorHead[drawinfo.drawPlayer.head].Value;
|
|
Rectangle r = texture2D.Frame(verticalFrames: verticalFrames, frameY: drawinfo.drawPlayer.rabbitOrderFrame.DisplayFrame);
|
|
Vector2 origin = r.Size() / 2f;
|
|
Vector2 specialHatDrawPosition = PlayerDrawLayers.DrawPlayer_21_Head_GetSpecialHatDrawPosition(ref drawinfo, ref helmetOffset, new Vector2(0.0f, -9f));
|
|
int hatStacks = PlayerDrawLayers.DrawPlayer_21_head_GetHatStacks(ref drawinfo, 5004);
|
|
float num8 = (float) Math.PI / 60f;
|
|
float num9 = (float) ((double) num8 * (double) drawinfo.drawPlayer.position.X % 6.28318548202515);
|
|
int num10 = hatStacks * 4 + 2;
|
|
int num11 = 0;
|
|
bool flag4 = ((double) Main.GlobalTimeWrappedHourly + 180.0) % 3600.0 < 60.0;
|
|
for (int index = num10 - 1; index >= 0; --index)
|
|
{
|
|
int num12 = 0;
|
|
if (index == num10 - 1)
|
|
{
|
|
r.Y = 0;
|
|
num12 = 2;
|
|
}
|
|
else
|
|
r.Y = index != 0 ? r.Height * (num11++ % 4 + 1) : r.Height * 5;
|
|
if (!(r.Y == r.Height * 3 & flag4))
|
|
{
|
|
float x = (float) ((double) Vector2.UnitY.RotatedBy((double) num9 + (double) num8 * (double) index).X * ((double) index / 10.0) * 4.0 - (double) index * 0.100000001490116 * (double) drawinfo.drawPlayer.direction);
|
|
drawData = new DrawData(texture2D, specialHatDrawPosition + new Vector2(x, (float) (index * -4 + num12) * drawinfo.drawPlayer.gravDir), new Rectangle?(r), drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, origin, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cHead;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
drawData = new DrawData(TextureAssets.ArmorHead[drawinfo.drawPlayer.head].Value, helmetOffset + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cHead;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
if (drawinfo.headGlowMask != -1)
|
|
{
|
|
if (drawinfo.headGlowMask == 273)
|
|
{
|
|
for (int index = 0; index < 2; ++index)
|
|
{
|
|
Vector2 vector2 = new Vector2((float) Main.rand.Next(-10, 10) * 0.125f, (float) Main.rand.Next(-10, 10) * 0.125f);
|
|
drawData = new DrawData(TextureAssets.GlowMask[drawinfo.headGlowMask].Value, vector2 + helmetOffset + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.headGlowColor, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cHead;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
drawData = new DrawData(TextureAssets.GlowMask[drawinfo.headGlowMask].Value, helmetOffset + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.headGlowColor, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cHead;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
if (drawinfo.drawPlayer.head == 211)
|
|
{
|
|
Color color = new Color(100, 100, 100, 0);
|
|
ulong seed = (ulong) (drawinfo.drawPlayer.miscCounter / 4 + 100);
|
|
int num = 4;
|
|
for (int index = 0; index < num; ++index)
|
|
{
|
|
float x = (float) Utils.RandomInt(ref seed, -10, 11) * 0.2f;
|
|
float y = (float) Utils.RandomInt(ref seed, -14, 1) * 0.15f;
|
|
drawData = new DrawData(TextureAssets.GlowMask[241].Value, helmetOffset + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect + new Vector2(x, y), new Rectangle?(drawinfo.drawPlayer.bodyFrame), color, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cHead;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else if (!drawinfo.drawPlayer.invis && (drawinfo.drawPlayer.face < (sbyte) 0 || !ArmorIDs.Face.Sets.PreventHairDraw[(int) drawinfo.drawPlayer.face]))
|
|
{
|
|
if (drawinfo.drawPlayer.face == (sbyte) 5)
|
|
{
|
|
drawData = new DrawData(TextureAssets.AccFace[(int) drawinfo.drawPlayer.face].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cFace;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
drawData = new DrawData(TextureAssets.PlayerHair[drawinfo.drawPlayer.hair].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.hairFrame), drawinfo.colorHair, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.hairDyePacked;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
if (drawinfo.drawPlayer.head == 205)
|
|
{
|
|
drawData = new DrawData(TextureAssets.Extra[77].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.skinDyePacked
|
|
};
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
if (drawinfo.drawPlayer.head == 214 && !drawinfo.drawPlayer.invis)
|
|
{
|
|
Rectangle bodyFrame = drawinfo.drawPlayer.bodyFrame;
|
|
bodyFrame.Y = 0;
|
|
float t = (float) drawinfo.drawPlayer.miscCounter / 300f;
|
|
Color color = new Color(0, 0, 0, 0);
|
|
float from = 0.8f;
|
|
float to = 0.9f;
|
|
if ((double) t >= (double) from)
|
|
color = Color.Lerp(Color.Transparent, new Color(200, 200, 200, 0), Utils.GetLerpValue(from, to, t, true));
|
|
if ((double) t >= (double) to)
|
|
color = Color.Lerp(Color.Transparent, new Color(200, 200, 200, 0), Utils.GetLerpValue(1f, to, t, true));
|
|
color *= drawinfo.stealth * (1f - drawinfo.shadow);
|
|
drawData = new DrawData(TextureAssets.Extra[90].Value, helmetOffset + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect - Main.OffsetsPlayerHeadgear[drawinfo.drawPlayer.bodyFrame.Y / drawinfo.drawPlayer.bodyFrame.Height], new Rectangle?(bodyFrame), color, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
if (drawinfo.drawPlayer.head == 137)
|
|
{
|
|
drawData = new DrawData(TextureAssets.JackHat.Value, helmetOffset + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue), drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
for (int index = 0; index < 7; ++index)
|
|
{
|
|
Color color = new Color(110 - index * 10, 110 - index * 10, 110 - index * 10, 110 - index * 10);
|
|
Vector2 vector2 = new Vector2((float) Main.rand.Next(-10, 11) * 0.2f, (float) Main.rand.Next(-10, 11) * 0.2f);
|
|
vector2.X = drawinfo.drawPlayer.itemFlamePos[index].X;
|
|
vector2.Y = drawinfo.drawPlayer.itemFlamePos[index].Y;
|
|
vector2 *= 0.5f;
|
|
drawData = new DrawData(TextureAssets.JackHat.Value, helmetOffset + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect + vector2, new Rectangle?(drawinfo.drawPlayer.bodyFrame), color, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
if (!drawinfo.drawPlayer.babyBird)
|
|
return;
|
|
Rectangle bodyFrame1 = drawinfo.drawPlayer.bodyFrame;
|
|
bodyFrame1.Y = 0;
|
|
drawData = new DrawData(TextureAssets.Extra[100].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect + Main.OffsetsPlayerHeadgear[drawinfo.drawPlayer.bodyFrame.Y / drawinfo.drawPlayer.bodyFrame.Height] * drawinfo.drawPlayer.gravDir, new Rectangle?(bodyFrame1), drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
|
|
private static int DrawPlayer_21_head_GetHatStacks(ref PlayerDrawSet drawinfo, int hatItemId)
|
|
{
|
|
int num = 0;
|
|
int index1 = 0;
|
|
if (drawinfo.drawPlayer.armor[index1] != null && drawinfo.drawPlayer.armor[index1].type == hatItemId && drawinfo.drawPlayer.armor[index1].stack > 0)
|
|
num += drawinfo.drawPlayer.armor[index1].stack;
|
|
int index2 = 10;
|
|
if (drawinfo.drawPlayer.armor[index2] != null && drawinfo.drawPlayer.armor[index2].type == hatItemId && drawinfo.drawPlayer.armor[index2].stack > 0)
|
|
num += drawinfo.drawPlayer.armor[index2].stack;
|
|
return num;
|
|
}
|
|
|
|
private static Vector2 DrawPlayer_21_Head_GetSpecialHatDrawPosition(
|
|
ref PlayerDrawSet drawinfo,
|
|
ref Vector2 helmetOffset,
|
|
Vector2 hatOffset)
|
|
{
|
|
Vector2 vector2 = Main.OffsetsPlayerHeadgear[drawinfo.drawPlayer.bodyFrame.Y / drawinfo.drawPlayer.bodyFrame.Height] * drawinfo.drawPlayer.Directions;
|
|
Vector2 vec = (drawinfo.Position - Main.screenPosition + helmetOffset + new Vector2((float) (-drawinfo.drawPlayer.bodyFrame.Width / 2 + drawinfo.drawPlayer.width / 2), (float) (drawinfo.drawPlayer.height - drawinfo.drawPlayer.bodyFrame.Height + 4)) + hatOffset * drawinfo.drawPlayer.Directions + vector2).Floor() + (drawinfo.drawPlayer.headPosition + drawinfo.headVect);
|
|
if ((double) drawinfo.drawPlayer.gravDir == -1.0)
|
|
vec.Y += 12f;
|
|
vec = vec.Floor();
|
|
return vec;
|
|
}
|
|
|
|
private static void DrawPlayer_21_Head_TheFace(ref PlayerDrawSet drawinfo)
|
|
{
|
|
bool flag = drawinfo.drawPlayer.head == 38 && drawinfo.drawPlayer.head == 135;
|
|
if (drawinfo.drawPlayer.invis || flag)
|
|
return;
|
|
DrawData drawData1 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 0].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.skinDyePacked;
|
|
DrawData drawData2 = drawData1;
|
|
drawinfo.DrawDataCache.Add(drawData2);
|
|
drawData2 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 1].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorEyeWhites, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData2);
|
|
drawData2 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 2].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorEyes, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData2);
|
|
Asset<Texture2D> player = TextureAssets.Players[drawinfo.skinVar, 15];
|
|
if (player.IsLoaded)
|
|
{
|
|
Vector2 vector2 = Main.OffsetsPlayerHeadgear[drawinfo.drawPlayer.bodyFrame.Y / drawinfo.drawPlayer.bodyFrame.Height];
|
|
vector2.Y -= 2f;
|
|
Rectangle rectangle = player.Frame(verticalFrames: 3, frameY: drawinfo.drawPlayer.eyeHelper.EyeFrameToShow);
|
|
drawData1 = new DrawData(player.Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect + vector2, new Rectangle?(rectangle), drawinfo.colorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.skinDyePacked;
|
|
DrawData drawData3 = drawData1;
|
|
drawinfo.DrawDataCache.Add(drawData3);
|
|
}
|
|
if (!drawinfo.drawPlayer.yoraiz0rDarkness)
|
|
return;
|
|
drawData1 = new DrawData(TextureAssets.Extra[67].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.skinDyePacked;
|
|
DrawData drawData4 = drawData1;
|
|
drawinfo.DrawDataCache.Add(drawData4);
|
|
}
|
|
|
|
public static void DrawPlayer_22_FaceAcc(ref PlayerDrawSet drawinfo)
|
|
{
|
|
DrawData drawData;
|
|
if (drawinfo.drawPlayer.face > (sbyte) 0 && drawinfo.drawPlayer.face < (sbyte) 16 && drawinfo.drawPlayer.face != (sbyte) 5)
|
|
{
|
|
if (drawinfo.drawPlayer.face == (sbyte) 7)
|
|
{
|
|
drawData = new DrawData(TextureAssets.AccFace[(int) drawinfo.drawPlayer.face].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), new Color(200, 200, 200, 150), drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cFace;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
else
|
|
{
|
|
drawData = new DrawData(TextureAssets.AccFace[(int) drawinfo.drawPlayer.face].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cFace;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
if (!drawinfo.drawUnicornHorn)
|
|
return;
|
|
drawData = new DrawData(TextureAssets.Extra[143].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.headPosition + drawinfo.headVect, new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorArmorHead, drawinfo.drawPlayer.headRotation, drawinfo.headVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cUnicornHorn;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
|
|
public static void DrawTiedBalloons(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.drawPlayer.mount.Type != 34)
|
|
return;
|
|
Texture2D texture2D = TextureAssets.Extra[141].Value;
|
|
Vector2 vector2 = new Vector2(0.0f, 4f);
|
|
Color colorMount = drawinfo.colorMount;
|
|
int frameY = (int) ((double) Main.GlobalTimeWrappedHourly * 3.0 + (double) drawinfo.drawPlayer.position.X / 50.0) % 3;
|
|
Rectangle rectangle = texture2D.Frame(verticalFrames: 3, frameY: frameY);
|
|
Vector2 origin = new Vector2((float) (rectangle.Width / 2), (float) rectangle.Height);
|
|
float rotation = (float) (-(double) drawinfo.drawPlayer.velocity.X * 0.100000001490116) - drawinfo.drawPlayer.fullRotation;
|
|
DrawData drawData = new DrawData(texture2D, drawinfo.drawPlayer.MountedCenter + vector2 - Main.screenPosition, new Rectangle?(rectangle), colorMount, rotation, origin, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
|
|
public static void DrawStarboardRainbowTrail(
|
|
ref PlayerDrawSet drawinfo,
|
|
Vector2 commonWingPosPreFloor,
|
|
Vector2 dirsVec)
|
|
{
|
|
if ((double) drawinfo.shadow != 0.0)
|
|
return;
|
|
int num1 = Math.Min(drawinfo.drawPlayer.availableAdvancedShadowsCount - 1, 30);
|
|
float num2 = 0.0f;
|
|
for (int shadowIndex = num1; shadowIndex > 0; --shadowIndex)
|
|
{
|
|
EntityShadowInfo advancedShadow1 = drawinfo.drawPlayer.GetAdvancedShadow(shadowIndex);
|
|
EntityShadowInfo advancedShadow2 = drawinfo.drawPlayer.GetAdvancedShadow(shadowIndex - 1);
|
|
num2 += Vector2.Distance(advancedShadow1.Position, advancedShadow2.Position);
|
|
}
|
|
float num3 = MathHelper.Clamp(num2 / 160f, 0.0f, 1f);
|
|
Main.instance.LoadProjectile(250);
|
|
Texture2D texture = TextureAssets.Projectile[250].Value;
|
|
float x = 1.7f;
|
|
Vector2 origin = new Vector2((float) (texture.Width / 2), (float) (texture.Height / 2));
|
|
Vector2 vector2_1 = new Vector2((float) drawinfo.drawPlayer.width, (float) drawinfo.drawPlayer.height) / 2f;
|
|
Color white = Color.White;
|
|
white.A = (byte) 64;
|
|
Vector2 vector2_2 = drawinfo.drawPlayer.DefaultSize * new Vector2(0.5f, 1f) + new Vector2(0.0f, -4f);
|
|
for (int shadowIndex = num1; shadowIndex > 0; --shadowIndex)
|
|
{
|
|
EntityShadowInfo advancedShadow3 = drawinfo.drawPlayer.GetAdvancedShadow(shadowIndex);
|
|
EntityShadowInfo advancedShadow4 = drawinfo.drawPlayer.GetAdvancedShadow(shadowIndex - 1);
|
|
Vector2 pos1 = advancedShadow3.Position + vector2_2 + advancedShadow3.HeadgearOffset;
|
|
Vector2 pos2 = advancedShadow4.Position + vector2_2 + advancedShadow4.HeadgearOffset;
|
|
Vector2 vector2_3 = drawinfo.drawPlayer.RotatedRelativePoint(pos1, true, false);
|
|
Vector2 vector2_4 = drawinfo.drawPlayer.RotatedRelativePoint(pos2, true, false);
|
|
float num4 = (vector2_4 - vector2_3).ToRotation() - 1.570796f;
|
|
float rotation = 1.570796f * (float) drawinfo.drawPlayer.direction;
|
|
float t = Math.Abs(vector2_4.X - vector2_3.X);
|
|
Vector2 scale = new Vector2(x, t / (float) texture.Height);
|
|
float num5 = (float) (1.0 - (double) shadowIndex / (double) num1);
|
|
float num6 = num5 * num5 * Utils.GetLerpValue(0.0f, 4f, t, true) * 0.5f;
|
|
float num7 = num6 * num6;
|
|
Color color = white * num7 * num3;
|
|
if (!(color == Color.Transparent))
|
|
{
|
|
DrawData drawData = new DrawData(texture, vector2_3 - Main.screenPosition, new Rectangle?(), color, rotation, origin, scale, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
for (float amount = 0.25f; (double) amount < 1.0; amount += 0.25f)
|
|
{
|
|
drawData = new DrawData(texture, Vector2.Lerp(vector2_3, vector2_4, amount) - Main.screenPosition, new Rectangle?(), color, rotation, origin, scale, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cWings;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void DrawMeowcartTrail(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.drawPlayer.mount.Type != 33)
|
|
return;
|
|
int num1 = Math.Min(drawinfo.drawPlayer.availableAdvancedShadowsCount - 1, 20);
|
|
float num2 = 0.0f;
|
|
for (int shadowIndex = num1; shadowIndex > 0; --shadowIndex)
|
|
{
|
|
EntityShadowInfo advancedShadow1 = drawinfo.drawPlayer.GetAdvancedShadow(shadowIndex);
|
|
EntityShadowInfo advancedShadow2 = drawinfo.drawPlayer.GetAdvancedShadow(shadowIndex - 1);
|
|
num2 += Vector2.Distance(advancedShadow1.Position, advancedShadow2.Position);
|
|
}
|
|
float num3 = MathHelper.Clamp(num2 / 160f, 0.0f, 1f);
|
|
Main.instance.LoadProjectile(250);
|
|
Texture2D texture = TextureAssets.Projectile[250].Value;
|
|
float x = 1.5f;
|
|
Vector2 origin = new Vector2((float) (texture.Width / 2), 0.0f);
|
|
Vector2 vector2_1 = new Vector2((float) drawinfo.drawPlayer.width, (float) drawinfo.drawPlayer.height) / 2f;
|
|
Vector2 vector2_2 = new Vector2((float) (-drawinfo.drawPlayer.direction * 10), 15f);
|
|
Color white = Color.White;
|
|
white.A = (byte) 127;
|
|
Vector2 vector2_3 = vector2_2;
|
|
Vector2 vector2_4 = vector2_1 + vector2_3;
|
|
Vector2 zero = Vector2.Zero;
|
|
Vector2 vector2_5 = drawinfo.drawPlayer.RotatedRelativePoint(drawinfo.drawPlayer.Center + zero + vector2_2) - drawinfo.drawPlayer.position;
|
|
for (int shadowIndex = num1; shadowIndex > 0; --shadowIndex)
|
|
{
|
|
EntityShadowInfo advancedShadow3 = drawinfo.drawPlayer.GetAdvancedShadow(shadowIndex);
|
|
EntityShadowInfo advancedShadow4 = drawinfo.drawPlayer.GetAdvancedShadow(shadowIndex - 1);
|
|
Vector2 vector2_6 = advancedShadow3.Position + zero;
|
|
Vector2 vector2_7 = advancedShadow4.Position + zero;
|
|
Vector2 pos1 = vector2_6 + vector2_5;
|
|
Vector2 pos2 = vector2_7 + vector2_5;
|
|
Vector2 vector2_8 = drawinfo.drawPlayer.RotatedRelativePoint(pos1, true, false);
|
|
Vector2 vector2_9 = drawinfo.drawPlayer.RotatedRelativePoint(pos2, true, false);
|
|
float rotation = (vector2_9 - vector2_8).ToRotation() - 1.570796f;
|
|
float num4 = Vector2.Distance(vector2_8, vector2_9);
|
|
Vector2 scale = new Vector2(x, num4 / (float) texture.Height);
|
|
float num5 = (float) (1.0 - (double) shadowIndex / (double) num1);
|
|
float num6 = num5 * num5;
|
|
Color color = white * num6 * num3;
|
|
DrawData drawData = new DrawData(texture, vector2_8 - Main.screenPosition, new Rectangle?(), color, rotation, origin, scale, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_23_MountFront(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (!drawinfo.drawPlayer.mount.Active)
|
|
return;
|
|
drawinfo.drawPlayer.mount.Draw(drawinfo.DrawDataCache, 2, drawinfo.drawPlayer, drawinfo.Position, drawinfo.colorMount, drawinfo.playerEffect, drawinfo.shadow);
|
|
drawinfo.drawPlayer.mount.Draw(drawinfo.DrawDataCache, 3, drawinfo.drawPlayer, drawinfo.Position, drawinfo.colorMount, drawinfo.playerEffect, drawinfo.shadow);
|
|
}
|
|
|
|
public static void DrawPlayer_24_Pulley(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (!drawinfo.drawPlayer.pulley || drawinfo.drawPlayer.itemAnimation != 0)
|
|
return;
|
|
if (drawinfo.drawPlayer.pulleyDir == (byte) 2)
|
|
{
|
|
int num1 = -25;
|
|
int num2 = 0;
|
|
float rotation = 0.0f;
|
|
DrawData drawData = new DrawData(TextureAssets.Pulley.Value, new Vector2((float) ((int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X + (double) (drawinfo.drawPlayer.width / 2) - (double) (9 * drawinfo.drawPlayer.direction)) + num2 * drawinfo.drawPlayer.direction), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) (drawinfo.drawPlayer.height / 2) + 2.0 * (double) drawinfo.drawPlayer.gravDir + (double) num1 * (double) drawinfo.drawPlayer.gravDir)), new Rectangle?(new Rectangle(0, TextureAssets.Pulley.Height() / 2 * drawinfo.drawPlayer.pulleyFrame, TextureAssets.Pulley.Width(), TextureAssets.Pulley.Height() / 2)), drawinfo.colorArmorHead, rotation, new Vector2((float) (TextureAssets.Pulley.Width() / 2), (float) (TextureAssets.Pulley.Height() / 4)), 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
else
|
|
{
|
|
int num3 = -26;
|
|
int num4 = 10;
|
|
float rotation = 0.35f * (float) -drawinfo.drawPlayer.direction;
|
|
DrawData drawData = new DrawData(TextureAssets.Pulley.Value, new Vector2((float) ((int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X + (double) (drawinfo.drawPlayer.width / 2) - (double) (9 * drawinfo.drawPlayer.direction)) + num4 * drawinfo.drawPlayer.direction), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) (drawinfo.drawPlayer.height / 2) + 2.0 * (double) drawinfo.drawPlayer.gravDir + (double) num3 * (double) drawinfo.drawPlayer.gravDir)), new Rectangle?(new Rectangle(0, TextureAssets.Pulley.Height() / 2 * drawinfo.drawPlayer.pulleyFrame, TextureAssets.Pulley.Width(), TextureAssets.Pulley.Height() / 2)), drawinfo.colorArmorHead, rotation, new Vector2((float) (TextureAssets.Pulley.Width() / 2), (float) (TextureAssets.Pulley.Height() / 4)), 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_25_Shield(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.drawPlayer.shield <= (sbyte) 0 || drawinfo.drawPlayer.shield >= (sbyte) 10)
|
|
return;
|
|
Vector2 zero1 = Vector2.Zero;
|
|
if (drawinfo.drawPlayer.shieldRaised)
|
|
zero1.Y -= 4f * drawinfo.drawPlayer.gravDir;
|
|
Rectangle bodyFrame = drawinfo.drawPlayer.bodyFrame;
|
|
Vector2 zero2 = Vector2.Zero;
|
|
Vector2 bodyVect = drawinfo.bodyVect;
|
|
if (bodyFrame.Width != TextureAssets.AccShield[(int) drawinfo.drawPlayer.shield].Value.Width)
|
|
{
|
|
bodyFrame.Width = TextureAssets.AccShield[(int) drawinfo.drawPlayer.shield].Value.Width;
|
|
bodyVect.X += (float) (bodyFrame.Width - TextureAssets.AccShield[(int) drawinfo.drawPlayer.shield].Value.Width);
|
|
if (drawinfo.playerEffect.HasFlag((Enum) SpriteEffects.FlipHorizontally))
|
|
bodyVect.X = (float) bodyFrame.Width - bodyVect.X;
|
|
}
|
|
DrawData drawData;
|
|
if (drawinfo.drawPlayer.shieldRaised)
|
|
{
|
|
float num1 = (float) Math.Sin((double) Main.GlobalTimeWrappedHourly * 6.28318548202515);
|
|
float x = (float) (2.5 + 1.5 * (double) num1);
|
|
Color colorArmorBody = drawinfo.colorArmorBody;
|
|
colorArmorBody.A = (byte) 0;
|
|
colorArmorBody *= (float) (0.449999988079071 - (double) num1 * 0.150000005960464);
|
|
for (float num2 = 0.0f; (double) num2 < 4.0; ++num2)
|
|
{
|
|
drawData = new DrawData(TextureAssets.AccShield[(int) drawinfo.drawPlayer.shield].Value, zero2 + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)) + zero1 + new Vector2(x, 0.0f).RotatedBy((double) num2 / 4.0 * 6.28318548202515), new Rectangle?(bodyFrame), colorArmorBody, drawinfo.drawPlayer.bodyRotation, bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cShield;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
drawData = new DrawData(TextureAssets.AccShield[(int) drawinfo.drawPlayer.shield].Value, zero2 + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)) + zero1, new Rectangle?(bodyFrame), drawinfo.colorArmorBody, drawinfo.drawPlayer.bodyRotation, bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cShield;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
if (drawinfo.drawPlayer.shieldRaised)
|
|
{
|
|
Color colorArmorBody = drawinfo.colorArmorBody;
|
|
float num = (float) Math.Sin((double) Main.GlobalTimeWrappedHourly * 3.14159274101257);
|
|
colorArmorBody.A = (byte) ((double) colorArmorBody.A * (0.5 + 0.5 * (double) num));
|
|
colorArmorBody *= (float) (0.5 + 0.5 * (double) num);
|
|
drawData = new DrawData(TextureAssets.AccShield[(int) drawinfo.drawPlayer.shield].Value, zero2 + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)) + zero1, new Rectangle?(bodyFrame), colorArmorBody, drawinfo.drawPlayer.bodyRotation, bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cShield;
|
|
}
|
|
if (drawinfo.drawPlayer.shieldRaised && drawinfo.drawPlayer.shieldParryTimeLeft > 0)
|
|
{
|
|
float num3 = (float) drawinfo.drawPlayer.shieldParryTimeLeft / 20f;
|
|
float num4 = 1.5f * num3;
|
|
Vector2 vector2_1 = zero2 + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)) + zero1;
|
|
Color colorArmorBody = drawinfo.colorArmorBody;
|
|
float num5 = 1f;
|
|
Vector2 vector2_2 = drawinfo.Position + drawinfo.drawPlayer.Size / 2f - Main.screenPosition;
|
|
Vector2 vector2_3 = vector2_1 - vector2_2;
|
|
Vector2 position = vector2_1 + vector2_3 * num4;
|
|
float scale = num5 + num4;
|
|
colorArmorBody.A = (byte) ((double) colorArmorBody.A * (1.0 - (double) num3));
|
|
Color color = colorArmorBody * (1f - num3);
|
|
drawData = new DrawData(TextureAssets.AccShield[(int) drawinfo.drawPlayer.shield].Value, position, new Rectangle?(bodyFrame), color, drawinfo.drawPlayer.bodyRotation, bodyVect, scale, drawinfo.playerEffect, 0);
|
|
drawData.shader = drawinfo.cShield;
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
if (!drawinfo.drawPlayer.mount.Cart)
|
|
return;
|
|
drawinfo.DrawDataCache.Reverse(drawinfo.DrawDataCache.Count - 2, 2);
|
|
}
|
|
|
|
public static void DrawPlayer_26_SolarShield(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.drawPlayer.solarShields <= 0 || (double) drawinfo.shadow != 0.0 || drawinfo.drawPlayer.dead)
|
|
return;
|
|
Texture2D texture2D = TextureAssets.Extra[61 + drawinfo.drawPlayer.solarShields - 1].Value;
|
|
Color color = new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, (int) sbyte.MaxValue);
|
|
float rotation1 = (drawinfo.drawPlayer.solarShieldPos[0] * new Vector2(1f, 0.5f)).ToRotation();
|
|
if (drawinfo.drawPlayer.direction == -1)
|
|
rotation1 += 3.141593f;
|
|
float rotation2 = rotation1 + 0.06283186f * (float) drawinfo.drawPlayer.direction;
|
|
drawinfo.DrawDataCache.Add(new DrawData(texture2D, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) (drawinfo.drawPlayer.height / 2))) + drawinfo.drawPlayer.solarShieldPos[0], new Rectangle?(), color, rotation2, texture2D.Size() / 2f, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cBody
|
|
});
|
|
}
|
|
|
|
public static void DrawPlayer_27_HeldItem(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.drawPlayer.JustDroppedAnItem)
|
|
return;
|
|
if (drawinfo.drawPlayer.heldProj >= 0 && (double) drawinfo.shadow == 0.0 && !drawinfo.heldProjOverHand)
|
|
drawinfo.projectileDrawPosition = drawinfo.DrawDataCache.Count;
|
|
Item heldItem = drawinfo.heldItem;
|
|
int index1 = heldItem.type;
|
|
if (index1 == 8 && drawinfo.drawPlayer.UsingBiomeTorches)
|
|
index1 = drawinfo.drawPlayer.BiomeTorchHoldStyle(index1);
|
|
float scale = heldItem.scale;
|
|
Main.instance.LoadItem(index1);
|
|
Texture2D texture2D1 = TextureAssets.Item[index1].Value;
|
|
Vector2 position = new Vector2((float) (int) ((double) drawinfo.ItemLocation.X - (double) Main.screenPosition.X), (float) (int) ((double) drawinfo.ItemLocation.Y - (double) Main.screenPosition.Y));
|
|
Rectangle? sourceRect = new Rectangle?(new Rectangle(0, 0, texture2D1.Width, texture2D1.Height));
|
|
if (index1 == 75)
|
|
sourceRect = new Rectangle?(texture2D1.Frame(verticalFrames: 8));
|
|
if (ItemID.Sets.IsFood[index1])
|
|
sourceRect = new Rectangle?(texture2D1.Frame(verticalFrames: 3, frameY: 1));
|
|
drawinfo.itemColor = Lighting.GetColor((int) ((double) drawinfo.Position.X + (double) drawinfo.drawPlayer.width * 0.5) / 16, (int) (((double) drawinfo.Position.Y + (double) drawinfo.drawPlayer.height * 0.5) / 16.0));
|
|
if (index1 == 678)
|
|
drawinfo.itemColor = Color.White;
|
|
if (drawinfo.drawPlayer.shroomiteStealth && heldItem.ranged)
|
|
{
|
|
float num1 = drawinfo.drawPlayer.stealth;
|
|
if ((double) num1 < 0.03)
|
|
num1 = 0.03f;
|
|
float num2 = (float) ((1.0 + (double) num1 * 10.0) / 11.0);
|
|
drawinfo.itemColor = new Color((int) (byte) ((double) drawinfo.itemColor.R * (double) num1), (int) (byte) ((double) drawinfo.itemColor.G * (double) num1), (int) (byte) ((double) drawinfo.itemColor.B * (double) num2), (int) (byte) ((double) drawinfo.itemColor.A * (double) num1));
|
|
}
|
|
if (drawinfo.drawPlayer.setVortex && heldItem.ranged)
|
|
{
|
|
float num3 = drawinfo.drawPlayer.stealth;
|
|
if ((double) num3 < 0.03)
|
|
num3 = 0.03f;
|
|
double num4 = (1.0 + (double) num3 * 10.0) / 11.0;
|
|
drawinfo.itemColor = drawinfo.itemColor.MultiplyRGBA(new Color(Vector4.Lerp(Vector4.One, new Vector4(0.0f, 0.12f, 0.16f, 0.0f), 1f - num3)));
|
|
}
|
|
bool flag1 = drawinfo.drawPlayer.itemAnimation > 0 && (uint) heldItem.useStyle > 0U;
|
|
bool flag2 = heldItem.holdStyle != 0 && !drawinfo.drawPlayer.pulley;
|
|
if (!drawinfo.drawPlayer.CanVisuallyHoldItem(heldItem))
|
|
flag2 = false;
|
|
if ((double) drawinfo.shadow != 0.0 || drawinfo.drawPlayer.frozen || !(flag1 | flag2) || index1 <= 0 || drawinfo.drawPlayer.dead || heldItem.noUseGraphic || drawinfo.drawPlayer.wet && heldItem.noWet || drawinfo.drawPlayer.happyFunTorchTime && drawinfo.drawPlayer.inventory[drawinfo.drawPlayer.selectedItem].createTile == 4 && drawinfo.drawPlayer.itemAnimation == 0)
|
|
return;
|
|
string name = drawinfo.drawPlayer.name;
|
|
Color color1 = new Color(250, 250, 250, heldItem.alpha);
|
|
Vector2 vector2_1 = Vector2.Zero;
|
|
if (index1 == 3823)
|
|
vector2_1 = new Vector2((float) (7 * drawinfo.drawPlayer.direction), -7f * drawinfo.drawPlayer.gravDir);
|
|
if (index1 == 3827)
|
|
{
|
|
vector2_1 = new Vector2((float) (13 * drawinfo.drawPlayer.direction), -13f * drawinfo.drawPlayer.gravDir);
|
|
color1 = heldItem.GetAlpha(drawinfo.itemColor);
|
|
color1 = Color.Lerp(color1, Color.White, 0.6f);
|
|
color1.A = (byte) 66;
|
|
}
|
|
Vector2 vector2_2 = new Vector2((float) ((double) sourceRect.Value.Width * 0.5 - (double) sourceRect.Value.Width * 0.5 * (double) drawinfo.drawPlayer.direction), (float) sourceRect.Value.Height);
|
|
if (heldItem.useStyle == 9 && drawinfo.drawPlayer.itemAnimation > 0)
|
|
{
|
|
Vector2 vector2_3 = new Vector2(0.5f, 0.4f);
|
|
if (heldItem.type == 5009 || heldItem.type == 5042)
|
|
{
|
|
vector2_3 = new Vector2(0.26f, 0.5f);
|
|
if (drawinfo.drawPlayer.direction == -1)
|
|
vector2_3.X = 1f - vector2_3.X;
|
|
}
|
|
vector2_2 = sourceRect.Value.Size() * vector2_3;
|
|
}
|
|
if ((double) drawinfo.drawPlayer.gravDir == -1.0)
|
|
vector2_2.Y = (float) sourceRect.Value.Height - vector2_2.Y;
|
|
Vector2 origin1 = vector2_2 + vector2_1;
|
|
float rotation1 = drawinfo.drawPlayer.itemRotation;
|
|
if (heldItem.useStyle == 8)
|
|
{
|
|
ref float local = ref position.X;
|
|
double num = (double) local;
|
|
int direction = drawinfo.drawPlayer.direction;
|
|
local = (float) (num - 0.0);
|
|
rotation1 -= 1.570796f * (float) drawinfo.drawPlayer.direction;
|
|
origin1.Y = 2f;
|
|
origin1.X += (float) (2 * drawinfo.drawPlayer.direction);
|
|
}
|
|
if (index1 == 425 || index1 == 507)
|
|
drawinfo.itemEffect = (double) drawinfo.drawPlayer.gravDir != 1.0 ? (drawinfo.drawPlayer.direction != 1 ? SpriteEffects.FlipHorizontally : SpriteEffects.None) : (drawinfo.drawPlayer.direction != 1 ? SpriteEffects.FlipHorizontally | SpriteEffects.FlipVertically : SpriteEffects.FlipVertically);
|
|
if ((index1 == 946 || index1 == 4707) && (double) rotation1 != 0.0)
|
|
{
|
|
position.Y -= 22f * drawinfo.drawPlayer.gravDir;
|
|
rotation1 = -1.57f * (float) -drawinfo.drawPlayer.direction * drawinfo.drawPlayer.gravDir;
|
|
}
|
|
ItemSlot.GetItemLight(ref drawinfo.itemColor, heldItem);
|
|
switch (index1)
|
|
{
|
|
case 3476:
|
|
Texture2D texture2D2 = TextureAssets.Extra[64].Value;
|
|
Rectangle r1 = texture2D2.Frame(verticalFrames: 9, frameY: (drawinfo.drawPlayer.miscCounter % 54 / 6));
|
|
Vector2 vector2_4 = new Vector2((float) (r1.Width / 2 * drawinfo.drawPlayer.direction), 0.0f);
|
|
Vector2 origin2 = r1.Size() / 2f;
|
|
DrawData drawData1 = new DrawData(texture2D2, (drawinfo.ItemLocation - Main.screenPosition + vector2_4).Floor(), new Rectangle?(r1), heldItem.GetAlpha(drawinfo.itemColor).MultiplyRGBA(new Color(new Vector4(0.5f, 0.5f, 0.5f, 0.8f))), drawinfo.drawPlayer.itemRotation, origin2, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData1);
|
|
drawData1 = new DrawData(TextureAssets.GlowMask[195].Value, (drawinfo.ItemLocation - Main.screenPosition + vector2_4).Floor(), new Rectangle?(r1), new Color(250, 250, 250, heldItem.alpha) * 0.5f, drawinfo.drawPlayer.itemRotation, origin2, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData1);
|
|
break;
|
|
case 3779:
|
|
Texture2D texture2D3 = texture2D1;
|
|
Rectangle r2 = texture2D3.Frame();
|
|
Vector2 vector2_5 = new Vector2((float) (r2.Width / 2 * drawinfo.drawPlayer.direction), 0.0f);
|
|
Vector2 origin3 = r2.Size() / 2f;
|
|
Color color2 = new Color(120, 40, 222, 0) * (float) (((double) ((float) ((double) drawinfo.drawPlayer.miscCounter / 75.0 * 6.28318548202515)).ToRotationVector2().X * 1.0 + 0.0) / 2.0 * 0.300000011920929 + 0.850000023841858) * 0.5f;
|
|
float num5 = 2f;
|
|
DrawData drawData2;
|
|
for (float num6 = 0.0f; (double) num6 < 4.0; ++num6)
|
|
{
|
|
drawData2 = new DrawData(TextureAssets.GlowMask[218].Value, (drawinfo.ItemLocation - Main.screenPosition + vector2_5).Floor() + (num6 * 1.570796f).ToRotationVector2() * num5, new Rectangle?(r2), color2, drawinfo.drawPlayer.itemRotation, origin3, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData2);
|
|
}
|
|
drawData2 = new DrawData(texture2D3, (drawinfo.ItemLocation - Main.screenPosition + vector2_5).Floor(), new Rectangle?(r2), heldItem.GetAlpha(drawinfo.itemColor).MultiplyRGBA(new Color(new Vector4(0.5f, 0.5f, 0.5f, 0.8f))), drawinfo.drawPlayer.itemRotation, origin3, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData2);
|
|
break;
|
|
case 4049:
|
|
Texture2D texture2D4 = TextureAssets.Extra[92].Value;
|
|
Rectangle r3 = texture2D4.Frame(verticalFrames: 4, frameY: (drawinfo.drawPlayer.miscCounter % 20 / 5));
|
|
Vector2 vector2_6 = new Vector2((float) (r3.Width / 2 * drawinfo.drawPlayer.direction), 0.0f) + new Vector2((float) (-10 * drawinfo.drawPlayer.direction), 8f * drawinfo.drawPlayer.gravDir);
|
|
Vector2 origin4 = r3.Size() / 2f;
|
|
DrawData drawData3 = new DrawData(texture2D4, (drawinfo.ItemLocation - Main.screenPosition + vector2_6).Floor(), new Rectangle?(r3), heldItem.GetAlpha(drawinfo.itemColor), drawinfo.drawPlayer.itemRotation, origin4, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData3);
|
|
break;
|
|
default:
|
|
if (heldItem.useStyle == 5)
|
|
{
|
|
if (Item.staff[index1])
|
|
{
|
|
float rotation2 = drawinfo.drawPlayer.itemRotation + 0.785f * (float) drawinfo.drawPlayer.direction;
|
|
int num7 = 0;
|
|
int num8 = 0;
|
|
Vector2 origin5 = new Vector2(0.0f, (float) texture2D1.Height);
|
|
if (index1 == 3210)
|
|
{
|
|
num7 = 8 * -drawinfo.drawPlayer.direction;
|
|
num8 = 2 * (int) drawinfo.drawPlayer.gravDir;
|
|
}
|
|
if (index1 == 3870)
|
|
{
|
|
Vector2 vector2_7 = (drawinfo.drawPlayer.itemRotation + 0.7853982f * (float) drawinfo.drawPlayer.direction).ToRotationVector2() * new Vector2((float) -drawinfo.drawPlayer.direction * 1.5f, drawinfo.drawPlayer.gravDir) * 3f;
|
|
num7 = (int) vector2_7.X;
|
|
num8 = (int) vector2_7.Y;
|
|
}
|
|
if (index1 == 3787)
|
|
num8 = (int) ((double) (8 * (int) drawinfo.drawPlayer.gravDir) * Math.Cos((double) rotation2));
|
|
if ((double) drawinfo.drawPlayer.gravDir == -1.0)
|
|
{
|
|
if (drawinfo.drawPlayer.direction == -1)
|
|
{
|
|
rotation2 += 1.57f;
|
|
origin5 = new Vector2((float) texture2D1.Width, 0.0f);
|
|
num7 -= texture2D1.Width;
|
|
}
|
|
else
|
|
{
|
|
rotation2 -= 1.57f;
|
|
origin5 = Vector2.Zero;
|
|
}
|
|
}
|
|
else if (drawinfo.drawPlayer.direction == -1)
|
|
{
|
|
origin5 = new Vector2((float) texture2D1.Width, (float) texture2D1.Height);
|
|
num7 -= texture2D1.Width;
|
|
}
|
|
DrawData drawData4 = new DrawData(texture2D1, new Vector2((float) (int) ((double) drawinfo.ItemLocation.X - (double) Main.screenPosition.X + (double) origin5.X + (double) num7), (float) (int) ((double) drawinfo.ItemLocation.Y - (double) Main.screenPosition.Y + (double) num8)), sourceRect, heldItem.GetAlpha(drawinfo.itemColor), rotation2, origin5, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData4);
|
|
if (index1 != 3870)
|
|
break;
|
|
drawData4 = new DrawData(TextureAssets.GlowMask[238].Value, new Vector2((float) (int) ((double) drawinfo.ItemLocation.X - (double) Main.screenPosition.X + (double) origin5.X + (double) num7), (float) (int) ((double) drawinfo.ItemLocation.Y - (double) Main.screenPosition.Y + (double) num8)), sourceRect, new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, (int) sbyte.MaxValue), rotation2, origin5, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData4);
|
|
break;
|
|
}
|
|
Vector2 vector2_8 = new Vector2((float) (texture2D1.Width / 2), (float) (texture2D1.Height / 2));
|
|
Vector2 vector2_9 = Main.DrawPlayerItemPos(drawinfo.drawPlayer.gravDir, index1);
|
|
int x = (int) vector2_9.X;
|
|
vector2_8.Y = vector2_9.Y;
|
|
Vector2 origin6 = new Vector2((float) -x, (float) (texture2D1.Height / 2));
|
|
if (drawinfo.drawPlayer.direction == -1)
|
|
origin6 = new Vector2((float) (texture2D1.Width + x), (float) (texture2D1.Height / 2));
|
|
DrawData drawData5 = new DrawData(texture2D1, new Vector2((float) (int) ((double) drawinfo.ItemLocation.X - (double) Main.screenPosition.X + (double) vector2_8.X), (float) (int) ((double) drawinfo.ItemLocation.Y - (double) Main.screenPosition.Y + (double) vector2_8.Y)), sourceRect, heldItem.GetAlpha(drawinfo.itemColor), drawinfo.drawPlayer.itemRotation, origin6, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData5);
|
|
if (heldItem.color != new Color())
|
|
{
|
|
drawData5 = new DrawData(texture2D1, new Vector2((float) (int) ((double) drawinfo.ItemLocation.X - (double) Main.screenPosition.X + (double) vector2_8.X), (float) (int) ((double) drawinfo.ItemLocation.Y - (double) Main.screenPosition.Y + (double) vector2_8.Y)), sourceRect, heldItem.GetColor(drawinfo.itemColor), drawinfo.drawPlayer.itemRotation, origin6, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData5);
|
|
}
|
|
if (heldItem.glowMask != (short) -1)
|
|
{
|
|
drawData5 = new DrawData(TextureAssets.GlowMask[(int) heldItem.glowMask].Value, new Vector2((float) (int) ((double) drawinfo.ItemLocation.X - (double) Main.screenPosition.X + (double) vector2_8.X), (float) (int) ((double) drawinfo.ItemLocation.Y - (double) Main.screenPosition.Y + (double) vector2_8.Y)), sourceRect, new Color(250, 250, 250, heldItem.alpha), drawinfo.drawPlayer.itemRotation, origin6, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData5);
|
|
}
|
|
if (index1 != 3788)
|
|
break;
|
|
float num9 = (float) ((double) ((float) ((double) drawinfo.drawPlayer.miscCounter / 75.0 * 6.28318548202515)).ToRotationVector2().X * 1.0 + 0.0);
|
|
Color color3 = new Color(80, 40, 252, 0) * (float) ((double) num9 / 2.0 * 0.300000011920929 + 0.850000023841858) * 0.5f;
|
|
for (float num10 = 0.0f; (double) num10 < 4.0; ++num10)
|
|
{
|
|
drawData5 = new DrawData(TextureAssets.GlowMask[220].Value, new Vector2((float) (int) ((double) drawinfo.ItemLocation.X - (double) Main.screenPosition.X + (double) vector2_8.X), (float) (int) ((double) drawinfo.ItemLocation.Y - (double) Main.screenPosition.Y + (double) vector2_8.Y)) + (num10 * 1.570796f + drawinfo.drawPlayer.itemRotation).ToRotationVector2() * num9, new Rectangle?(), color3, drawinfo.drawPlayer.itemRotation, origin6, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData5);
|
|
}
|
|
break;
|
|
}
|
|
if ((double) drawinfo.drawPlayer.gravDir == -1.0)
|
|
{
|
|
DrawData drawData6 = new DrawData(texture2D1, position, sourceRect, heldItem.GetAlpha(drawinfo.itemColor), rotation1, origin1, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData6);
|
|
if (heldItem.color != new Color())
|
|
{
|
|
drawData6 = new DrawData(texture2D1, position, sourceRect, heldItem.GetColor(drawinfo.itemColor), rotation1, origin1, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData6);
|
|
}
|
|
if (heldItem.glowMask == (short) -1)
|
|
break;
|
|
drawData6 = new DrawData(TextureAssets.GlowMask[(int) heldItem.glowMask].Value, position, sourceRect, new Color(250, 250, 250, heldItem.alpha), rotation1, origin1, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData6);
|
|
break;
|
|
}
|
|
DrawData drawData7 = new DrawData(texture2D1, position, sourceRect, heldItem.GetAlpha(drawinfo.itemColor), rotation1, origin1, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData7);
|
|
if (heldItem.color != new Color())
|
|
{
|
|
drawData7 = new DrawData(texture2D1, position, sourceRect, heldItem.GetColor(drawinfo.itemColor), rotation1, origin1, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData7);
|
|
}
|
|
if (heldItem.glowMask != (short) -1)
|
|
{
|
|
drawData7 = new DrawData(TextureAssets.GlowMask[(int) heldItem.glowMask].Value, position, sourceRect, color1, rotation1, origin1, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData7);
|
|
}
|
|
if (!heldItem.flame)
|
|
break;
|
|
if ((double) drawinfo.shadow != 0.0)
|
|
break;
|
|
try
|
|
{
|
|
Main.instance.LoadItemFlames(index1);
|
|
if (!TextureAssets.ItemFlame[index1].IsLoaded)
|
|
break;
|
|
Color color4 = new Color(100, 100, 100, 0);
|
|
int num11 = 7;
|
|
float num12 = 1f;
|
|
switch (index1)
|
|
{
|
|
case 3045:
|
|
color4 = new Color(Main.DiscoR, Main.DiscoG, Main.DiscoB, 0);
|
|
break;
|
|
case 4952:
|
|
num11 = 3;
|
|
num12 = 0.6f;
|
|
color4 = new Color(50, 50, 50, 0);
|
|
break;
|
|
}
|
|
for (int index2 = 0; index2 < num11; ++index2)
|
|
{
|
|
float num13 = drawinfo.drawPlayer.itemFlamePos[index2].X * scale * num12;
|
|
float num14 = drawinfo.drawPlayer.itemFlamePos[index2].Y * scale * num12;
|
|
DrawData drawData8 = new DrawData(TextureAssets.ItemFlame[index1].Value, new Vector2((float) (int) ((double) position.X + (double) num13), (float) (int) ((double) position.Y + (double) num14)), sourceRect, color4, rotation1, origin1, scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData8);
|
|
}
|
|
break;
|
|
}
|
|
catch
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_28_ArmOverItem(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.usesCompositeTorso)
|
|
PlayerDrawLayers.DrawPlayer_28_ArmOverItemComposite(ref drawinfo);
|
|
else if (drawinfo.drawPlayer.body > 0 && drawinfo.drawPlayer.body < 235)
|
|
{
|
|
Rectangle bodyFrame = drawinfo.drawPlayer.bodyFrame;
|
|
int num1 = drawinfo.armorAdjust;
|
|
bodyFrame.X += num1;
|
|
bodyFrame.Width -= num1;
|
|
if (drawinfo.drawPlayer.direction == -1)
|
|
num1 = 0;
|
|
if (drawinfo.drawPlayer.invis && (drawinfo.drawPlayer.body == 21 || drawinfo.drawPlayer.body == 22))
|
|
return;
|
|
DrawData drawData1;
|
|
if (drawinfo.missingHand && !drawinfo.drawPlayer.invis)
|
|
{
|
|
int body = drawinfo.drawPlayer.body;
|
|
DrawData drawData2;
|
|
if (drawinfo.missingArm)
|
|
{
|
|
drawData2 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 7].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorBodySkin, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData2.shader = drawinfo.skinDyePacked;
|
|
DrawData drawData3 = drawData2;
|
|
drawinfo.DrawDataCache.Add(drawData3);
|
|
}
|
|
drawData2 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 9].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorBodySkin, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData2.shader = drawinfo.skinDyePacked;
|
|
drawData1 = drawData2;
|
|
drawinfo.DrawDataCache.Add(drawData1);
|
|
}
|
|
drawData1 = new DrawData(TextureAssets.ArmorArm[drawinfo.drawPlayer.body].Value, new Vector2((float) ((int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)) + num1), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(bodyFrame), drawinfo.colorArmorBody, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.cBody;
|
|
drawinfo.DrawDataCache.Add(drawData1);
|
|
if (drawinfo.armGlowMask != -1)
|
|
{
|
|
drawData1 = new DrawData(TextureAssets.GlowMask[drawinfo.armGlowMask].Value, new Vector2((float) ((int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)) + num1), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(bodyFrame), drawinfo.armGlowColor, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.cBody;
|
|
drawinfo.DrawDataCache.Add(drawData1);
|
|
}
|
|
if (drawinfo.drawPlayer.body != 205)
|
|
return;
|
|
Color color = new Color(100, 100, 100, 0);
|
|
ulong seed = (ulong) (drawinfo.drawPlayer.miscCounter / 4);
|
|
int num2 = 4;
|
|
for (int index = 0; index < num2; ++index)
|
|
{
|
|
float num3 = (float) Utils.RandomInt(ref seed, -10, 11) * 0.2f;
|
|
float num4 = (float) Utils.RandomInt(ref seed, -10, 1) * 0.15f;
|
|
drawData1 = new DrawData(TextureAssets.GlowMask[240].Value, new Vector2((float) ((int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)) + num1), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2) + num3, (float) (drawinfo.drawPlayer.bodyFrame.Height / 2) + num4), new Rectangle?(bodyFrame), color, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.cBody;
|
|
drawinfo.DrawDataCache.Add(drawData1);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (drawinfo.drawPlayer.invis)
|
|
return;
|
|
DrawData drawData = new DrawData(TextureAssets.Players[drawinfo.skinVar, 7].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorBodySkin, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.skinDyePacked
|
|
};
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
drawData = new DrawData(TextureAssets.Players[drawinfo.skinVar, 8].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorUnderShirt, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
drawData = new DrawData(TextureAssets.Players[drawinfo.skinVar, 13].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorShirt, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_28_ArmOverItemComposite(ref PlayerDrawSet drawinfo)
|
|
{
|
|
Vector2 vector2_1 = new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2));
|
|
Vector2 vector2_2 = Main.OffsetsPlayerHeadgear[drawinfo.drawPlayer.bodyFrame.Y / drawinfo.drawPlayer.bodyFrame.Height];
|
|
vector2_2.Y -= 2f;
|
|
Vector2 vector2_3 = vector2_1 + vector2_2 * (float) -drawinfo.playerEffect.HasFlag((Enum) SpriteEffects.FlipVertically).ToDirectionInt();
|
|
float bodyRotation = drawinfo.drawPlayer.bodyRotation;
|
|
float rotation = drawinfo.drawPlayer.bodyRotation + drawinfo.compositeFrontArmRotation;
|
|
Vector2 bodyVect = drawinfo.bodyVect;
|
|
Vector2 compositeOffsetFrontArm = PlayerDrawLayers.GetCompositeOffset_FrontArm(ref drawinfo);
|
|
Vector2 origin = bodyVect + compositeOffsetFrontArm;
|
|
Vector2 position1 = vector2_3 + compositeOffsetFrontArm;
|
|
Vector2 position2 = position1 + drawinfo.frontShoulderOffset;
|
|
if (drawinfo.compFrontArmFrame.X / drawinfo.compFrontArmFrame.Width >= 7)
|
|
position1 += new Vector2(drawinfo.playerEffect.HasFlag((Enum) SpriteEffects.FlipHorizontally) ? -1f : 1f, drawinfo.playerEffect.HasFlag((Enum) SpriteEffects.FlipVertically) ? -1f : 1f);
|
|
int num1 = drawinfo.drawPlayer.invis ? 1 : 0;
|
|
int num2 = drawinfo.drawPlayer.body <= 0 ? 0 : (drawinfo.drawPlayer.body < 235 ? 1 : 0);
|
|
int num3 = drawinfo.compShoulderOverFrontArm ? 1 : 0;
|
|
int num4 = drawinfo.compShoulderOverFrontArm ? 0 : 1;
|
|
int num5 = drawinfo.compShoulderOverFrontArm ? 0 : 1;
|
|
bool flag = !drawinfo.hidesTopSkin;
|
|
DrawData drawData1;
|
|
if (num2 != 0)
|
|
{
|
|
if (!drawinfo.drawPlayer.invis || PlayerDrawLayers.IsArmorDrawnWhenInvisible(drawinfo.drawPlayer.body))
|
|
{
|
|
Texture2D texture = TextureAssets.ArmorBodyComposite[drawinfo.drawPlayer.body].Value;
|
|
for (int index = 0; index < 2; ++index)
|
|
{
|
|
if (((drawinfo.drawPlayer.invis ? 0 : (index == num5 ? 1 : 0)) & (flag ? 1 : 0)) != 0)
|
|
{
|
|
if (drawinfo.missingArm)
|
|
{
|
|
List<DrawData> drawDataCache = drawinfo.DrawDataCache;
|
|
drawData1 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 7].Value, position1, new Rectangle?(drawinfo.compFrontArmFrame), drawinfo.colorBodySkin, rotation, origin, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.skinDyePacked;
|
|
DrawData drawData2 = drawData1;
|
|
drawDataCache.Add(drawData2);
|
|
}
|
|
if (drawinfo.missingHand)
|
|
{
|
|
List<DrawData> drawDataCache = drawinfo.DrawDataCache;
|
|
drawData1 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 9].Value, position1, new Rectangle?(drawinfo.compFrontArmFrame), drawinfo.colorBodySkin, rotation, origin, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.skinDyePacked;
|
|
DrawData drawData3 = drawData1;
|
|
drawDataCache.Add(drawData3);
|
|
}
|
|
}
|
|
if (index == num3 && !drawinfo.hideCompositeShoulders)
|
|
{
|
|
ref PlayerDrawSet local = ref drawinfo;
|
|
drawData1 = new DrawData(texture, position2, new Rectangle?(drawinfo.compFrontShoulderFrame), drawinfo.colorArmorBody, bodyRotation, origin, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.cBody;
|
|
DrawData data = drawData1;
|
|
PlayerDrawLayers.DrawCompositeArmorPiece(ref local, CompositePlayerDrawContext.FrontShoulder, data);
|
|
}
|
|
if (index == num4)
|
|
{
|
|
ref PlayerDrawSet local = ref drawinfo;
|
|
drawData1 = new DrawData(texture, position1, new Rectangle?(drawinfo.compFrontArmFrame), drawinfo.colorArmorBody, rotation, origin, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.cBody;
|
|
DrawData data = drawData1;
|
|
PlayerDrawLayers.DrawCompositeArmorPiece(ref local, CompositePlayerDrawContext.FrontArm, data);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else if (!drawinfo.drawPlayer.invis)
|
|
{
|
|
for (int index = 0; index < 2; ++index)
|
|
{
|
|
if (index == num3)
|
|
{
|
|
if (flag)
|
|
{
|
|
List<DrawData> drawDataCache = drawinfo.DrawDataCache;
|
|
drawData1 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 7].Value, position2, new Rectangle?(drawinfo.compFrontShoulderFrame), drawinfo.colorBodySkin, bodyRotation, origin, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.skinDyePacked;
|
|
DrawData drawData4 = drawData1;
|
|
drawDataCache.Add(drawData4);
|
|
}
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 8].Value, position2, new Rectangle?(drawinfo.compFrontShoulderFrame), drawinfo.colorUnderShirt, bodyRotation, origin, 1f, drawinfo.playerEffect, 0));
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 13].Value, position2, new Rectangle?(drawinfo.compFrontShoulderFrame), drawinfo.colorShirt, bodyRotation, origin, 1f, drawinfo.playerEffect, 0));
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 6].Value, position2, new Rectangle?(drawinfo.compFrontShoulderFrame), drawinfo.colorShirt, bodyRotation, origin, 1f, drawinfo.playerEffect, 0));
|
|
}
|
|
if (index == num4)
|
|
{
|
|
if (flag)
|
|
{
|
|
List<DrawData> drawDataCache = drawinfo.DrawDataCache;
|
|
drawData1 = new DrawData(TextureAssets.Players[drawinfo.skinVar, 7].Value, position1, new Rectangle?(drawinfo.compFrontArmFrame), drawinfo.colorBodySkin, rotation, origin, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.skinDyePacked;
|
|
DrawData drawData5 = drawData1;
|
|
drawDataCache.Add(drawData5);
|
|
}
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 8].Value, position1, new Rectangle?(drawinfo.compFrontArmFrame), drawinfo.colorUnderShirt, rotation, origin, 1f, drawinfo.playerEffect, 0));
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 13].Value, position1, new Rectangle?(drawinfo.compFrontArmFrame), drawinfo.colorShirt, rotation, origin, 1f, drawinfo.playerEffect, 0));
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.Players[drawinfo.skinVar, 6].Value, position1, new Rectangle?(drawinfo.compFrontArmFrame), drawinfo.colorShirt, rotation, origin, 1f, drawinfo.playerEffect, 0));
|
|
}
|
|
}
|
|
}
|
|
if (drawinfo.drawPlayer.handon <= (sbyte) 0 || drawinfo.drawPlayer.handon >= (sbyte) 22)
|
|
return;
|
|
Texture2D texture1 = TextureAssets.AccHandsOnComposite[(int) drawinfo.drawPlayer.handon].Value;
|
|
ref PlayerDrawSet local1 = ref drawinfo;
|
|
drawData1 = new DrawData(texture1, position1, new Rectangle?(drawinfo.compFrontArmFrame), drawinfo.colorArmorBody, rotation, origin, 1f, drawinfo.playerEffect, 0);
|
|
drawData1.shader = drawinfo.cHandOn;
|
|
DrawData data1 = drawData1;
|
|
PlayerDrawLayers.DrawCompositeArmorPiece(ref local1, CompositePlayerDrawContext.FrontArmAccessory, data1);
|
|
}
|
|
|
|
public static void DrawPlayer_29_OnhandAcc(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.usesCompositeFrontHandAcc || drawinfo.drawPlayer.handon <= (sbyte) 0 || drawinfo.drawPlayer.handon >= (sbyte) 22)
|
|
return;
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.AccHandsOn[(int) drawinfo.drawPlayer.handon].Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorArmorBody, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cHandOn
|
|
});
|
|
}
|
|
|
|
public static void DrawPlayer_30_BladedGlove(ref PlayerDrawSet drawinfo)
|
|
{
|
|
Item heldItem = drawinfo.heldItem;
|
|
if (heldItem.type <= -1 || !Item.claw[heldItem.type] || (double) drawinfo.shadow != 0.0)
|
|
return;
|
|
Main.instance.LoadItem(heldItem.type);
|
|
Asset<Texture2D> asset = TextureAssets.Item[heldItem.type];
|
|
if (drawinfo.drawPlayer.frozen || drawinfo.drawPlayer.itemAnimation <= 0 && (heldItem.holdStyle == 0 || drawinfo.drawPlayer.pulley) || heldItem.type <= 0 || drawinfo.drawPlayer.dead || heldItem.noUseGraphic || drawinfo.drawPlayer.wet && heldItem.noWet)
|
|
return;
|
|
if ((double) drawinfo.drawPlayer.gravDir == -1.0)
|
|
{
|
|
DrawData drawData = new DrawData(asset.Value, new Vector2((float) (int) ((double) drawinfo.ItemLocation.X - (double) Main.screenPosition.X), (float) (int) ((double) drawinfo.ItemLocation.Y - (double) Main.screenPosition.Y)), new Rectangle?(new Rectangle(0, 0, asset.Width(), asset.Height())), heldItem.GetAlpha(drawinfo.itemColor), drawinfo.drawPlayer.itemRotation, new Vector2((float) ((double) asset.Width() * 0.5 - (double) asset.Width() * 0.5 * (double) drawinfo.drawPlayer.direction), 0.0f), heldItem.scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
else
|
|
{
|
|
DrawData drawData = new DrawData(asset.Value, new Vector2((float) (int) ((double) drawinfo.ItemLocation.X - (double) Main.screenPosition.X), (float) (int) ((double) drawinfo.ItemLocation.Y - (double) Main.screenPosition.Y)), new Rectangle?(new Rectangle(0, 0, asset.Width(), asset.Height())), heldItem.GetAlpha(drawinfo.itemColor), drawinfo.drawPlayer.itemRotation, new Vector2((float) ((double) asset.Width() * 0.5 - (double) asset.Width() * 0.5 * (double) drawinfo.drawPlayer.direction), (float) asset.Height()), heldItem.scale, drawinfo.itemEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_31_ProjectileOverArm(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.drawPlayer.heldProj < 0 || (double) drawinfo.shadow != 0.0 || !drawinfo.heldProjOverHand)
|
|
return;
|
|
drawinfo.projectileDrawPosition = drawinfo.DrawDataCache.Count;
|
|
}
|
|
|
|
public static void DrawPlayer_32_FrontAcc(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.backPack || drawinfo.drawPlayer.front <= (sbyte) 0 || drawinfo.drawPlayer.front >= (sbyte) 9 || drawinfo.drawPlayer.mount.Active)
|
|
return;
|
|
Vector2 zero = Vector2.Zero;
|
|
drawinfo.DrawDataCache.Add(new DrawData(TextureAssets.AccFront[(int) drawinfo.drawPlayer.front].Value, zero + new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(drawinfo.drawPlayer.bodyFrame), drawinfo.colorArmorBody, drawinfo.drawPlayer.bodyRotation, drawinfo.bodyVect, 1f, drawinfo.playerEffect, 0)
|
|
{
|
|
shader = drawinfo.cFront
|
|
});
|
|
}
|
|
|
|
public static void DrawPlayer_33_FrozenOrWebbedDebuff(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.drawPlayer.frozen && (double) drawinfo.shadow == 0.0)
|
|
{
|
|
Color colorArmorBody = drawinfo.colorArmorBody;
|
|
colorArmorBody.R = (byte) ((double) colorArmorBody.R * 0.55);
|
|
colorArmorBody.G = (byte) ((double) colorArmorBody.G * 0.55);
|
|
colorArmorBody.B = (byte) ((double) colorArmorBody.B * 0.55);
|
|
colorArmorBody.A = (byte) ((double) colorArmorBody.A * 0.55);
|
|
DrawData drawData = new DrawData(TextureAssets.Frozen.Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(new Rectangle(0, 0, TextureAssets.Frozen.Width(), TextureAssets.Frozen.Height())), colorArmorBody, drawinfo.drawPlayer.bodyRotation, new Vector2((float) (TextureAssets.Frozen.Width() / 2), (float) (TextureAssets.Frozen.Height() / 2)), 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
else
|
|
{
|
|
if (!drawinfo.drawPlayer.webbed || (double) drawinfo.shadow != 0.0 || (double) drawinfo.drawPlayer.velocity.Y != 0.0)
|
|
return;
|
|
Color color = drawinfo.colorArmorBody * 0.75f;
|
|
Texture2D texture2D = TextureAssets.Extra[31].Value;
|
|
int num = drawinfo.drawPlayer.height / 2;
|
|
DrawData drawData = new DrawData(texture2D, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0 + (double) num)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(), color, drawinfo.drawPlayer.bodyRotation, texture2D.Size() / 2f, 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_34_ElectrifiedDebuffFront(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (!drawinfo.drawPlayer.electrified || (double) drawinfo.shadow != 0.0)
|
|
return;
|
|
Texture2D texture = TextureAssets.GlowMask[25].Value;
|
|
int num1 = drawinfo.drawPlayer.miscCounter / 5;
|
|
for (int index = 0; index < 2; ++index)
|
|
{
|
|
int num2 = num1 % 7;
|
|
if (num2 > 1 && num2 < 5)
|
|
{
|
|
DrawData drawData = new DrawData(texture, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(new Rectangle(0, num2 * texture.Height / 7, texture.Width, texture.Height / 7)), drawinfo.colorElectricity, drawinfo.drawPlayer.bodyRotation, new Vector2((float) (texture.Width / 2), (float) (texture.Height / 14)), 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
num1 = num2 + 3;
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_35_IceBarrier(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (!drawinfo.drawPlayer.iceBarrier || (double) drawinfo.shadow != 0.0)
|
|
return;
|
|
int height = TextureAssets.IceBarrier.Height() / 12;
|
|
Color white = Color.White;
|
|
DrawData drawData = new DrawData(TextureAssets.IceBarrier.Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X - (double) (drawinfo.drawPlayer.bodyFrame.Width / 2) + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - (double) drawinfo.drawPlayer.bodyFrame.Height + 4.0)) + drawinfo.drawPlayer.bodyPosition + new Vector2((float) (drawinfo.drawPlayer.bodyFrame.Width / 2), (float) (drawinfo.drawPlayer.bodyFrame.Height / 2)), new Rectangle?(new Rectangle(0, height * (int) drawinfo.drawPlayer.iceBarrierFrame, TextureAssets.IceBarrier.Width(), height)), white, 0.0f, new Vector2((float) (TextureAssets.Frozen.Width() / 2), (float) (TextureAssets.Frozen.Height() / 2)), 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
|
|
public static void DrawPlayer_36_CTG(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if ((double) drawinfo.shadow != 0.0 || (byte) drawinfo.drawPlayer.ownedLargeGems <= (byte) 0)
|
|
return;
|
|
bool flag = false;
|
|
BitsByte ownedLargeGems = drawinfo.drawPlayer.ownedLargeGems;
|
|
float num1 = 0.0f;
|
|
for (int key = 0; key < 7; ++key)
|
|
{
|
|
if (ownedLargeGems[key])
|
|
++num1;
|
|
}
|
|
float num2 = (float) (1.0 - (double) num1 * 0.0599999986588955);
|
|
float num3 = (float) (((double) num1 - 1.0) * 4.0);
|
|
switch (num1)
|
|
{
|
|
case 2f:
|
|
num3 += 10f;
|
|
break;
|
|
case 3f:
|
|
num3 += 8f;
|
|
break;
|
|
case 4f:
|
|
num3 += 6f;
|
|
break;
|
|
case 5f:
|
|
num3 += 6f;
|
|
break;
|
|
case 6f:
|
|
num3 += 2f;
|
|
break;
|
|
case 7f:
|
|
num3 += 0.0f;
|
|
break;
|
|
}
|
|
float num4 = (float) ((double) drawinfo.drawPlayer.miscCounter / 300.0 * 6.28318548202515);
|
|
if ((double) num1 <= 0.0)
|
|
return;
|
|
float num5 = 6.283185f / num1;
|
|
float num6 = 0.0f;
|
|
Vector2 vector2 = new Vector2(1.3f, 0.65f);
|
|
if (!flag)
|
|
vector2 = Vector2.One;
|
|
List<DrawData> drawDataList = new List<DrawData>();
|
|
for (int key = 0; key < 7; ++key)
|
|
{
|
|
if (!ownedLargeGems[key])
|
|
{
|
|
++num6;
|
|
}
|
|
else
|
|
{
|
|
Vector2 rotationVector2 = (num4 + num5 * ((float) key - num6)).ToRotationVector2();
|
|
float num7 = num2;
|
|
if (flag)
|
|
num7 = MathHelper.Lerp(num2 * 0.7f, 1f, (float) ((double) rotationVector2.Y / 2.0 + 0.5));
|
|
Texture2D texture2D = TextureAssets.Gem[key].Value;
|
|
DrawData drawData = new DrawData(texture2D, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) drawinfo.drawPlayer.height - 80.0)) + rotationVector2 * vector2 * num3, new Rectangle?(), new Color(250, 250, 250, (int) Main.mouseTextColor / 2), 0.0f, texture2D.Size() / 2f, (float) ((double) Main.mouseTextColor / 1000.0 + 0.800000011920929) * num7, SpriteEffects.None, 0);
|
|
drawDataList.Add(drawData);
|
|
}
|
|
}
|
|
if (flag)
|
|
drawDataList.Sort(new Comparison<DrawData>(DelegateMethods.CompareDrawSorterByYScale));
|
|
drawinfo.DrawDataCache.AddRange((IEnumerable<DrawData>) drawDataList);
|
|
}
|
|
|
|
public static void DrawPlayer_37_BeetleBuff(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (!drawinfo.drawPlayer.beetleOffense && !drawinfo.drawPlayer.beetleDefense || (double) drawinfo.shadow != 0.0)
|
|
return;
|
|
for (int index1 = 0; index1 < drawinfo.drawPlayer.beetleOrbs; ++index1)
|
|
{
|
|
DrawData drawData;
|
|
for (int index2 = 0; index2 < 5; ++index2)
|
|
{
|
|
Color colorArmorBody = drawinfo.colorArmorBody;
|
|
float num = 0.5f - (float) index2 * 0.1f;
|
|
colorArmorBody.R = (byte) ((double) colorArmorBody.R * (double) num);
|
|
colorArmorBody.G = (byte) ((double) colorArmorBody.G * (double) num);
|
|
colorArmorBody.B = (byte) ((double) colorArmorBody.B * (double) num);
|
|
colorArmorBody.A = (byte) ((double) colorArmorBody.A * (double) num);
|
|
Vector2 vector2 = -drawinfo.drawPlayer.beetleVel[index1] * (float) index2;
|
|
drawData = new DrawData(TextureAssets.Beetle.Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) (drawinfo.drawPlayer.height / 2))) + drawinfo.drawPlayer.beetlePos[index1] + vector2, new Rectangle?(new Rectangle(0, TextureAssets.Beetle.Height() / 3 * drawinfo.drawPlayer.beetleFrame + 1, TextureAssets.Beetle.Width(), TextureAssets.Beetle.Height() / 3 - 2)), colorArmorBody, 0.0f, new Vector2((float) (TextureAssets.Beetle.Width() / 2), (float) (TextureAssets.Beetle.Height() / 6)), 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
drawData = new DrawData(TextureAssets.Beetle.Value, new Vector2((float) (int) ((double) drawinfo.Position.X - (double) Main.screenPosition.X + (double) (drawinfo.drawPlayer.width / 2)), (float) (int) ((double) drawinfo.Position.Y - (double) Main.screenPosition.Y + (double) (drawinfo.drawPlayer.height / 2))) + drawinfo.drawPlayer.beetlePos[index1], new Rectangle?(new Rectangle(0, TextureAssets.Beetle.Height() / 3 * drawinfo.drawPlayer.beetleFrame + 1, TextureAssets.Beetle.Width(), TextureAssets.Beetle.Height() / 3 - 2)), drawinfo.colorArmorBody, 0.0f, new Vector2((float) (TextureAssets.Beetle.Width() / 2), (float) (TextureAssets.Beetle.Height() / 6)), 1f, drawinfo.playerEffect, 0);
|
|
drawinfo.DrawDataCache.Add(drawData);
|
|
}
|
|
}
|
|
|
|
private static Vector2 GetCompositeOffset_BackArm(ref PlayerDrawSet drawinfo) => new Vector2((float) (6 * (drawinfo.playerEffect.HasFlag((Enum) SpriteEffects.FlipHorizontally) ? -1 : 1)), (float) (2 * (drawinfo.playerEffect.HasFlag((Enum) SpriteEffects.FlipVertically) ? -1 : 1)));
|
|
|
|
private static Vector2 GetCompositeOffset_FrontArm(ref PlayerDrawSet drawinfo) => new Vector2((float) (-5 * (drawinfo.playerEffect.HasFlag((Enum) SpriteEffects.FlipHorizontally) ? -1 : 1)), 0.0f);
|
|
|
|
public static void DrawPlayer_TransformDrawData(ref PlayerDrawSet drawinfo)
|
|
{
|
|
double rotation = (double) drawinfo.rotation;
|
|
Vector2 vector2_1 = drawinfo.Position - Main.screenPosition + drawinfo.rotationOrigin;
|
|
Vector2 vector2_2 = drawinfo.drawPlayer.position + drawinfo.rotationOrigin;
|
|
Matrix rotationZ = Matrix.CreateRotationZ(drawinfo.rotation);
|
|
for (int index = 0; index < drawinfo.DustCache.Count; ++index)
|
|
{
|
|
Vector2 vector2_3 = Vector2.Transform(Main.dust[drawinfo.DustCache[index]].position - vector2_2, rotationZ);
|
|
Main.dust[drawinfo.DustCache[index]].position = vector2_3 + vector2_2;
|
|
}
|
|
for (int index = 0; index < drawinfo.GoreCache.Count; ++index)
|
|
{
|
|
Vector2 vector2_4 = Vector2.Transform(Main.gore[drawinfo.GoreCache[index]].position - vector2_2, rotationZ);
|
|
Main.gore[drawinfo.GoreCache[index]].position = vector2_4 + vector2_2;
|
|
}
|
|
for (int index = 0; index < drawinfo.DrawDataCache.Count; ++index)
|
|
{
|
|
DrawData drawData = drawinfo.DrawDataCache[index];
|
|
if (!drawData.ignorePlayerRotation)
|
|
{
|
|
Vector2 vector2_5 = Vector2.Transform(drawData.position - vector2_1, rotationZ);
|
|
drawData.position = vector2_5 + vector2_1;
|
|
drawData.rotation += drawinfo.rotation;
|
|
drawinfo.DrawDataCache[index] = drawData;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_ScaleDrawData(ref PlayerDrawSet drawinfo, float scale)
|
|
{
|
|
if ((double) scale == 1.0)
|
|
return;
|
|
Vector2 vector2_1 = drawinfo.Position + drawinfo.drawPlayer.Size * new Vector2(0.5f, 1f) - Main.screenPosition;
|
|
for (int index = 0; index < drawinfo.DrawDataCache.Count; ++index)
|
|
{
|
|
DrawData drawData = drawinfo.DrawDataCache[index];
|
|
Vector2 vector2_2 = drawData.position - vector2_1;
|
|
drawData.position = vector2_1 + vector2_2 * scale;
|
|
drawData.scale *= scale;
|
|
drawinfo.DrawDataCache[index] = drawData;
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_AddSelectionGlow(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (drawinfo.selectionGlowColor == Color.Transparent)
|
|
return;
|
|
Color selectionGlowColor = drawinfo.selectionGlowColor;
|
|
List<DrawData> drawDataList = new List<DrawData>();
|
|
drawDataList.AddRange((IEnumerable<DrawData>) PlayerDrawLayers.GetFlatColoredCloneData(ref drawinfo, new Vector2(0.0f, -2f), selectionGlowColor));
|
|
drawDataList.AddRange((IEnumerable<DrawData>) PlayerDrawLayers.GetFlatColoredCloneData(ref drawinfo, new Vector2(0.0f, 2f), selectionGlowColor));
|
|
drawDataList.AddRange((IEnumerable<DrawData>) PlayerDrawLayers.GetFlatColoredCloneData(ref drawinfo, new Vector2(2f, 0.0f), selectionGlowColor));
|
|
drawDataList.AddRange((IEnumerable<DrawData>) PlayerDrawLayers.GetFlatColoredCloneData(ref drawinfo, new Vector2(-2f, 0.0f), selectionGlowColor));
|
|
drawDataList.AddRange((IEnumerable<DrawData>) drawinfo.DrawDataCache);
|
|
drawinfo.DrawDataCache = drawDataList;
|
|
}
|
|
|
|
public static void DrawPlayer_MakeIntoFirstFractalAfterImage(ref PlayerDrawSet drawinfo)
|
|
{
|
|
if (!drawinfo.drawPlayer.isFirstFractalAfterImage)
|
|
{
|
|
int num = drawinfo.drawPlayer.HeldItem.type != 4722 ? 0 : (drawinfo.drawPlayer.itemAnimation > 0 ? 1 : 0);
|
|
}
|
|
else
|
|
{
|
|
for (int index = 0; index < drawinfo.DrawDataCache.Count; ++index)
|
|
{
|
|
DrawData drawData = drawinfo.DrawDataCache[index];
|
|
drawData.color *= drawinfo.drawPlayer.firstFractalAfterImageOpacity;
|
|
drawData.color.A = (byte) ((double) drawData.color.A * 0.800000011920929);
|
|
drawinfo.DrawDataCache[index] = drawData;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void DrawPlayer_RenderAllLayers(ref PlayerDrawSet drawinfo)
|
|
{
|
|
int num = -1;
|
|
List<DrawData> drawDataCache = drawinfo.DrawDataCache;
|
|
Effect pixelShader = Main.pixelShader;
|
|
Projectile[] projectile = Main.projectile;
|
|
SpriteBatch spriteBatch = Main.spriteBatch;
|
|
for (int index = 0; index <= drawDataCache.Count; ++index)
|
|
{
|
|
if (drawinfo.projectileDrawPosition == index)
|
|
{
|
|
projectile[drawinfo.drawPlayer.heldProj].gfxOffY = drawinfo.drawPlayer.gfxOffY;
|
|
if (num != 0)
|
|
{
|
|
pixelShader.CurrentTechnique.Passes[0].Apply();
|
|
num = 0;
|
|
}
|
|
try
|
|
{
|
|
Main.instance.DrawProj(drawinfo.drawPlayer.heldProj);
|
|
}
|
|
catch
|
|
{
|
|
projectile[drawinfo.drawPlayer.heldProj].active = false;
|
|
}
|
|
}
|
|
if (index != drawDataCache.Count)
|
|
{
|
|
DrawData cdd = drawDataCache[index];
|
|
if (!cdd.sourceRect.HasValue)
|
|
cdd.sourceRect = new Rectangle?(cdd.texture.Frame());
|
|
PlayerDrawHelper.SetShaderForData(drawinfo.drawPlayer, drawinfo.cHead, ref cdd);
|
|
num = cdd.shader;
|
|
if (cdd.texture != null)
|
|
cdd.Draw(spriteBatch);
|
|
}
|
|
}
|
|
pixelShader.CurrentTechnique.Passes[0].Apply();
|
|
}
|
|
|
|
public static void DrawPlayer_DrawSelectionRect(ref PlayerDrawSet drawinfo)
|
|
{
|
|
Vector2 lowest;
|
|
Vector2 highest;
|
|
SpriteRenderTargetHelper.GetDrawBoundary(drawinfo.DrawDataCache, out lowest, out highest);
|
|
Utils.DrawRect(Main.spriteBatch, lowest + Main.screenPosition, highest + Main.screenPosition, Color.White);
|
|
}
|
|
|
|
private static bool IsArmorDrawnWhenInvisible(int torsoID)
|
|
{
|
|
switch (torsoID)
|
|
{
|
|
case 21:
|
|
case 22:
|
|
return false;
|
|
default:
|
|
return true;
|
|
}
|
|
}
|
|
|
|
private static DrawData[] GetFlatColoredCloneData(
|
|
ref PlayerDrawSet drawinfo,
|
|
Vector2 offset,
|
|
Color color)
|
|
{
|
|
int colorOnlyShaderIndex = ContentSamples.CommonlyUsedContentSamples.ColorOnlyShaderIndex;
|
|
DrawData[] drawDataArray = new DrawData[drawinfo.DrawDataCache.Count];
|
|
for (int index = 0; index < drawinfo.DrawDataCache.Count; ++index)
|
|
{
|
|
DrawData drawData = drawinfo.DrawDataCache[index];
|
|
drawData.position += offset;
|
|
drawData.shader = colorOnlyShaderIndex;
|
|
drawData.color = color;
|
|
drawDataArray[index] = drawData;
|
|
}
|
|
return drawDataArray;
|
|
}
|
|
}
|
|
}
|