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

◆ ApplyHellLight()

void Terraria.Graphics.Light.TileLightScanner.ApplyHellLight ( Tile tile,
int x,
int y,
ref Vector3 lightColor )
inlineprivate

Definition at line 2486 of file TileLightScanner.cs.

2487 {
2488 float num = 0f;
2489 float num2 = 0f;
2490 float num3 = 0f;
2491 float num4 = 0.55f + (float)Math.Sin(Main.GlobalTimeWrappedHourly * 2f) * 0.08f;
2492 if ((!tile.active() || !Main.tileNoSunLight[tile.type] || ((tile.slope() != 0 || tile.halfBrick()) && Main.tile[x, y - 1].liquid == 0 && Main.tile[x, y + 1].liquid == 0 && Main.tile[x - 1, y].liquid == 0 && Main.tile[x + 1, y].liquid == 0)) && lightColor.X < num4 && (Main.wallLight[tile.wall] || tile.wall == 73 || tile.wall == 227 || (tile.invisibleWall() && !_drawInvisibleWalls)) && tile.liquid < 200 && (!tile.halfBrick() || Main.tile[x, y - 1].liquid < 200))
2493 {
2494 num = num4;
2495 num2 = num4 * 0.6f;
2496 num3 = num4 * 0.2f;
2497 }
2498 if ((!tile.active() || tile.halfBrick() || !Main.tileNoSunLight[tile.type]) && tile.wall >= 88 && tile.wall <= 93 && tile.liquid < byte.MaxValue)
2499 {
2500 num = num4;
2501 num2 = num4 * 0.6f;
2502 num3 = num4 * 0.2f;
2503 switch (tile.wall)
2504 {
2505 case 88:
2506 num *= 0.9f;
2507 num2 *= 0.15f;
2508 num3 *= 0.9f;
2509 break;
2510 case 89:
2511 num *= 0.9f;
2512 num2 *= 0.9f;
2513 num3 *= 0.15f;
2514 break;
2515 case 90:
2516 num *= 0.15f;
2517 num2 *= 0.15f;
2518 num3 *= 0.9f;
2519 break;
2520 case 91:
2521 num *= 0.15f;
2522 num2 *= 0.9f;
2523 num3 *= 0.15f;
2524 break;
2525 case 92:
2526 num *= 0.9f;
2527 num2 *= 0.15f;
2528 num3 *= 0.15f;
2529 break;
2530 case 93:
2531 {
2532 float num5 = 0.2f;
2533 float num6 = 0.7f - num5;
2534 num *= num6 + (float)Main.DiscoR / 255f * num5;
2535 num2 *= num6 + (float)Main.DiscoG / 255f * num5;
2536 num3 *= num6 + (float)Main.DiscoB / 255f * num5;
2537 break;
2538 }
2539 }
2540 }
2541 if (lightColor.X < num)
2542 {
2543 lightColor.X = num;
2544 }
2545 if (lightColor.Y < num2)
2546 {
2547 lightColor.Y = num2;
2548 }
2549 if (lightColor.Z < num3)
2550 {
2551 lightColor.Z = num3;
2552 }
2553 }
static double Sin(double a)

References Terraria.Graphics.Light.TileLightScanner._drawInvisibleWalls, Terraria.Tile.active(), Terraria.Main.DiscoB, Terraria.Main.DiscoG, Terraria.Main.DiscoR, Terraria.Main.GlobalTimeWrappedHourly, Terraria.Tile.halfBrick(), Terraria.Tile.invisibleWall(), Terraria.Tile.liquid, System.Math.Sin(), Terraria.Tile.slope(), Terraria.Main.tile, Terraria.Main.tileNoSunLight, Terraria.Tile.type, Terraria.Tile.wall, and Terraria.Main.wallLight.

Referenced by Terraria.Graphics.Light.TileLightScanner.GetTileLight().