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

◆ StartSleeping()

void Terraria.GameContent.PlayerSleepingHelper.StartSleeping ( Player player,
int x,
int y )
inline

Definition at line 151 of file PlayerSleepingHelper.cs.

152 {
153 GetSleepingTargetInfo(x, y, out var targetDirection, out var anchorPosition, out var visualoffset);
154 Vector2 offset = anchorPosition - player.Bottom;
155 bool flag = player.CanSnapToPosition(offset);
156 if (flag)
157 {
158 flag &= Main.sleepingManager.GetNextPlayerStackIndexInCoords((anchorPosition + new Vector2(0f, -2f)).ToTileCoordinates()) < 2;
159 }
160 if (!flag)
161 {
162 return;
163 }
164 if (isSleeping && player.Bottom == anchorPosition)
165 {
166 StopSleeping(player);
167 return;
168 }
169 player.StopVanityActions();
170 player.RemoveAllGrapplingHooks();
171 player.RemoveAllFishingBobbers();
172 if (player.mount.Active)
173 {
174 player.mount.Dismount(player);
175 }
176 player.Bottom = anchorPosition;
177 player.ChangeDir(targetDirection);
178 Main.sleepingManager.AddPlayerAndGetItsStackedIndexInCoords(player.whoAmI, new Point(x, y), out sleepingIndex);
179 player.velocity = Vector2.Zero;
180 player.gravDir = 1f;
182 visualOffsetOfBedBase = visualoffset;
183 if (Main.myPlayer == player.whoAmI)
184 {
185 NetMessage.SendData(13, -1, -1, null, player.whoAmI);
186 }
187 }
static bool GetSleepingTargetInfo(int x, int y, out int targetDirection, out Vector2 anchorPosition, out Vector2 visualoffset)
void StopSleeping(Player player, bool multiplayerBroadcast=true)
void SetIsSleepingAndAdjustPlayerRotation(Player player, bool state)

References Terraria.Mount.Active, Terraria.Entity.Bottom, Terraria.Player.CanSnapToPosition(), Terraria.Player.ChangeDir(), Terraria.Mount.Dismount(), Terraria.GameContent.PlayerSleepingHelper.GetSleepingTargetInfo(), Terraria.GameContent.PlayerSleepingHelper.isSleeping, Terraria.Player.mount, Terraria.Main.myPlayer, System.offset, Terraria.Player.RemoveAllFishingBobbers(), Terraria.Player.RemoveAllGrapplingHooks(), Terraria.NetMessage.SendData(), Terraria.GameContent.PlayerSleepingHelper.SetIsSleepingAndAdjustPlayerRotation(), Terraria.GameContent.PlayerSleepingHelper.sleepingIndex, Terraria.Main.sleepingManager, System.state, Terraria.GameContent.PlayerSleepingHelper.StopSleeping(), Terraria.Player.StopVanityActions(), Terraria.GameContent.PlayerSleepingHelper.visualOffsetOfBedBase, Terraria.Entity.whoAmI, and Microsoft.Xna.Framework.Vector2.Zero.