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

◆ DrawSittingLegs()

static void Terraria.DataStructures.PlayerDrawLayers.DrawSittingLegs ( ref PlayerDrawSet drawinfo,
Texture2D textureToDraw,
Color matchingColor,
int shaderIndex = 0,
bool glowmask = false )
inlinestaticprivate

Definition at line 1338 of file PlayerDrawLayers.cs.

1339 {
1340 Vector2 legsOffset = drawinfo.legsOffset;
1341 Vector2 vector = 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;
1342 Rectangle legFrame = drawinfo.drawPlayer.legFrame;
1343 vector.Y -= 2f;
1344 vector.Y += drawinfo.seatYOffset;
1345 vector += legsOffset;
1346 int num = 2;
1347 int num2 = 42;
1348 int num3 = 2;
1349 int num4 = 2;
1350 int num5 = 0;
1351 int num6 = 0;
1352 int num7 = 0;
1353 bool flag = drawinfo.drawPlayer.legs == 101 || drawinfo.drawPlayer.legs == 102 || drawinfo.drawPlayer.legs == 118 || drawinfo.drawPlayer.legs == 99;
1354 if (drawinfo.drawPlayer.wearsRobe && !flag)
1355 {
1356 num = 0;
1357 num4 = 0;
1358 num2 = 6;
1359 vector.Y += 4f;
1360 legFrame.Y = legFrame.Height * 5;
1361 }
1362 switch (drawinfo.drawPlayer.legs)
1363 {
1364 case 214:
1365 case 215:
1366 case 216:
1367 num = -6;
1368 num4 = 2;
1369 num5 = 2;
1370 num3 = 4;
1371 num2 = 6;
1372 legFrame = drawinfo.drawPlayer.legFrame;
1373 vector.Y += 2f;
1374 break;
1375 case 106:
1376 case 143:
1377 case 226:
1378 num = 0;
1379 num4 = 0;
1380 num2 = 6;
1381 vector.Y += 4f;
1382 legFrame.Y = legFrame.Height * 5;
1383 break;
1384 case 132:
1385 num = -2;
1386 num7 = 2;
1387 break;
1388 case 193:
1389 case 194:
1390 if (drawinfo.drawPlayer.body == 218)
1391 {
1392 num = -2;
1393 num7 = 2;
1394 vector.Y += 2f;
1395 }
1396 break;
1397 case 210:
1398 if (glowmask)
1399 {
1400 Vector2 vector2 = new Vector2((float)Main.rand.Next(-10, 10) * 0.125f, (float)Main.rand.Next(-10, 10) * 0.125f);
1401 vector += vector2;
1402 }
1403 break;
1404 }
1405 for (int num8 = num3; num8 >= 0; num8--)
1406 {
1407 Vector2 position = vector + new Vector2(num, 2f) * new Vector2(drawinfo.drawPlayer.direction, 1f);
1408 Rectangle value = legFrame;
1409 value.Y += num8 * 2;
1410 value.Y += num2;
1411 value.Height -= num2;
1412 value.Height -= num8 * 2;
1413 if (num8 != num3)
1414 {
1415 value.Height = 2;
1416 }
1417 position.X += drawinfo.drawPlayer.direction * num4 * num8 + num6 * drawinfo.drawPlayer.direction;
1418 if (num8 != 0)
1419 {
1420 position.X += num7 * drawinfo.drawPlayer.direction;
1421 }
1422 position.Y += num2;
1423 position.Y += num5;
1424 DrawData item = new DrawData(textureToDraw, position, value, matchingColor, drawinfo.drawPlayer.legRotation, drawinfo.legVect, 1f, drawinfo.playerEffect);
1425 item.shader = shaderIndex;
1426 drawinfo.DrawDataCache.Add(item);
1427 }
1428 }
void Add(TKey key, TValue value)

References System.Collections.Generic.Dictionary< TKey, TValue >.Add(), System.item, Terraria.Main.rand, Terraria.Main.screenPosition, System.value, and Microsoft.Xna.Framework.Graphics.Vector2.

Referenced by Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_12_Skin(), Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_12_Skin_Composite(), Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_13_Leggings(), Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_14_Shoes(), and Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_15_SkinLongCoat().