public static void LavaCheck(Func <Int32, Int32, ITile> TileRefs, ISandbox sandbox, int x, int y) { if (TileRefs == null) { TileRefs = TileCollection.ITileAt; } if ((TileRefs(x - 1, y).Liquid > 0 && !TileRefs(x - 1, y).Lava) || (TileRefs(x + 1, y).Liquid > 0 && !TileRefs(x + 1, y).Lava) || (TileRefs(x, y - 1).Liquid > 0 && !TileRefs(x, y - 1).Lava)) { int liq = 0; if (!TileRefs(x - 1, y).Lava) { liq += (int)TileRefs(x - 1, y).Liquid; TileRefs(x - 1, y).SetLiquid(0); } if (!TileRefs(x + 1, y).Lava) { liq += (int)TileRefs(x + 1, y).Liquid; TileRefs(x + 1, y).SetLiquid(0); } if (!TileRefs(x, y - 1).Lava) { liq += (int)TileRefs(x, y - 1).Liquid; TileRefs(x, y - 1).SetLiquid(0); } if (liq >= 32 && !TileRefs(x, y).Active) { TileRefs(x, y).SetLiquid(0); TileRefs(x, y).SetLava(false); WorldModify.PlaceTile(TileRefs, sandbox, x, y, 56, true, true, -1, 0); WorldModify.SquareTileFrame(TileRefs, sandbox, x, y, true); NetMessage.SendTileSquare(-1, x - 1, y - 1, 3); return; } } else if (TileRefs(x, y + 1).Liquid > 0 && !TileRefs(x, y + 1).Lava&& !TileRefs(x, y + 1).Active) { TileRefs(x, y).SetLiquid(0); TileRefs(x, y).SetLava(false); TileRefs(x, y + 1).SetLiquid(0); WorldModify.PlaceTile(TileRefs, sandbox, x, y + 1, 56, true, true, -1, 0); WorldModify.SquareTileFrame(TileRefs, sandbox, x, y + 1, true); NetMessage.SendTileSquare(-1, x - 1, y, 3); } }
public static void LavaCheck(int x, int y) { if ((Main.tile.At(x - 1, y).Liquid > 0 && !Main.tile.At(x - 1, y).Lava) || (Main.tile.At(x + 1, y).Liquid > 0 && !Main.tile.At(x + 1, y).Lava) || (Main.tile.At(x, y - 1).Liquid > 0 && !Main.tile.At(x, y - 1).Lava)) { int num = 0; if (!Main.tile.At(x - 1, y).Lava) { num += (int)Main.tile.At(x - 1, y).Liquid; Main.tile.At(x - 1, y).SetLiquid(0); } if (!Main.tile.At(x + 1, y).Lava) { num += (int)Main.tile.At(x + 1, y).Liquid; Main.tile.At(x + 1, y).SetLiquid(0); } if (!Main.tile.At(x, y - 1).Lava) { num += (int)Main.tile.At(x, y - 1).Liquid; Main.tile.At(x, y - 1).SetLiquid(0); } if (num >= 128 && !Main.tile.At(x, y).Active) { ClearLava(x, y); WorldModify.PlaceTile(x, y, 56, true, true, -1, 0); WorldModify.SquareTileFrame(x, y, true); NetMessage.SendTileSquare(-1, x - 1, y - 1, 3); return; } } else if (Main.tile.At(x, y + 1).Liquid > 0 && !Main.tile.At(x, y + 1).Lava&& !Main.tile.At(x, y + 1).Active) { ClearLava(x, y); WorldModify.PlaceTile(x, y + 1, 56, true, true, -1, 0); WorldModify.SquareTileFrame(x, y + 1, true); NetMessage.SendTileSquare(-1, x - 1, y, 3); } }