//Generates a markdown txt file for use with the wiki /proc/find_reagent(input) . = FALSE if(GLOB.chemical_reagents_list[input]) //prefer IDs! var/datum/reagent/R = GLOB.chemical_reagents_list[input] return R else for(var/X in GLOB.chemical_reagents_list) var/datum/reagent/R = GLOB.chemical_reagents_list[X] if(input == replacetext(lowertext(R.name), " ", "")) return R if(input == replacetext(lowertext(R.id), " ", "")) return R /client/proc/generate_wikichem_list() set name = "Generate Wikichems" set category = "Debug" set desc = "Generate a huge loglist of all the chems. Do not click unless you want lag." var/prefix = "|Name | Reagents | Reaction vars | Description | Chem properties |\n|---|---|---|-----------|---|\n" var/input_reagent = replacetext(lowertext(input("Input the name/id of a reagent to get it's description on it's own, or leave blank to parse every chem.", "Input") as text), " ", "") //95% of the time, the reagent id is a lowercase/no spaces version of the name if(input_reagent) var/input_reagent2 = find_reagent(input_reagent) if(!input_reagent2) to_chat(usr, "Unable to find reagent, stopping proc.") var/single_parse = generate_chemwiki_line(input_reagent2, input_reagent, FALSE) text2file(single_parse, "[GLOB.log_directory]/chem_parse.md") to_chat(usr, "[single_parse].") single_parse = generate_chemwiki_line(input_reagent2, input_reagent, FALSE) text2file(single_parse, "[GLOB.log_directory]/chem_parse.md") to_chat(usr, "[single_parse].") to_chat(usr, "Saved line to (wherever your root folder is, i.e. where the DME is)/[GLOB.log_directory]/chem_parse.md OR use the Get Current Logs verb under the Admin tab. (if you click Open, and it does nothing, that's because you've not set a .md default program! Try downloading it instead, and use that file to set a default program! Also have a cute day.)") //Do things here return to_chat(usr, "Generating big list") message_admins("Someone pressed the lag button. (Generate Wikichems)") ///datum/reagent/medicine, /datum/reagent/toxin, /datum/reagent/consumable, /datum/reagent/plantnutriment, /datum/reagent/uranium, ///datum/reagent/colorful_reagent, /datum/reagent/mutationtoxin, /datum/reagent/fermi, /datum/reagent/drug, /datum/reagent/impure //Probably not the most eligant of solutions. to_chat(usr, "Attempting reagent scan. Length of list [LAZYLEN(GLOB.chemical_reagents_list)*2]") var/datum/reagent/R var/tally = 0 var/processCR = TRUE //Process reactions first var/medicine = "" var/toxin = "" var/consumable = "" var/plant = "" var/uranium = "" var/colours = "" var/muta = "" var/fermi = "" var/remainder = "" var/drug = "" var/basic = "" var/upgraded = "" var/drinks = "" var/alco = "" var/grinded = "" var/blob = "" var/impure = "" //Chem_dispencer var/list/dispensable_reagents = list( "hydrogen", "lithium", "carbon", "nitrogen", "oxygen", "fluorine", "sodium", "aluminium", "silicon", "phosphorus", "sulfur", "chlorine", "potassium", "iron", "copper", "mercury", "radium", "water", "ethanol", "sugar", "sacid", "welding_fuel", "silver", "iodine", "bromine", "stable_plasma" ) var/list/components = list( "oil", "ammonia", "ash", "acetone", "phenol", "diethylamine", "saltpetre", "sodiumchloride", "lye" ) var/list/grind = list( "bluespace", "gold", "plasma", "uranium" ) //Bartender var/dispence_drinks = list( "water", "ice", "coffee", "cream", "tea", "icetea", "cola", "spacemountainwind", "dr_gibb", "space_up", "tonic", "sodawater", "lemon_lime", "pwr_game", "shamblers", "sugar", "orangejuice", "grenadine", "limejuice", "tomatojuice", "lemonjuice", "menthol" ) var/dispence_alco = list( "beer", "kahlua", "whiskey", "wine", "vodka", "gin", "rum", "tequila", "vermouth", "cognac", "ale", "absinthe", "hcider", "creme_de_menthe", "creme_de_cacao", "triple_sec", "sake", "applejack" ) var/breakout = FALSE for(var/i = 1, i <= 2, i+=1) for(var/X in GLOB.chemical_reagents_list) R = GLOB.chemical_reagents_list[X] if(!R.description) //No description? It's not worth my time. continue for(var/Y in dispensable_reagents) //Why do you have to do this if(R.id == Y) basic += generate_chemwiki_line(R, X, processCR) breakout = TRUE continue for(var/Y in components) if(R.id == Y) upgraded += generate_chemwiki_line(R, X, processCR) breakout = TRUE continue for(var/Y in dispence_drinks) if(R.id == Y) drinks += generate_chemwiki_line(R, X, processCR) breakout = TRUE continue for(var/Y in dispence_alco) if(R.id == Y) alco += generate_chemwiki_line(R, X, processCR) breakout = TRUE continue for(var/Y in grind) if(R.id == Y) grinded += generate_chemwiki_line(R, X, processCR) breakout = TRUE continue if(breakout) breakout = FALSE continue if(istype(R, /datum/reagent/medicine)) medicine += generate_chemwiki_line(R, X, processCR) else if(istype(R, /datum/reagent/toxin)) toxin += generate_chemwiki_line(R, X, processCR) else if(istype(R, /datum/reagent/consumable)) consumable += generate_chemwiki_line(R, X, processCR) else if(istype(R, /datum/reagent/plantnutriment)) plant += generate_chemwiki_line(R, X, processCR) else if(istype(R, /datum/reagent/uranium)) uranium += generate_chemwiki_line(R, X, processCR) else if(istype(R, /datum/reagent/colorful_reagent)) colours += generate_chemwiki_line(R, X, processCR) else if(istype(R, /datum/reagent/mutationtoxin)) muta += generate_chemwiki_line(R, X, processCR) else if(istype(R, /datum/reagent/fermi)) fermi += generate_chemwiki_line(R, X, processCR) else if(istype(R, /datum/reagent/drug)) drug += generate_chemwiki_line(R, X, processCR) else if(istype(R, /datum/reagent/blob)) blob += generate_chemwiki_line(R, X, processCR) else if(istype(R, /datum/reagent/impure)) impure += generate_chemwiki_line(R, X, processCR) else remainder += generate_chemwiki_line(R, X, processCR) tally++ if((tally%50)==0) to_chat(usr, "[tally] of [LAZYLEN(GLOB.chemical_reagents_list)*2] done.") processCR = FALSE to_chat(usr, "finished chems") var/wholeString = ("\n# DISPENCEABLE REAGENTS\n\n[prefix][basic]\n\n# COMPONENT REAGENTS\n\n[prefix][upgraded]\n\n# GROUND REAGENTS\n\n[prefix][grinded]\n") wholeString += ("\n# MEDICINE:\n\n[prefix][medicine]\n\n# TOXIN:\n\n[prefix][toxin]\n\n# DRUGS\n\n[prefix][drug]\n\n# FERMI\n\nThese chems lie on the cutting edge of chemical technology, and as such are not recommended for beginners!\n\n[prefix][fermi]\n\n# IMPURE REAGENTS\n\n[prefix][impure]\n\n# GENERAL REAGENTS\n\n[prefix][remainder]\n\n# DISPENCEABLE SOFT DRINKS\n\n[prefix][drinks]\n\n# DISPENCEABLE HARD DRINKS\n\n[prefix][alco]\n\n# CONSUMABLE\n\n[prefix][consumable]\n\n# PLANTS\n\n[prefix][plant]\n\n# URANIUM\n\n[prefix][uranium]\n\n# COLOURS\n\n[prefix][colours]\n\n# RACE MUTATIONS\n\n[prefix][muta]\n\n\n# BLOB REAGENTS\n\n[prefix][blob]\n") prefix = "|Name | Reagents | Reaction vars | Description |\n|---|---|---|----------|\n" var/CRparse = "" to_chat(usr, "starting reactions") //generate the reactions that we missed from before for(var/reagent in GLOB.chemical_reactions_list) for(var/datum/chemical_reaction/CR in GLOB.chemical_reactions_list[reagent]) CRparse += generate_chemreactwiki_line(CR) wholeString += ("\n# CHEMICAL REACTIONS\n\n[prefix][CRparse]\n") text2file(wholeString, "[GLOB.log_directory]/chem_parse.md") to_chat(usr, "finished reactions") to_chat(usr, "Saved file to (wherever your root folder is, i.e. where the DME is)/[GLOB.log_directory]/chem_parse.md OR use the Get Current Logs verb under the Admin tab. (if you click Open, and it does nothing, that's because you've not set a .md default program! Try downloading it instead, and use that file to set a default program! Also have a cute day.)") ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Generate the big list of reagent based reactions. /proc/generate_chemwiki_line(datum/reagent/R, X, processCR) //name | Reagent pH | reagents | reaction temp | explosion temp | pH range | Kinetics | description | OD level | Addiction level | Metabolism rate | impure chem | inverse chem var/datum/chemical_reaction/CR = get_chemical_reaction(R.id) if((!CR && processCR) || (CR && !processCR)) // Do reactions first. return "" var/outstring = "|
!\[[R.color]\](https://placehold.it/15/[copytext(R.color, 2, 8)]/000000?text=+)[R.name]
pH: [R.pH] | " var/datum/reagent/R3 if(CR) outstring += " | " else outstring += "N/A | " //Temp, Explosions and pH if(CR) outstring += "| " else outstring += " | " //Description, OD, Addict, Meta outstring += "[R.description] | |\n" return outstring //Generate the big list of reaction based reactions. //|Name | Reagents | Reaction vars | Description | Chem properties /proc/generate_chemreactwiki_line(datum/chemical_reaction/CR) if(CR.results.len) //Handled prior return var/outstring = "|[CR.name] | | | fill in manually " outstring += "