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

◆ PlaceLiquid()

static bool Terraria.WorldGen.PlaceLiquid ( int x,
int y,
byte liquidType,
byte amount )
inlinestatic

Definition at line 1615 of file WorldGen.cs.

1616 {
1617 if (!InWorld(x, y))
1618 {
1619 return false;
1620 }
1621 Tile tile = Main.tile[x, y];
1622 if (tile == null)
1623 {
1624 return false;
1625 }
1626 byte b = tile.liquidType();
1627 if (tile.nactive() && Main.tileSolid[tile.type] && !Main.tileSolidTop[tile.type])
1628 {
1629 return false;
1630 }
1631 if (tile.liquid == 0 || liquidType == b)
1632 {
1633 tile.liquidType(liquidType);
1634 if (amount + tile.liquid > 255)
1635 {
1636 amount = (byte)(255 - tile.liquid);
1637 }
1638 tile.liquid += amount;
1639 SquareTileFrame(x, y);
1640 if (Main.netMode != 0)
1641 {
1642 NetMessage.sendWater(x, y);
1643 }
1644 return true;
1645 }
1646 int liquidMergeTileType = 0;
1647 bool waterNearby = b == 0;
1648 bool lavaNearby = b == 1;
1649 bool honeyNearby = b == 2;
1650 bool shimmerNearby = b == 3;
1651 int liquidMergeType = 0;
1652 Liquid.GetLiquidMergeTypes(liquidType, out liquidMergeTileType, out liquidMergeType, waterNearby, lavaNearby, honeyNearby, shimmerNearby);
1653 if (liquidMergeTileType != 0)
1654 {
1655 tile.liquid = 0;
1656 tile.liquidType(0);
1658 SquareTileFrame(x, y);
1659 if (Main.netMode != 0)
1660 {
1661 NetMessage.SendTileSquare(-1, x - 1, y - 1, GetLiquidChangeType(liquidType, b));
1662 }
1663 return true;
1664 }
1665 return false;
1666 }
static bool PlaceTile(int i, int j, int Type, bool mute=false, bool forced=false, int plr=-1, int style=0)
static TileChangeType GetLiquidChangeType(int liquidType, int otherLiquidType)
Definition WorldGen.cs:1693
static bool InWorld(int x, int y, int fluff=0)
Definition WorldGen.cs:6481
static void SquareTileFrame(int i, int j, bool resetFrame=true)

References Terraria.WorldGen.GetLiquidChangeType(), Terraria.Liquid.GetLiquidMergeTypes(), Terraria.WorldGen.InWorld(), Terraria.Tile.liquid, Terraria.Tile.liquidType(), Terraria.Tile.nactive(), Terraria.Main.netMode, Terraria.WorldGen.PlaceTile(), Terraria.NetMessage.SendTileSquare(), Terraria.NetMessage.sendWater(), Terraria.WorldGen.SquareTileFrame(), Terraria.Main.tile, Terraria.Main.tileSolid, Terraria.Main.tileSolidTop, and Terraria.Tile.type.

Referenced by Terraria.DelegateMethods.SpreadHoney(), Terraria.DelegateMethods.SpreadLava(), and Terraria.DelegateMethods.SpreadWater().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: