2170 lines
62 KiB
C#
2170 lines
62 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: Terraria.Graphics.Light.TileLightScanner
|
|
// Assembly: Terraria, Version=1.4.0.5, Culture=neutral, PublicKeyToken=null
|
|
// MVID: 67F9E73E-0A81-4937-A22C-5515CD405A83
|
|
// Assembly location: C:\Users\mikeyisbaeyt\Downloads\depotdownloader-2.4.5\depots\105601\6707058\Terraria.exe
|
|
|
|
using Microsoft.Xna.Framework;
|
|
using ReLogic.Threading;
|
|
using System;
|
|
using Terraria.GameContent;
|
|
using Terraria.ID;
|
|
using Terraria.Utilities;
|
|
|
|
namespace Terraria.Graphics.Light
|
|
{
|
|
public class TileLightScanner
|
|
{
|
|
private readonly World _world;
|
|
private FastRandom _random = FastRandom.CreateWithRandomSeed();
|
|
|
|
public TileLightScanner(World world) => this._world = world;
|
|
|
|
public void ExportTo(Rectangle area, LightMap outputMap)
|
|
{
|
|
// ISSUE: object of a compiler-generated type is created
|
|
// ISSUE: variable of a compiler-generated type
|
|
TileLightScanner.\u003C\u003Ec__DisplayClass3_0 cDisplayClass30 = new TileLightScanner.\u003C\u003Ec__DisplayClass3_0();
|
|
// ISSUE: reference to a compiler-generated field
|
|
cDisplayClass30.area = area;
|
|
// ISSUE: reference to a compiler-generated field
|
|
cDisplayClass30.\u003C\u003E4__this = this;
|
|
// ISSUE: reference to a compiler-generated field
|
|
cDisplayClass30.outputMap = outputMap;
|
|
// ISSUE: reference to a compiler-generated field
|
|
// ISSUE: reference to a compiler-generated field
|
|
// ISSUE: method pointer
|
|
FastParallel.For(cDisplayClass30.area.Left, cDisplayClass30.area.Right, new ParallelForAction((object) cDisplayClass30, __methodptr(\u003CExportTo\u003Eb__0)), (object) null);
|
|
}
|
|
|
|
private bool IsTileNullOrTouchingNull(int x, int y) => !WorldGen.InWorld(x, y, 1) || this._world.Tiles[x, y] == null || this._world.Tiles[x + 1, y] == null || this._world.Tiles[x - 1, y] == null || this._world.Tiles[x, y - 1] == null || this._world.Tiles[x, y + 1] == null;
|
|
|
|
public void Update() => this._random.NextSeed();
|
|
|
|
public LightMaskMode GetMaskMode(int x, int y) => TileLightScanner.GetTileMask(this._world.Tiles[x, y]);
|
|
|
|
private static LightMaskMode GetTileMask(Tile tile)
|
|
{
|
|
if ((!tile.active() || !Main.tileBlockLight[(int) tile.type] || tile.type == (ushort) 131 || tile.inActive() ? 0 : (tile.slope() == (byte) 0 ? 1 : 0)) != 0)
|
|
return LightMaskMode.Solid;
|
|
if (tile.lava() || tile.liquid <= (byte) 128)
|
|
return LightMaskMode.None;
|
|
return !tile.honey() ? LightMaskMode.Water : LightMaskMode.Honey;
|
|
}
|
|
|
|
public void GetTileLight(int x, int y, out Vector3 outputColor)
|
|
{
|
|
outputColor = Vector3.Zero;
|
|
Tile tile = this._world.Tiles[x, y];
|
|
FastRandom localRandom = this._random.WithModifier(x, y);
|
|
if (y < (int) Main.worldSurface)
|
|
this.ApplySurfaceLight(tile, x, y, ref outputColor);
|
|
else if (y > Main.UnderworldLayer)
|
|
this.ApplyHellLight(tile, x, y, ref outputColor);
|
|
TileLightScanner.ApplyWallLight(tile, x, y, ref localRandom, ref outputColor);
|
|
if (tile.active())
|
|
this.ApplyTileLight(tile, x, y, ref localRandom, ref outputColor);
|
|
TileLightScanner.ApplyLavaLight(tile, ref outputColor);
|
|
}
|
|
|
|
private static void ApplyLavaLight(Tile tile, ref Vector3 lightColor)
|
|
{
|
|
if (!tile.lava() || tile.liquid <= (byte) 0)
|
|
return;
|
|
float num = 0.55f + (float) (270 - (int) Main.mouseTextColor) / 900f;
|
|
if ((double) lightColor.X < (double) num)
|
|
lightColor.X = num;
|
|
if ((double) lightColor.Y < (double) num)
|
|
lightColor.Y = num * 0.6f;
|
|
if ((double) lightColor.Z >= (double) num)
|
|
return;
|
|
lightColor.Z = num * 0.2f;
|
|
}
|
|
|
|
private static void ApplyWallLight(
|
|
Tile tile,
|
|
int x,
|
|
int y,
|
|
ref FastRandom localRandom,
|
|
ref Vector3 lightColor)
|
|
{
|
|
float num1 = 0.0f;
|
|
float num2 = 0.0f;
|
|
float num3 = 0.0f;
|
|
switch (tile.wall)
|
|
{
|
|
case 33:
|
|
if (!tile.active() || !Main.tileBlockLight[(int) tile.type])
|
|
{
|
|
num1 = 0.09f;
|
|
num2 = 0.0525f;
|
|
num3 = 0.24f;
|
|
break;
|
|
}
|
|
break;
|
|
case 44:
|
|
if (!tile.active() || !Main.tileBlockLight[(int) tile.type])
|
|
{
|
|
num1 = (float) ((double) Main.DiscoR / (double) byte.MaxValue * 0.150000005960464);
|
|
num2 = (float) ((double) Main.DiscoG / (double) byte.MaxValue * 0.150000005960464);
|
|
num3 = (float) ((double) Main.DiscoB / (double) byte.MaxValue * 0.150000005960464);
|
|
break;
|
|
}
|
|
break;
|
|
case 137:
|
|
if (!tile.active() || !Main.tileBlockLight[(int) tile.type])
|
|
{
|
|
float num4 = 0.4f + (float) (270 - (int) Main.mouseTextColor) / 1500f + (float) localRandom.Next(0, 50) * 0.0005f;
|
|
num1 = 1f * num4;
|
|
num2 = 0.5f * num4;
|
|
num3 = 0.1f * num4;
|
|
break;
|
|
}
|
|
break;
|
|
case 153:
|
|
num1 = 0.6f;
|
|
num2 = 0.3f;
|
|
break;
|
|
case 154:
|
|
num1 = 0.6f;
|
|
num3 = 0.6f;
|
|
break;
|
|
case 155:
|
|
num1 = 0.6f;
|
|
num2 = 0.6f;
|
|
num3 = 0.6f;
|
|
break;
|
|
case 156:
|
|
num2 = 0.6f;
|
|
break;
|
|
case 164:
|
|
num1 = 0.6f;
|
|
break;
|
|
case 165:
|
|
num3 = 0.6f;
|
|
break;
|
|
case 166:
|
|
num1 = 0.6f;
|
|
num2 = 0.6f;
|
|
break;
|
|
case 174:
|
|
if (!tile.active() || !Main.tileBlockLight[(int) tile.type])
|
|
{
|
|
num1 = 0.2975f;
|
|
break;
|
|
}
|
|
break;
|
|
case 175:
|
|
if (!tile.active() || !Main.tileBlockLight[(int) tile.type])
|
|
{
|
|
num1 = 0.075f;
|
|
num2 = 0.15f;
|
|
num3 = 0.4f;
|
|
break;
|
|
}
|
|
break;
|
|
case 176:
|
|
if (!tile.active() || !Main.tileBlockLight[(int) tile.type])
|
|
{
|
|
num1 = 0.1f;
|
|
num2 = 0.1f;
|
|
num3 = 0.1f;
|
|
break;
|
|
}
|
|
break;
|
|
case 182:
|
|
if (!tile.active() || !Main.tileBlockLight[(int) tile.type])
|
|
{
|
|
num1 = 0.24f;
|
|
num2 = 0.12f;
|
|
num3 = 0.09f;
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
if ((double) lightColor.X < (double) num1)
|
|
lightColor.X = num1;
|
|
if ((double) lightColor.Y < (double) num2)
|
|
lightColor.Y = num2;
|
|
if ((double) lightColor.Z >= (double) num3)
|
|
return;
|
|
lightColor.Z = num3;
|
|
}
|
|
|
|
private void ApplyTileLight(
|
|
Tile tile,
|
|
int x,
|
|
int y,
|
|
ref FastRandom localRandom,
|
|
ref Vector3 lightColor)
|
|
{
|
|
float R = 0.0f;
|
|
float G = 0.0f;
|
|
float B = 0.0f;
|
|
if (Main.tileLighted[(int) tile.type])
|
|
{
|
|
switch (tile.type)
|
|
{
|
|
case 4:
|
|
if (tile.frameX < (short) 66)
|
|
{
|
|
TorchID.TorchColor((int) tile.frameY / 22, out R, out G, out B);
|
|
break;
|
|
}
|
|
break;
|
|
case 17:
|
|
case 133:
|
|
case 302:
|
|
R = 0.83f;
|
|
G = 0.6f;
|
|
B = 0.5f;
|
|
break;
|
|
case 22:
|
|
case 140:
|
|
R = 0.12f;
|
|
G = 0.07f;
|
|
B = 0.32f;
|
|
break;
|
|
case 26:
|
|
case 31:
|
|
if (tile.type == (ushort) 31 && tile.frameX >= (short) 36 || tile.type == (ushort) 26 && tile.frameX >= (short) 54)
|
|
{
|
|
float num = (float) localRandom.Next(-5, 6) * (1f / 400f);
|
|
R = (float) (0.5 + (double) num * 2.0);
|
|
G = 0.2f + num;
|
|
B = 0.1f;
|
|
break;
|
|
}
|
|
float num1 = (float) localRandom.Next(-5, 6) * (1f / 400f);
|
|
R = 0.31f + num1;
|
|
G = 0.1f;
|
|
B = (float) (0.439999997615814 + (double) num1 * 2.0);
|
|
break;
|
|
case 27:
|
|
if (tile.frameY < (short) 36)
|
|
{
|
|
R = 0.3f;
|
|
G = 0.27f;
|
|
break;
|
|
}
|
|
break;
|
|
case 33:
|
|
if (tile.frameX == (short) 0)
|
|
{
|
|
switch ((int) tile.frameY / 22)
|
|
{
|
|
case 0:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 1:
|
|
R = 0.55f;
|
|
G = 0.85f;
|
|
B = 0.35f;
|
|
break;
|
|
case 2:
|
|
R = 0.65f;
|
|
G = 0.95f;
|
|
B = 0.5f;
|
|
break;
|
|
case 3:
|
|
R = 0.2f;
|
|
G = 0.75f;
|
|
B = 1f;
|
|
break;
|
|
case 5:
|
|
R = 0.85f;
|
|
G = 0.6f;
|
|
B = 1f;
|
|
break;
|
|
case 7:
|
|
case 8:
|
|
R = 0.75f;
|
|
G = 0.85f;
|
|
B = 1f;
|
|
break;
|
|
case 9:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 10:
|
|
R = 1f;
|
|
G = 0.97f;
|
|
B = 0.85f;
|
|
break;
|
|
case 14:
|
|
R = 1f;
|
|
G = 1f;
|
|
B = 0.6f;
|
|
break;
|
|
case 15:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 18:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 19:
|
|
R = 0.37f;
|
|
G = 0.8f;
|
|
B = 1f;
|
|
break;
|
|
case 20:
|
|
R = 0.0f;
|
|
G = 0.9f;
|
|
B = 1f;
|
|
break;
|
|
case 21:
|
|
R = 0.25f;
|
|
G = 0.7f;
|
|
B = 1f;
|
|
break;
|
|
case 23:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 24:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 25:
|
|
R = (float) (0.5 * (double) Main.demonTorch + 1.0 * (1.0 - (double) Main.demonTorch));
|
|
G = 0.3f;
|
|
B = (float) (1.0 * (double) Main.demonTorch + 0.5 * (1.0 - (double) Main.demonTorch));
|
|
break;
|
|
case 28:
|
|
R = 0.9f;
|
|
G = 0.75f;
|
|
B = 1f;
|
|
break;
|
|
case 29:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 30:
|
|
Vector3 vector3_1 = Main.hslToRgb((float) ((double) Main.demonTorch * 0.119999997317791 + 0.689999997615814), 1f, 0.75f).ToVector3() * 1.2f;
|
|
R = vector3_1.X;
|
|
G = vector3_1.Y;
|
|
B = vector3_1.Z;
|
|
break;
|
|
case 31:
|
|
R = 1f;
|
|
G = 0.97f;
|
|
B = 0.85f;
|
|
break;
|
|
case 32:
|
|
R = 0.55f;
|
|
G = 0.45f;
|
|
B = 0.95f;
|
|
break;
|
|
case 33:
|
|
R = 1f;
|
|
G = 0.6f;
|
|
B = 0.1f;
|
|
break;
|
|
case 34:
|
|
R = 0.3f;
|
|
G = 0.75f;
|
|
B = 0.55f;
|
|
break;
|
|
case 35:
|
|
R = 0.9f;
|
|
G = 0.55f;
|
|
B = 0.7f;
|
|
break;
|
|
case 36:
|
|
R = 0.55f;
|
|
G = 0.85f;
|
|
B = 1f;
|
|
break;
|
|
case 37:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 38:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
default:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
break;
|
|
break;
|
|
case 34:
|
|
if ((int) tile.frameX % 108 < 54)
|
|
{
|
|
switch ((int) tile.frameY / 54 + 37 * ((int) tile.frameX / 108))
|
|
{
|
|
case 7:
|
|
R = 0.95f;
|
|
G = 0.95f;
|
|
B = 0.5f;
|
|
break;
|
|
case 8:
|
|
R = 0.85f;
|
|
G = 0.6f;
|
|
B = 1f;
|
|
break;
|
|
case 9:
|
|
R = 1f;
|
|
G = 0.6f;
|
|
B = 0.6f;
|
|
break;
|
|
case 11:
|
|
case 12:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 13:
|
|
R = 1f;
|
|
G = 0.97f;
|
|
B = 0.85f;
|
|
break;
|
|
case 15:
|
|
R = 1f;
|
|
G = 1f;
|
|
B = 0.7f;
|
|
break;
|
|
case 16:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 17:
|
|
R = 0.75f;
|
|
G = 0.85f;
|
|
B = 1f;
|
|
break;
|
|
case 18:
|
|
R = 1f;
|
|
G = 1f;
|
|
B = 0.6f;
|
|
break;
|
|
case 19:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 23:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 24:
|
|
R = 0.37f;
|
|
G = 0.8f;
|
|
B = 1f;
|
|
break;
|
|
case 25:
|
|
R = 0.0f;
|
|
G = 0.9f;
|
|
B = 1f;
|
|
break;
|
|
case 26:
|
|
R = 0.25f;
|
|
G = 0.7f;
|
|
B = 1f;
|
|
break;
|
|
case 27:
|
|
R = 0.55f;
|
|
G = 0.85f;
|
|
B = 0.35f;
|
|
break;
|
|
case 28:
|
|
R = 0.65f;
|
|
G = 0.95f;
|
|
B = 0.5f;
|
|
break;
|
|
case 29:
|
|
R = 0.2f;
|
|
G = 0.75f;
|
|
B = 1f;
|
|
break;
|
|
case 30:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 32:
|
|
R = (float) (0.5 * (double) Main.demonTorch + 1.0 * (1.0 - (double) Main.demonTorch));
|
|
G = 0.3f;
|
|
B = (float) (1.0 * (double) Main.demonTorch + 0.5 * (1.0 - (double) Main.demonTorch));
|
|
break;
|
|
case 35:
|
|
R = 0.9f;
|
|
G = 0.75f;
|
|
B = 1f;
|
|
break;
|
|
case 36:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 37:
|
|
Vector3 vector3_2 = Main.hslToRgb((float) ((double) Main.demonTorch * 0.119999997317791 + 0.689999997615814), 1f, 0.75f).ToVector3() * 1.2f;
|
|
R = vector3_2.X;
|
|
G = vector3_2.Y;
|
|
B = vector3_2.Z;
|
|
break;
|
|
case 38:
|
|
R = 1f;
|
|
G = 0.97f;
|
|
B = 0.85f;
|
|
break;
|
|
case 39:
|
|
R = 0.55f;
|
|
G = 0.45f;
|
|
B = 0.95f;
|
|
break;
|
|
case 40:
|
|
R = 1f;
|
|
G = 0.6f;
|
|
B = 0.1f;
|
|
break;
|
|
case 41:
|
|
R = 0.3f;
|
|
G = 0.75f;
|
|
B = 0.55f;
|
|
break;
|
|
case 42:
|
|
R = 0.9f;
|
|
G = 0.55f;
|
|
B = 0.7f;
|
|
break;
|
|
case 43:
|
|
R = 0.55f;
|
|
G = 0.85f;
|
|
B = 1f;
|
|
break;
|
|
case 44:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 45:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
default:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.8f;
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
break;
|
|
break;
|
|
case 35:
|
|
if (tile.frameX < (short) 36)
|
|
{
|
|
R = 0.75f;
|
|
G = 0.6f;
|
|
B = 0.3f;
|
|
break;
|
|
}
|
|
break;
|
|
case 37:
|
|
R = 0.56f;
|
|
G = 0.43f;
|
|
B = 0.15f;
|
|
break;
|
|
case 42:
|
|
if (tile.frameX == (short) 0)
|
|
{
|
|
switch ((int) tile.frameY / 36)
|
|
{
|
|
case 0:
|
|
R = 0.7f;
|
|
G = 0.65f;
|
|
B = 0.55f;
|
|
break;
|
|
case 1:
|
|
R = 0.9f;
|
|
G = 0.75f;
|
|
B = 0.6f;
|
|
break;
|
|
case 2:
|
|
R = 0.8f;
|
|
G = 0.6f;
|
|
B = 0.6f;
|
|
break;
|
|
case 3:
|
|
R = 0.65f;
|
|
G = 0.5f;
|
|
B = 0.2f;
|
|
break;
|
|
case 4:
|
|
R = 0.5f;
|
|
G = 0.7f;
|
|
B = 0.4f;
|
|
break;
|
|
case 5:
|
|
R = 0.9f;
|
|
G = 0.4f;
|
|
B = 0.2f;
|
|
break;
|
|
case 6:
|
|
R = 0.7f;
|
|
G = 0.75f;
|
|
B = 0.3f;
|
|
break;
|
|
case 7:
|
|
float num2 = Main.demonTorch * 0.2f;
|
|
R = 0.9f - num2;
|
|
G = 0.9f - num2;
|
|
B = 0.7f + num2;
|
|
break;
|
|
case 8:
|
|
R = 0.75f;
|
|
G = 0.6f;
|
|
B = 0.3f;
|
|
break;
|
|
case 9:
|
|
float num3 = 1f;
|
|
float num4 = 0.3f;
|
|
B = 0.5f + Main.demonTorch * 0.2f;
|
|
R = num3 - Main.demonTorch * 0.1f;
|
|
G = num4 - Main.demonTorch * 0.2f;
|
|
break;
|
|
case 11:
|
|
R = 0.85f;
|
|
G = 0.6f;
|
|
B = 1f;
|
|
break;
|
|
case 14:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 15:
|
|
case 16:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 17:
|
|
R = 1f;
|
|
G = 0.97f;
|
|
B = 0.85f;
|
|
break;
|
|
case 18:
|
|
R = 0.75f;
|
|
G = 0.85f;
|
|
B = 1f;
|
|
break;
|
|
case 21:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 22:
|
|
R = 1f;
|
|
G = 1f;
|
|
B = 0.6f;
|
|
break;
|
|
case 23:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 27:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 28:
|
|
R = 0.37f;
|
|
G = 0.8f;
|
|
B = 1f;
|
|
break;
|
|
case 29:
|
|
R = 0.0f;
|
|
G = 0.9f;
|
|
B = 1f;
|
|
break;
|
|
case 30:
|
|
R = 0.25f;
|
|
G = 0.7f;
|
|
B = 1f;
|
|
break;
|
|
case 32:
|
|
R = (float) (0.5 * (double) Main.demonTorch + 1.0 * (1.0 - (double) Main.demonTorch));
|
|
G = 0.3f;
|
|
B = (float) (1.0 * (double) Main.demonTorch + 0.5 * (1.0 - (double) Main.demonTorch));
|
|
break;
|
|
case 35:
|
|
R = 0.7f;
|
|
G = 0.6f;
|
|
B = 0.9f;
|
|
break;
|
|
case 36:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 37:
|
|
Vector3 vector3_3 = Main.hslToRgb((float) ((double) Main.demonTorch * 0.119999997317791 + 0.689999997615814), 1f, 0.75f).ToVector3() * 1.2f;
|
|
R = vector3_3.X;
|
|
G = vector3_3.Y;
|
|
B = vector3_3.Z;
|
|
break;
|
|
case 38:
|
|
R = 1f;
|
|
G = 0.97f;
|
|
B = 0.85f;
|
|
break;
|
|
case 39:
|
|
R = 0.55f;
|
|
G = 0.45f;
|
|
B = 0.95f;
|
|
break;
|
|
case 40:
|
|
R = 1f;
|
|
G = 0.6f;
|
|
B = 0.1f;
|
|
break;
|
|
case 41:
|
|
R = 0.3f;
|
|
G = 0.75f;
|
|
B = 0.55f;
|
|
break;
|
|
case 42:
|
|
R = 0.9f;
|
|
G = 0.55f;
|
|
B = 0.7f;
|
|
break;
|
|
case 43:
|
|
R = 0.55f;
|
|
G = 0.85f;
|
|
B = 1f;
|
|
break;
|
|
case 44:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 45:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
default:
|
|
R = 1f;
|
|
G = 1f;
|
|
B = 1f;
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
break;
|
|
break;
|
|
case 49:
|
|
if (tile.frameX == (short) 0)
|
|
{
|
|
R = 0.0f;
|
|
G = 0.35f;
|
|
B = 0.8f;
|
|
break;
|
|
}
|
|
break;
|
|
case 61:
|
|
if (tile.frameX == (short) 144)
|
|
{
|
|
float num5 = (float) (1.0 + (double) (270 - (int) Main.mouseTextColor) / 400.0);
|
|
float num6 = (float) (0.800000011920929 - (double) (270 - (int) Main.mouseTextColor) / 400.0);
|
|
R = 0.42f * num6;
|
|
G = 0.81f * num5;
|
|
B = 0.52f * num6;
|
|
break;
|
|
}
|
|
break;
|
|
case 70:
|
|
case 71:
|
|
case 72:
|
|
case 190:
|
|
case 348:
|
|
case 349:
|
|
case 528:
|
|
case 578:
|
|
if (tile.type != (ushort) 349 || tile.frameX >= (short) 36)
|
|
{
|
|
float num7 = (float) localRandom.Next(28, 42) * 0.005f + (float) (270 - (int) Main.mouseTextColor) / 1000f;
|
|
R = 0.0f;
|
|
G = (float) (0.200000002980232 + (double) num7 / 2.0);
|
|
B = 1f;
|
|
break;
|
|
}
|
|
break;
|
|
case 77:
|
|
R = 0.75f;
|
|
G = 0.45f;
|
|
B = 0.25f;
|
|
break;
|
|
case 83:
|
|
if (tile.frameX == (short) 18 && !Main.dayTime)
|
|
{
|
|
R = 0.1f;
|
|
G = 0.4f;
|
|
B = 0.6f;
|
|
}
|
|
if (tile.frameX == (short) 90 && !Main.raining && Main.time > 40500.0)
|
|
{
|
|
R = 0.9f;
|
|
G = 0.72f;
|
|
B = 0.18f;
|
|
break;
|
|
}
|
|
break;
|
|
case 84:
|
|
switch ((int) tile.frameX / 18)
|
|
{
|
|
case 2:
|
|
float num8 = (float) (270 - (int) Main.mouseTextColor) / 800f;
|
|
if ((double) num8 > 1.0)
|
|
num8 = 1f;
|
|
else if ((double) num8 < 0.0)
|
|
num8 = 0.0f;
|
|
R = num8 * 0.7f;
|
|
G = num8;
|
|
B = num8 * 0.1f;
|
|
break;
|
|
case 5:
|
|
float num9 = 0.9f;
|
|
R = num9;
|
|
G = num9 * 0.8f;
|
|
B = num9 * 0.2f;
|
|
break;
|
|
case 6:
|
|
float num10 = 0.08f;
|
|
G = num10 * 0.8f;
|
|
B = num10;
|
|
break;
|
|
}
|
|
break;
|
|
case 92:
|
|
if (tile.frameY <= (short) 18 && tile.frameX == (short) 0)
|
|
{
|
|
R = 1f;
|
|
G = 1f;
|
|
B = 1f;
|
|
break;
|
|
}
|
|
break;
|
|
case 93:
|
|
if (tile.frameX == (short) 0)
|
|
{
|
|
switch ((int) tile.frameY / 54)
|
|
{
|
|
case 1:
|
|
R = 0.95f;
|
|
G = 0.95f;
|
|
B = 0.5f;
|
|
break;
|
|
case 2:
|
|
R = 0.85f;
|
|
G = 0.6f;
|
|
B = 1f;
|
|
break;
|
|
case 3:
|
|
R = 0.75f;
|
|
G = 1f;
|
|
B = 0.6f;
|
|
break;
|
|
case 4:
|
|
case 5:
|
|
R = 0.75f;
|
|
G = 0.85f;
|
|
B = 1f;
|
|
break;
|
|
case 6:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 7:
|
|
R = 1f;
|
|
G = 0.97f;
|
|
B = 0.85f;
|
|
break;
|
|
case 9:
|
|
R = 1f;
|
|
G = 1f;
|
|
B = 0.7f;
|
|
break;
|
|
case 10:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 12:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 13:
|
|
R = 1f;
|
|
G = 1f;
|
|
B = 0.6f;
|
|
break;
|
|
case 14:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 18:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 19:
|
|
R = 0.37f;
|
|
G = 0.8f;
|
|
B = 1f;
|
|
break;
|
|
case 20:
|
|
R = 0.0f;
|
|
G = 0.9f;
|
|
B = 1f;
|
|
break;
|
|
case 21:
|
|
R = 0.25f;
|
|
G = 0.7f;
|
|
B = 1f;
|
|
break;
|
|
case 23:
|
|
R = (float) (0.5 * (double) Main.demonTorch + 1.0 * (1.0 - (double) Main.demonTorch));
|
|
G = 0.3f;
|
|
B = (float) (1.0 * (double) Main.demonTorch + 0.5 * (1.0 - (double) Main.demonTorch));
|
|
break;
|
|
case 24:
|
|
R = 0.35f;
|
|
G = 0.5f;
|
|
B = 0.3f;
|
|
break;
|
|
case 25:
|
|
R = 0.34f;
|
|
G = 0.4f;
|
|
B = 0.31f;
|
|
break;
|
|
case 26:
|
|
R = 0.25f;
|
|
G = 0.32f;
|
|
B = 0.5f;
|
|
break;
|
|
case 29:
|
|
R = 0.9f;
|
|
G = 0.75f;
|
|
B = 1f;
|
|
break;
|
|
case 30:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 31:
|
|
Vector3 vector3_4 = Main.hslToRgb((float) ((double) Main.demonTorch * 0.119999997317791 + 0.689999997615814), 1f, 0.75f).ToVector3() * 1.2f;
|
|
R = vector3_4.X;
|
|
G = vector3_4.Y;
|
|
B = vector3_4.Z;
|
|
break;
|
|
case 32:
|
|
R = 1f;
|
|
G = 0.97f;
|
|
B = 0.85f;
|
|
break;
|
|
case 33:
|
|
R = 0.55f;
|
|
G = 0.45f;
|
|
B = 0.95f;
|
|
break;
|
|
case 34:
|
|
R = 1f;
|
|
G = 0.6f;
|
|
B = 0.1f;
|
|
break;
|
|
case 35:
|
|
R = 0.3f;
|
|
G = 0.75f;
|
|
B = 0.55f;
|
|
break;
|
|
case 36:
|
|
R = 0.9f;
|
|
G = 0.55f;
|
|
B = 0.7f;
|
|
break;
|
|
case 37:
|
|
R = 0.55f;
|
|
G = 0.85f;
|
|
B = 1f;
|
|
break;
|
|
case 38:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 39:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
default:
|
|
R = 1f;
|
|
G = 0.97f;
|
|
B = 0.85f;
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
break;
|
|
break;
|
|
case 95:
|
|
if (tile.frameX < (short) 36)
|
|
{
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.8f;
|
|
break;
|
|
}
|
|
break;
|
|
case 96:
|
|
if (tile.frameX >= (short) 36)
|
|
{
|
|
R = 0.5f;
|
|
G = 0.35f;
|
|
B = 0.1f;
|
|
break;
|
|
}
|
|
break;
|
|
case 98:
|
|
if (tile.frameY == (short) 0)
|
|
{
|
|
R = 1f;
|
|
G = 0.97f;
|
|
B = 0.85f;
|
|
break;
|
|
}
|
|
break;
|
|
case 100:
|
|
case 173:
|
|
if (tile.frameX < (short) 36)
|
|
{
|
|
switch ((int) tile.frameY / 36)
|
|
{
|
|
case 1:
|
|
R = 0.95f;
|
|
G = 0.95f;
|
|
B = 0.5f;
|
|
break;
|
|
case 2:
|
|
R = 0.85f;
|
|
G = 0.6f;
|
|
B = 1f;
|
|
break;
|
|
case 3:
|
|
R = 1f;
|
|
G = 0.6f;
|
|
B = 0.6f;
|
|
break;
|
|
case 5:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 6:
|
|
case 7:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 8:
|
|
R = 1f;
|
|
G = 0.97f;
|
|
B = 0.85f;
|
|
break;
|
|
case 9:
|
|
R = 0.75f;
|
|
G = 0.85f;
|
|
B = 1f;
|
|
break;
|
|
case 11:
|
|
R = 1f;
|
|
G = 1f;
|
|
B = 0.7f;
|
|
break;
|
|
case 12:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 13:
|
|
R = 1f;
|
|
G = 1f;
|
|
B = 0.6f;
|
|
break;
|
|
case 14:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 18:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 19:
|
|
R = 0.37f;
|
|
G = 0.8f;
|
|
B = 1f;
|
|
break;
|
|
case 20:
|
|
R = 0.0f;
|
|
G = 0.9f;
|
|
B = 1f;
|
|
break;
|
|
case 21:
|
|
R = 0.25f;
|
|
G = 0.7f;
|
|
B = 1f;
|
|
break;
|
|
case 22:
|
|
R = 0.35f;
|
|
G = 0.5f;
|
|
B = 0.3f;
|
|
break;
|
|
case 23:
|
|
R = 0.34f;
|
|
G = 0.4f;
|
|
B = 0.31f;
|
|
break;
|
|
case 24:
|
|
R = 0.25f;
|
|
G = 0.32f;
|
|
B = 0.5f;
|
|
break;
|
|
case 25:
|
|
R = (float) (0.5 * (double) Main.demonTorch + 1.0 * (1.0 - (double) Main.demonTorch));
|
|
G = 0.3f;
|
|
B = (float) (1.0 * (double) Main.demonTorch + 0.5 * (1.0 - (double) Main.demonTorch));
|
|
break;
|
|
case 29:
|
|
R = 0.9f;
|
|
G = 0.75f;
|
|
B = 1f;
|
|
break;
|
|
case 30:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 31:
|
|
Vector3 vector3_5 = Main.hslToRgb((float) ((double) Main.demonTorch * 0.119999997317791 + 0.689999997615814), 1f, 0.75f).ToVector3() * 1.2f;
|
|
R = vector3_5.X;
|
|
G = vector3_5.Y;
|
|
B = vector3_5.Z;
|
|
break;
|
|
case 32:
|
|
R = 1f;
|
|
G = 0.97f;
|
|
B = 0.85f;
|
|
break;
|
|
case 33:
|
|
R = 0.55f;
|
|
G = 0.45f;
|
|
B = 0.95f;
|
|
break;
|
|
case 34:
|
|
R = 1f;
|
|
G = 0.6f;
|
|
B = 0.1f;
|
|
break;
|
|
case 35:
|
|
R = 0.3f;
|
|
G = 0.75f;
|
|
B = 0.55f;
|
|
break;
|
|
case 36:
|
|
R = 0.9f;
|
|
G = 0.55f;
|
|
B = 0.7f;
|
|
break;
|
|
case 37:
|
|
R = 0.55f;
|
|
G = 0.85f;
|
|
B = 1f;
|
|
break;
|
|
case 38:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
case 39:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
default:
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
break;
|
|
break;
|
|
case 125:
|
|
float num11 = (float) localRandom.Next(28, 42) * 0.01f + (float) (270 - (int) Main.mouseTextColor) / 800f;
|
|
G = lightColor.Y = 0.3f * num11;
|
|
B = lightColor.Z = 0.6f * num11;
|
|
break;
|
|
case 126:
|
|
if (tile.frameX < (short) 36)
|
|
{
|
|
R = (float) Main.DiscoR / (float) byte.MaxValue;
|
|
G = (float) Main.DiscoG / (float) byte.MaxValue;
|
|
B = (float) Main.DiscoB / (float) byte.MaxValue;
|
|
break;
|
|
}
|
|
break;
|
|
case 129:
|
|
switch ((int) tile.frameX / 18 % 3)
|
|
{
|
|
case 0:
|
|
R = 0.0f;
|
|
G = 0.05f;
|
|
B = 0.25f;
|
|
break;
|
|
case 1:
|
|
R = 0.2f;
|
|
G = 0.0f;
|
|
B = 0.15f;
|
|
break;
|
|
case 2:
|
|
R = 0.1f;
|
|
G = 0.0f;
|
|
B = 0.2f;
|
|
break;
|
|
}
|
|
break;
|
|
case 149:
|
|
if (tile.frameX <= (short) 36)
|
|
{
|
|
switch ((int) tile.frameX / 18)
|
|
{
|
|
case 0:
|
|
R = 0.1f;
|
|
G = 0.2f;
|
|
B = 0.5f;
|
|
break;
|
|
case 1:
|
|
R = 0.5f;
|
|
G = 0.1f;
|
|
B = 0.1f;
|
|
break;
|
|
case 2:
|
|
R = 0.2f;
|
|
G = 0.5f;
|
|
B = 0.1f;
|
|
break;
|
|
}
|
|
R *= (float) localRandom.Next(970, 1031) * (1f / 1000f);
|
|
G *= (float) localRandom.Next(970, 1031) * (1f / 1000f);
|
|
B *= (float) localRandom.Next(970, 1031) * (1f / 1000f);
|
|
break;
|
|
}
|
|
break;
|
|
case 160:
|
|
R = (float) ((double) Main.DiscoR / (double) byte.MaxValue * 0.25);
|
|
G = (float) ((double) Main.DiscoG / (double) byte.MaxValue * 0.25);
|
|
B = (float) ((double) Main.DiscoB / (double) byte.MaxValue * 0.25);
|
|
break;
|
|
case 171:
|
|
if (tile.frameX < (short) 10)
|
|
{
|
|
x -= (int) tile.frameX;
|
|
y -= (int) tile.frameY;
|
|
}
|
|
switch (((int) this._world.Tiles[x, y].frameY & 15360) >> 10)
|
|
{
|
|
case 1:
|
|
R = 0.1f;
|
|
G = 0.1f;
|
|
B = 0.1f;
|
|
break;
|
|
case 2:
|
|
R = 0.2f;
|
|
break;
|
|
case 3:
|
|
G = 0.2f;
|
|
break;
|
|
case 4:
|
|
B = 0.2f;
|
|
break;
|
|
case 5:
|
|
R = 0.125f;
|
|
G = 0.125f;
|
|
break;
|
|
case 6:
|
|
R = 0.2f;
|
|
G = 0.1f;
|
|
break;
|
|
case 7:
|
|
R = 0.125f;
|
|
G = 0.125f;
|
|
break;
|
|
case 8:
|
|
R = 0.08f;
|
|
G = 0.175f;
|
|
break;
|
|
case 9:
|
|
G = 0.125f;
|
|
B = 0.125f;
|
|
break;
|
|
case 10:
|
|
R = 0.125f;
|
|
B = 0.125f;
|
|
break;
|
|
case 11:
|
|
R = 0.1f;
|
|
G = 0.1f;
|
|
B = 0.2f;
|
|
break;
|
|
default:
|
|
double num12;
|
|
B = (float) (num12 = 0.0);
|
|
G = (float) num12;
|
|
R = (float) num12;
|
|
break;
|
|
}
|
|
R *= 0.5f;
|
|
G *= 0.5f;
|
|
B *= 0.5f;
|
|
break;
|
|
case 174:
|
|
if (tile.frameX == (short) 0)
|
|
{
|
|
R = 1f;
|
|
G = 0.95f;
|
|
B = 0.65f;
|
|
break;
|
|
}
|
|
break;
|
|
case 184:
|
|
if (tile.frameX == (short) 110)
|
|
{
|
|
R = 0.25f;
|
|
G = 0.1f;
|
|
B = 0.0f;
|
|
}
|
|
if (tile.frameX == (short) 132)
|
|
{
|
|
R = 0.0f;
|
|
G = 0.25f;
|
|
B = 0.0f;
|
|
}
|
|
if (tile.frameX == (short) 154)
|
|
{
|
|
R = 0.0f;
|
|
G = 0.16f;
|
|
B = 0.34f;
|
|
}
|
|
if (tile.frameX == (short) 176)
|
|
{
|
|
R = 0.3f;
|
|
G = 0.0f;
|
|
B = 0.17f;
|
|
break;
|
|
}
|
|
break;
|
|
case 204:
|
|
case 347:
|
|
R = 0.35f;
|
|
break;
|
|
case 209:
|
|
if (tile.frameX == (short) 234 || tile.frameX == (short) 252)
|
|
{
|
|
Vector3 vector3_6 = PortalHelper.GetPortalColor(Main.myPlayer, 0).ToVector3() * 0.65f;
|
|
R = vector3_6.X;
|
|
G = vector3_6.Y;
|
|
B = vector3_6.Z;
|
|
break;
|
|
}
|
|
if (tile.frameX == (short) 306 || tile.frameX == (short) 324)
|
|
{
|
|
Vector3 vector3_7 = PortalHelper.GetPortalColor(Main.myPlayer, 1).ToVector3() * 0.65f;
|
|
R = vector3_7.X;
|
|
G = vector3_7.Y;
|
|
B = vector3_7.Z;
|
|
break;
|
|
}
|
|
break;
|
|
case 215:
|
|
if (tile.frameY < (short) 36)
|
|
{
|
|
float num13 = (float) localRandom.Next(28, 42) * 0.005f + (float) (270 - (int) Main.mouseTextColor) / 700f;
|
|
float num14;
|
|
float num15;
|
|
float num16;
|
|
switch ((int) tile.frameX / 54)
|
|
{
|
|
case 1:
|
|
num14 = 0.7f;
|
|
num15 = 1f;
|
|
num16 = 0.5f;
|
|
break;
|
|
case 2:
|
|
num14 = (float) (0.5 * (double) Main.demonTorch + 1.0 * (1.0 - (double) Main.demonTorch));
|
|
num15 = 0.3f;
|
|
num16 = (float) (1.0 * (double) Main.demonTorch + 0.5 * (1.0 - (double) Main.demonTorch));
|
|
break;
|
|
case 3:
|
|
num14 = 0.45f;
|
|
num15 = 0.75f;
|
|
num16 = 1f;
|
|
break;
|
|
case 4:
|
|
num14 = 1.15f;
|
|
num15 = 1.15f;
|
|
num16 = 0.5f;
|
|
break;
|
|
case 5:
|
|
num14 = (float) Main.DiscoR / (float) byte.MaxValue;
|
|
num15 = (float) Main.DiscoG / (float) byte.MaxValue;
|
|
num16 = (float) Main.DiscoB / (float) byte.MaxValue;
|
|
break;
|
|
case 6:
|
|
num14 = 0.75f;
|
|
num15 = 1.2825f;
|
|
num16 = 1.2f;
|
|
break;
|
|
case 7:
|
|
num14 = 0.95f;
|
|
num15 = 0.65f;
|
|
num16 = 1.3f;
|
|
break;
|
|
case 8:
|
|
num14 = 1.4f;
|
|
num15 = 0.85f;
|
|
num16 = 0.55f;
|
|
break;
|
|
case 9:
|
|
num14 = 0.25f;
|
|
num15 = 1.3f;
|
|
num16 = 0.8f;
|
|
break;
|
|
case 10:
|
|
num14 = 0.95f;
|
|
num15 = 0.4f;
|
|
num16 = 1.4f;
|
|
break;
|
|
case 11:
|
|
num14 = 1.4f;
|
|
num15 = 0.7f;
|
|
num16 = 0.5f;
|
|
break;
|
|
case 12:
|
|
num14 = 1.25f;
|
|
num15 = 0.6f;
|
|
num16 = 1.2f;
|
|
break;
|
|
case 13:
|
|
num14 = 0.75f;
|
|
num15 = 1.45f;
|
|
num16 = 0.9f;
|
|
break;
|
|
default:
|
|
num14 = 0.9f;
|
|
num15 = 0.3f;
|
|
num16 = 0.1f;
|
|
break;
|
|
}
|
|
R = num14 + num13;
|
|
G = num15 + num13;
|
|
B = num16 + num13;
|
|
break;
|
|
}
|
|
break;
|
|
case 235:
|
|
if ((double) lightColor.X < 0.6)
|
|
lightColor.X = 0.6f;
|
|
if ((double) lightColor.Y < 0.6)
|
|
{
|
|
lightColor.Y = 0.6f;
|
|
break;
|
|
}
|
|
break;
|
|
case 237:
|
|
R = 0.1f;
|
|
G = 0.1f;
|
|
break;
|
|
case 238:
|
|
if ((double) lightColor.X < 0.5)
|
|
lightColor.X = 0.5f;
|
|
if ((double) lightColor.Z < 0.5)
|
|
{
|
|
lightColor.Z = 0.5f;
|
|
break;
|
|
}
|
|
break;
|
|
case 262:
|
|
R = 0.75f;
|
|
B = 0.75f;
|
|
break;
|
|
case 263:
|
|
R = 0.75f;
|
|
G = 0.75f;
|
|
break;
|
|
case 264:
|
|
B = 0.75f;
|
|
break;
|
|
case 265:
|
|
G = 0.75f;
|
|
break;
|
|
case 266:
|
|
R = 0.75f;
|
|
break;
|
|
case 267:
|
|
R = 0.75f;
|
|
G = 0.75f;
|
|
B = 0.75f;
|
|
break;
|
|
case 268:
|
|
R = 0.75f;
|
|
G = 0.375f;
|
|
break;
|
|
case 270:
|
|
R = 0.73f;
|
|
G = 1f;
|
|
B = 0.41f;
|
|
break;
|
|
case 271:
|
|
R = 0.45f;
|
|
G = 0.95f;
|
|
B = 1f;
|
|
break;
|
|
case 286:
|
|
case 619:
|
|
R = 0.1f;
|
|
G = 0.2f;
|
|
B = 0.7f;
|
|
break;
|
|
case 316:
|
|
case 317:
|
|
case 318:
|
|
int index = (x - (int) tile.frameX / 18) / 2 * ((y - (int) tile.frameY / 18) / 3) % Main.cageFrames;
|
|
bool flag1 = Main.jellyfishCageMode[(int) tile.type - 316, index] == (byte) 2;
|
|
if (tile.type == (ushort) 316)
|
|
{
|
|
if (flag1)
|
|
{
|
|
R = 0.2f;
|
|
G = 0.3f;
|
|
B = 0.8f;
|
|
}
|
|
else
|
|
{
|
|
R = 0.1f;
|
|
G = 0.2f;
|
|
B = 0.5f;
|
|
}
|
|
}
|
|
if (tile.type == (ushort) 317)
|
|
{
|
|
if (flag1)
|
|
{
|
|
R = 0.2f;
|
|
G = 0.7f;
|
|
B = 0.3f;
|
|
}
|
|
else
|
|
{
|
|
R = 0.05f;
|
|
G = 0.45f;
|
|
B = 0.1f;
|
|
}
|
|
}
|
|
if (tile.type == (ushort) 318)
|
|
{
|
|
if (flag1)
|
|
{
|
|
R = 0.7f;
|
|
G = 0.2f;
|
|
B = 0.5f;
|
|
break;
|
|
}
|
|
R = 0.4f;
|
|
G = 0.1f;
|
|
B = 0.25f;
|
|
break;
|
|
}
|
|
break;
|
|
case 327:
|
|
float num17 = 0.5f + (float) (270 - (int) Main.mouseTextColor) / 1500f + (float) localRandom.Next(0, 50) * 0.0005f;
|
|
R = 1f * num17;
|
|
G = 0.5f * num17;
|
|
B = 0.1f * num17;
|
|
break;
|
|
case 336:
|
|
R = 0.85f;
|
|
G = 0.5f;
|
|
B = 0.3f;
|
|
break;
|
|
case 340:
|
|
R = 0.45f;
|
|
G = 1f;
|
|
B = 0.45f;
|
|
break;
|
|
case 341:
|
|
R = (float) (0.400000005960464 * (double) Main.demonTorch + 0.600000023841858 * (1.0 - (double) Main.demonTorch));
|
|
G = 0.35f;
|
|
B = (float) (1.0 * (double) Main.demonTorch + 0.600000023841858 * (1.0 - (double) Main.demonTorch));
|
|
break;
|
|
case 342:
|
|
R = 0.5f;
|
|
G = 0.5f;
|
|
B = 1.1f;
|
|
break;
|
|
case 343:
|
|
R = 0.85f;
|
|
G = 0.85f;
|
|
B = 0.3f;
|
|
break;
|
|
case 344:
|
|
R = 0.6f;
|
|
G = 1.026f;
|
|
B = 0.96f;
|
|
break;
|
|
case 350:
|
|
double num18 = Main.timeForVisualEffects * 0.08;
|
|
double num19;
|
|
R = (float) (num19 = -Math.Cos((int) (num18 / 6.283) % 3 == 1 ? num18 : 0.0) * 0.1 + 0.1);
|
|
G = (float) num19;
|
|
B = (float) num19;
|
|
break;
|
|
case 354:
|
|
R = 0.65f;
|
|
G = 0.35f;
|
|
B = 0.15f;
|
|
break;
|
|
case 370:
|
|
R = 0.32f;
|
|
G = 0.16f;
|
|
B = 0.12f;
|
|
break;
|
|
case 372:
|
|
if (tile.frameX == (short) 0)
|
|
{
|
|
R = 0.9f;
|
|
G = 0.1f;
|
|
B = 0.75f;
|
|
break;
|
|
}
|
|
break;
|
|
case 381:
|
|
case 517:
|
|
R = 0.25f;
|
|
G = 0.1f;
|
|
B = 0.0f;
|
|
break;
|
|
case 390:
|
|
R = 0.4f;
|
|
G = 0.2f;
|
|
B = 0.1f;
|
|
break;
|
|
case 391:
|
|
R = 0.3f;
|
|
G = 0.1f;
|
|
B = 0.25f;
|
|
break;
|
|
case 405:
|
|
if (tile.frameX < (short) 54)
|
|
{
|
|
float num20 = (float) localRandom.Next(28, 42) * 0.005f + (float) (270 - (int) Main.mouseTextColor) / 700f;
|
|
float num21;
|
|
float num22;
|
|
float num23;
|
|
switch ((int) tile.frameX / 54)
|
|
{
|
|
case 1:
|
|
num21 = 0.7f;
|
|
num22 = 1f;
|
|
num23 = 0.5f;
|
|
break;
|
|
case 2:
|
|
num21 = (float) (0.5 * (double) Main.demonTorch + 1.0 * (1.0 - (double) Main.demonTorch));
|
|
num22 = 0.3f;
|
|
num23 = (float) (1.0 * (double) Main.demonTorch + 0.5 * (1.0 - (double) Main.demonTorch));
|
|
break;
|
|
case 3:
|
|
num21 = 0.45f;
|
|
num22 = 0.75f;
|
|
num23 = 1f;
|
|
break;
|
|
case 4:
|
|
num21 = 1.15f;
|
|
num22 = 1.15f;
|
|
num23 = 0.5f;
|
|
break;
|
|
case 5:
|
|
num21 = (float) Main.DiscoR / (float) byte.MaxValue;
|
|
num22 = (float) Main.DiscoG / (float) byte.MaxValue;
|
|
num23 = (float) Main.DiscoB / (float) byte.MaxValue;
|
|
break;
|
|
default:
|
|
num21 = 0.9f;
|
|
num22 = 0.3f;
|
|
num23 = 0.1f;
|
|
break;
|
|
}
|
|
R = num21 + num20;
|
|
G = num22 + num20;
|
|
B = num23 + num20;
|
|
break;
|
|
}
|
|
break;
|
|
case 415:
|
|
R = 0.7f;
|
|
G = 0.5f;
|
|
B = 0.1f;
|
|
break;
|
|
case 416:
|
|
R = 0.0f;
|
|
G = 0.6f;
|
|
B = 0.7f;
|
|
break;
|
|
case 417:
|
|
R = 0.6f;
|
|
G = 0.2f;
|
|
B = 0.6f;
|
|
break;
|
|
case 418:
|
|
R = 0.6f;
|
|
G = 0.6f;
|
|
B = 0.9f;
|
|
break;
|
|
case 429:
|
|
int num24 = (int) tile.frameX / 18;
|
|
bool flag2 = num24 % 2 >= 1;
|
|
bool flag3 = num24 % 4 >= 2;
|
|
bool flag4 = num24 % 8 >= 4;
|
|
int num25 = num24 % 16 >= 8 ? 1 : 0;
|
|
if (flag2)
|
|
R += 0.5f;
|
|
if (flag3)
|
|
G += 0.5f;
|
|
if (flag4)
|
|
B += 0.5f;
|
|
if (num25 != 0)
|
|
{
|
|
R += 0.2f;
|
|
G += 0.2f;
|
|
break;
|
|
}
|
|
break;
|
|
case 463:
|
|
R = 0.2f;
|
|
G = 0.4f;
|
|
B = 0.8f;
|
|
break;
|
|
case 491:
|
|
R = 0.5f;
|
|
G = 0.4f;
|
|
B = 0.7f;
|
|
break;
|
|
case 500:
|
|
R = 0.525f;
|
|
G = 0.375f;
|
|
B = 0.075f;
|
|
break;
|
|
case 501:
|
|
R = 0.0f;
|
|
G = 0.45f;
|
|
B = 0.525f;
|
|
break;
|
|
case 502:
|
|
R = 0.45f;
|
|
G = 0.15f;
|
|
B = 0.45f;
|
|
break;
|
|
case 503:
|
|
R = 0.45f;
|
|
G = 0.45f;
|
|
B = 0.675f;
|
|
break;
|
|
case 519:
|
|
if (tile.frameY == (short) 90)
|
|
{
|
|
float num26 = (float) localRandom.Next(28, 42) * 0.005f + (float) (270 - (int) Main.mouseTextColor) / 1000f;
|
|
R = 0.1f;
|
|
G = (float) (0.200000002980232 + (double) num26 / 2.0);
|
|
B = 0.7f + num26;
|
|
break;
|
|
}
|
|
break;
|
|
case 534:
|
|
case 535:
|
|
R = 0.0f;
|
|
G = 0.25f;
|
|
B = 0.0f;
|
|
break;
|
|
case 536:
|
|
case 537:
|
|
R = 0.0f;
|
|
G = 0.16f;
|
|
B = 0.34f;
|
|
break;
|
|
case 539:
|
|
case 540:
|
|
R = 0.3f;
|
|
G = 0.0f;
|
|
B = 0.17f;
|
|
break;
|
|
case 548:
|
|
if ((int) tile.frameX / 54 >= 7)
|
|
{
|
|
R = 0.7f;
|
|
G = 0.3f;
|
|
B = 0.2f;
|
|
break;
|
|
}
|
|
break;
|
|
case 564:
|
|
if (tile.frameX < (short) 36)
|
|
{
|
|
R = 0.05f;
|
|
G = 0.3f;
|
|
B = 0.55f;
|
|
break;
|
|
}
|
|
break;
|
|
case 568:
|
|
R = 1f;
|
|
G = 0.61f;
|
|
B = 0.65f;
|
|
break;
|
|
case 569:
|
|
R = 0.12f;
|
|
G = 1f;
|
|
B = 0.66f;
|
|
break;
|
|
case 570:
|
|
R = 0.57f;
|
|
G = 0.57f;
|
|
B = 1f;
|
|
break;
|
|
case 572:
|
|
switch ((int) tile.frameY / 36)
|
|
{
|
|
case 0:
|
|
R = 0.9f;
|
|
G = 0.5f;
|
|
B = 0.7f;
|
|
break;
|
|
case 1:
|
|
R = 0.7f;
|
|
G = 0.55f;
|
|
B = 0.96f;
|
|
break;
|
|
case 2:
|
|
R = 0.45f;
|
|
G = 0.96f;
|
|
B = 0.95f;
|
|
break;
|
|
case 3:
|
|
R = 0.5f;
|
|
G = 0.96f;
|
|
B = 0.62f;
|
|
break;
|
|
case 4:
|
|
R = 0.47f;
|
|
G = 0.69f;
|
|
B = 0.95f;
|
|
break;
|
|
case 5:
|
|
R = 0.92f;
|
|
G = 0.57f;
|
|
B = 0.51f;
|
|
break;
|
|
}
|
|
break;
|
|
case 580:
|
|
R = 0.7f;
|
|
G = 0.3f;
|
|
B = 0.2f;
|
|
break;
|
|
case 581:
|
|
R = 1f;
|
|
G = 0.75f;
|
|
B = 0.5f;
|
|
break;
|
|
case 582:
|
|
case 598:
|
|
R = 0.7f;
|
|
G = 0.2f;
|
|
B = 0.1f;
|
|
break;
|
|
case 592:
|
|
if (tile.frameY > (short) 0)
|
|
{
|
|
float num27 = (float) localRandom.Next(28, 42) * 0.005f + (float) (270 - (int) Main.mouseTextColor) / 700f;
|
|
float num28 = 1.35f;
|
|
float num29 = 0.45f;
|
|
float num30 = 0.15f;
|
|
R = num28 + num27;
|
|
G = num29 + num27;
|
|
B = num30 + num27;
|
|
break;
|
|
}
|
|
break;
|
|
case 593:
|
|
if (tile.frameX < (short) 18)
|
|
{
|
|
R = 0.8f;
|
|
G = 0.3f;
|
|
B = 0.1f;
|
|
break;
|
|
}
|
|
break;
|
|
case 594:
|
|
if (tile.frameX < (short) 36)
|
|
{
|
|
R = 0.8f;
|
|
G = 0.3f;
|
|
B = 0.1f;
|
|
break;
|
|
}
|
|
break;
|
|
case 597:
|
|
switch ((int) tile.frameX / 54)
|
|
{
|
|
case 0:
|
|
R = 0.05f;
|
|
G = 0.8f;
|
|
B = 0.3f;
|
|
break;
|
|
case 1:
|
|
R = 0.7f;
|
|
G = 0.8f;
|
|
B = 0.05f;
|
|
break;
|
|
case 2:
|
|
R = 0.7f;
|
|
G = 0.5f;
|
|
B = 0.9f;
|
|
break;
|
|
case 3:
|
|
R = 0.6f;
|
|
G = 0.6f;
|
|
B = 0.8f;
|
|
break;
|
|
case 4:
|
|
R = 0.4f;
|
|
G = 0.4f;
|
|
B = 1.15f;
|
|
break;
|
|
case 5:
|
|
R = 0.85f;
|
|
G = 0.45f;
|
|
B = 0.1f;
|
|
break;
|
|
case 6:
|
|
R = 0.8f;
|
|
G = 0.8f;
|
|
B = 1f;
|
|
break;
|
|
case 7:
|
|
R = 0.5f;
|
|
G = 0.8f;
|
|
B = 1.2f;
|
|
break;
|
|
}
|
|
R *= 0.75f;
|
|
G *= 0.75f;
|
|
B *= 0.75f;
|
|
break;
|
|
case 613:
|
|
case 614:
|
|
R = 0.7f;
|
|
G = 0.3f;
|
|
B = 0.2f;
|
|
break;
|
|
case 620:
|
|
Color color = new Color(230, 230, 230, 0).MultiplyRGBA(Main.hslToRgb((float) ((double) Main.GlobalTimeWrappedHourly * 0.5 % 1.0), 1f, 0.5f)) * 0.4f;
|
|
R = (float) color.R / (float) byte.MaxValue;
|
|
G = (float) color.G / (float) byte.MaxValue;
|
|
B = (float) color.B / (float) byte.MaxValue;
|
|
break;
|
|
}
|
|
}
|
|
if ((double) lightColor.X < (double) R)
|
|
lightColor.X = R;
|
|
if ((double) lightColor.Y < (double) G)
|
|
lightColor.Y = G;
|
|
if ((double) lightColor.Z >= (double) B)
|
|
return;
|
|
lightColor.Z = B;
|
|
}
|
|
|
|
private void ApplySurfaceLight(Tile tile, int x, int y, ref Vector3 lightColor)
|
|
{
|
|
float num1 = 0.0f;
|
|
float num2 = 0.0f;
|
|
float num3 = 0.0f;
|
|
float num4 = (float) Main.tileColor.R / (float) byte.MaxValue;
|
|
float num5 = (float) Main.tileColor.G / (float) byte.MaxValue;
|
|
float num6 = (float) Main.tileColor.B / (float) byte.MaxValue;
|
|
float num7 = (float) (((double) num4 + (double) num5 + (double) num6) / 3.0);
|
|
if (tile.active() && TileID.Sets.AllowLightInWater[(int) tile.type])
|
|
{
|
|
if ((double) lightColor.X < (double) num7 && (Main.wallLight[(int) tile.wall] || tile.wall == (ushort) 73 || tile.wall == (ushort) 227))
|
|
{
|
|
num1 = num4;
|
|
num2 = num5;
|
|
num3 = num6;
|
|
}
|
|
}
|
|
else if ((!tile.active() || !Main.tileNoSunLight[(int) tile.type] || (tile.slope() != (byte) 0 || tile.halfBrick()) && this._world.Tiles[x, y - 1].liquid == (byte) 0 && this._world.Tiles[x, y + 1].liquid == (byte) 0 && this._world.Tiles[x - 1, y].liquid == (byte) 0 && this._world.Tiles[x + 1, y].liquid == (byte) 0) && (double) lightColor.X < (double) num7 && (Main.wallLight[(int) tile.wall] || tile.wall == (ushort) 73 || tile.wall == (ushort) 227) && tile.liquid < (byte) 200 && (!tile.halfBrick() || this._world.Tiles[x, y - 1].liquid < (byte) 200))
|
|
{
|
|
num1 = num4;
|
|
num2 = num5;
|
|
num3 = num6;
|
|
}
|
|
if ((!tile.active() || tile.halfBrick() || !Main.tileNoSunLight[(int) tile.type]) && (tile.wall >= (ushort) 88 && tile.wall <= (ushort) 93 || tile.wall == (ushort) 241) && tile.liquid < byte.MaxValue)
|
|
{
|
|
num1 = num4;
|
|
num2 = num5;
|
|
num3 = num6;
|
|
int num8 = (int) tile.wall - 88;
|
|
if (tile.wall == (ushort) 241)
|
|
num8 = 6;
|
|
switch (num8)
|
|
{
|
|
case 0:
|
|
num1 *= 0.9f;
|
|
num2 *= 0.15f;
|
|
num3 *= 0.9f;
|
|
break;
|
|
case 1:
|
|
num1 *= 0.9f;
|
|
num2 *= 0.9f;
|
|
num3 *= 0.15f;
|
|
break;
|
|
case 2:
|
|
num1 *= 0.15f;
|
|
num2 *= 0.15f;
|
|
num3 *= 0.9f;
|
|
break;
|
|
case 3:
|
|
num1 *= 0.15f;
|
|
num2 *= 0.9f;
|
|
num3 *= 0.15f;
|
|
break;
|
|
case 4:
|
|
num1 *= 0.9f;
|
|
num2 *= 0.15f;
|
|
num3 *= 0.15f;
|
|
break;
|
|
case 5:
|
|
float num9 = 0.2f;
|
|
float num10 = 0.7f - num9;
|
|
num1 *= num10 + (float) Main.DiscoR / (float) byte.MaxValue * num9;
|
|
num2 *= num10 + (float) Main.DiscoG / (float) byte.MaxValue * num9;
|
|
num3 *= num10 + (float) Main.DiscoB / (float) byte.MaxValue * num9;
|
|
break;
|
|
case 6:
|
|
num1 *= 0.9f;
|
|
num2 *= 0.5f;
|
|
num3 *= 0.0f;
|
|
break;
|
|
}
|
|
}
|
|
if ((double) lightColor.X < (double) num1)
|
|
lightColor.X = num1;
|
|
if ((double) lightColor.Y < (double) num2)
|
|
lightColor.Y = num2;
|
|
if ((double) lightColor.Z >= (double) num3)
|
|
return;
|
|
lightColor.Z = num3;
|
|
}
|
|
|
|
private void ApplyHellLight(Tile tile, int x, int y, ref Vector3 lightColor)
|
|
{
|
|
float num1 = 0.0f;
|
|
float num2 = 0.0f;
|
|
float num3 = 0.0f;
|
|
float num4 = (float) (0.550000011920929 + Math.Sin((double) Main.GlobalTimeWrappedHourly * 2.0) * 0.0799999982118607);
|
|
if ((!tile.active() || !Main.tileNoSunLight[(int) tile.type] || (tile.slope() != (byte) 0 || tile.halfBrick()) && this._world.Tiles[x, y - 1].liquid == (byte) 0 && this._world.Tiles[x, y + 1].liquid == (byte) 0 && this._world.Tiles[x - 1, y].liquid == (byte) 0 && this._world.Tiles[x + 1, y].liquid == (byte) 0) && (double) lightColor.X < (double) num4 && (Main.wallLight[(int) tile.wall] || tile.wall == (ushort) 73 || tile.wall == (ushort) 227) && tile.liquid < (byte) 200 && (!tile.halfBrick() || this._world.Tiles[x, y - 1].liquid < (byte) 200))
|
|
{
|
|
num1 = num4;
|
|
num2 = num4 * 0.6f;
|
|
num3 = num4 * 0.2f;
|
|
}
|
|
if ((!tile.active() || tile.halfBrick() || !Main.tileNoSunLight[(int) tile.type]) && tile.wall >= (ushort) 88 && tile.wall <= (ushort) 93 && tile.liquid < byte.MaxValue)
|
|
{
|
|
num1 = num4;
|
|
num2 = num4 * 0.6f;
|
|
num3 = num4 * 0.2f;
|
|
switch (tile.wall)
|
|
{
|
|
case 88:
|
|
num1 *= 0.9f;
|
|
num2 *= 0.15f;
|
|
num3 *= 0.9f;
|
|
break;
|
|
case 89:
|
|
num1 *= 0.9f;
|
|
num2 *= 0.9f;
|
|
num3 *= 0.15f;
|
|
break;
|
|
case 90:
|
|
num1 *= 0.15f;
|
|
num2 *= 0.15f;
|
|
num3 *= 0.9f;
|
|
break;
|
|
case 91:
|
|
num1 *= 0.15f;
|
|
num2 *= 0.9f;
|
|
num3 *= 0.15f;
|
|
break;
|
|
case 92:
|
|
num1 *= 0.9f;
|
|
num2 *= 0.15f;
|
|
num3 *= 0.15f;
|
|
break;
|
|
case 93:
|
|
float num5 = 0.2f;
|
|
float num6 = 0.7f - num5;
|
|
num1 *= num6 + (float) Main.DiscoR / (float) byte.MaxValue * num5;
|
|
num2 *= num6 + (float) Main.DiscoG / (float) byte.MaxValue * num5;
|
|
num3 *= num6 + (float) Main.DiscoB / (float) byte.MaxValue * num5;
|
|
break;
|
|
}
|
|
}
|
|
if ((double) lightColor.X < (double) num1)
|
|
lightColor.X = num1;
|
|
if ((double) lightColor.Y < (double) num2)
|
|
lightColor.Y = num2;
|
|
if ((double) lightColor.Z >= (double) num3)
|
|
return;
|
|
lightColor.Z = num3;
|
|
}
|
|
}
|
|
}
|