mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-02 21:11:57 +00:00
* Change the word filter configuration to allow providing reasons, fix emotes not working in filters, and implement separate OOC/IC/PDA filters (#61606) * Change the word filter configuration to allow providing reasons, fix emotes not working in filters, and implement separate OOC/IC/PDA filters Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
115 lines
5.1 KiB
Plaintext
115 lines
5.1 KiB
Plaintext
// rust_g.dm - DM API for rust_g extension library
|
|
//
|
|
// To configure, create a `rust_g.config.dm` and set what you care about from
|
|
// the following options:
|
|
//
|
|
// #define RUST_G "path/to/rust_g"
|
|
// Override the .dll/.so detection logic with a fixed path or with detection
|
|
// logic of your own.
|
|
//
|
|
// #define RUSTG_OVERRIDE_BUILTINS
|
|
// Enable replacement rust-g functions for certain builtins. Off by default.
|
|
|
|
#ifndef RUST_G
|
|
// Default automatic RUST_G detection.
|
|
// On Windows, looks in the standard places for `rust_g.dll`.
|
|
// On Linux, looks in `.`, `$LD_LIBRARY_PATH`, and `~/.byond/bin` for either of
|
|
// `librust_g.so` (preferred) or `rust_g` (old).
|
|
|
|
/* This comment bypasses grep checks */ /var/__rust_g
|
|
|
|
/proc/__detect_rust_g()
|
|
if (world.system_type == UNIX)
|
|
if (fexists("./librust_g.so"))
|
|
// No need for LD_LIBRARY_PATH badness.
|
|
return __rust_g = "./librust_g.so"
|
|
else if (fexists("./rust_g"))
|
|
// Old dumb filename.
|
|
return __rust_g = "./rust_g"
|
|
else if (fexists("[world.GetConfig("env", "HOME")]/.byond/bin/rust_g"))
|
|
// Old dumb filename in `~/.byond/bin`.
|
|
return __rust_g = "rust_g"
|
|
else
|
|
// It's not in the current directory, so try others
|
|
return __rust_g = "librust_g.so"
|
|
else
|
|
return __rust_g = "rust_g"
|
|
|
|
#define RUST_G (__rust_g || __detect_rust_g())
|
|
#endif
|
|
|
|
/// Gets the version of rust_g
|
|
/proc/rustg_get_version() return call(RUST_G, "get_version")()
|
|
|
|
/**
|
|
* 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.
|
|
*/
|
|
#define rustg_cnoise_generate(percentage, smoothing_iterations, birth_limit, death_limit, width, height) \
|
|
call(RUST_G, "cnoise_generate")(percentage, smoothing_iterations, birth_limit, death_limit, width, height)
|
|
|
|
#define rustg_dmi_strip_metadata(fname) call(RUST_G, "dmi_strip_metadata")(fname)
|
|
#define rustg_dmi_create_png(path, width, height, data) call(RUST_G, "dmi_create_png")(path, width, height, data)
|
|
#define rustg_dmi_resize_png(path, width, height, resizetype) call(RUST_G, "dmi_resize_png")(path, width, height, resizetype)
|
|
|
|
#define rustg_file_read(fname) call(RUST_G, "file_read")(fname)
|
|
#define rustg_file_exists(fname) call(RUST_G, "file_exists")(fname)
|
|
#define rustg_file_write(text, fname) call(RUST_G, "file_write")(text, fname)
|
|
#define rustg_file_append(text, fname) call(RUST_G, "file_append")(text, fname)
|
|
|
|
#ifdef RUSTG_OVERRIDE_BUILTINS
|
|
#define file2text(fname) rustg_file_read("[fname]")
|
|
#define text2file(text, fname) rustg_file_append(text, "[fname]")
|
|
#endif
|
|
|
|
#define rustg_git_revparse(rev) call(RUST_G, "rg_git_revparse")(rev)
|
|
#define rustg_git_commit_date(rev) call(RUST_G, "rg_git_commit_date")(rev)
|
|
|
|
#define RUSTG_HTTP_METHOD_GET "get"
|
|
#define RUSTG_HTTP_METHOD_PUT "put"
|
|
#define RUSTG_HTTP_METHOD_DELETE "delete"
|
|
#define RUSTG_HTTP_METHOD_PATCH "patch"
|
|
#define RUSTG_HTTP_METHOD_HEAD "head"
|
|
#define RUSTG_HTTP_METHOD_POST "post"
|
|
#define rustg_http_request_blocking(method, url, body, headers, options) call(RUST_G, "http_request_blocking")(method, url, body, headers, options)
|
|
#define rustg_http_request_async(method, url, body, headers, options) call(RUST_G, "http_request_async")(method, url, body, headers, options)
|
|
#define rustg_http_check_request(req_id) call(RUST_G, "http_check_request")(req_id)
|
|
|
|
#define RUSTG_JOB_NO_RESULTS_YET "NO RESULTS YET"
|
|
#define RUSTG_JOB_NO_SUCH_JOB "NO SUCH JOB"
|
|
#define RUSTG_JOB_ERROR "JOB PANICKED"
|
|
|
|
#define rustg_json_is_valid(text) (call(RUST_G, "json_is_valid")(text) == "true")
|
|
|
|
#define rustg_log_write(fname, text, format) call(RUST_G, "log_write")(fname, text, format)
|
|
/proc/rustg_log_close_all() return call(RUST_G, "log_close_all")()
|
|
|
|
#define rustg_noise_get_at_coordinates(seed, x, y) call(RUST_G, "noise_get_at_coordinates")(seed, x, y)
|
|
|
|
#define rustg_sql_connect_pool(options) call(RUST_G, "sql_connect_pool")(options)
|
|
#define rustg_sql_query_async(handle, query, params) call(RUST_G, "sql_query_async")(handle, query, params)
|
|
#define rustg_sql_query_blocking(handle, query, params) call(RUST_G, "sql_query_blocking")(handle, query, params)
|
|
#define rustg_sql_connected(handle) call(RUST_G, "sql_connected")(handle)
|
|
#define rustg_sql_disconnect_pool(handle) call(RUST_G, "sql_disconnect_pool")(handle)
|
|
#define rustg_sql_check_query(job_id) call(RUST_G, "sql_check_query")("[job_id]")
|
|
|
|
#define rustg_read_toml_file(path) json_decode(call(RUST_G, "toml_file_to_json")(path) || "null")
|
|
|
|
#define rustg_url_encode(text) call(RUST_G, "url_encode")("[text]")
|
|
#define rustg_url_decode(text) call(RUST_G, "url_decode")(text)
|
|
|
|
#ifdef RUSTG_OVERRIDE_BUILTINS
|
|
#define url_encode(text) rustg_url_encode(text)
|
|
#define url_decode(text) rustg_url_decode(text)
|
|
#endif
|
|
|