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

◆ Spawn()

void Terraria.Player.Spawn ( PlayerSpawnContext context)
inline

Definition at line 35701 of file Player.cs.

35702 {
35703 Main.LocalPlayer.creativeInterface = false;
35705 bool flag = false;
35706 if (context == PlayerSpawnContext.SpawningIntoWorld)
35707 {
35708 if (Main.netMode == 0 && unlockedBiomeTorches)
35709 {
35710 NPC nPC = new NPC();
35711 nPC.SetDefaults(664);
35712 Main.BestiaryTracker.Kills.RegisterKill(nPC);
35713 }
35714 if (dead)
35715 {
35717 if (dead)
35718 {
35719 flag = true;
35720 }
35721 }
35722 }
35724 if (whoAmI == Main.myPlayer)
35725 {
35726 Main.NotifyOfEvent(GameNotificationType.SpawnOrDeath);
35727 }
35728 if (whoAmI == Main.myPlayer)
35729 {
35730 if (Main.mapTime < 5)
35731 {
35732 Main.mapTime = 5;
35733 }
35734 Main.instantBGTransitionCounter = 10;
35735 FindSpawn();
35736 if (!CheckSpawn(SpawnX, SpawnY))
35737 {
35738 SpawnX = -1;
35739 SpawnY = -1;
35740 }
35741 Main.maxQ = true;
35742 NPC.ResetNetOffsets();
35743 }
35744 if (Main.netMode == 1 && whoAmI == Main.myPlayer)
35745 {
35746 NetMessage.SendData(12, -1, -1, null, Main.myPlayer, (int)(byte)context);
35747 }
35751 headRotation = 0f;
35752 bodyRotation = 0f;
35753 legRotation = 0f;
35755 lavaTime = lavaMax;
35756 if (!flag)
35757 {
35758 if (statLife <= 0)
35759 {
35760 int num = statLifeMax2 / 2;
35761 statLife = 100;
35762 if (num > statLife)
35763 {
35764 statLife = num;
35765 }
35766 breath = breathMax;
35767 if (spawnMax)
35768 {
35771 }
35772 }
35773 immune = true;
35774 dead = false;
35775 immuneTime = 0;
35776 }
35777 active = true;
35779 if (SpawnX >= 0 && SpawnY >= 0)
35780 {
35781 _ = SpawnX;
35782 _ = SpawnY;
35784 }
35785 else
35786 {
35788 }
35789 wet = false;
35790 wetCount = 0;
35791 lavaWet = false;
35792 fallStart = (int)(position.Y / 16f);
35794 velocity.X = 0f;
35795 velocity.Y = 0f;
35797 for (int i = 0; i < 3; i++)
35798 {
35800 }
35802 SetTalkNPC(-1);
35803 if (whoAmI == Main.myPlayer)
35804 {
35805 Main.npcChatCornerItem = 0;
35806 }
35807 if (!flag)
35808 {
35809 if (pvpDeath)
35810 {
35811 pvpDeath = false;
35812 immuneTime = 300;
35814 }
35815 else if (context == PlayerSpawnContext.ReviveFromDeath)
35816 {
35817 immuneTime = 180;
35818 }
35819 else
35820 {
35821 immuneTime = 60;
35822 }
35823 if (immuneTime > 0 && !hostile)
35824 {
35825 immuneNoBlink = true;
35826 }
35827 }
35828 if (whoAmI == Main.myPlayer)
35829 {
35830 bool flag2 = Vector2.Distance(value, position) < new Vector2(Main.screenWidth, Main.screenHeight).Length() / 2f + 100f;
35831 if (flag2)
35832 {
35833 Main.SetCameraLerp(0.1f, 0);
35834 flag2 = true;
35835 }
35836 else
35837 {
35838 Main.BlackFadeIn = 255;
35839 Lighting.Clear();
35840 Main.screenLastPosition = Main.screenPosition;
35841 Main.instantBGTransitionCounter = 10;
35842 }
35843 if (!flag2)
35844 {
35845 Main.renderNow = true;
35846 }
35847 if (Main.netMode == 1)
35848 {
35849 Netplay.AddCurrentServerToRecentList();
35850 }
35851 if (true && !flag2)
35852 {
35853 Main.screenPosition.X = position.X + (float)(width / 2) - (float)(Main.screenWidth / 2);
35854 Main.screenPosition.Y = position.Y + (float)(height / 2) - (float)(Main.screenHeight / 2);
35856 }
35857 }
35858 if (flag)
35859 {
35860 immuneAlpha = 255;
35861 }
35863 if (whoAmI == Main.myPlayer && context == PlayerSpawnContext.ReviveFromDeath && difficulty == 3)
35864 {
35866 }
35867 if (whoAmI == Main.myPlayer && context == PlayerSpawnContext.SpawningIntoWorld)
35868 {
35869 Main.ReleaseHostAndPlayProcess();
35870 RefreshItems();
35872 Main.LocalGolfState.SetScoreTime();
35873 Main.ActivePlayerFileData.StartPlayTimer();
35874 Hooks.EnterWorld(whoAmI);
35875 }
35876 }
Vector2 oldPosition
Definition Entity.cs:18
Vector2 position
Definition Entity.cs:14
byte wetCount
Definition Entity.cs:36
void SetTalkNPC(int npcIndex, bool fromNet=false)
Definition Player.cs:3725
RabbitOrderFrameHelper rabbitOrderFrame
Definition Player.cs:1527
void UpdateGraveyard(bool now=false)
Definition Player.cs:15998
float bodyRotation
Definition Player.cs:1275
bool unlockedBiomeTorches
Definition Player.cs:1663
Vector2 bodyPosition
Definition Player.cs:1281
float legRotation
Definition Player.cs:1277
void Spawn_SetPosition(int floorX, int floorY)
Definition Player.cs:36003
void RefreshItems(bool onlyIfVariantChanged=true)
Definition Player.cs:33517
static bool CheckSpawn(int x, int y)
Definition Player.cs:51050
void AutoFinchStaff()
Definition Player.cs:35691
int _funkytownAchievementCheckCooldown
Definition Player.cs:2593
Vector2 legPosition
Definition Player.cs:1283
void ForceUpdateBiomes()
Definition Player.cs:16028
void SetPlayerDataToOutOfClassFields()
Definition Player.cs:51456
bool immuneNoBlink
Definition Player.cs:1105
float headRotation
Definition Player.cs:1273
void StopVanityActions(bool multiplayerBroadcast=true)
Definition Player.cs:31204
void FindSpawn()
Definition Player.cs:51095
void UpdateSocialShadow()
Definition Player.cs:15909
Vector2 headPosition
Definition Player.cs:1279
Vector2 BlehOldPositionFixer
Definition Player.cs:2752
void Spawn_SetPositionAtWorldSpawn()
Definition Player.cs:35923
static void AdjustRespawnTimerForWorldJoining(Player newPlayer)
Definition Player.cs:52174
void ResetAdvancedShadows()
Definition Player.cs:3702
static float Distance(Vector2 value1, Vector2 value2)
Definition Vector2.cs:91

References Terraria.Main.ActivePlayerFileData, Terraria.Netplay.AddCurrentServerToRecentList(), Terraria.Main.BestiaryTracker, Terraria.Lighting.Clear(), Microsoft.Xna.Framework.Vector2.Distance(), Terraria.Player.Hooks.EnterWorld(), Microsoft.Xna.Framework.Vector2.Length(), Terraria.Main.LocalGolfState, Terraria.Main.mapTime, Terraria.Main.myPlayer, Terraria.Main.netMode, Terraria.Main.NotifyOfEvent(), Terraria.Enums.NPC, Terraria.Main.ReleaseHostAndPlayProcess(), Terraria.NPC.ResetNetOffsets(), Terraria.Main.screenHeight, Terraria.Main.screenPosition, Terraria.Main.screenWidth, Terraria.NetMessage.SendData(), Terraria.Main.SetCameraLerp(), System.value, and Microsoft.Xna.Framework.Vector2.Zero.