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

◆ TryInteractingWithVoidLens()

static int Terraria.Main.TryInteractingWithVoidLens ( Projectile proj)
inlinestaticprivate

Definition at line 34390 of file Main.cs.

34391 {
34392 if (gamePaused || gameMenu)
34393 {
34394 return 0;
34395 }
34398 Microsoft.Xna.Framework.Point point = proj.Center.ToTileCoordinates();
34400 if (!localPlayer.IsProjectileInteractibleAndInInteractionRange(proj, ref compareSpot))
34401 {
34402 return 0;
34403 }
34404 Matrix matrix = Matrix.Invert(GameViewMatrix.ZoomMatrix);
34407 Vector2 v = Vector2.Transform(position, matrix) + screenPosition;
34408 bool flag2 = proj.Hitbox.Contains(v.ToPoint());
34409 if (!((flag2 || SmartInteractProj == proj.whoAmI) & !localPlayer.lastMouseInterface))
34410 {
34411 if (!flag)
34412 {
34413 return 1;
34414 }
34415 return 0;
34416 }
34418 if (flag2)
34419 {
34420 localPlayer.noThrow = 2;
34421 localPlayer.cursorItemIconEnabled = true;
34422 localPlayer.cursorItemIconID = 4131;
34423 }
34425 {
34426 localPlayer.GamepadEnableGrappleCooldown();
34427 }
34428 if (mouseRight && mouseRightRelease && Player.BlockInteractionWithProjectiles == 0)
34429 {
34430 mouseRightRelease = false;
34431 localPlayer.tileInteractAttempted = true;
34432 localPlayer.tileInteractionHappened = true;
34433 localPlayer.releaseUseTile = false;
34434 if (localPlayer.chest == -5)
34435 {
34436 localPlayer.chest = -1;
34438 Recipe.FindRecipes();
34439 }
34440 else if (localPlayer.disableVoidBag < 0)
34441 {
34442 localPlayer.chest = -5;
34443 for (int i = 0; i < 40; i++)
34444 {
34445 ItemSlot.SetGlow(i, -1f, chest: true);
34446 }
34447 localPlayer.voidLensChest.Set(proj);
34448 localPlayer.chestX = point.X;
34449 localPlayer.chestY = point.Y;
34450 localPlayer.SetTalkNPC(-1);
34451 SetNPCShopIndex(0);
34452 playerInventory = true;
34454 Recipe.FindRecipes();
34455 }
34456 }
34458 {
34459 return 0;
34460 }
34461 if (!flag)
34462 {
34463 return 2;
34464 }
34465 return 0;
34466 }
bool ICollection< KeyValuePair< TKey, TValue > >. Contains(KeyValuePair< TKey, TValue > keyValuePair)
static void PlaySound(int type, Vector2 position, int style=1)
static readonly LegacySoundStyle Item130
Definition SoundID.cs:674
static int SmartInteractProj
Definition Main.cs:2165
static Chest[] chest
Definition Main.cs:1699
static Vector2 ReverseGravitySupport(Vector2 pos, float height=0f)
Definition Main.cs:3005
static bool mouseRight
Definition Main.cs:616
static void SetNPCShopIndex(int index)
Definition Main.cs:37260
static Vector2 screenPosition
Definition Main.cs:1715
static Vector2 MouseScreen
Definition Main.cs:2773
static bool HasInteractibleObjectThatIsNotATile
Definition Main.cs:1998
static SpriteViewMatrix GameViewMatrix
Definition Main.cs:227
static bool mouseRightRelease
Definition Main.cs:1757
static bool playerInventory
Definition Main.cs:1759
static bool SmartCursorIsUsed
Definition Main.cs:2855
static bool gameMenu
Definition Main.cs:1926
static Player LocalPlayer
Definition Main.cs:2829
static bool gamePaused
Definition Main.cs:1072
static void SetGlow(int index, float hue, bool chest)
Definition ItemSlot.cs:249
static Matrix Invert(Matrix matrix)
Definition Matrix.cs:1694
static Vector2 Transform(Vector2 position, Matrix matrix)
Definition Vector2.cs:317

References Terraria.Player.BlockInteractionWithProjectiles, Terraria.Main.chest, System.Collections.Generic.Dictionary< TKey, TValue >.Contains(), Terraria.Recipe.FindRecipes(), Terraria.Main.gameMenu, Terraria.Main.gamePaused, Terraria.Main.GameViewMatrix, Terraria.Main.HasInteractibleObjectThatIsNotATile, System.Text.RegularExpressions.i, Microsoft.Xna.Framework.Matrix.Invert(), Terraria.ID.SoundID.Item130, Terraria.Main.LocalPlayer, Terraria.Main.mouseRight, Terraria.Main.mouseRightRelease, Terraria.Main.MouseScreen, Terraria.Main.playerInventory, Terraria.Audio.SoundEngine.PlaySound(), Terraria.Main.ReverseGravitySupport(), Terraria.Main.screenPosition, Terraria.UI.ItemSlot.SetGlow(), Terraria.Main.SetNPCShopIndex(), Terraria.Main.SmartCursorIsUsed, Terraria.Main.SmartInteractProj, Microsoft.Xna.Framework.Vector2.Transform(), Terraria.GameInput.PlayerInput.UsingGamepad, Microsoft.Xna.Framework.Point.X, and Microsoft.Xna.Framework.Point.Y.

Referenced by Terraria.Main.DrawProjDirect().