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

◆ TrackColors()

static void Terraria.Minecart.TrackColors ( int i,
int j,
Tile trackTile,
out int frontColor,
out int backColor )
inlinestatic

Definition at line 1313 of file Minecart.cs.

1314 {
1315 if (trackTile.type == 314)
1316 {
1317 frontColor = trackTile.color();
1318 backColor = frontColor;
1319 if (trackTile.frameY == -1)
1320 {
1321 return;
1322 }
1323 int num = _leftSideConnection[trackTile.frameX];
1324 int num2 = _rightSideConnection[trackTile.frameX];
1325 int num3 = _leftSideConnection[trackTile.frameY];
1326 int num4 = _rightSideConnection[trackTile.frameY];
1327 int num5 = 0;
1328 int num6 = 0;
1329 int num7 = 0;
1330 int num8 = 0;
1331 for (int k = 0; k < 4; k++)
1332 {
1333 int num9 = (k switch
1334 {
1335 1 => num2,
1336 2 => num3,
1337 3 => num4,
1338 _ => num,
1339 }) switch
1340 {
1341 0 => -1,
1342 1 => 0,
1343 2 => 1,
1344 _ => 0,
1345 };
1346 Tile tile = ((k % 2 != 0) ? Main.tile[i + 1, j + num9] : Main.tile[i - 1, j + num9]);
1347 int num10 = ((tile != null && tile.active() && tile.type == 314) ? tile.color() : 0);
1348 switch (k)
1349 {
1350 default:
1351 num5 = num10;
1352 break;
1353 case 1:
1354 num6 = num10;
1355 break;
1356 case 2:
1357 num7 = num10;
1358 break;
1359 case 3:
1360 num8 = num10;
1361 break;
1362 }
1363 }
1364 if (num == num3)
1365 {
1366 if (num6 != 0)
1367 {
1368 frontColor = num6;
1369 }
1370 else if (num5 != 0)
1371 {
1372 frontColor = num5;
1373 }
1374 if (num8 != 0)
1375 {
1376 backColor = num8;
1377 }
1378 else if (num7 != 0)
1379 {
1380 backColor = num7;
1381 }
1382 return;
1383 }
1384 if (num2 == num4)
1385 {
1386 if (num5 != 0)
1387 {
1388 frontColor = num5;
1389 }
1390 else if (num6 != 0)
1391 {
1392 frontColor = num6;
1393 }
1394 if (num7 != 0)
1395 {
1396 backColor = num7;
1397 }
1398 else if (num8 != 0)
1399 {
1400 backColor = num8;
1401 }
1402 return;
1403 }
1404 if (num6 == 0)
1405 {
1406 if (num5 != 0)
1407 {
1408 frontColor = num5;
1409 }
1410 }
1411 else if (num5 != 0)
1412 {
1413 frontColor = ((num2 <= num) ? num6 : num5);
1414 }
1415 if (num8 == 0)
1416 {
1417 if (num7 != 0)
1418 {
1419 backColor = num7;
1420 }
1421 }
1422 else if (num7 != 0)
1423 {
1424 backColor = ((num4 <= num3) ? num8 : num7);
1425 }
1426 }
1427 else
1428 {
1429 frontColor = 0;
1430 backColor = 0;
1431 }
1432 }
static int[] _leftSideConnection
Definition Minecart.cs:71
static int[] _rightSideConnection
Definition Minecart.cs:73

References Terraria.Minecart._leftSideConnection, Terraria.Minecart._rightSideConnection, Terraria.Tile.active(), Terraria.Tile.color(), Terraria.Tile.frameX, Terraria.Tile.frameY, Terraria.Main.tile, and Terraria.Tile.type.

Referenced by Terraria.GameContent.Drawing.TileDrawing.DrawTile_MinecartTrack().