Skip to content

Commit

Permalink
adds rust_g
Browse files Browse the repository at this point in the history
  • Loading branch information
BurgerLua authored and BurgerLua committed Jul 18, 2020
1 parent f711cf0 commit 6212a00
Show file tree
Hide file tree
Showing 17 changed files with 276 additions and 135 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Thumbs.db
data/
cfg/
config/config.txt
error_log.txt
build_log.txt
code/_core/world/private.dm
maps/main/backup/
Expand Down
2 changes: 2 additions & 0 deletions burgerstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include "code\__defines\_config_slowdown.dm"
#include "code\__defines\_config_ticks.dm"
#include "code\__defines\_health_threshold.dm"
#include "code\__defines\_rust_g.dm"
#include "code\__defines\alert.dm"
#include "code\__defines\announcement.dm"
#include "code\__defines\attacking.dm"
Expand Down Expand Up @@ -1179,6 +1180,7 @@
#include "code\_core\obj\markers\chargen.dm"
#include "code\_core\obj\markers\chasm_fall.dm"
#include "code\_core\obj\markers\dev_info.dm"
#include "code\_core\obj\markers\generation.dm"
#include "code\_core\obj\markers\horde.dm"
#include "code\_core\obj\markers\hostage.dm"
#include "code\_core\obj\markers\landmark.dm"
Expand Down
2 changes: 1 addition & 1 deletion code/__defines/___config.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//Loads your character instantly at a marker point.
#define ENABLE_INSTALOAD FALSE
#define ENABLE_INSTALOAD TRUE
#define ENABLE_STOPLAG TRUE
#define MOVEMENT_DELAY_MOD 0.75 //Lower values means faster.
#define ENABLE_DAMAGE_NUMBERS TRUE
Expand Down
71 changes: 71 additions & 0 deletions code/__defines/_rust_g.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
// 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).
/proc/__detect_rust_g()
var/static/__rust_g
. = __rust_g
if (!.)
if (world.system_type == UNIX)
if (fexists("./librust_g.so"))
// No need for LD_LIBRARY_PATH badness.
. = __rust_g = "./librust_g.so"
else if (fexists("./rust_g"))
// Old dumb filename.
. = __rust_g = "./rust_g"
else if (fexists("[world.GetConfig("env", "HOME")]/.byond/bin/rust_g"))
// Old dumb filename in `~/.byond/bin`.
. = __rust_g = "rust_g"
else
// It's not in the current directory, so try others
. = __rust_g = "librust_g.so"
else
. = __rust_g = "rust_g"

#define RUST_G __detect_rust_g()
#endif

#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_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_noise_get_at_coordinates(seed, x, y) call(RUST_G, "noise_get_at_coordinates")(seed, x, y)

#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_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_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) call(RUST_G, "http_request_blocking")(method, url, body, headers)
#define rustg_http_request_async(method, url, body, headers) call(RUST_G, "http_request_async")(method, url, body, headers)
#define rustg_http_check_request(req_id) call(RUST_G, "http_check_request")(req_id)

#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]")
4 changes: 2 additions & 2 deletions code/__defines/garbage.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
if (!object.qdel_warning && WARN_ON_DUPLICATE_QDEL) { \
var/warning_message = "[object.get_debug_name()] was queued for delete more than once!"; \
CRASH_SAFE(warning_message); \
text2file(warning_message,GARBAGE_LOGS_PATH); \
rustg_log_write(GARBAGE_LOGS_PATH,warning_message,"true"); \
} \
object.qdel_warning = TRUE; \
} \
Expand All @@ -18,6 +18,6 @@
if (!object.Destroy()) { \
var/warning_message = "[object.get_debug_name()] did not have a proper destroy call!"; \
CRASH_SAFE(warning_message); \
text2file(warning_message,GARBAGE_LOGS_PATH); \
rustg_log_write(GARBAGE_LOGS_PATH,warning_message,"true"); \
} \
}
6 changes: 5 additions & 1 deletion code/__helpers/logging.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
#define ERROR_DIR "error_log.txt"


/proc/log_error(var/log_text)
world.log << "<span class='error'>[log_text]</span>"
world.log << "<span class='error'>[log_text]</span>"
rustg_log_write(ERROR_DIR,log_text,"true")

/proc/log_subsystem(var/subsystem_id,var/log_text)
world.log << "<span class='subsystem'><b><u>[subsystem_id]:</u></b> [log_text]</span>"
Expand Down
2 changes: 1 addition & 1 deletion code/_core/client/_client.dm
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ var/global/list/all_clients = list() //Assoc list
update_verbs()

/client/proc/get_debug_name()
return "[src](MOB: [mob ? "[mob.name]([mob.x])([mob.y])([mob.z])" : "NONE"])"
return "CLIENT:[src](MOB: [mob ? "[mob.name]([mob.x],[mob.y],[mob.z])" : "NONE"])"

/client/Del() //Called when the client disconnects.

Expand Down
1 change: 1 addition & 0 deletions code/_core/client/verbs/_verbs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -71,5 +71,6 @@
verbs += /client/verb/force_save_all
verbs += /client/verb/rejuvenate_player
verbs += /client/verb/stress_test
verbs += /client/verb/noise_test

return TRUE
6 changes: 5 additions & 1 deletion code/_core/client/verbs/debug.dm
Original file line number Diff line number Diff line change
Expand Up @@ -313,4 +313,8 @@ client/verb/air_test(var/pressure as num)
for(var/i=1,i<=60,i++)
var/mob/living/advanced/npc/syndicate/stress_test/ST = new(pick(valid_turfs))
INITIALIZE(ST)
GENERATE(ST)
GENERATE(ST)

/client/verb/noise_test()
var/test = rustg_noise_get_at_coordinates(rand(1,1000),26,26)
to_chat("The result is: [test].")
50 changes: 50 additions & 0 deletions code/_core/obj/markers/generation.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/obj/marker/generation
name = "generation marker"

var/obj/object_to_place

var/turf/list/valid_turfs = list()
var/turf/list/forbidden_turfs = list()

var/grow_amount_min = 2
var/grow_amount_max = 10

var/fade_chance = 10

initialize_type = INITIALIZE_EARLY

/obj/marker/generation/proc/grow()

for(var/turf/T in valid_turfs)
valid_turfs -= T
var/atom/movable/M = locate(object_to_place) in T.contents
if(M) continue
new object_to_place(T)
for(var/k in DIRECTIONS_ALL)
var/turf/T2 = get_step(T,k)
if(T2.type != T.type)
continue
if(prob(fade_chance))
forbidden_turfs[T2] = TRUE
else if(!length(forbidden_turfs) || !forbidden_turfs[T2])
valid_turfs += T2

/obj/marker/generation/Initialize()

var/desired_grow = rand(grow_amount_min,grow_amount_max)

valid_turfs += get_turf(src)

while(desired_grow > 0)
desired_grow--
grow()

. = ..()

qdel(src)

return .


/obj/marker/generation/grass
object_to_place = /obj/structure/scenery/grass
1 change: 1 addition & 0 deletions code/_core/world/_world.dm
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ var/global/world_state = STATE_STARTING
loop_checks = 0

/world/New()
__detect_rust_g()
..()
life()

Expand Down
2 changes: 1 addition & 1 deletion code/_core/world/subsystems/logging.dm
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ SUBSYSTEM_DEF(logging)

if(length(buffered_log_chat))
var/chat_log_string = english_list(buffered_log_chat,"ERROR.","\n","\n")
text2file(chat_log_string,get_logging_dir("chat"))
rustg_log_write(get_logging_dir("chat"),chat_log_string,"true")
buffered_log_chat.Cut()

return TRUE
2 changes: 2 additions & 0 deletions code/_core/world/subsystems/turfs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ SUBSYSTEM_DEF(turfs)
cpu_usage_max = 50
tick_usage_max = 50



/subsystem/turfs/Initialize()

set background = 1
Expand Down
3 changes: 1 addition & 2 deletions maps/horde/02_burgerstation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,6 @@
"fB" = (/obj/structure/interactive/conveyor/shuttle/inverted{dir = 9},/turf/simulated/floor/tile/shuttle/purple,/area/transit/dropship/charlie/station)
"fC" = (/obj/marker/spawning/window/reinforced,/turf/simulated/floor/plating,/area/burgerstation/armory)
"fD" = (/obj/structure/interactive/intercom,/turf/simulated/wall/metal/reinforced,/area/burgerstation/armory)
"fE" = (/obj/marker/dev,/turf/simulated/floor/tile/overlapping/dark,/area/burgerstation/science)
"fF" = (/obj/decal/hazard{dir = 8},/turf/simulated/floor/tile/overlapping/dark,/area/burgerstation/science)
"fG" = (/obj/structure/smooth/table,/obj/structure/interactive/shop,/obj/structure/interactive/lighting/tube/station{icon_state = "tube_light"; dir = 1},/obj/item/grenade/timed/explosive,/turf/simulated/floor/tile/morphing/security,/area/burgerstation/armory)
"fH" = (/obj/structure/interactive/fire_alarm{dir = 8},/turf/simulated/wall/metal/reinforced,/area/burgerstation/armory)
Expand Down Expand Up @@ -1277,7 +1276,7 @@ kQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQ
kQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkFkFkFkFkFkFkFmFbpbKbKbKbKbKdSiEezeXeAeXeViEehbKdSfAeBeBerhNeFeGeFirerfBfSfQmXmYnemYtamYtLtNesmFmFmLosnbvnvnvpvnvnvnnbmKngngpdnToGoGoGjQnwnynxnxnIwuwuwuwuwklRmEmEmEmEmEmEmEmEmElRwiajaXajkYnhnonononononononokYgDgEhqhshFhGfOfNfNmFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQ
kQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkFkFkFkFkFkFkFmFbpbKbKbKbKbKdSepjJeXeAeXjTepehbKdSererererfReFeGeFeHererererbIesbIbumLmLmLbubumLmLbubuvonbvnvnvnvsvnnbmKngnTnTprnTnToGjQnwnynznxmswuwuwuwvnlwflRwflRlRwjlRwflRwflRwidXdXdXkYnununAnAnAnAnAwmwnkYfNfNfNfNfNfNfOmFmFmFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQ
kQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkFkFkFkFkFkFkFmFbpbKbKbKbKbKdSepgtichHicgtepehbKdShierfRerfReFiBeFeHereHerhiehbKbKmLfpfqfqfqfqoooogxbubunbvnvnvnvnvnnbmKngpRngnToGqhoGjQnwnynxnxwwwuwuwuwuwxwiwlwlwlwlwiwlwlwlwlwiwidXdXdXkYnowonunununununonokYmFmFmFmFmFmFdHmFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQ
kQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkFkFkFkFkFkFkFmFbpbKbKbKbKbKdSepgvepiCephjepehbKdShifAeFhIeFeFiDeFeFhIeFfAhiehbKbKmKfFvnvnvnvnfEvnopvnvunbvnvnvnvnvnnbmLmLbungnToGnKnNnNnwnynxnxmswuwuwuwunImFmFmFmFmFmFmFmFmFmFmFajdXdXdXkYwpnunuwqwqnunuwmwnkYmFkFkFkFkFkFrTkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQ
kQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkFkFkFkFkFkFkFmFbpbKbKbKbKbKdSepgvepiCephjepehbKdShifAeFhIeFeFiDeFeFhIeFfAhiehbKbKmKfFvnvnvnvnvnvnopvnvunbvnvnvnvnvnnbmLmLbungnToGnKnNnNnwnynxnxmswuwuwuwunImFmFmFmFmFmFmFmFmFmFmFajdXdXdXkYwpnunuwqwqnunuwmwnkYmFkFkFkFkFkFrTkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQ
kQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkFkFkFkFkFkFkFmFbpbpbKbKbKbKdSepepepiFepepepehbKdShierufereriHiIiJereruferhiehbKbKmKfFvnvnvnvnvnvnopvnvunbnbnbvtnbnbvomLmFmLngnToGnNmFnNnwnynxnxnImswwmsmsnInKnKnKnKnKajpHpHpHpHajajajajpOkYwpnunuwqwqnununonokYmFkFkFkFkFkFrTkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQ
kQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkFkFkFkFkFkFkFmFmFbpbpbKbKbKeihOhOhOhOhOhOhOiZbKeihOhOhOhOhOhOhOhOhOhOhOhOhOiZbKbKmLoqgygWlfmWntomonbubumKmKmKbumLvqmLmLmFmLngnToGnNmFnNnOnynxnxnynynynynwkznPnUnYtXnwaXdXdXdXdXdXdXdXdXdXkYwpnununununununowrkYmFkFkFkFkFkFrTkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQ
kQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkFkFkFkFkFkFkFkFmFmFbpbpbJbJbJbJbJbJbJbJbJbJbJbJbJbJbJbJbJbJbJbJbJbJbJbJbJbJbJbJbJbububuvnbubububububultnbnbnbbunbvnnbmLmFmLngnToGnNmFnNnOnynxofoioioioiojojojoknynynwpPpHpHpHpHpPajajajdXkYwpwsnunununuwswmnukYmFkFkFkFkFkFrTkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkFkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQkQ
Expand Down
Loading

0 comments on commit 6212a00

Please sign in to comment.