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

◆ SitDown()

void Terraria.GameContent.PlayerSittingHelper.SitDown ( Player player,
int x,
int y )
inline

Definition at line 93 of file PlayerSittingHelper.cs.

94 {
95 if (!GetSittingTargetInfo(player, x, y, out var targetDirection, out var playerSittingPosition, out var seatDownOffset, out var extraInfo))
96 {
97 return;
98 }
99 Vector2 offset = playerSittingPosition - player.Bottom;
100 bool flag = player.CanSnapToPosition(offset);
101 if (flag)
102 {
103 flag &= Main.sittingManager.GetNextPlayerStackIndexInCoords((playerSittingPosition + new Vector2(0f, -2f)).ToTileCoordinates()) < 2;
104 }
105 if (!flag)
106 {
107 return;
108 }
109 if (isSitting && player.Bottom == playerSittingPosition)
110 {
111 SitUp(player);
112 return;
113 }
114 player.StopVanityActions();
115 player.RemoveAllGrapplingHooks();
116 if (player.mount.Active)
117 {
118 player.mount.Dismount(player);
119 }
120 player.Bottom = playerSittingPosition;
121 player.ChangeDir(targetDirection);
122 isSitting = true;
123 details = extraInfo;
124 offsetForSeat = seatDownOffset;
125 Main.sittingManager.AddPlayerAndGetItsStackedIndexInCoords(player.whoAmI, new Point(x, y), out sittingIndex);
126 player.velocity = Vector2.Zero;
127 player.gravDir = 1f;
128 if (Main.myPlayer == player.whoAmI)
129 {
130 NetMessage.SendData(13, -1, -1, null, player.whoAmI);
131 }
132 }
static bool GetSittingTargetInfo(Player player, int x, int y, out int targetDirection, out Vector2 playerSittingPosition, out Vector2 seatDownOffset, out ExtraSeatInfo extraInfo)
void SitUp(Player player, bool multiplayerBroadcast=true)

References Terraria.Mount.Active, Terraria.Entity.Bottom, Terraria.Player.CanSnapToPosition(), Terraria.Player.ChangeDir(), Terraria.GameContent.PlayerSittingHelper.details, Terraria.Mount.Dismount(), Terraria.GameContent.PlayerSittingHelper.GetSittingTargetInfo(), Terraria.GameContent.PlayerSittingHelper.isSitting, Terraria.Player.mount, Terraria.Main.myPlayer, Terraria.GameContent.PlayerSittingHelper.offsetForSeat, Terraria.Player.RemoveAllGrapplingHooks(), Terraria.NetMessage.SendData(), Terraria.GameContent.PlayerSittingHelper.sittingIndex, Terraria.Main.sittingManager, Terraria.GameContent.PlayerSittingHelper.SitUp(), Terraria.Player.StopVanityActions(), Terraria.Entity.whoAmI, and Microsoft.Xna.Framework.Vector2.Zero.