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

◆ FindPulley()

void Terraria.Player.FindPulley ( )
inline

Definition at line 17915 of file Player.cs.

17916 {
17917 //IL_0252: Unknown result type (might be due to invalid IL or missing references)
17918 //IL_02fb: Unknown result type (might be due to invalid IL or missing references)
17919 //IL_03a4: Unknown result type (might be due to invalid IL or missing references)
17921 {
17922 return;
17923 }
17924 int num = (int)(position.X + (float)(width / 2)) / 16;
17925 int num2 = (int)(position.Y - 8f) / 16;
17926 if (!WorldGen.IsRope(num, num2))
17927 {
17928 return;
17929 }
17930 float num3 = position.Y;
17931 if (Main.tile[num, num2 - 1] == null)
17932 {
17933 Main.tile[num, num2 - 1] = default(Tile);
17934 }
17935 if (Main.tile[num, num2 + 1] == null)
17936 {
17937 Main.tile[num, num2 + 1] = default(Tile);
17938 }
17939 if ((!Main.tile[num, num2 - 1].active() || !Main.tileRope[Main.tile[num, num2 - 1].type]) && (!Main.tile[num, num2 + 1].active() || !Main.tileRope[Main.tile[num, num2 + 1].type]))
17940 {
17941 num3 = num2 * 16 + 22;
17942 }
17943 float num4 = num * 16 + 8 - width / 2 + 6 * direction;
17944 int num5 = num * 16 + 8 - width / 2 + 6;
17945 int num6 = num * 16 + 8 - width / 2;
17946 int num7 = num * 16 + 8 - width / 2 + -6;
17947 int num8 = 1;
17948 float num9 = Math.Abs(position.X - (float)num5);
17949 if (Math.Abs(position.X - (float)num6) < num9)
17950 {
17951 num8 = 2;
17952 num9 = Math.Abs(position.X - (float)num6);
17953 }
17954 if (Math.Abs(position.X - (float)num7) < num9)
17955 {
17956 num8 = 3;
17957 num9 = Math.Abs(position.X - (float)num7);
17958 }
17959 if (num8 == 1)
17960 {
17961 num4 = num5;
17962 pulleyDir = 2;
17963 direction = 1;
17964 }
17965 if (num8 == 2)
17966 {
17967 num4 = num6;
17968 pulleyDir = 1;
17969 }
17970 if (num8 == 3)
17971 {
17972 num4 = num7;
17973 pulleyDir = 2;
17974 direction = -1;
17975 }
17976 if (!Collision.SolidCollision(new Vector2(num4, position.Y), width, height))
17977 {
17978 if (whoAmI == Main.myPlayer)
17979 {
17980 Main.cameraX = Main.cameraX + position.X - num4;
17981 }
17982 pulley = true;
17983 position.X = num4;
17984 gfxOffY = position.Y - num3;
17985 stepSpeed = 2.5f;
17986 position.Y = num3;
17987 velocity.X = 0f;
17988 return;
17989 }
17990 num4 = num5;
17991 pulleyDir = 2;
17992 direction = 1;
17993 if (!Collision.SolidCollision(new Vector2(num4, position.Y), width, height))
17994 {
17995 if (whoAmI == Main.myPlayer)
17996 {
17997 Main.cameraX = Main.cameraX + position.X - num4;
17998 }
17999 pulley = true;
18000 position.X = num4;
18001 gfxOffY = position.Y - num3;
18002 stepSpeed = 2.5f;
18003 position.Y = num3;
18004 velocity.X = 0f;
18005 return;
18006 }
18007 num4 = num7;
18008 pulleyDir = 2;
18009 direction = -1;
18010 if (!Collision.SolidCollision(new Vector2(num4, position.Y), width, height))
18011 {
18012 if (whoAmI == Main.myPlayer)
18013 {
18014 Main.cameraX = Main.cameraX + position.X - num4;
18015 }
18016 pulley = true;
18017 position.X = num4;
18018 gfxOffY = position.Y - num3;
18019 stepSpeed = 2.5f;
18020 position.Y = num3;
18021 velocity.X = 0f;
18022 }
18023 }
int whoAmI
The index of this Entity within its specific array. These arrays track the entities in the world....
Definition Entity.cs:16
Vector2 position
The position of this Entity in world coordinates.
Definition Entity.cs:28
int width
The width of this Entity's hitbox, in pixels.
Definition Entity.cs:46
int height
The height of this Entity's hitbox, in pixels.
Definition Entity.cs:51
float stepSpeed
Definition Player.cs:1816
PortableStoolUsage portableStoolInfo
Definition Player.cs:1546
float gfxOffY
An offset from the actual position of the player that will be added to the draw position....
Definition Player.cs:1814

References Terraria.Player.controlDown, Terraria.Player.controlUp, Terraria.Entity.direction, Terraria.Player.gfxOffY, Terraria.Entity.height, Terraria.DataStructures.PortableStoolUsage.IsInUse, Terraria.WorldGen.IsRope(), Terraria.Main.myPlayer, Terraria.Player.portableStoolInfo, Terraria.Entity.position, Terraria.Player.pulley, Terraria.Player.pulleyDir, Terraria.Collision.SolidCollision(), Terraria.Player.stepSpeed, Terraria.Main.tile, Terraria.Main.tileRope, Terraria.Entity.whoAmI, and Terraria.Entity.width.

Referenced by Terraria.Player.Update().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: