Yogstation 13 - Modules - TypesDefine Details

code/__DEFINES/rust_g.dm

/proc/rustg_get_version Gets the version of rust_g
rustg_setup_acreplaceSets up the Aho-Corasick automaton with its default options.
rustg_setup_acreplace_with_optionsSets up the Aho-Corasick automaton using supplied options.
rustg_acreplaceRun the specified replacement engine with the provided haystack text to replace, returning replaced text.
rustg_acreplace_with_replacementsRun the specified replacement engine with the provided haystack text to replace, returning replaced text.
rustg_bsp_generateThis proc generates rooms in a specified area of random size and placement. Essential for procedurally generated areas, BSP works by cutting a given area in half, then cutting one of those subsections in half, and repeating this process until a minimum size is reached, then backtracking to other subsections that are not of the minimum size yet. These cuts are offset by small random amounts so that the sections are all varied in size and shape.
rustg_cnoise_generateThis proc generates a cellular automata noise grid which can be used in procedural generation methods.
rustg_dbp_generateThis proc generates a grid of perlin-like noise
rustg_register_nodes_astarRegister 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} It is important that the node with the unique_id 0 is the first in the json, unique_id 1 right after that, etc. It is also important that all unique ids follow. {0, 1, 2, 4} is not a correct list and the registering will fail Nodes should not link across z levels. A node cannot link twice to the same node and shouldn't link itself either
rustg_add_node_astarAdd 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_astarCompute the shortest path between start_node and goal_node using A*. Heuristic used is simple geometric distance
rustg_random_room_generateThis proc generates rooms in a specified area of random size and placement. Used in procedural generation, but far less intensively than Binary Space Partitioning due to Random Room Placement being far more simple and unreliable for area coverage. These rooms will not overlap one another, but that is the only logic they do. The room dimensions returned by this call are hardcoded to be the dimensions of maint ruins so that I could sprinkle pre-generated areas over the binary space rooms that are random. These dimensions are:
rustg_worley_generateThis 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:

rustg_acreplace_with_replacements

Run the specified replacement engine with the provided haystack text to replace, returning replaced text.

Arguments:

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_bsp_generate

This proc generates rooms in a specified area of random size and placement. Essential for procedurally generated areas, BSP works by cutting a given area in half, then cutting one of those subsections in half, and repeating this process until a minimum size is reached, then backtracking to other subsections that are not of the minimum size yet. These cuts are offset by small random amounts so that the sections are all varied in size and shape.

BSP excels at creating rooms or areas with a relatively even distribution over an area, so there won't be too much blank open area. However if you discard rooms that overlap pre-existing map structures or areas, you may still get blank areas where nothing interesting appears.

Return:

Arguments:

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:

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:

rustg_generate_path_astar

Compute the shortest path between start_node and goal_node using A*. Heuristic used is simple geometric distance

rustg_random_room_generate

This proc generates rooms in a specified area of random size and placement. Used in procedural generation, but far less intensively than Binary Space Partitioning due to Random Room Placement being far more simple and unreliable for area coverage. These rooms will not overlap one another, but that is the only logic they do. The room dimensions returned by this call are hardcoded to be the dimensions of maint ruins so that I could sprinkle pre-generated areas over the binary space rooms that are random. These dimensions are:

Return:

Arguments:

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} It is important that the node with the unique_id 0 is the first in the json, unique_id 1 right after that, etc. It is also important that all unique ids follow. {0, 1, 2, 4} is not a correct list and the registering will fail Nodes should not link across z levels. A node cannot link twice to the same node and shouldn't link itself either

rustg_remove_node_astart

*²

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:

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:

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: