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

◆ SortCoins()

static void Terraria.UI.ItemSorting.SortCoins ( )
inlinestaticprivate

Definition at line 1309 of file ItemSorting.cs.

1310 {
1311 Item[] inventory = Main.LocalPlayer.inventory;
1312 bool overFlowing;
1313 long count = Utils.CoinsCount(out overFlowing, inventory, 58);
1314 int commonMaxStack = Item.CommonMaxStack;
1315 if (overFlowing)
1316 {
1317 return;
1318 }
1319 int[] array = Utils.CoinsSplit(count);
1320 int num = 0;
1321 for (int i = 0; i < 3; i++)
1322 {
1323 int num2 = array[i];
1324 while (num2 > 0)
1325 {
1326 num2 -= 99;
1327 num++;
1328 }
1329 }
1330 int num3 = array[3];
1331 while (num3 > commonMaxStack)
1332 {
1334 num++;
1335 }
1336 int num4 = 0;
1337 for (int j = 0; j < 58; j++)
1338 {
1339 if (inventory[j].type >= 71 && inventory[j].type <= 74 && inventory[j].stack > 0)
1340 {
1341 num4++;
1342 }
1343 }
1344 if (num4 < num)
1345 {
1346 return;
1347 }
1348 for (int k = 0; k < 58; k++)
1349 {
1350 if (inventory[k].type >= 71 && inventory[k].type <= 74 && inventory[k].stack > 0)
1351 {
1352 inventory[k].TurnToAir();
1353 }
1354 }
1355 int num5 = 100;
1356 while (true)
1357 {
1358 int num6 = -1;
1359 for (int num7 = 3; num7 >= 0; num7--)
1360 {
1361 if (array[num7] > 0)
1362 {
1363 num6 = num7;
1364 break;
1365 }
1366 }
1367 if (num6 == -1)
1368 {
1369 break;
1370 }
1371 int num8 = array[num6];
1372 if (num6 == 3 && num8 > commonMaxStack)
1373 {
1375 }
1376 bool flag = false;
1377 if (!flag)
1378 {
1379 for (int l = 50; l < 54; l++)
1380 {
1381 if (inventory[l].IsAir)
1382 {
1383 inventory[l].SetDefaults(71 + num6);
1384 inventory[l].stack = num8;
1385 array[num6] -= num8;
1386 flag = true;
1387 break;
1388 }
1389 }
1390 }
1391 if (!flag)
1392 {
1393 for (int m = 0; m < 50; m++)
1394 {
1395 if (inventory[m].IsAir)
1396 {
1397 inventory[m].SetDefaults(71 + num6);
1398 inventory[m].stack = num8;
1399 array[num6] -= num8;
1400 flag = true;
1401 break;
1402 }
1403 }
1404 }
1405 num5--;
1406 if (num5 > 0)
1407 {
1408 continue;
1409 }
1410 for (int num9 = 3; num9 >= 0; num9--)
1411 {
1412 if (array[num9] > 0)
1413 {
1414 Main.LocalPlayer.QuickSpawnItem(Main.LocalPlayer.GetItemSource_Misc(7), 71 + num9, array[num9]);
1415 }
1416 }
1417 break;
1418 }
1419 }

References System.array, Terraria.Utils.CoinsCount(), Terraria.Utils.CoinsSplit(), Terraria.Item.CommonMaxStack, System.Linq.count, Terraria.Main.LocalPlayer, Terraria.Item.SetDefaults(), Terraria.Item.stack, Terraria.Item.TurnToAir(), and System.type.

Referenced by Terraria.UI.ItemSorting.SortInventory().