Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DrawPlayer_13_Leggings()

static void Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_13_Leggings ( ref PlayerDrawSet drawinfo)
inlinestatic

Definition at line 1221 of file PlayerDrawLayers.cs.

1222 {
1223 Vector2 legsOffset = drawinfo.legsOffset;
1224 if (drawinfo.drawPlayer.legs == 169)
1225 {
1226 return;
1227 }
1228 if (drawinfo.isSitting && drawinfo.drawPlayer.legs != 140 && drawinfo.drawPlayer.legs != 217)
1229 {
1230 if (drawinfo.drawPlayer.legs > 0 && drawinfo.drawPlayer.legs < ArmorIDs.Legs.Count && (!ShouldOverrideLegs_CheckShoes(ref drawinfo) || drawinfo.drawPlayer.wearsRobe))
1231 {
1232 if (!drawinfo.drawPlayer.invis)
1233 {
1234 DrawSittingLegs(ref drawinfo, TextureAssets.ArmorLeg[drawinfo.drawPlayer.legs].Value, drawinfo.colorArmorLegs, drawinfo.cLegs);
1235 if (drawinfo.legsGlowMask != -1)
1236 {
1237 DrawSittingLegs(ref drawinfo, TextureAssets.GlowMask[drawinfo.legsGlowMask].Value, drawinfo.legsGlowColor, drawinfo.cLegs);
1238 }
1239 }
1240 }
1241 else if (!drawinfo.drawPlayer.invis && !ShouldOverrideLegs_CheckShoes(ref drawinfo))
1242 {
1243 DrawSittingLegs(ref drawinfo, TextureAssets.Players[drawinfo.skinVar, 11].Value, drawinfo.colorPants);
1244 DrawSittingLegs(ref drawinfo, TextureAssets.Players[drawinfo.skinVar, 12].Value, drawinfo.colorShoes);
1245 }
1246 }
1247 else if (drawinfo.drawPlayer.legs == 140)
1248 {
1249 if (!drawinfo.drawPlayer.invis && !drawinfo.drawPlayer.mount.Active)
1250 {
1251 Texture2D value = TextureAssets.Extra[73].Value;
1252 bool flag = drawinfo.drawPlayer.legFrame.Y != drawinfo.drawPlayer.legFrame.Height || Main.gameMenu;
1253 int num = drawinfo.drawPlayer.miscCounter / 3 % 8;
1254 if (flag)
1255 {
1256 num = drawinfo.drawPlayer.miscCounter / 4 % 8;
1257 }
1258 Rectangle rectangle = new Rectangle(18 * flag.ToInt(), num * 26, 16, 24);
1259 float num2 = 12f;
1260 if (drawinfo.drawPlayer.bodyFrame.Height != 0)
1261 {
1262 num2 = 12f - Main.OffsetsPlayerHeadgear[drawinfo.drawPlayer.bodyFrame.Y / drawinfo.drawPlayer.bodyFrame.Height].Y;
1263 }
1264 if (drawinfo.drawPlayer.Directions.Y == -1f)
1265 {
1266 num2 -= 6f;
1267 }
1268 Vector2 scale = new Vector2(1f, 1f);
1269 Vector2 vector = drawinfo.Position + drawinfo.drawPlayer.Size * new Vector2(0.5f, 0.5f + 0.5f * drawinfo.drawPlayer.gravDir);
1270 _ = drawinfo.drawPlayer.direction;
1271 Vector2 vec = vector + new Vector2(0f, (0f - num2) * drawinfo.drawPlayer.gravDir) - Main.screenPosition + drawinfo.drawPlayer.legPosition;
1272 if (drawinfo.isSitting)
1273 {
1274 vec.Y += drawinfo.seatYOffset;
1275 }
1276 vec += legsOffset;
1277 vec = vec.Floor();
1278 DrawData item = new DrawData(value, vec, rectangle, drawinfo.colorArmorLegs, drawinfo.drawPlayer.legRotation, rectangle.Size() * new Vector2(0.5f, 0.5f - drawinfo.drawPlayer.gravDir * 0.5f), scale, drawinfo.playerEffect);
1279 item.shader = drawinfo.cLegs;
1280 drawinfo.DrawDataCache.Add(item);
1281 }
1282 }
1283 else if (drawinfo.drawPlayer.legs > 0 && drawinfo.drawPlayer.legs < ArmorIDs.Legs.Count && (!ShouldOverrideLegs_CheckShoes(ref drawinfo) || drawinfo.drawPlayer.wearsRobe))
1284 {
1285 if (drawinfo.drawPlayer.invis)
1286 {
1287 return;
1288 }
1289 DrawData item = new DrawData(TextureAssets.ArmorLeg[drawinfo.drawPlayer.legs].Value, legsOffset + new Vector2((int)(drawinfo.Position.X - Main.screenPosition.X - (float)(drawinfo.drawPlayer.legFrame.Width / 2) + (float)(drawinfo.drawPlayer.width / 2)), (int)(drawinfo.Position.Y - Main.screenPosition.Y + (float)drawinfo.drawPlayer.height - (float)drawinfo.drawPlayer.legFrame.Height + 4f)) + drawinfo.drawPlayer.legPosition + drawinfo.legVect, drawinfo.drawPlayer.legFrame, drawinfo.colorArmorLegs, drawinfo.drawPlayer.legRotation, drawinfo.legVect, 1f, drawinfo.playerEffect);
1290 item.shader = drawinfo.cLegs;
1291 drawinfo.DrawDataCache.Add(item);
1292 if (drawinfo.legsGlowMask == -1)
1293 {
1294 return;
1295 }
1296 if (drawinfo.legsGlowMask == 274)
1297 {
1298 for (int i = 0; i < 2; i++)
1299 {
1300 item = new DrawData(position: legsOffset + new Vector2((float)Main.rand.Next(-10, 10) * 0.125f, (float)Main.rand.Next(-10, 10) * 0.125f) + new Vector2((int)(drawinfo.Position.X - Main.screenPosition.X - (float)(drawinfo.drawPlayer.legFrame.Width / 2) + (float)(drawinfo.drawPlayer.width / 2)), (int)(drawinfo.Position.Y - Main.screenPosition.Y + (float)drawinfo.drawPlayer.height - (float)drawinfo.drawPlayer.legFrame.Height + 4f)) + drawinfo.drawPlayer.legPosition + drawinfo.legVect, texture: TextureAssets.GlowMask[drawinfo.legsGlowMask].Value, sourceRect: drawinfo.drawPlayer.legFrame, color: drawinfo.legsGlowColor, rotation: drawinfo.drawPlayer.legRotation, origin: drawinfo.legVect, scale: 1f, effect: drawinfo.playerEffect);
1301 item.shader = drawinfo.cLegs;
1302 drawinfo.DrawDataCache.Add(item);
1303 }
1304 }
1305 else
1306 {
1307 item = new DrawData(TextureAssets.GlowMask[drawinfo.legsGlowMask].Value, legsOffset + new Vector2((int)(drawinfo.Position.X - Main.screenPosition.X - (float)(drawinfo.drawPlayer.legFrame.Width / 2) + (float)(drawinfo.drawPlayer.width / 2)), (int)(drawinfo.Position.Y - Main.screenPosition.Y + (float)drawinfo.drawPlayer.height - (float)drawinfo.drawPlayer.legFrame.Height + 4f)) + drawinfo.drawPlayer.legPosition + drawinfo.legVect, drawinfo.drawPlayer.legFrame, drawinfo.legsGlowColor, drawinfo.drawPlayer.legRotation, drawinfo.legVect, 1f, drawinfo.playerEffect);
1308 item.shader = drawinfo.cLegs;
1309 drawinfo.DrawDataCache.Add(item);
1310 }
1311 }
1312 else if (!drawinfo.drawPlayer.invis && !ShouldOverrideLegs_CheckShoes(ref drawinfo))
1313 {
1314 DrawData item = new DrawData(TextureAssets.Players[drawinfo.skinVar, 11].Value, new Vector2((int)(drawinfo.Position.X - Main.screenPosition.X - (float)(drawinfo.drawPlayer.legFrame.Width / 2) + (float)(drawinfo.drawPlayer.width / 2)), (int)(drawinfo.Position.Y - Main.screenPosition.Y + (float)drawinfo.drawPlayer.height - (float)drawinfo.drawPlayer.legFrame.Height + 4f)) + drawinfo.drawPlayer.legPosition + drawinfo.legVect, drawinfo.drawPlayer.legFrame, drawinfo.colorPants, drawinfo.drawPlayer.legRotation, drawinfo.legVect, 1f, drawinfo.playerEffect);
1315 drawinfo.DrawDataCache.Add(item);
1316 item = new DrawData(TextureAssets.Players[drawinfo.skinVar, 12].Value, new Vector2((int)(drawinfo.Position.X - Main.screenPosition.X - (float)(drawinfo.drawPlayer.legFrame.Width / 2) + (float)(drawinfo.drawPlayer.width / 2)), (int)(drawinfo.Position.Y - Main.screenPosition.Y + (float)drawinfo.drawPlayer.height - (float)drawinfo.drawPlayer.legFrame.Height + 4f)) + drawinfo.drawPlayer.legPosition + drawinfo.legVect, drawinfo.drawPlayer.legFrame, drawinfo.colorShoes, drawinfo.drawPlayer.legRotation, drawinfo.legVect, 1f, drawinfo.playerEffect);
1317 drawinfo.DrawDataCache.Add(item);
1318 }
1319 }
void Add(TKey key, TValue value)
static bool ShouldOverrideLegs_CheckShoes(ref PlayerDrawSet drawinfo)
static void DrawSittingLegs(ref PlayerDrawSet drawinfo, Texture2D textureToDraw, Color matchingColor, int shaderIndex=0, bool glowmask=false)
static Asset< Texture2D >[] GlowMask
static Asset< Texture2D >[] ArmorLeg
static Asset< Texture2D >[] Extra
static Asset< Texture2D >[,] Players
static readonly int Count
Definition ArmorIDs.cs:1470

References System.Collections.Generic.Dictionary< TKey, TValue >.Add(), Terraria.GameContent.TextureAssets.ArmorLeg, Terraria.ID.ArmorIDs.Legs.Count, Terraria.DataStructures.PlayerDrawLayers.DrawSittingLegs(), Terraria.GameContent.TextureAssets.Extra, Terraria.Main.gameMenu, Terraria.GameContent.TextureAssets.GlowMask, System.item, Terraria.Main.OffsetsPlayerHeadgear, Terraria.GameContent.TextureAssets.Players, Terraria.Main.rand, Terraria.Main.screenPosition, Terraria.DataStructures.PlayerDrawLayers.ShouldOverrideLegs_CheckShoes(), System.value, and Microsoft.Xna.Framework.Graphics.Vector2.

Referenced by Terraria.Graphics.Renderers.LegacyPlayerRenderer.DrawPlayer_UseNormalLayers().