public void Update()
{
Main.tileSolid[379] = true;
Tile tile = Main.tile[x - 1, y];
Tile tile2 = Main.tile[x + 1, y];
Tile tile3 = Main.tile[x, y - 1];
Tile tile4 = Main.tile[x, y + 1];
Tile tile5 = Main.tile[x, y];
if (tile5.nactive() && Main.tileSolid[tile5.type] && !Main.tileSolidTop[tile5.type])
{
ushort type = tile5.type;
int num5 = 10;
kill = 9;
return;
}
byte liquid = tile5.liquid;
float num = 0f;
if (y > Main.maxTilesY - 200 && tile5.liquidType() == 0 && tile5.liquid > 0)
{
byte b = 2;
if (tile5.liquid < b)
{
b = tile5.liquid;
}
tile5.liquid -= b;
}
if (tile5.liquid == 0)
{
kill = 9;
return;
}
if (tile5.lava())
{
LavaCheck(x, y);
if (!quickFall)
{
if (delay < 5)
{
delay++;
return;
}
delay = 0;
}
}
else
{
if (tile.lava())
{
AddWater(x - 1, y);
}
if (tile2.lava())
{
AddWater(x + 1, y);
}
if (tile3.lava())
{
AddWater(x, y - 1);
}
if (tile4.lava())
{
AddWater(x, y + 1);
}
if (tile5.honey())
{
HoneyCheck(x, y);
if (!quickFall)
{
if (delay < 10)
{
delay++;
return;
}
delay = 0;
}
}
else
{
if (tile.honey())
{
AddWater(x - 1, y);
}
if (tile2.honey())
{
AddWater(x + 1, y);
}
if (tile3.honey())
{
AddWater(x, y - 1);
}
if (tile4.honey())
{
AddWater(x, y + 1);
}
}
}
if ((!tile4.nactive() || !Main.tileSolid[tile4.type] || Main.tileSolidTop[tile4.type]) && (tile4.liquid <= 0 || tile4.liquidType() == tile5.liquidType()) && tile4.liquid < byte.MaxValue)
{
num = 255 - tile4.liquid;
if (num > (float)(int)tile5.liquid)
{
num = (int)tile5.liquid;
}
tile5.liquid -= (byte)num;
tile4.liquid += (byte)num;
tile4.liquidType(tile5.liquidType());
AddWater(x, y + 1);
tile4.skipLiquid(true);
tile5.skipLiquid(true);
if (tile5.liquid > 250)
{
tile5.liquid = byte.MaxValue;
}
else
{
AddWater(x - 1, y);
AddWater(x + 1, y);
}
}
if (tile5.liquid > 0)
{
bool flag = true;
bool flag2 = true;
bool flag3 = true;
bool flag4 = true;
if (tile.nactive() && Main.tileSolid[tile.type] && !Main.tileSolidTop[tile.type])
{
flag = false;
}
else if (tile.liquid > 0 && tile.liquidType() != tile5.liquidType())
{
flag = false;
}
else if (Main.tile[x - 2, y].nactive() && Main.tileSolid[Main.tile[x - 2, y].type] && !Main.tileSolidTop[Main.tile[x - 2, y].type])
{
flag3 = false;
}
else if (Main.tile[x - 2, y].liquid == 0)
{
flag3 = false;
}
else if (Main.tile[x - 2, y].liquid > 0 && Main.tile[x - 2, y].liquidType() != tile5.liquidType())
{
flag3 = false;
}
if (tile2.nactive() && Main.tileSolid[tile2.type] && !Main.tileSolidTop[tile2.type])
{
flag2 = false;
}
else if (tile2.liquid > 0 && tile2.liquidType() != tile5.liquidType())
{
flag2 = false;
}
else if (Main.tile[x + 2, y].nactive() && Main.tileSolid[Main.tile[x + 2, y].type] && !Main.tileSolidTop[Main.tile[x + 2, y].type])
{
flag4 = false;
}
else if (Main.tile[x + 2, y].liquid == 0)
{
flag4 = false;
}
else if (Main.tile[x + 2, y].liquid > 0 && Main.tile[x + 2, y].liquidType() != tile5.liquidType())
{
flag4 = false;
}
int num2 = 0;
if (tile5.liquid < 3)
{
num2 = -1;
}
if (flag && flag2)
{
if (flag3 && flag4)
{
bool flag5 = true;
bool flag6 = true;
if (Main.tile[x - 3, y].nactive() && Main.tileSolid[Main.tile[x - 3, y].type] && !Main.tileSolidTop[Main.tile[x - 3, y].type])
{
flag5 = false;
}
else if (Main.tile[x - 3, y].liquid == 0)
{
flag5 = false;
}
else if (Main.tile[x - 3, y].liquidType() != tile5.liquidType())
{
flag5 = false;
}
if (Main.tile[x + 3, y].nactive() && Main.tileSolid[Main.tile[x + 3, y].type] && !Main.tileSolidTop[Main.tile[x + 3, y].type])
{
flag6 = false;
}
else if (Main.tile[x + 3, y].liquid == 0)
{
flag6 = false;
}
else if (Main.tile[x + 3, y].liquidType() != tile5.liquidType())
{
flag6 = false;
}
if (flag5 && flag6)
{
num = tile.liquid + tile2.liquid + Main.tile[x - 2, y].liquid + Main.tile[x + 2, y].liquid + Main.tile[x - 3, y].liquid + Main.tile[x + 3, y].liquid + tile5.liquid + num2;
num = (float)Math.Round(num / 7f);
int num3 = 0;
tile.liquidType(tile5.liquidType());
if (tile.liquid != (byte)num)
{
tile.liquid = (byte)num;
AddWater(x - 1, y);
}
else
{
num3++;
}
tile2.liquidType(tile5.liquidType());
if (tile2.liquid != (byte)num)
{
tile2.liquid = (byte)num;
AddWater(x + 1, y);
}
else
{
num3++;
}
Main.tile[x - 2, y].liquidType(tile5.liquidType());
if (Main.tile[x - 2, y].liquid != (byte)num)
{
Main.tile[x - 2, y].liquid = (byte)num;
AddWater(x - 2, y);
}
else
{
num3++;
}
Main.tile[x + 2, y].liquidType(tile5.liquidType());
if (Main.tile[x + 2, y].liquid != (byte)num)
{
Main.tile[x + 2, y].liquid = (byte)num;
AddWater(x + 2, y);
}
else
{
num3++;
}
Main.tile[x - 3, y].liquidType(tile5.liquidType());
if (Main.tile[x - 3, y].liquid != (byte)num)
{
Main.tile[x - 3, y].liquid = (byte)num;
AddWater(x - 3, y);
}
else
{
num3++;
}
Main.tile[x + 3, y].liquidType(tile5.liquidType());
if (Main.tile[x + 3, y].liquid != (byte)num)
{
Main.tile[x + 3, y].liquid = (byte)num;
AddWater(x + 3, y);
}
else
{
num3++;
}
if (tile.liquid != (byte)num || tile5.liquid != (byte)num)
{
AddWater(x - 1, y);
}
if (tile2.liquid != (byte)num || tile5.liquid != (byte)num)
{
AddWater(x + 1, y);
}
if (Main.tile[x - 2, y].liquid != (byte)num || tile5.liquid != (byte)num)
{
AddWater(x - 2, y);
}
if (Main.tile[x + 2, y].liquid != (byte)num || tile5.liquid != (byte)num)
{
AddWater(x + 2, y);
}
if (Main.tile[x - 3, y].liquid != (byte)num || tile5.liquid != (byte)num)
{
AddWater(x - 3, y);
}
if (Main.tile[x + 3, y].liquid != (byte)num || tile5.liquid != (byte)num)
{
AddWater(x + 3, y);
}
if (num3 != 6 || tile3.liquid <= 0)
{
tile5.liquid = (byte)num;
}
}
else
{
int num4 = 0;
num = tile.liquid + tile2.liquid + Main.tile[x - 2, y].liquid + Main.tile[x + 2, y].liquid + tile5.liquid + num2;
num = (float)Math.Round(num / 5f);
tile.liquidType(tile5.liquidType());
if (tile.liquid != (byte)num)
{
tile.liquid = (byte)num;
AddWater(x - 1, y);
}
else
{
num4++;
}
tile2.liquidType(tile5.liquidType());
if (tile2.liquid != (byte)num)
{
tile2.liquid = (byte)num;
AddWater(x + 1, y);
}
else
{
num4++;
}
Main.tile[x - 2, y].liquidType(tile5.liquidType());
if (Main.tile[x - 2, y].liquid != (byte)num)
{
Main.tile[x - 2, y].liquid = (byte)num;
AddWater(x - 2, y);
}
else
{
num4++;
}
Main.tile[x + 2, y].liquidType(tile5.liquidType());
if (Main.tile[x + 2, y].liquid != (byte)num)
{
Main.tile[x + 2, y].liquid = (byte)num;
AddWater(x + 2, y);
}
else
{
num4++;
}
if (tile.liquid != (byte)num || tile5.liquid != (byte)num)
{
AddWater(x - 1, y);
}
if (tile2.liquid != (byte)num || tile5.liquid != (byte)num)
{
AddWater(x + 1, y);
}
if (Main.tile[x - 2, y].liquid != (byte)num || tile5.liquid != (byte)num)
{
AddWater(x - 2, y);
}
if (Main.tile[x + 2, y].liquid != (byte)num || tile5.liquid != (byte)num)
{
AddWater(x + 2, y);
}
if (num4 != 4 || tile3.liquid <= 0)
{
tile5.liquid = (byte)num;
}
}
}
else if (flag3)
{
num = tile.liquid + tile2.liquid + Main.tile[x - 2, y].liquid + tile5.liquid + num2;
num = (float)Math.Round((double)(num / 4f) + 0.001);
tile.liquidType(tile5.liquidType());
if (tile.liquid != (byte)num || tile5.liquid != (byte)num)
{
tile.liquid = (byte)num;
AddWater(x - 1, y);
}
tile2.liquidType(tile5.liquidType());
if (tile2.liquid != (byte)num || tile5.liquid != (byte)num)
{
tile2.liquid = (byte)num;
AddWater(x + 1, y);
}
Main.tile[x - 2, y].liquidType(tile5.liquidType());
if (Main.tile[x - 2, y].liquid != (byte)num || tile5.liquid != (byte)num)
{
Main.tile[x - 2, y].liquid = (byte)num;
AddWater(x - 2, y);
}
tile5.liquid = (byte)num;
}
else if (flag4)
{
num = tile.liquid + tile2.liquid + Main.tile[x + 2, y].liquid + tile5.liquid + num2;
num = (float)Math.Round((double)(num / 4f) + 0.001);
tile.liquidType(tile5.liquidType());
if (tile.liquid != (byte)num || tile5.liquid != (byte)num)
{
tile.liquid = (byte)num;
AddWater(x - 1, y);
}
tile2.liquidType(tile5.liquidType());
if (tile2.liquid != (byte)num || tile5.liquid != (byte)num)
{
tile2.liquid = (byte)num;
AddWater(x + 1, y);
}
Main.tile[x + 2, y].liquidType(tile5.liquidType());
if (Main.tile[x + 2, y].liquid != (byte)num || tile5.liquid != (byte)num)
{
Main.tile[x + 2, y].liquid = (byte)num;
AddWater(x + 2, y);
}
tile5.liquid = (byte)num;
}
else
{
num = tile.liquid + tile2.liquid + tile5.liquid + num2;
num = (float)Math.Round((double)(num / 3f) + 0.001);
tile.liquidType(tile5.liquidType());
if (tile.liquid != (byte)num)
{
tile.liquid = (byte)num;
}
if (tile5.liquid != (byte)num || tile.liquid != (byte)num)
{
AddWater(x - 1, y);
}
tile2.liquidType(tile5.liquidType());
if (tile2.liquid != (byte)num)
{
tile2.liquid = (byte)num;
}
if (tile5.liquid != (byte)num || tile2.liquid != (byte)num)
{
AddWater(x + 1, y);
}
tile5.liquid = (byte)num;
}
}
else if (flag)
{
num = tile.liquid + tile5.liquid + num2;
num = (float)Math.Round((double)(num / 2f) + 0.001);
if (tile.liquid != (byte)num)
{
tile.liquid = (byte)num;
}
tile.liquidType(tile5.liquidType());
if (tile5.liquid != (byte)num || tile.liquid != (byte)num)
{
AddWater(x - 1, y);
}
tile5.liquid = (byte)num;
}
else if (flag2)
{
num = tile2.liquid + tile5.liquid + num2;
num = (float)Math.Round((double)(num / 2f) + 0.001);
if (tile2.liquid != (byte)num)
{
tile2.liquid = (byte)num;
}
tile2.liquidType(tile5.liquidType());
if (tile5.liquid != (byte)num || tile2.liquid != (byte)num)
{
AddWater(x + 1, y);
}
tile5.liquid = (byte)num;
}
}
if (tile5.liquid != liquid)
{
if (tile5.liquid == 254 && liquid == byte.MaxValue)
{
tile5.liquid = byte.MaxValue;
kill++;
}
else
{
AddWater(x, y - 1);
kill = 0;
}
}
else
{
kill++;
}
}