**====== SandDef ======** ===== Description ===== `SandDef` is a byte value (ranging from 1 to 255) that defines the type of sand to be created. Each value corresponds to a specific type of sand with unique properties (e.g., color, density, behavior). A value of 255 indicates "empty" or no sand, but it is not considered null. ===== Usage ===== `SandDef` is used as an input parameter in various sand creation commands, such as: * [[IRPL:commands:CreateSand]] * [[IRPL:commands:CreateSandInRoundArea]] * [[IRPL:commands:CreateSandInAreaRand]] * [[IRPL:commands:CreateSandInArea]] ===== Examples ===== 1 ->sandDef // Creates sand of type 1 5 ->sandDef // Creates sand of type 5 255 ->sandDef // Creates "empty" sand (no sand) **====== CreateSand ======** CreateSand(<-x <-y <-sandDef) ===== Description ===== Creates sand at the specified coordinates (x, y) using the provided [[IRPL:commands:SandDef|sand definition (`sandDef`)]]. ===== Examples ===== 10 20 1 ->sandDef ->y ->x CreateSand(<-x <-y <-sandDef) === See Also === [[IRPL:commands:CreateSandInRoundArea]] [[IRPL:commands:CreateSandInAreaRand]] [[IRPL:commands:CreateSandInArea]] **====== CreateSandInRoundArea ======** CreateSandInRoundArea(<-rect <-probability <-sandDef) ===== Description ===== Creates sand within a rectangular area defined by a vector (`rect`) containing the bottom-left (x,y) and top-right (x,y) corner coordinates. The `probability` value (between 0 and 1) determines the chance of sand being created at each cell within the area. Sand is created using the specified [[IRPL:commands:SandDef|sand definition (`sandDef`)]]. ===== Examples ===== {0 0 10 10} ->rect 0.5 ->probability 1 ->sandDef CreateSandInRoundArea(<-rect <-probability <-sandDef) === See Also === [[IRPL:commands:CreateSand]] [[IRPL:commands:CreateSandInAreaRand]] [[IRPL:commands:CreateSandInArea]] **====== CreateSandInAreaRand ======** CreateSandInAreaRand(<-rect <-probability <-sandDef) ===== Description ===== Creates sand within a rectangular area defined by a vector (`rect`) containing the bottom-left (x,y) and top-right (x,y) corner coordinates. The `probability` value (between 0 and 1) determines the chance of sand being created at each cell within the area. The distribution of sand is randomized. Sand is created using the specified [[IRPL:commands:SandDef|sand definition (`sandDef`)]]. ===== Examples ===== {0 0 10 10} ->rect 0.5 ->probability 1 ->sandDef CreateSandInAreaRand(<-rect <-probability <-sandDef) === See Also === [[IRPL:commands:CreateSand]] [[IRPL:commands:CreateSandInRoundArea]] [[IRPL:commands:CreateSandInArea]] **====== CreateSandInArea ======** CreateSandInArea(<-rect <-sandDef) ===== Description ===== Creates sand within a rectangular area defined by a vector (`rect`) containing the bottom-left (x,y) and top-right (x,y) corner coordinates. Sand is created at every cell within the area using the specified [[IRPL:commands:SandDef|sand definition (`sandDef`)]]. ===== Examples ===== {0 0 10 10} ->rect 1 ->sandDef CreateSandInArea(<-rect <-sandDef) === See Also === [[IRPL:commands:CreateSand]] [[IRPL:commands:CreateSandInRoundArea]] [[IRPL:commands:CreateSandInAreaRand]] **====== SetSandColor ======** SetSandColor(<-x <-y <-colors) ===== Description ===== Sets the color and glow of the sand at the specified coordinates (x, y) using a vector (`colors`) containing two colors. The first color in the vector sets the base color of the sand, and the second color sets the glow color. ===== Examples ===== 10 20 ->y ->x { {1 0 0 1} {0 1 0 1} } ->colors // Set sand color to red and glow to green SetSandColor(<-x <-y <-colors) === See Also === [[IRPL:commands:GetSandDef]] [[IRPL:commands:GetMapSandCount]] [[IRPL:commands:CountSandInArea]] **====== GetSandDef ======** GetSandDef(<-sandName) ->sandDef ===== Description ===== Retrieves the [[IRPL:commands:SandDef|sand definition (`sandDef`)]] associated with the given `sandName`. ===== Examples ===== "SandType1" ->sandName GetSandDef(<-sandName) ->sandDef === See Also === [[IRPL:commands:SetSandColor]] [[IRPL:commands:GetMapSandCount]] [[IRPL:commands:CountSandInArea]] **====== GetMapSandCount ======** GetMapSandCount(<-sandDef) ->count ===== Description ===== Returns the total number of sand particles of the specified [[IRPL:commands:SandDef|type (`sandDef`)]] present on the map. The input `sandDef` value is clamped between 0 and 255. ===== Examples ===== 1 ->sandDef // Get the count of sand particles with SandDef 1 GetMapSandCount(<-sandDef) ->count === See Also === [[IRPL:commands:SetSandColor]] [[IRPL:commands:GetSandDef]] [[IRPL:commands:CountSandInArea]] **====== CountSandInArea ======** CountSandInArea(<-rect <-sandDef) ->count ===== Description ===== Counts the number of sand particles of the specified [[IRPL:commands:SandDef|type (`sandDef`)]] within a rectangular area defined by a vector (`rect`) containing the bottom-left (x,y) and top-right (x,y) corner coordinates. ===== Examples ===== {0 0 10 10} ->rect 1 ->sandDef // Count sand particles with SandDef 1 within the area CountSandInArea(<-rect <-sandDef) ->count === See Also === [[IRPL:commands:SetSandColor]] [[IRPL:commands:GetSandDef]] [[IRPL:commands:GetMapSandCount]] **====== GetSandInArea ======** GetSandInArea(<-rect <-isRound <-sandDefs <-inclusive) ->sandList ===== Description ===== Retrieves a list (`sandList`) of sand particles within a specified area. The area is defined by a vector (`rect`) containing the bottom-left (x,y) and top-right (x,y) corner coordinates. `isRound` (boolean) determines if the area is treated as a rounded rectangle. `sandDefs` is a list of [[IRPL:commands:SandDef|sand definitions]] to include in the search. `inclusive` (boolean) determines if only the specified `sandDefs` should be included or if all other types should be included. ===== Examples ===== {0 0 10 10} ->rect false ->isRound {1 2 3} ->sandDefs // List of SandDefs true ->inclusive // Include only sand particles with SandDef 1, 2, or 3 GetSandInArea(<-rect <-isRound <-sandDefs <-inclusive) ->sandList **====== DestroySandInArea ======** DestroySandInArea(<-rect <-isRound <-sandDefs <-inclusive) ===== Description ===== Destroys sand particles within a specified area. The area is defined by a vector (`rect`) containing the bottom-left (x,y) and top-right (x,y) corner coordinates. `isRound` (boolean) determines if the area is treated as a rounded rectangle. `sandDefs` is a list of [[IRPL:commands:SandDef|sand definitions]] to target for destruction. `inclusive` (boolean) determines if only the specified `sandDefs` should be destroyed or if all other types should be destroyed. ===== Examples ===== {0 0 10 10} ->rect false ->isRound {1 2 3} ->sandDefs // List of SandDefs true ->inclusive // Destroy only sand particles with SandDef 1, 2, or 3 DestroySandInArea(<-rect <-isRound <-sandDefs <-inclusive) **====== DestroySandFromList ======** DestroySandFromList(<-sandList) ===== Description ===== Destroys sand particles from a given list (`sandList`). This list could be obtained from commands like `GetSandInArea`. ===== Examples ===== // Assuming 'sandList' was obtained from a previous command DestroySandFromList(<-sandList) **====== GetSandDefData ======** GetSandDefData(<-sandDef) ->sandDefData ===== Description ===== Retrieves data associated with a specific [[IRPL:commands:SandDef|sand definition (`sandDef`)]]. The returned `sandDefData` may contain various properties of the sand type, such as color, density, and behavior. ===== Examples ===== 1 ->sandDef // Get data for sand with SandDef 1 GetSandDefData(<-sandDef) ->sandDefData