mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
* Update Smes.js * teleporter * timer * mining * infra + prox * uplink * apc * laser * compile * ui_x and ui_y and custom_materials * 512 * smart asset cache * vending machines * Fixes missing icons. Removes rasta beanie * cargo * MULE + Intelli + Shuttle + Preferences * AI fixer * robot * thing * thing x2 * mecha * compile * oops * Mining Vendor Fix * Update traitordevices.dm * Update proximity.dm * Update EmergencyShuttleConsole.js * rebuild * uwu * Revert "uwu" This reverts commitde3ab5ff76. * Update autodrobe.dm * Update Vending.js * Update _vending.dm * Update Vending.js * Update _vending.dm * Build * Update _vending.dm * rebuild * Update _vending.dm * laser * shuttle * gigas * signaller * launchpad * Update Vending.js * eigthball * pad * ntnet relay * labor stuff * solar * contrcators * sprite fix * Fixes contractor runtime (#45932) * fix * word change * fixes contractor tablet (#47559) * contractor * ntos card console thing * fixes * dna console * tweaks * byondUI * cargo hold * fixes * robit * malf picker * compile * dependencies * electropack * transfer valve * canvas * fixes * uplni stuff * dna * e * tgui * Octet separators in DNA Console genome sequencer. (#50516) * Octet separators for the octet separator god. * Code review changes * REMOVES TGUI * KNOB * r * tgui 3.0 * compile * fixes * fixes * crafting fixes * canister * refactors * bio gen * MIT license * seed * Update NaniteCloudControl.js * Update Uplink.js * uwu * oops * fixes * nanites * Fixes nanite deactivation timer * Revert "Fixes nanite deactivation timer" This reverts commitc5fcfd34de. * Revert "nanites" This reverts commiteade3a61f4. * various fixes * compile * turdis * Update build_tgui.sh * akwrard * ha * haha, HAHAHA!! * compile * fixes * quick fix * gps + dna fixes * Compile * DNA * fixes * sleeper + optable * fixes * mulebot * Update cloning.dm * Update cloning.dm * Update ClockworkSlab.js * Update Operating.dm * Update nanite_chamber.dm * Update nanites.dm * Update nanites.dm * Update stasis.dm * Update asset_list_items.dm * Update ClockworkSlab.js * uwu * oof * Various FIxes + clockwork UI * compile * Sleeper fix * Crew console * AWKWARD * PsiWeb * uwu * uwu * psi web * TGUI GONE * compile * autolethe * Gulag + Solar * Canister * build * private sale * compile * Update ntnrc_client.dm * uwu * canvas * uwu * uwu * uwu * uwu * uwu * uwu * uwu * uwu * compile * rust_g 0.4.3 * rust_g 0.4.4 * paint * fixed * icons * Update easter.dm * Update yogstation.dme * asset cache * Update asset_cache.dm * opops * hmm * hm * oh no * awkward * Update asset_list_items.dm * hey * Update asset_list_items.dm * Update asset_cache_item.dm * last try * Update asset_list_items.dm * fuck it * hmm * Update asset_list_items.dm * uwu * Update client_procs.dm * Update PDA.dm * no i didn't * Update guardianbuilder.dm * Update solar.dm * Update minimap.dm * Update _vending.dm * tgui * Update skin.dmf * Update tgui.bundle.js * Fixes * Update borg_monitor.dm * nanite fix * Update rust_g.dll Co-authored-by: Neo <26365368+Neo-0@users.noreply.github.com> Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com> Co-authored-by: Rob Bailey <actioninja@gmail.com> Co-authored-by: nightred <nightred@gmail.com> Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com> Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com> Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com> Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com> Co-authored-by: TheChosenEvilOne <34602646+TheChosenEvilOne@users.noreply.github.com> Co-authored-by: Jordie <4343468+Jordie0608@users.noreply.github.com> Co-authored-by: 81Denton <32391752+81Denton@users.noreply.github.com> Co-authored-by: MrPerson <spamtaffic@gmail.com> Co-authored-by: Akrilla <mrtactical@hotmail.co.uk> Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk> Co-authored-by: Aleksej Komarov <stylemistake@gmail.com> Co-authored-by: spookydonut <github@spooksoftware.com> Co-authored-by: AnturK <AnturK@users.noreply.github.com> Co-authored-by: oranges <email@oranges.net.nz> Co-authored-by: WarlockD <warlockd@gmail.com> Co-authored-by: XDTM <heliumt@yahoo.it> Co-authored-by: Sanator <39862806+Sanator@users.noreply.github.com> Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Co-authored-by: Kelenius <kelenius@ya.ru>
42 lines
1.5 KiB
Plaintext
42 lines
1.5 KiB
Plaintext
#define pick_list(FILE, KEY) (pick(strings(FILE, KEY)))
|
|
#define pick_list_weighted(FILE, KEY) (pickweight(strings(FILE, KEY)))
|
|
#define pick_list_replacements(FILE, KEY) (strings_replacement(FILE, KEY))
|
|
#define json_load(FILE) (json_decode(file2text(FILE)))
|
|
|
|
GLOBAL_LIST(string_cache)
|
|
GLOBAL_VAR(string_filename_current_key)
|
|
|
|
|
|
/proc/strings_replacement(filename, key, directory = "strings")
|
|
load_strings_file(filename, directory)
|
|
|
|
if((filename in GLOB.string_cache) && (key in GLOB.string_cache[filename]))
|
|
var/response = pick(GLOB.string_cache[filename][key])
|
|
var/regex/r = regex("@pick\\((\\D+?)\\)", "g")
|
|
response = r.Replace(response, /proc/strings_subkey_lookup)
|
|
return response
|
|
else
|
|
CRASH("strings list not found: [directory]/[filename], index=[key]")
|
|
|
|
/proc/strings(filename as text, key as text, directory = "strings")
|
|
load_strings_file(filename, directory)
|
|
if((filename in GLOB.string_cache) && (key in GLOB.string_cache[filename]))
|
|
return GLOB.string_cache[filename][key]
|
|
else
|
|
CRASH("strings list not found: [directory]/[filename], index=[key]")
|
|
|
|
/proc/strings_subkey_lookup(match, group1)
|
|
return pick_list(GLOB.string_filename_current_key, group1)
|
|
|
|
/proc/load_strings_file(filename, directory = "strings")
|
|
GLOB.string_filename_current_key = filename
|
|
if(filename in GLOB.string_cache)
|
|
return //no work to do
|
|
|
|
if(!GLOB.string_cache)
|
|
GLOB.string_cache = new
|
|
|
|
if(fexists("[directory]/[filename]"))
|
|
GLOB.string_cache[filename] = json_load("[directory]/[filename]")
|
|
else
|
|
CRASH("file not found: [directory]/[filename]") |