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

◆ PlaceThing_ValidTileForReplacement()

bool Terraria.Player.PlaceThing_ValidTileForReplacement ( )
inlineprivate

Definition at line 37704 of file Player.cs.

37705 {
37706 int createTile = HeldItem.createTile;
37707 int num = HeldItem.placeStyle;
37708 if (UsingBiomeTorches && createTile == 4)
37709 {
37710 num = BiomeTorchPlaceStyle(num);
37711 }
37712 if (UsingBiomeTorches && createTile == 215)
37713 {
37714 num = BiomeCampfirePlaceStyle(num);
37715 }
37716 Tile tile = Main.tile[tileTargetX, tileTargetY];
37717 if (WorldGen.WouldTileReplacementBeBlockedByLiquid(tileTargetX, tileTargetY, 1))
37718 {
37719 return false;
37720 }
37722 {
37723 return false;
37724 }
37725 if (Main.tileMoss[createTile])
37726 {
37727 return false;
37728 }
37730 {
37731 return false;
37732 }
37734 {
37735 return false;
37736 }
37737 if (!PlaceThing_CheckSpecificValidtyCaseForBlockSwap(createTile, tile.type))
37738 {
37739 return false;
37740 }
37741 if (Main.tileCut[tile.type])
37742 {
37743 return false;
37744 }
37745 if (TileID.Sets.Platforms[tile.type] && tile.type == createTile)
37746 {
37747 return tile.frameY != num * 18;
37748 }
37749 if (tile.type == 4 && tile.type == createTile)
37750 {
37751 return tile.frameY != num * 22;
37752 }
37753 if (tile.type == 215 && tile.type == createTile)
37754 {
37755 return tile.frameX / 54 != num;
37756 }
37757 if (TileID.Sets.BasicChest[tile.type] && TileID.Sets.BasicChest[createTile])
37758 {
37759 if (tile.frameX / 36 == num)
37760 {
37761 return tile.type != createTile;
37762 }
37763 return true;
37764 }
37765 if (TileID.Sets.BasicDresser[tile.type] && TileID.Sets.BasicDresser[createTile])
37766 {
37767 if (tile.frameX / 54 == num)
37768 {
37769 return tile.type != createTile;
37770 }
37771 return true;
37772 }
37773 bool flag = false;
37774 if (Main.tileRope[tile.type])
37775 {
37776 if (createTile != 314 && !TileID.Sets.Platforms[createTile])
37777 {
37778 return false;
37779 }
37780 flag = true;
37781 }
37782 if (!flag && Main.tileFrameImportant[createTile] && !TileID.Sets.Platforms[createTile])
37783 {
37784 return false;
37785 }
37786 if (Main.tile[tileTargetX, tileTargetY].type == createTile)
37787 {
37788 return false;
37789 }
37790 if (Main.tile[tileTargetX, tileTargetY].type == 230 && Main.getGoodWorld)
37791 {
37792 return false;
37793 }
37795 {
37796 WorldGen.KillTile_GetItemDrops(tileTargetX, tileTargetY, tile, out var dropItem, out var _, out var _, out var _);
37797 if (dropItem == HeldItem.type)
37798 {
37799 return false;
37800 }
37801 }
37802 if (!WorldGen.WouldTileReplacementWork((ushort)createTile, tileTargetX, tileTargetY))
37803 {
37804 return false;
37805 }
37806 return true;
37807 }
static int[] SortingPriorityRopes
Definition ItemID.cs:1072
static bool[] DoesntPlaceWithTileReplacement
Definition TileID.cs:155
static bool[] BasicDresser
Definition TileID.cs:227
static bool[] BasicChest
Definition TileID.cs:223
static bool[] Platforms
Definition TileID.cs:163
static bool[] IgnoresTileReplacementDropCheckWhenBeingPlaced
Definition TileID.cs:139
static bool[] DoesntGetReplacedWithTileReplacement
Definition TileID.cs:157
int createTile
Definition Item.cs:161
int placeStyle
Definition Item.cs:165
bool UsingBiomeTorches
Definition Player.cs:3426
static int tileTargetY
Definition Player.cs:2085
int BiomeCampfirePlaceStyle(int style)
Definition Player.cs:38042
static int tileTargetX
Definition Player.cs:2083
int BiomeTorchPlaceStyle(int style)
Definition Player.cs:37928
bool PlaceThing_CheckSpecificValidtyCaseForBlockSwap(int tileTypeBeingPlaced, int tileTypeCurrentlyPlaced)
Definition Player.cs:37809

References Terraria.ID.TileID.Sets.BasicChest, Terraria.ID.TileID.Sets.BasicDresser, Terraria.Item.createTile, Terraria.ID.TileID.Sets.DoesntGetReplacedWithTileReplacement, Terraria.ID.TileID.Sets.DoesntPlaceWithTileReplacement, Terraria.Tile.frameX, Terraria.Main.getGoodWorld, Terraria.ID.TileID.Sets.IgnoresTileReplacementDropCheckWhenBeingPlaced, Terraria.WorldGen.KillTile_GetItemDrops(), Terraria.Item.placeStyle, Terraria.ID.TileID.Sets.Platforms, Terraria.ID.ItemID.Sets.SortingPriorityRopes, Terraria.Main.tile, Terraria.Main.tileCut, Terraria.Main.tileFrameImportant, Terraria.Main.tileMoss, Terraria.Main.tileRope, Terraria.Item.type, Terraria.Tile.type, Terraria.WorldGen.WouldTileReplacementBeBlockedByLiquid(), and Terraria.WorldGen.WouldTileReplacementWork().