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

◆ ItemCheck_TryPlacingWearablesOnMannequins()

void Terraria.Player.ItemCheck_TryPlacingWearablesOnMannequins ( Item sItem)
inlineprivate

Definition at line 53293 of file Player.cs.

53294 {
53295 if (!controlUseItem || !releaseUseItem || (sItem.headSlot <= 0 && sItem.bodySlot <= 0 && sItem.legSlot <= 0))
53296 {
53297 return;
53298 }
53299 if (sItem.useStyle == 0)
53300 {
53301 releaseUseItem = false;
53302 }
53303 if (!(position.X / 16f - (float)tileRangeX - (float)sItem.tileBoost <= (float)tileTargetX) || !((position.X + (float)width) / 16f + (float)tileRangeX + (float)sItem.tileBoost - 1f >= (float)tileTargetX) || !(position.Y / 16f - (float)tileRangeY - (float)sItem.tileBoost <= (float)tileTargetY) || !((position.Y + (float)height) / 16f + (float)tileRangeY + (float)sItem.tileBoost - 2f >= (float)tileTargetY))
53304 {
53305 return;
53306 }
53307 int num = tileTargetX;
53308 int num2 = tileTargetY;
53309 if (!Main.tile[num, num2].active() || (Main.tile[num, num2].type != 128 && Main.tile[num, num2].type != 269))
53310 {
53311 return;
53312 }
53313 int frameY = Main.tile[num, num2].frameY;
53314 int num3 = 0;
53315 if (sItem.bodySlot >= 0)
53316 {
53317 num3 = 1;
53318 }
53319 if (sItem.legSlot >= 0)
53320 {
53321 num3 = 2;
53322 }
53323 frameY /= 18;
53324 while (num3 > frameY)
53325 {
53326 num2++;
53327 frameY = Main.tile[num, num2].frameY;
53328 frameY /= 18;
53329 }
53330 while (num3 < frameY)
53331 {
53332 num2--;
53333 frameY = Main.tile[num, num2].frameY;
53334 frameY /= 18;
53335 }
53336 int num4;
53337 for (num4 = Main.tile[num, num2].frameX; num4 >= 100; num4 -= 100)
53338 {
53339 }
53340 if (num4 >= 36)
53341 {
53342 num4 -= 36;
53343 }
53344 num -= num4 / 18;
53345 int num5 = Main.tile[num, num2].frameX;
53346 WorldGen.KillTile(num, num2, fail: true);
53347 if (Main.netMode == 1)
53348 {
53349 NetMessage.SendData(17, -1, -1, null, 0, num, num2, 1f);
53350 }
53351 while (num5 >= 100)
53352 {
53353 num5 -= 100;
53354 }
53355 if (frameY == 0 && sItem.headSlot >= 0)
53356 {
53357 Main.blockMouse = true;
53358 Main.tile[num, num2].frameX = (short)(num5 + sItem.headSlot * 100);
53359 if (Main.netMode == 1)
53360 {
53361 NetMessage.SendTileSquare(-1, num, num2);
53362 }
53363 sItem.stack--;
53364 if (sItem.stack <= 0)
53365 {
53366 sItem.SetDefaults();
53367 Main.mouseItem.SetDefaults();
53368 }
53369 if (selectedItem == 58)
53370 {
53371 Main.mouseItem = sItem.Clone();
53372 }
53373 releaseUseItem = false;
53374 mouseInterface = true;
53375 }
53376 else if (frameY == 1 && sItem.bodySlot >= 0)
53377 {
53378 Main.blockMouse = true;
53379 Main.tile[num, num2].frameX = (short)(num5 + sItem.bodySlot * 100);
53380 if (Main.netMode == 1)
53381 {
53382 NetMessage.SendTileSquare(-1, num, num2);
53383 }
53384 sItem.stack--;
53385 if (sItem.stack <= 0)
53386 {
53387 sItem.SetDefaults();
53388 Main.mouseItem.SetDefaults();
53389 }
53390 if (selectedItem == 58)
53391 {
53392 Main.mouseItem = sItem.Clone();
53393 }
53394 releaseUseItem = false;
53395 mouseInterface = true;
53396 }
53397 else if (frameY == 2 && sItem.legSlot >= 0 && !ArmorIDs.Legs.Sets.MannequinIncompatible.Contains(sItem.legSlot))
53398 {
53399 Main.blockMouse = true;
53400 Main.tile[num, num2].frameX = (short)(num5 + sItem.legSlot * 100);
53401 if (Main.netMode == 1)
53402 {
53403 NetMessage.SendTileSquare(-1, num, num2);
53404 }
53405 sItem.stack--;
53406 if (sItem.stack <= 0)
53407 {
53408 sItem.SetDefaults();
53409 Main.mouseItem.SetDefaults();
53410 }
53411 if (selectedItem == 58)
53412 {
53413 Main.mouseItem = sItem.Clone();
53414 }
53415 releaseUseItem = false;
53416 mouseInterface = true;
53417 }
53418 }
Vector2 position
The position of this Entity in world coordinates.
Definition Entity.cs:28
int width
The width of this Entity's hitbox, in pixels.
Definition Entity.cs:46
int height
The height of this Entity's hitbox, in pixels.
Definition Entity.cs:51
static List< int > MannequinIncompatible
Unused. Used for old (Womm)annequins (F:Terraria.ID.TileID.Mannequin).
Definition ArmorIDs.cs:1195
bool mouseInterface
Definition Player.cs:1616
bool releaseUseItem
Definition Player.cs:1926
static int tileTargetY
Definition Player.cs:2652
static int tileRangeX
Definition Player.cs:2642
static int tileTargetX
Definition Player.cs:2650
static int tileRangeY
Definition Player.cs:2644
bool controlUseItem
Definition Player.cs:1904

References Terraria.Player.controlUseItem, Terraria.Entity.height, Terraria.WorldGen.KillTile(), Terraria.ID.ArmorIDs.Legs.Sets.MannequinIncompatible, Terraria.Player.mouseInterface, Terraria.Main.mouseItem, Terraria.Main.netMode, Terraria.Entity.position, Terraria.Player.releaseUseItem, Terraria.Player.selectedItem, Terraria.NetMessage.SendData(), Terraria.NetMessage.SendTileSquare(), Terraria.Main.tile, Terraria.Player.tileRangeX, Terraria.Player.tileRangeY, Terraria.Player.tileTargetX, Terraria.Player.tileTargetY, and Terraria.Entity.width.

+ Here is the call graph for this function: