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

◆ UpdateState()

void Terraria.GameContent.PlayerSleepingHelper.UpdateState ( Player player)
inline

Definition at line 81 of file PlayerSleepingHelper.cs.

82 {
83 if (!isSleeping)
84 {
85 timeSleeping = 0;
86 return;
87 }
90 {
91 timeSleeping = 0;
92 }
93 Point coords = (player.Bottom + new Vector2(0f, -2f)).ToTileCoordinates();
94 if (!GetSleepingTargetInfo(coords.X, coords.Y, out var targetDirection, out var _, out var visualoffset))
95 {
96 StopSleeping(player);
97 return;
98 }
99 if (player.controlLeft || player.controlRight || player.controlUp || player.controlDown || player.controlJump || player.pulley || player.mount.Active || targetDirection != player.direction)
100 {
101 StopSleeping(player);
102 }
103 bool flag = false;
104 if (player.itemAnimation > 0)
105 {
106 Item heldItem = player.HeldItem;
107 if (heldItem.damage > 0 && !heldItem.noMelee)
108 {
109 flag = true;
110 }
111 if (heldItem.fishingPole > 0)
112 {
113 flag = true;
114 }
115 bool? flag2 = ItemID.Sets.ForcesBreaksSleeping[heldItem.type];
116 if (flag2.HasValue)
117 {
118 flag = flag2.Value;
119 }
120 }
121 if (flag)
122 {
123 StopSleeping(player);
124 }
125 if (Main.sleepingManager.GetNextPlayerStackIndexInCoords(coords) >= 2)
126 {
127 StopSleeping(player);
128 }
129 if (isSleeping)
130 {
131 visualOffsetOfBedBase = visualoffset;
132 Main.sleepingManager.AddPlayerAndGetItsStackedIndexInCoords(player.whoAmI, coords, out sleepingIndex);
133 }
134 }
static ? bool[] ForcesBreaksSleeping
Definition ItemID.cs:116
static bool GetSleepingTargetInfo(int x, int y, out int targetDirection, out Vector2 anchorPosition, out Vector2 visualoffset)
void StopSleeping(Player player, bool multiplayerBroadcast=true)

References Terraria.Mount.Active, Terraria.Player.controlDown, Terraria.Player.controlJump, Terraria.Player.controlLeft, Terraria.Player.controlRight, Terraria.Player.controlUp, Terraria.Item.damage, Terraria.Entity.direction, Terraria.GameContent.PlayerSleepingHelper.DoesPlayerHaveReasonToActUpInBed(), Terraria.Item.fishingPole, Terraria.ID.ItemID.Sets.ForcesBreaksSleeping, Terraria.GameContent.PlayerSleepingHelper.GetSleepingTargetInfo(), Terraria.Player.HeldItem, Terraria.GameContent.PlayerSleepingHelper.isSleeping, Terraria.Player.itemAnimation, Terraria.Player.mount, Terraria.Item.noMelee, Terraria.Player.pulley, Terraria.GameContent.PlayerSleepingHelper.sleepingIndex, Terraria.Main.sleepingManager, Terraria.GameContent.PlayerSleepingHelper.StopSleeping(), Terraria.GameContent.PlayerSleepingHelper.timeSleeping, Terraria.Item.type, Terraria.GameContent.PlayerSleepingHelper.visualOffsetOfBedBase, Terraria.Entity.whoAmI, Microsoft.Xna.Framework.Point.X, and Microsoft.Xna.Framework.Point.Y.