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

◆ Ghost()

void Terraria.Player.Ghost ( )
inline

Definition at line 5674 of file Player.cs.

5675 {
5676 immune = false;
5677 immuneAlpha = 0;
5678 if (Main.hasFocus && whoAmI == Main.myPlayer)
5679 {
5680 controlUp = false;
5681 controlLeft = false;
5682 controlDown = false;
5683 controlRight = false;
5684 controlJump = false;
5685 if (!Main.drawingPlayerChat && !Main.editSign && !Main.editChest && !Main.blockInput)
5686 {
5687 PlayerInput.Triggers.Current.CopyInto(this);
5690 }
5691 }
5692 float num = 7f;
5693 float num2 = 0.2f;
5694 if (controlUp || controlJump)
5695 {
5696 if (velocity.Y > 0f)
5697 {
5698 velocity.Y *= 0.9f;
5699 }
5700 velocity.Y -= num2;
5701 if (velocity.Y < 0f - num)
5702 {
5703 velocity.Y = 0f - num;
5704 }
5705 }
5706 else if (controlDown)
5707 {
5708 if (velocity.Y < 0f)
5709 {
5710 velocity.Y *= 0.9f;
5711 }
5712 velocity.Y += num2;
5713 if (velocity.Y > num)
5714 {
5715 velocity.Y = num;
5716 }
5717 }
5718 else if ((double)velocity.Y < -0.1 || (double)velocity.Y > 0.1)
5719 {
5720 velocity.Y *= 0.9f;
5721 }
5722 else
5723 {
5724 velocity.Y = 0f;
5725 }
5726 if (controlLeft && !controlRight)
5727 {
5728 if (velocity.X > 0f)
5729 {
5730 velocity.X *= 0.9f;
5731 }
5732 velocity.X -= num2;
5733 if (velocity.X < 0f - num)
5734 {
5735 velocity.X = 0f - num;
5736 }
5737 }
5738 else if (controlRight && !controlLeft)
5739 {
5740 if (velocity.X < 0f)
5741 {
5742 velocity.X *= 0.9f;
5743 }
5744 velocity.X += num2;
5745 if (velocity.X > num)
5746 {
5747 velocity.X = num;
5748 }
5749 }
5750 else if (velocity.X < 0f - num2 || velocity.X > num2)
5751 {
5752 velocity.X *= 0.9f;
5753 }
5754 else
5755 {
5756 velocity.X = 0f;
5757 }
5758 position += velocity;
5760 if (velocity.X < 0f)
5761 {
5762 direction = -1;
5763 }
5764 else if (velocity.X > 0f)
5765 {
5766 direction = 1;
5767 }
5768 if (ghostFrameCounter >= 8)
5769 {
5771 ghostFrame++;
5772 if (ghostFrame >= 4)
5773 {
5774 ghostFrame = 0;
5775 }
5776 }
5777 if (position.X < Main.leftWorld + (float)(Lighting.OffScreenTiles * 16) + 16f)
5778 {
5779 position.X = Main.leftWorld + (float)(Lighting.OffScreenTiles * 16) + 16f;
5780 velocity.X = 0f;
5781 }
5782 if (position.X + (float)width > Main.rightWorld - (float)(Lighting.OffScreenTiles * 16) - 32f)
5783 {
5784 position.X = Main.rightWorld - (float)(Lighting.OffScreenTiles * 16) - 32f - (float)width;
5785 velocity.X = 0f;
5786 }
5787 if (position.Y < Main.topWorld + (float)(Lighting.OffScreenTiles * 16) + 16f)
5788 {
5789 position.Y = Main.topWorld + (float)(Lighting.OffScreenTiles * 16) + 16f;
5790 if ((double)velocity.Y < -0.1)
5791 {
5792 velocity.Y = -0.1f;
5793 }
5794 }
5795 if (position.Y > Main.bottomWorld - (float)(Lighting.OffScreenTiles * 16) - 32f - (float)height)
5796 {
5797 position.Y = Main.bottomWorld - (float)(Lighting.OffScreenTiles * 16) - 32f - (float)height;
5798 velocity.Y = 0f;
5799 }
5800 }
Vector2 velocity
Definition Entity.cs:16
Vector2 position
Definition Entity.cs:14
static TriggersPack Triggers
bool controlRight
Definition Player.cs:1383
void TrySyncingInput()
Definition Player.cs:5802
void TryOpeningInGameOptionsBasedOnInput()
Definition Player.cs:16903
int ghostFrameCounter
Definition Player.cs:1039

References Terraria.Main.blockInput, Terraria.Main.bottomWorld, Terraria.Player.controlDown, Terraria.Player.controlJump, Terraria.Player.controlLeft, Terraria.Player.controlRight, Terraria.Player.controlUp, Terraria.Entity.direction, Terraria.Main.drawingPlayerChat, Terraria.Main.editChest, Terraria.Main.editSign, Terraria.Player.ghostFrame, Terraria.Player.ghostFrameCounter, Terraria.Main.hasFocus, Terraria.Entity.height, Terraria.Player.immune, Terraria.Player.immuneAlpha, Terraria.Main.leftWorld, Terraria.Main.myPlayer, Terraria.Lighting.OffScreenTiles, Terraria.Entity.position, Terraria.Main.topWorld, Terraria.GameInput.PlayerInput.Triggers, Terraria.Player.TryOpeningInGameOptionsBasedOnInput(), Terraria.Player.TrySyncingInput(), Terraria.Entity.velocity, Terraria.Entity.whoAmI, Terraria.Entity.width, Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Vector2.Y.