code/__DEFINES/rust_g.dm
/proc/rustg_get_version | Gets the version of rust_g |
---|---|
rustg_setup_acreplace | Sets up the Aho-Corasick automaton with its default options. |
rustg_setup_acreplace_with_options | Sets up the Aho-Corasick automaton using supplied options. |
rustg_acreplace | Run the specified replacement engine with the provided haystack text to replace, returning replaced text. |
rustg_acreplace_with_replacements | Run the specified replacement engine with the provided haystack text to replace, returning replaced text. |
rustg_cnoise_generate | This proc generates a cellular automata noise grid which can be used in procedural generation methods. |
rustg_dbp_generate | This proc generates a grid of perlin-like noise |
rustg_dmi_icon_states | input: must be a path, not an /icon; you have to do your own handling if it is one, as icon objects can't be directly passed to rustg. |
rustg_register_nodes_astar | Register a list of nodes into a rust library. This list of nodes must have been serialized in a json.
Node {// Index of this node in the list of nodes
unique_id: usize,
// Position of the node in byond
x: usize,
y: usize,
z: usize,
// Indexes of nodes connected to this one
connected_nodes_id: Vec |
rustg_add_node_astar | Add a new node to the static list of nodes. Same rule as registering_nodes applies. This node unique_id must be equal to the current length of the static list of nodes |
rustg_remove_node_astart | *² |
rustg_generate_path_astar | Compute the shortest path between start_node and goal_node using A*. Heuristic used is simple geometric distance |
rustg_redis_connect_rq | Connects to a given redis server. |
/proc/rustg_redis_disconnect_rq | Disconnects from a previously connected redis server |
rustg_redis_lpush | https://redis.io/commands/lpush/ |
rustg_redis_lrange | https://redis.io/commands/lrange/ |
rustg_redis_lpop | https://redis.io/commands/lpop/ |
/proc/rustg_unix_timestamp | Returns the timestamp as a string |
rustg_worley_generate | This proc generates a noise grid using worley noise algorithm |
Define Details
rustg_acreplace
Run the specified replacement engine with the provided haystack text to replace, returning replaced text.
Arguments:
- key - The key for the automaton
- text - Text to run replacements on
rustg_acreplace_with_replacements
Run the specified replacement engine with the provided haystack text to replace, returning replaced text.
Arguments:
- key - The key for the automaton
- text - Text to run replacements on
- replacements - Replacements for this call. Must be the same length as the set-up patterns
rustg_add_node_astar
Add a new node to the static list of nodes. Same rule as registering_nodes applies. This node unique_id must be equal to the current length of the static list of nodes
rustg_cnoise_generate
This proc generates a cellular automata noise grid which can be used in procedural generation methods.
Returns a single string that goes row by row, with values of 1 representing an alive cell, and a value of 0 representing a dead cell.
Arguments:
- percentage: The chance of a turf starting closed
- smoothing_iterations: The amount of iterations the cellular automata simulates before returning the results
- birth_limit: If the number of neighboring cells is higher than this amount, a cell is born
- death_limit: If the number of neighboring cells is lower than this amount, a cell dies
- width: The width of the grid.
- height: The height of the grid.
rustg_dbp_generate
This proc generates a grid of perlin-like noise
Returns a single string that goes row by row, with values of 1 representing an turned on cell, and a value of 0 representing a turned off cell.
Arguments:
- seed: seed for the function
- accuracy: how close this is to the original perlin noise, as accuracy approaches infinity, the noise becomes more and more perlin-like
- stamp_size: Size of a singular stamp used by the algorithm, think of this as the same stuff as frequency in perlin noise
- world_size: size of the returned grid.
- lower_range: lower bound of values selected for. (inclusive)
- upper_range: upper bound of values selected for. (exclusive)
rustg_dmi_icon_states
input: must be a path, not an /icon; you have to do your own handling if it is one, as icon objects can't be directly passed to rustg.
output: json_encode'd list. json_decode to get a flat list with icon states in the order they're in inside the .dmi
rustg_generate_path_astar
Compute the shortest path between start_node and goal_node using A*. Heuristic used is simple geometric distance
rustg_redis_connect_rq
Connects to a given redis server.
Arguments:
- addr - The address of the server, for example "redis://127.0.0.1/"
rustg_redis_lpop
https://redis.io/commands/lpop/
Arguments
- key (string) - The key to use
- count (string|null) - The amount to pop off the list, pass null to omit (thus just 1)
Note: count
was added in Redis version 6.2.0
rustg_redis_lpush
https://redis.io/commands/lpush/
Arguments
- key (string) - The key to use
- elements (list) - The elements to push, use a list even if there's only one element.
rustg_redis_lrange
https://redis.io/commands/lrange/
Arguments
- key (string) - The key to use
- start (string) - The zero-based index to start retrieving at
- stop (string) - The zero-based index to stop retrieving at (inclusive)
rustg_register_nodes_astar
Register a list of nodes into a rust library. This list of nodes must have been serialized in a json.
Node {// Index of this node in the list of nodes
unique_id: usize,
// Position of the node in byond
x: usize,
y: usize,
z: usize,
// Indexes of nodes connected to this one
connected_nodes_id: Vec
rustg_remove_node_astart
*²
- Remove every link to the node with unique_id. Replace that node by null
rustg_setup_acreplace
Sets up the Aho-Corasick automaton with its default options.
The search patterns list and the replacements must be of the same length when replace is run, but an empty replacements list is allowed if replacements are supplied with the replace call Arguments:
- key - The key for the automaton, to be used with subsequent rustg_acreplace/rustg_acreplace_with_replacements calls
- patterns - A non-associative list of strings to search for
- replacements - Default replacements for this automaton, used with rustg_acreplace
rustg_setup_acreplace_with_options
Sets up the Aho-Corasick automaton using supplied options.
The search patterns list and the replacements must be of the same length when replace is run, but an empty replacements list is allowed if replacements are supplied with the replace call Arguments:
- key - The key for the automaton, to be used with subsequent rustg_acreplace/rustg_acreplace_with_replacements calls
- options - An associative list like list("anchored" = 0, "ascii_case_insensitive" = 0, "match_kind" = "Standard"). The values shown on the example are the defaults, and default values may be omitted. See the identically named methods at https://docs.rs/aho-corasick/latest/aho_corasick/struct.AhoCorasickBuilder.html to see what the options do.
- patterns - A non-associative list of strings to search for
- replacements - Default replacements for this automaton, used with rustg_acreplace
rustg_worley_generate
This proc generates a noise grid using worley noise algorithm
Returns a single string that goes row by row, with values of 1 representing an alive cell, and a value of 0 representing a dead cell.
Arguments:
- region_size: The size of regions
- threshold: the value that determines wether a cell is dead or alive
- node_per_region_chance: chance of a node existiing in a region
- size: size of the returned grid
- node_min: minimum amount of nodes in a region (after the node_per_region_chance is applied)
- node_max: maximum amount of nodes in a region