Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros

◆ TryPlacingAGolfBallNearANearbyTee()

bool Terraria.Player.TryPlacingAGolfBallNearANearbyTee ( Vector2 placePosition)
inline

Definition at line 46812 of file Player.cs.

46813 {
46814 int num = 0;
46815 int value = (int)(placePosition.X / 16f) - tileRangeX - num + 1;
46816 int value2 = (int)(placePosition.X / 16f) + tileRangeX + num - 1;
46817 int value3 = (int)(placePosition.Y / 16f) - tileRangeY - num + 1;
46818 int value4 = (int)(placePosition.Y / 16f) + tileRangeY + num - 2;
46819 value = Utils.Clamp(value, 10, Main.maxTilesX - 10);
46820 value2 = Utils.Clamp(value2, 10, Main.maxTilesX - 10);
46821 value3 = Utils.Clamp(value3, 10, Main.maxTilesY - 10);
46822 value4 = Utils.Clamp(value4, 10, Main.maxTilesY - 10);
46823 Vector2 value5 = Main.screenPosition + new Vector2(Main.mouseX, Main.mouseY);
46824 if (gravDir == -1f)
46825 {
46826 value5.Y = Main.screenPosition.Y + (float)Main.screenHeight - (float)Main.mouseY;
46827 }
46828 Point point = placePosition.ToTileCoordinates();
46830 for (int i = -2; i <= 2; i++)
46831 {
46832 for (int j = -2; j <= 2; j++)
46833 {
46834 int num2 = point.X + i;
46835 int num3 = point.Y + j;
46836 if (WorldGen.InWorld(num2, num3, 1))
46837 {
46838 Tile tileSafely = Framing.GetTileSafely(num2, num3);
46839 if (tileSafely.active() && tileSafely.type == 494)
46840 {
46842 break;
46843 }
46844 }
46845 }
46846 }
46847 bool result = false;
46848 if (list.Count > 0)
46849 {
46850 float num4 = -1f;
46852 for (int k = 0; k < list.Count; k++)
46853 {
46854 float num5 = Vector2.Distance(new Vector2(list[k].Item1, list[k].Item2) * 16f + Vector2.One * 8f, value5);
46855 if (num4 == -1f || num5 < num4)
46856 {
46857 num4 = num5;
46858 tuple = list[k];
46859 }
46860 }
46861 if (Collision.InTileBounds(tuple.Item1, tuple.Item2, value, value3, value2, value4))
46862 {
46863 result = true;
46864 for (int l = 0; l < 1000; l++)
46865 {
46866 if (ProjectileID.Sets.IsAGolfBall[Main.projectile[l].type] && Main.projectile[l].owner == whoAmI)
46867 {
46868 Main.projectile[l].Kill();
46869 }
46870 }
46872 Projectile.NewProjectile(GetProjectileSource_TileInteraction(tuple.Item1, tuple.Item2), (float)(tuple.Item1 * 16) + 8.5f, tuple.Item2 * 16 + 6, 0f, 0f, projType, 0, 0f, whoAmI, 0f, -1f);
46873 }
46874 }
46875 return result;
46876 }
void Add(TKey key, TValue value)
void GetPreferredGolfBallToUse(out int projType)
Definition Player.cs:46878
static int tileRangeX
Definition Player.cs:2075
static int tileRangeY
Definition Player.cs:2077
IEntitySource GetProjectileSource_TileInteraction(int tileCoordsX, int tileCoordsY)
Definition Player.cs:9322
static float Distance(Vector2 value1, Vector2 value2)
Definition Vector2.cs:91

References System.Collections.Generic.Dictionary< TKey, TValue >.Count, Microsoft.Xna.Framework.Vector2.Distance(), Terraria.Framing.GetTileSafely(), Terraria.Collision.InTileBounds(), Terraria.WorldGen.InWorld(), Terraria.ID.ProjectileID.Sets.IsAGolfBall, System.list, Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.Main.mouseX, Terraria.Main.mouseY, Terraria.Projectile.NewProjectile(), Terraria.Main.projectile, Terraria.Main.screenHeight, and System.value.

Referenced by Terraria.Projectile.AI_150_GolfClubHelper().