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

◆ TryUpdatingMapWithLight()

void Terraria.Graphics.Light.LegacyLighting.TryUpdatingMapWithLight ( )
inlineprivate

Definition at line 363 of file LegacyLighting.cs.

364 {
365 Main.mapTime = Main.mapTimeMax;
366 Main.updateMap = true;
367 int num = 40;
369 float x = _camera.UnscaledSize.X;
370 float y = _camera.UnscaledSize.Y;
371 x = (int)(x / Main.GameViewMatrix.Zoom.X);
372 y = (int)(y / Main.GameViewMatrix.Zoom.Y);
373 Vector2 vector = unscaledPosition + Main.GameViewMatrix.Translation;
374 int value = (int)Math.Floor(vector.X / 16f);
375 int value2 = (int)Math.Floor((vector.X + x) / 16f) + 1;
376 int value3 = (int)Math.Floor(vector.Y / 16f);
377 int value4 = (int)Math.Floor((vector.Y + y) / 16f) + 1;
378 value = Utils.Clamp(value, Lighting.OffScreenTiles, Main.maxTilesX - Lighting.OffScreenTiles);
379 value2 = Utils.Clamp(value2, Lighting.OffScreenTiles, Main.maxTilesX - Lighting.OffScreenTiles);
380 value3 = Utils.Clamp(value3, Lighting.OffScreenTiles, Main.maxTilesY - Lighting.OffScreenTiles);
381 value4 = Utils.Clamp(value4, Lighting.OffScreenTiles, Main.maxTilesY - Lighting.OffScreenTiles);
382 Main.mapMinX = Utils.Clamp(_requestedRectLeft, num, Main.maxTilesX - num);
383 Main.mapMaxX = Utils.Clamp(_requestedRectRight, num, Main.maxTilesX - num);
384 Main.mapMinY = Utils.Clamp(_requestedRectTop, num, Main.maxTilesY - num);
385 Main.mapMaxY = Utils.Clamp(_requestedRectBottom, num, Main.maxTilesY - num);
386 Main.mapMinX = Utils.Clamp(Main.mapMinX, value, value2);
387 Main.mapMaxX = Utils.Clamp(Main.mapMaxX, value, value2);
388 Main.mapMinY = Utils.Clamp(Main.mapMinY, value3, value4);
389 Main.mapMaxY = Utils.Clamp(Main.mapMaxY, value3, value4);
390 int offScreenTiles = Lighting.OffScreenTiles;
391 for (int i = Main.mapMinX; i < Main.mapMaxX; i++)
392 {
393 LightingState[] array = _states[i - _requestedRectLeft + offScreenTiles];
394 for (int j = Main.mapMinY; j < Main.mapMaxY; j++)
395 {
397 Tile tile = Main.tile[i, j];
398 float num2 = 0f;
399 if (lightingState.R > num2)
400 {
402 }
403 if (lightingState.G > num2)
404 {
406 }
407 if (lightingState.B > num2)
408 {
410 }
412 {
413 num2 *= 1.5f;
414 }
415 byte b = (byte)Math.Min(255f, num2 * 255f);
416 if ((double)j < Main.worldSurface && !tile.active() && tile.wall == 0 && tile.liquid == 0)
417 {
418 b = 22;
419 }
420 if (b > 18 || Main.Map[i, j].Light > 0)
421 {
422 if (b < 22)
423 {
424 b = 22;
425 }
426 Main.Map.UpdateLighting(i, j, b);
427 }
428 }
429 }
430 }
static byte Min(byte val1, byte val2)
Definition Math.cs:912
static double Floor(double d)
Vector2 UnscaledPosition
Definition Camera.cs:8

References Terraria.Graphics.Light.LegacyLighting._camera, Terraria.Graphics.Light.LegacyLighting._requestedRectBottom, Terraria.Graphics.Light.LegacyLighting._requestedRectLeft, Terraria.Graphics.Light.LegacyLighting._requestedRectRight, Terraria.Graphics.Light.LegacyLighting._requestedRectTop, Terraria.Graphics.Light.LegacyLighting._states, Terraria.Tile.active(), System.array, System.Math.Floor(), Terraria.Main.GameViewMatrix, Terraria.Graphics.Light.LegacyLighting.IsColorOrWhiteMode, Terraria.Main.Map, Terraria.Main.mapMaxX, Terraria.Main.mapMaxY, Terraria.Main.mapMinX, Terraria.Main.mapMinY, Terraria.Main.mapTimeMax, Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, System.Math.Min(), Terraria.Lighting.OffScreenTiles, Terraria.Main.tile, Terraria.Graphics.Camera.UnscaledPosition, Terraria.Graphics.Camera.UnscaledSize, System.value, Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Vector2.Y.

Referenced by Terraria.Graphics.Light.LegacyLighting.ProcessArea().