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

◆ GetColor4Slice() [1/2]

static void Terraria.Lighting.GetColor4Slice ( int centerX,
int centerY,
ref Color[] slices )
inlinestatic

Definition at line 382 of file Lighting.cs.

383 {
384 Vector3 color = _activeEngine.GetColor(centerX, centerY - 1);
385 Vector3 color2 = _activeEngine.GetColor(centerX, centerY + 1);
386 Vector3 color3 = _activeEngine.GetColor(centerX - 1, centerY);
387 Vector3 color4 = _activeEngine.GetColor(centerX + 1, centerY);
388 float num = color.X + color.Y + color.Z;
389 float num2 = color2.X + color2.Y + color2.Z;
390 float num3 = color4.X + color4.Y + color4.Z;
391 float num4 = color3.X + color3.Y + color3.Z;
392 if (num >= num4)
393 {
394 int num5 = (int)(255f * color3.X * GlobalBrightness);
395 int num6 = (int)(255f * color3.Y * GlobalBrightness);
396 int num7 = (int)(255f * color3.Z * GlobalBrightness);
397 if (num5 > 255)
398 {
399 num5 = 255;
400 }
401 if (num6 > 255)
402 {
403 num6 = 255;
404 }
405 if (num7 > 255)
406 {
407 num7 = 255;
408 }
409 slices[0] = new Color((byte)num5, (byte)num6, (byte)num7, 255);
410 }
411 else
412 {
413 int num8 = (int)(255f * color.X * GlobalBrightness);
414 int num9 = (int)(255f * color.Y * GlobalBrightness);
415 int num10 = (int)(255f * color.Z * GlobalBrightness);
416 if (num8 > 255)
417 {
418 num8 = 255;
419 }
420 if (num9 > 255)
421 {
422 num9 = 255;
423 }
424 if (num10 > 255)
425 {
426 num10 = 255;
427 }
428 slices[0] = new Color((byte)num8, (byte)num9, (byte)num10, 255);
429 }
430 if (num >= num3)
431 {
432 int num11 = (int)(255f * color4.X * GlobalBrightness);
433 int num12 = (int)(255f * color4.Y * GlobalBrightness);
434 int num13 = (int)(255f * color4.Z * GlobalBrightness);
435 if (num11 > 255)
436 {
437 num11 = 255;
438 }
439 if (num12 > 255)
440 {
441 num12 = 255;
442 }
443 if (num13 > 255)
444 {
445 num13 = 255;
446 }
447 slices[1] = new Color((byte)num11, (byte)num12, (byte)num13, 255);
448 }
449 else
450 {
451 int num14 = (int)(255f * color.X * GlobalBrightness);
452 int num15 = (int)(255f * color.Y * GlobalBrightness);
453 int num16 = (int)(255f * color.Z * GlobalBrightness);
454 if (num14 > 255)
455 {
456 num14 = 255;
457 }
458 if (num15 > 255)
459 {
460 num15 = 255;
461 }
462 if (num16 > 255)
463 {
464 num16 = 255;
465 }
466 slices[1] = new Color((byte)num14, (byte)num15, (byte)num16, 255);
467 }
468 if (num2 >= num4)
469 {
470 int num17 = (int)(255f * color3.X * GlobalBrightness);
471 int num18 = (int)(255f * color3.Y * GlobalBrightness);
472 int num19 = (int)(255f * color3.Z * GlobalBrightness);
473 if (num17 > 255)
474 {
475 num17 = 255;
476 }
477 if (num18 > 255)
478 {
479 num18 = 255;
480 }
481 if (num19 > 255)
482 {
483 num19 = 255;
484 }
485 slices[2] = new Color((byte)num17, (byte)num18, (byte)num19, 255);
486 }
487 else
488 {
489 int num20 = (int)(255f * color2.X * GlobalBrightness);
490 int num21 = (int)(255f * color2.Y * GlobalBrightness);
491 int num22 = (int)(255f * color2.Z * GlobalBrightness);
492 if (num20 > 255)
493 {
494 num20 = 255;
495 }
496 if (num21 > 255)
497 {
498 num21 = 255;
499 }
500 if (num22 > 255)
501 {
502 num22 = 255;
503 }
504 slices[2] = new Color((byte)num20, (byte)num21, (byte)num22, 255);
505 }
506 if (num2 >= num3)
507 {
508 int num23 = (int)(255f * color4.X * GlobalBrightness);
509 int num24 = (int)(255f * color4.Y * GlobalBrightness);
510 int num25 = (int)(255f * color4.Z * GlobalBrightness);
511 if (num23 > 255)
512 {
513 num23 = 255;
514 }
515 if (num24 > 255)
516 {
517 num24 = 255;
518 }
519 if (num25 > 255)
520 {
521 num25 = 255;
522 }
523 slices[3] = new Color((byte)num23, (byte)num24, (byte)num25, 255);
524 }
525 else
526 {
527 int num26 = (int)(255f * color2.X * GlobalBrightness);
528 int num27 = (int)(255f * color2.Y * GlobalBrightness);
529 int num28 = (int)(255f * color2.Z * GlobalBrightness);
530 if (num26 > 255)
531 {
532 num26 = 255;
533 }
534 if (num27 > 255)
535 {
536 num27 = 255;
537 }
538 if (num28 > 255)
539 {
540 num28 = 255;
541 }
542 slices[3] = new Color((byte)num26, (byte)num27, (byte)num28, 255);
543 }
544 }
static ILightingEngine _activeEngine
Definition Lighting.cs:25
static float GlobalBrightness
Definition Lighting.cs:27

References Terraria.Lighting._activeEngine, Terraria.Graphics.Light.Color, Terraria.Lighting.GlobalBrightness, Microsoft.Xna.Framework.Vector3.X, Microsoft.Xna.Framework.Vector3.Y, and Microsoft.Xna.Framework.Vector3.Z.

Referenced by Terraria.Main.DrawBackground(), Terraria.GameContent.Drawing.TileDrawing.DrawSingleTile_SlicedBlock(), and Terraria.Main.OldDrawBackground().