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

◆ QuickStackAllChests()

void Terraria.Player.QuickStackAllChests ( )
inline

Definition at line 22097 of file Player.cs.

22098 {
22099 if (HasLockedInventory())
22100 {
22101 return;
22102 }
22104 for (int i = 0; i < nearbyContainerProjectilesList.Count; i++)
22105 {
22106 Projectile projectile = Main.projectile[nearbyContainerProjectilesList[i]];
22107 if (projectile.TryGetContainerIndex(out var containerIndex))
22108 {
22110 int num = chest;
22112 ChestUI.QuickStack(context);
22113 if (useVoidBag())
22114 {
22115 ChestUI.QuickStack(context, voidStack: true);
22116 }
22117 chest = num;
22118 }
22119 }
22120 int num2 = 39;
22121 int num3 = (int)(base.Center.X / 16f);
22122 int num4 = (int)(base.Center.Y / 16f);
22123 for (int j = num3 - num2; j <= num3 + num2; j++)
22124 {
22125 if (j < 0 || j >= Main.maxTilesX)
22126 {
22127 continue;
22128 }
22129 for (int k = num4 - num2; k <= num4 + num2; k++)
22130 {
22131 if (k < 0 || k >= Main.maxTilesY)
22132 {
22133 continue;
22134 }
22135 int num5 = 0;
22136 if (Main.tile[j, k].type == 29)
22137 {
22138 num5 = -2;
22139 }
22140 else if (Main.tile[j, k].type == 97)
22141 {
22142 num5 = -3;
22143 }
22144 else if (Main.tile[j, k].type == 463)
22145 {
22146 num5 = -4;
22147 }
22148 else if (Main.tile[j, k].type == 491)
22149 {
22150 num5 = -5;
22151 }
22152 if (num5 < 0 && (new Vector2(j * 16 + 8, k * 16 + 8) - base.Center).Length() < 600f)
22153 {
22155 int num6 = chest;
22156 chest = num5;
22158 if (useVoidBag())
22159 {
22161 }
22162 chest = num6;
22163 }
22164 }
22165 }
22166 if (Main.netMode == 1)
22167 {
22168 for (int l = 10; l < 50; l++)
22169 {
22170 if (inventory[l].type > 0 && inventory[l].stack > 0 && !inventory[l].favorited && !inventory[l].IsACoin)
22171 {
22172 NetMessage.SendData(5, -1, -1, null, whoAmI, PlayerItemSlotID.Inventory0 + l, (int)inventory[l].prefix);
22173 NetMessage.SendData(85, -1, -1, null, PlayerItemSlotID.Inventory0 + l);
22174 inventoryChestStack[l] = true;
22175 }
22176 }
22177 if (!useVoidBag())
22178 {
22179 return;
22180 }
22181 for (int m = 0; m < 40; m++)
22182 {
22183 if (bank4.item[m].type > 0 && bank4.item[m].stack > 0 && !bank4.item[m].favorited && !bank4.item[m].IsACoin)
22184 {
22185 NetMessage.SendData(5, -1, -1, null, whoAmI, PlayerItemSlotID.Bank4_0 + m, (int)bank4.item[m].prefix);
22186 NetMessage.SendData(85, -1, -1, null, PlayerItemSlotID.Bank4_0 + m);
22187 disableVoidBag = m;
22188 }
22189 }
22190 return;
22191 }
22192 for (int n = 10; n < 50; n++)
22193 {
22194 if (inventory[n].type > 0 && inventory[n].stack > 0 && !inventory[n].favorited && !inventory[n].IsACoin)
22195 {
22196 int type = inventory[n].type;
22197 int stack = inventory[n].stack;
22198 inventory[n] = Chest.PutItemInNearbyChest(inventory[n], base.Center);
22199 if (inventory[n].type == type)
22200 {
22201 _ = inventory[n].stack;
22202 }
22203 }
22204 }
22205 if (!useVoidBag())
22206 {
22207 return;
22208 }
22209 for (int num7 = 0; num7 < 40; num7++)
22210 {
22212 {
22213 int type2 = bank4.item[num7].type;
22214 int stack2 = bank4.item[num7].stack;
22215 bank4.item[num7] = Chest.PutItemInNearbyChest(bank4.item[num7], base.Center);
22216 if (bank4.item[num7].type == type2)
22217 {
22218 _ = bank4.item[num7].stack;
22219 }
22220 }
22221 }
22222 }
Item[] item
Definition Chest.cs:41
static readonly int Inventory0
int stack
Definition Item.cs:149
bool IsACoin
Definition Item.cs:364
bool favorited
Definition Item.cs:135
byte prefix
Definition Item.cs:295
bool HasLockedInventory()
Definition Player.cs:21999
bool useVoidBag()
Definition Player.cs:22085
List< int > GetNearbyContainerProjectilesList()
Definition Player.cs:22024
Item[] inventory
Definition Player.cs:1257
bool[] inventoryChestStack
Definition Player.cs:1259
static void QuickStack(ContainerTransferContext context, bool voidStack=false)
Definition ChestUI.cs:686
static ContainerTransferContext FromProjectile(Projectile projectile)
static ContainerTransferContext FromBlockPosition(int x, int y)

References Terraria.ID.PlayerItemSlotID.Bank4_0, System.Collections.Generic.Dictionary< TKey, TValue >.Count, Terraria.Item.favorited, Terraria.DataStructures.ContainerTransferContext.FromBlockPosition(), Terraria.DataStructures.ContainerTransferContext.FromProjectile(), Terraria.ID.PlayerItemSlotID.Inventory0, Terraria.Item.IsACoin, Terraria.Chest.item, Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.Main.netMode, Terraria.Item.prefix, Terraria.Main.projectile, Terraria.Chest.PutItemInNearbyChest(), Terraria.UI.ChestUI.QuickStack(), Terraria.NetMessage.SendData(), Terraria.Item.stack, Terraria.Main.tile, Terraria.Projectile.TryGetContainerIndex(), System.type, and Terraria.Item.type.