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

◆ SwapEquip() [1/2]

static void Terraria.UI.ItemSlot.SwapEquip ( Item[] inv,
int context,
int slot )
inlinestatic

Definition at line 2551 of file ItemSlot.cs.

2552 {
2553 Player player = Main.player[Main.myPlayer];
2554 if (isEquipLocked(inv[slot].type) || inv[slot].IsAir)
2555 {
2556 return;
2557 }
2558 bool success;
2559 if (inv[slot].dye > 0)
2560 {
2561 inv[slot] = DyeSwap(inv[slot], out success);
2562 if (success)
2563 {
2564 Main.EquipPageSelected = 0;
2565 AchievementsHelper.HandleOnEquip(player, inv[slot], 12);
2566 }
2567 }
2568 else if (Main.projHook[inv[slot].shoot])
2569 {
2570 inv[slot] = EquipSwap(inv[slot], player.miscEquips, 4, out success);
2571 if (success)
2572 {
2573 Main.EquipPageSelected = 2;
2574 AchievementsHelper.HandleOnEquip(player, inv[slot], 16);
2575 }
2576 }
2577 else if (inv[slot].mountType != -1 && !MountID.Sets.Cart[inv[slot].mountType])
2578 {
2579 inv[slot] = EquipSwap(inv[slot], player.miscEquips, 3, out success);
2580 if (success)
2581 {
2582 Main.EquipPageSelected = 2;
2583 AchievementsHelper.HandleOnEquip(player, inv[slot], 17);
2584 }
2585 }
2586 else if (inv[slot].mountType != -1 && MountID.Sets.Cart[inv[slot].mountType])
2587 {
2588 inv[slot] = EquipSwap(inv[slot], player.miscEquips, 2, out success);
2589 if (success)
2590 {
2591 Main.EquipPageSelected = 2;
2592 }
2593 }
2594 else if (inv[slot].buffType > 0 && Main.lightPet[inv[slot].buffType])
2595 {
2596 inv[slot] = EquipSwap(inv[slot], player.miscEquips, 1, out success);
2597 if (success)
2598 {
2599 Main.EquipPageSelected = 2;
2600 }
2601 }
2602 else if (inv[slot].buffType > 0 && Main.vanityPet[inv[slot].buffType])
2603 {
2604 inv[slot] = EquipSwap(inv[slot], player.miscEquips, 0, out success);
2605 if (success)
2606 {
2607 Main.EquipPageSelected = 2;
2608 }
2609 }
2610 else
2611 {
2612 Item item = inv[slot];
2613 inv[slot] = ArmorSwap(inv[slot], out success);
2614 if (success)
2615 {
2616 Main.EquipPageSelected = 0;
2617 AchievementsHelper.HandleOnEquip(player, item, item.accessory ? 10 : 8);
2618 }
2619 }
2620 Recipe.FindRecipes();
2621 if (context == 3 && Main.netMode == 1)
2622 {
2623 NetMessage.SendData(32, -1, -1, null, player.chest, slot);
2624 }
2625 }
static void HandleOnEquip(Player player, Item item, int context)
static bool[] Cart
Definition MountID.cs:9
static Item DyeSwap(Item item, out bool success)
Definition ItemSlot.cs:2692
static bool isEquipLocked(int type)
Definition ItemSlot.cs:329
static Item EquipSwap(Item item, Item[] inv, int slot, out bool success)
Definition ItemSlot.cs:2816
static Item ArmorSwap(Item item, out bool success)
Definition ItemSlot.cs:2730

References Terraria.UI.ItemSlot.ArmorSwap(), Terraria.Item.buffType, Terraria.ID.MountID.Sets.Cart, Terraria.Player.chest, Terraria.UI.ItemSlot.DyeSwap(), Terraria.UI.ItemSlot.EquipSwap(), Terraria.Recipe.FindRecipes(), Terraria.GameContent.Achievements.AchievementsHelper.HandleOnEquip(), Terraria.UI.ItemSlot.isEquipLocked(), System.item, Terraria.Main.lightPet, Terraria.Player.miscEquips, Terraria.Item.mountType, Terraria.Main.myPlayer, Terraria.Main.netMode, Terraria.Main.player, Terraria.Main.projHook, Terraria.NetMessage.SendData(), Terraria.Item.shoot, System.type, and Terraria.Main.vanityPet.