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

◆ PlaceThing_ValidTileForReplacement()

bool Terraria.Player.PlaceThing_ValidTileForReplacement ( )
inlineprivate

Definition at line 38707 of file Player.cs.

38708 {
38709 int createTile = HeldItem.createTile;
38710 int num = HeldItem.placeStyle;
38711 if (UsingBiomeTorches && createTile == 4)
38712 {
38713 BiomeTorchPlaceStyle(ref createTile, ref num);
38714 }
38715 if (UsingBiomeTorches && createTile == 215)
38716 {
38717 BiomeCampfirePlaceStyle(ref createTile, ref num);
38718 }
38719 Tile tile = Main.tile[tileTargetX, tileTargetY];
38720 if (WorldGen.WouldTileReplacementBeBlockedByLiquid(tileTargetX, tileTargetY, 1))
38721 {
38722 return false;
38723 }
38725 {
38726 return false;
38727 }
38728 if (Main.tileMoss[createTile])
38729 {
38730 return false;
38731 }
38733 {
38734 return false;
38735 }
38737 {
38738 return false;
38739 }
38740 if (!PlaceThing_CheckSpecificValidtyCaseForBlockSwap(createTile, tile.type))
38741 {
38742 return false;
38743 }
38744 if (Main.tileCut[tile.type])
38745 {
38746 return false;
38747 }
38748 if (TileID.Sets.Platforms[tile.type] && tile.type == createTile)
38749 {
38750 return tile.frameY != num * 18;
38751 }
38752 if (TileID.Sets.Torch[tile.type] && TileID.Sets.Torch[createTile])
38753 {
38754 if (tile.type == createTile)
38755 {
38756 return tile.frameY != num * 22;
38757 }
38758 return true;
38759 }
38760 if (TileID.Sets.Campfire[tile.type] && TileID.Sets.Campfire[createTile])
38761 {
38762 if (tile.type == createTile)
38763 {
38764 return tile.frameX / 54 != num;
38765 }
38766 return true;
38767 }
38768 if (TileID.Sets.BasicChest[tile.type] && TileID.Sets.BasicChest[createTile])
38769 {
38770 if (tile.frameX / 36 == num)
38771 {
38772 return tile.type != createTile;
38773 }
38774 return true;
38775 }
38776 if (TileID.Sets.BasicDresser[tile.type] && TileID.Sets.BasicDresser[createTile])
38777 {
38778 if (tile.frameX / 54 == num)
38779 {
38780 return tile.type != createTile;
38781 }
38782 return true;
38783 }
38784 bool flag = false;
38785 if (Main.tileRope[tile.type])
38786 {
38787 if (createTile != 314 && !TileID.Sets.Platforms[createTile])
38788 {
38789 return false;
38790 }
38791 flag = true;
38792 }
38793 if (!flag && Main.tileFrameImportant[createTile] && !TileID.Sets.Platforms[createTile])
38794 {
38795 return false;
38796 }
38797 if (Main.tile[tileTargetX, tileTargetY].type == createTile)
38798 {
38799 return false;
38800 }
38801 if (Main.tile[tileTargetX, tileTargetY].type == 230 && Main.getGoodWorld)
38802 {
38803 return false;
38804 }
38806 {
38807 WorldGen.KillTile_GetItemDrops(tileTargetX, tileTargetY, tile, out var dropItem, out var _, out var _, out var _);
38808 if (dropItem == HeldItem.type)
38809 {
38810 return false;
38811 }
38812 }
38813 if (!WorldGen.WouldTileReplacementWork((ushort)createTile, tileTargetX, tileTargetY))
38814 {
38815 return false;
38816 }
38817 return true;
38818 }
static int[] SortingPriorityRopes
Determines the sorting order of F:Terraria.ID.ItemID.Rope and similar items. If !...
Definition ItemID.cs:1427
static bool[] DoesntPlaceWithTileReplacement
Indicates that this tile can't replace another tile via the block swap feature. Use M:Terraria....
Definition TileID.cs:207
static bool[] Campfire
Whether or not this tile behaves like a campfire. Campfires must be 3x2 and need to follow the vanill...
Definition TileID.cs:432
static bool[] BasicDresser
Definition TileID.cs:294
static bool[] BasicChest
Definition TileID.cs:290
static bool[] Platforms
Definition TileID.cs:219
static bool[] IgnoresTileReplacementDropCheckWhenBeingPlaced
Definition TileID.cs:187
static bool[] Torch
Whether or not this tile behaves like a torch. If you are making a torch tile, then setting this to t...
Definition TileID.cs:428
static bool[] DoesntGetReplacedWithTileReplacement
Indicates that this tile can't be replaced with another tile via the block swap feature....
Definition TileID.cs:213
int createTile
The ID of the tile this item places on use. Either a T:Terraria.ID.TileID entry or M:Terraria....
Definition Item.cs:435
int placeStyle
The style of the tile being placed. Used for tiles that have a different look depending on the item u...
Definition Item.cs:448
int type
The Item ID of this item. The Item ID is a unique number assigned to each Item loaded into the game....
Definition Item.cs:345
int BiomeTorchPlaceStyle(ref int type, ref int style)
Definition Player.cs:38940
int BiomeCampfirePlaceStyle(ref int type, ref int style)
Definition Player.cs:39064
bool UsingBiomeTorches
Definition Player.cs:4289
static int tileTargetY
Definition Player.cs:2652
static int tileTargetX
Definition Player.cs:2650
bool PlaceThing_CheckSpecificValidtyCaseForBlockSwap(int tileTypeBeingPlaced, int tileTypeCurrentlyPlaced)
Definition Player.cs:38820

References Terraria.ID.TileID.Sets.BasicChest, Terraria.ID.TileID.Sets.BasicDresser, Terraria.Player.BiomeCampfirePlaceStyle(), Terraria.Player.BiomeTorchPlaceStyle(), Terraria.ID.TileID.Sets.Campfire, Terraria.Item.createTile, Terraria.ID.TileID.Sets.DoesntGetReplacedWithTileReplacement, Terraria.ID.TileID.Sets.DoesntPlaceWithTileReplacement, Terraria.Tile.frameX, Terraria.Main.getGoodWorld, Terraria.Player.HeldItem, Terraria.ID.TileID.Sets.IgnoresTileReplacementDropCheckWhenBeingPlaced, Terraria.WorldGen.KillTile_GetItemDrops(), Terraria.Item.placeStyle, Terraria.Player.PlaceThing_CheckSpecificValidtyCaseForBlockSwap(), 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.Player.tileTargetX, Terraria.Player.tileTargetY, Terraria.ID.TileID.Sets.Torch, Terraria.Item.type, Terraria.Tile.type, Terraria.Player.UsingBiomeTorches, Terraria.WorldGen.WouldTileReplacementBeBlockedByLiquid(), and Terraria.WorldGen.WouldTileReplacementWork().

Referenced by Terraria.Player.PlaceThing_TryReplacingTiles().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: