mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 19:17:50 +01:00
Ports tg's associative-list research datums
This commit is contained in:
@@ -60,24 +60,14 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
var/list/datum/design/matching_designs = list() //for the search function
|
||||
|
||||
/proc/CallTechName(ID) //A simple helper proc to find the name of a tech with a given ID.
|
||||
var/datum/tech/check_tech
|
||||
var/return_name = null
|
||||
for(var/T in subtypesof(/datum/tech))
|
||||
check_tech = null
|
||||
check_tech = new T()
|
||||
if(check_tech.id == ID)
|
||||
return_name = check_tech.name
|
||||
qdel(check_tech)
|
||||
check_tech = null
|
||||
break
|
||||
var/datum/tech/tt = T
|
||||
if(initial(tt.id) == ID)
|
||||
return initial(tt.name)
|
||||
|
||||
return return_name
|
||||
|
||||
proc/CallMaterialName(ID)
|
||||
var/datum/reagent/temp_reagent
|
||||
var/return_name = null
|
||||
/proc/CallMaterialName(ID)
|
||||
if(copytext(ID, 1, 2) == "$")
|
||||
return_name = copytext(ID, 2)
|
||||
var/return_name = copytext(ID, 2)
|
||||
switch(return_name)
|
||||
if("metal")
|
||||
return_name = "Metal"
|
||||
@@ -97,16 +87,12 @@ proc/CallMaterialName(ID)
|
||||
return_name = "Bananium"
|
||||
if("mime")
|
||||
return_name = "Tranquillite"
|
||||
return return_name
|
||||
else
|
||||
for(var/R in subtypesof(/datum/reagent))
|
||||
temp_reagent = null
|
||||
temp_reagent = new R()
|
||||
if(temp_reagent.id == ID)
|
||||
return_name = temp_reagent.name
|
||||
qdel(temp_reagent)
|
||||
temp_reagent = null
|
||||
break
|
||||
return return_name
|
||||
var/datum/reagent/rt = R
|
||||
if(initial(rt.id) == ID)
|
||||
return initial(rt.name)
|
||||
|
||||
/obj/machinery/computer/rdconsole/proc/SyncRDevices() //Makes sure it is properly sync'ed up with the devices attached to it (if any).
|
||||
for(var/obj/machinery/r_n_d/D in range(3,src))
|
||||
@@ -129,11 +115,7 @@ proc/CallMaterialName(ID)
|
||||
//Have it automatically push research to the centcom server so wild griffins can't fuck up R&D's work --NEO
|
||||
/obj/machinery/computer/rdconsole/proc/griefProtection()
|
||||
for(var/obj/machinery/r_n_d/server/centcom/C in world)
|
||||
for(var/datum/tech/T in files.known_tech)
|
||||
C.files.AddTech2Known(T)
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
C.files.AddDesign2Known(D)
|
||||
C.files.RefreshResearch()
|
||||
files.push_data(C.files)
|
||||
|
||||
/obj/machinery/computer/rdconsole/proc/Maximize()
|
||||
files.known_tech=files.possible_tech
|
||||
@@ -154,11 +136,6 @@ proc/CallMaterialName(ID)
|
||||
..()
|
||||
SyncRDevices()
|
||||
|
||||
/* Instead of calling this every tick, it is only being called when needed
|
||||
/obj/machinery/computer/rdconsole/process()
|
||||
griefProtection()
|
||||
*/
|
||||
|
||||
/obj/machinery/computer/rdconsole/attackby(var/obj/item/weapon/D as obj, var/mob/user as mob, params)
|
||||
|
||||
//Loading a disk into it.
|
||||
@@ -215,7 +192,8 @@ proc/CallMaterialName(ID)
|
||||
else
|
||||
compare = IMPRINTER
|
||||
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
for(var/v in files.known_designs)
|
||||
var/datum/design/D = files.known_designs[v]
|
||||
if(!(D.build_type & compare))
|
||||
continue
|
||||
if(href_list["category"] in D.category)
|
||||
@@ -244,10 +222,8 @@ proc/CallMaterialName(ID)
|
||||
submenu = 0
|
||||
|
||||
else if(href_list["copy_tech"]) //Copy some technology data from the research holder to the disk.
|
||||
for(var/datum/tech/T in files.known_tech)
|
||||
if(href_list["copy_tech_ID"] == T.id)
|
||||
t_disk.load_tech(T)
|
||||
break
|
||||
// Somehow this href makes me very nervous
|
||||
t_disk.stored = files.known_tech[href_list["copy_tech_ID"]]
|
||||
menu = 2
|
||||
submenu = 0
|
||||
|
||||
@@ -271,21 +247,22 @@ proc/CallMaterialName(ID)
|
||||
submenu = 0
|
||||
|
||||
else if(href_list["copy_design"]) //Copy design data from the research holder to the design disk.
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
if(href_list["copy_design_ID"] == D.id)
|
||||
var/autolathe_friendly = 1
|
||||
for(var/x in D.materials)
|
||||
if( !(x in list(MAT_METAL, MAT_GLASS)))
|
||||
autolathe_friendly = 0
|
||||
D.category -= "Imported"
|
||||
if(D.locked)
|
||||
// This href ALSO makes me very nervous
|
||||
var/datum/design/D = files.known_designs[href_list["copy_design_ID"]]
|
||||
if(D)
|
||||
// eeeeeep design datums are global be careful!
|
||||
var/autolathe_friendly = 1
|
||||
for(var/x in D.materials)
|
||||
if( !(x in list(MAT_METAL, MAT_GLASS)))
|
||||
autolathe_friendly = 0
|
||||
D.category -= "Imported"
|
||||
if(D.build_type & (AUTOLATHE|PROTOLATHE|CRAFTLATHE)) // Specifically excludes circuit imprinter and mechfab
|
||||
D.build_type = autolathe_friendly ? (D.build_type | AUTOLATHE) : D.build_type
|
||||
D.category |= "Imported"
|
||||
d_disk.load_blueprint(D)
|
||||
break
|
||||
if(D.locked)
|
||||
autolathe_friendly = 0
|
||||
D.category -= "Imported"
|
||||
if(D.build_type & (AUTOLATHE|PROTOLATHE|CRAFTLATHE)) // Specifically excludes circuit imprinter and mechfab
|
||||
D.build_type = autolathe_friendly ? (D.build_type | AUTOLATHE) : D.build_type
|
||||
D.category |= "Imported"
|
||||
d_disk.blueprint = D
|
||||
menu = 2
|
||||
submenu = 0
|
||||
|
||||
@@ -386,19 +363,11 @@ proc/CallMaterialName(ID)
|
||||
var/server_processed = 0
|
||||
if(S.disabled)
|
||||
continue
|
||||
if((id in S.id_with_upload) || istype(S, /obj/machinery/r_n_d/server/centcom))
|
||||
for(var/datum/tech/T in files.known_tech)
|
||||
S.files.AddTech2Known(T)
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
S.files.AddDesign2Known(D)
|
||||
S.files.RefreshResearch()
|
||||
if((id in S.id_with_upload) || istype(S, /obj/machinery/r_n_d/server/centcom))
|
||||
files.push_data(S.files)
|
||||
server_processed = 1
|
||||
if(((id in S.id_with_download) && !istype(S, /obj/machinery/r_n_d/server/centcom)) || S.hacked)
|
||||
for(var/datum/tech/T in S.files.known_tech)
|
||||
files.AddTech2Known(T)
|
||||
for(var/datum/design/D in S.files.known_designs)
|
||||
files.AddDesign2Known(D)
|
||||
files.RefreshResearch()
|
||||
if(((id in S.id_with_download) && !istype(S, /obj/machinery/r_n_d/server/centcom)) || S.hacked)
|
||||
S.files.push_data(files)
|
||||
server_processed = 1
|
||||
if(!istype(S, /obj/machinery/r_n_d/server/centcom) && server_processed)
|
||||
S.produce_heat(100)
|
||||
@@ -416,11 +385,7 @@ proc/CallMaterialName(ID)
|
||||
coeff = 1
|
||||
var/g2g = 1
|
||||
if(linked_lathe)
|
||||
var/datum/design/being_built = null
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
if(D.id == href_list["build"])
|
||||
being_built = D
|
||||
break
|
||||
var/datum/design/being_built = files.known_designs[href_list["build"]]
|
||||
if(being_built)
|
||||
var/power = 2000
|
||||
var/amount=text2num(href_list["amount"])
|
||||
@@ -499,10 +464,7 @@ proc/CallMaterialName(ID)
|
||||
var/g2g = 1
|
||||
if(linked_imprinter)
|
||||
var/datum/design/being_built = null
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
if(D.id == href_list["imprint"])
|
||||
being_built = D
|
||||
break
|
||||
being_built = files.known_designs[href_list["imprint"]]
|
||||
if(being_built)
|
||||
var/power = 2000
|
||||
for(var/M in being_built.materials)
|
||||
@@ -639,7 +601,8 @@ proc/CallMaterialName(ID)
|
||||
else
|
||||
compare = IMPRINTER
|
||||
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
for(var/v in files.known_designs)
|
||||
var/datum/design/D = files.known_designs[v]
|
||||
if(!(D.build_type & compare))
|
||||
continue
|
||||
if(findtext(D.name,href_list["to_search"]))
|
||||
@@ -682,7 +645,8 @@ proc/CallMaterialName(ID)
|
||||
if(menu == 0 || menu == 1)
|
||||
var/list/tech_levels = list()
|
||||
data["tech_levels"] = tech_levels
|
||||
for(var/datum/tech/T in files.known_tech)
|
||||
for(var/v in files.known_tech)
|
||||
var/datum/tech/T = files.known_tech[v]
|
||||
if(T.level <= 0)
|
||||
continue
|
||||
var/list/this_tech_list = list()
|
||||
@@ -703,7 +667,8 @@ proc/CallMaterialName(ID)
|
||||
if(t_disk != null && submenu == 1)
|
||||
var/list/to_copy = list()
|
||||
data["to_copy"] = to_copy
|
||||
for(var/datum/tech/T in files.known_tech)
|
||||
for(var/v in files.known_tech)
|
||||
var/datum/tech/T = files.known_tech[v]
|
||||
var/list/item = list()
|
||||
to_copy[++to_copy.len] = item
|
||||
if(T.level <= 0)
|
||||
@@ -736,7 +701,8 @@ proc/CallMaterialName(ID)
|
||||
if(d_disk != null && submenu == 1)
|
||||
var/list/to_copy = list()
|
||||
data["to_copy"] = to_copy
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
for(var/v in files.known_designs)
|
||||
var/datum/design/D = files.known_designs[v]
|
||||
var/list/item = list()
|
||||
to_copy[++to_copy.len] = item
|
||||
item["name"] = D.name
|
||||
@@ -755,7 +721,8 @@ proc/CallMaterialName(ID)
|
||||
tech_list[++tech_list.len] = tech_item
|
||||
tech_item["name"] = CallTechName(T)
|
||||
tech_item["object_level"] = temp_tech[T]
|
||||
for(var/datum/tech/F in files.known_tech)
|
||||
for(var/v in files.known_tech)
|
||||
var/datum/tech/F = files.known_tech[v]
|
||||
if(F.name == CallTechName(T))
|
||||
tech_item["current_level"] = F.level
|
||||
break
|
||||
|
||||
@@ -53,6 +53,11 @@ research holder datum.
|
||||
var/list/known_designs = list() //List of available designs (at base reliability).
|
||||
|
||||
/datum/research/New() //Insert techs into possible_tech here. Known_tech automatically updated.
|
||||
// MON DIEU!!!
|
||||
// These are semi-global, but not TOTALLY global?
|
||||
// Using research disks, you can get techs/designs from one research datum
|
||||
// onto another. What consequences this could have, I am presently unsure, but
|
||||
// I imagine nothing good.
|
||||
for(var/T in subtypesof(/datum/tech))
|
||||
possible_tech += new T(src)
|
||||
for(var/D in subtypesof(/datum/design))
|
||||
@@ -65,47 +70,43 @@ research holder datum.
|
||||
//Input: datum/tech; Output: 0/1 (false/true)
|
||||
/datum/research/proc/TechHasReqs(var/datum/tech/T)
|
||||
if(T.req_tech.len == 0)
|
||||
return 1
|
||||
var/matches = 0
|
||||
return TRUE
|
||||
for(var/req in T.req_tech)
|
||||
for(var/datum/tech/known in known_tech)
|
||||
if((req == known.id) && (known.level >= T.req_tech[req]))
|
||||
matches++
|
||||
break
|
||||
if(matches == T.req_tech.len)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
var/datum/tech/known = known_tech[req]
|
||||
if(!known || known.level < T.req_tech[req])
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
//Checks to see if design has all the required pre-reqs.
|
||||
//Input: datum/design; Output: 0/1 (false/true)
|
||||
/datum/research/proc/DesignHasReqs(var/datum/design/D)
|
||||
if(D.req_tech.len == 0)
|
||||
return 1
|
||||
for(var/datum/tech/T in known_tech)
|
||||
if((D.req_tech[T.id]) && (T.level < D.req_tech[T.id]))
|
||||
return 0
|
||||
return 1
|
||||
return TRUE
|
||||
for(var/req in D.req_tech)
|
||||
var/datum/tech/known = known_tech[req]
|
||||
if(!known || known.level < D.req_tech[req])
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
//Adds a tech to known_tech list. Checks to make sure there aren't duplicates and updates existing tech's levels if needed.
|
||||
//Input: datum/tech; Output: Null
|
||||
/datum/research/proc/AddTech2Known(var/datum/tech/T)
|
||||
for(var/datum/tech/known in known_tech)
|
||||
if(T.id == known.id)
|
||||
if(T.level > known.level)
|
||||
known.level = T.level
|
||||
return
|
||||
known_tech += T
|
||||
return
|
||||
if(known_tech[T.id])
|
||||
var/datum/tech/known = known_tech[T.id]
|
||||
if(T.level > known.level)
|
||||
known.level = T.level
|
||||
return
|
||||
known_tech[T.id] = T
|
||||
|
||||
/datum/research/proc/AddDesign2Known(var/datum/design/D)
|
||||
for(var/datum/design/known in known_designs)
|
||||
if(D.id == known.id)
|
||||
if(D.reliability > known.reliability)
|
||||
known.reliability = D.reliability
|
||||
return
|
||||
known_designs += D
|
||||
return
|
||||
if(known_designs[D.id])
|
||||
// NOTE: This is for reliability only - This is on the chopping block
|
||||
var/datum/design/known = known_designs[D.id]
|
||||
if(D.reliability > known.reliability)
|
||||
known.reliability = D.reliability
|
||||
return
|
||||
// Global datums make me nervous
|
||||
known_designs[D.id] = D
|
||||
|
||||
//Refreshes known_tech and known_designs list. Then updates the reliability vars of the designs in the known_designs list.
|
||||
//Input/Output: n/a
|
||||
@@ -116,25 +117,30 @@ research holder datum.
|
||||
for(var/datum/design/PD in possible_designs)
|
||||
if(DesignHasReqs(PD))
|
||||
AddDesign2Known(PD)
|
||||
for(var/datum/tech/T in known_tech)
|
||||
for(var/v in known_tech)
|
||||
var/datum/tech/T = known_tech[v]
|
||||
T = Clamp(T.level, 0, 20)
|
||||
for(var/datum/design/D in known_designs)
|
||||
for(var/v in known_designs)
|
||||
var/datum/design/D = known_designs[v]
|
||||
// NOTE: reliability stuff, axe this later
|
||||
D.CalcReliability(known_tech)
|
||||
return
|
||||
|
||||
//Refreshes the levels of a given tech.
|
||||
//Input: Tech's ID and Level; Output: null
|
||||
/datum/research/proc/UpdateTech(var/ID, var/level)
|
||||
for(var/datum/tech/KT in known_tech)
|
||||
if(KT.id == ID)
|
||||
if(KT.level <= level)
|
||||
KT.level = max((KT.level + 1), (level - 1))
|
||||
return
|
||||
var/datum/tech/KT = known_tech[ID]
|
||||
if(KT)
|
||||
if(KT.level <= level)
|
||||
// Will bump the tech to (value_of_target - 1) automatically -
|
||||
// after that it'll only bump it up by 1 until it's greater
|
||||
// than the source tech
|
||||
KT.level = max((KT.level + 1), (level - 1))
|
||||
|
||||
/datum/research/proc/UpdateDesigns(var/obj/item/I, var/list/temp_tech)
|
||||
for(var/T in temp_tech)
|
||||
if(temp_tech[T] - 1 >= known_tech[T])
|
||||
for(var/datum/design/D in known_designs)
|
||||
// NOTE: icky reliability stuff
|
||||
if(D.req_tech[T])
|
||||
D.reliability = min(100, D.reliability + 1)
|
||||
if(D.build_path == I.type)
|
||||
@@ -143,19 +149,27 @@ research holder datum.
|
||||
D.reliability = min(100, D.reliability + rand(3, 5))
|
||||
|
||||
/datum/research/proc/FindDesignByID(var/id)
|
||||
for(var/datum/design/D in known_designs)
|
||||
if(D.id == id)
|
||||
return D
|
||||
return known_designs[id]
|
||||
|
||||
// A common task is for one research datum to copy over its techs and designs
|
||||
// and update them on another research datum.
|
||||
// Arguments:
|
||||
// `other` - The research datum to send designs and techs to
|
||||
/datum/research/proc/push_data(datum/research/other)
|
||||
for(var/v in known_tech)
|
||||
var/datum/tech/T = known_tech[v]
|
||||
other.AddTech2Known(T)
|
||||
for(var/v in known_designs)
|
||||
var/datum/design/D = known_designs[v]
|
||||
other.AddDesign2Known(D)
|
||||
other.RefreshResearch()
|
||||
|
||||
|
||||
//Autolathe files
|
||||
/datum/research/autolathe/New()
|
||||
for(var/T in subtypesof(/datum/tech))
|
||||
possible_tech += new T(src)
|
||||
for(var/path in subtypesof(/datum/design))
|
||||
var/datum/design/D = new path(src)
|
||||
possible_designs += D
|
||||
if((D.build_type & AUTOLATHE) && ("initial" in D.category)) //autolathe starts without hacked designs
|
||||
AddDesign2Known(D)
|
||||
/datum/research/autolathe
|
||||
|
||||
/datum/research/autolathe/DesignHasReqs(var/datum/design/D)
|
||||
return D && (D.build_type & AUTOLATHE) && ("initial" in D.category)
|
||||
|
||||
/datum/research/autolathe/AddDesign2Known(var/datum/design/D)
|
||||
if(!(D.build_type & AUTOLATHE))
|
||||
@@ -167,7 +181,7 @@ research holder datum.
|
||||
** Includes all the various technoliges and what they make. **
|
||||
***************************************************************/
|
||||
|
||||
datum/tech //Datum of individual technologies.
|
||||
/datum/tech //Datum of individual technologies.
|
||||
var/name = "name" //Name of the technology.
|
||||
var/desc = "description" //General description of what it does and what it makes.
|
||||
var/id = "id" //An easily referenced ID. Must be alphanumeric, lower-case, and no symbols.
|
||||
|
||||
@@ -76,7 +76,9 @@
|
||||
refreshParts and the hasReq procs that get called by this are laggy and do not need to be called by every server on the map every tick */
|
||||
var/updateRD = 0
|
||||
files.known_designs = list()
|
||||
for(var/datum/tech/T in files.known_tech)
|
||||
for(var/v in files.known_tech)
|
||||
var/datum/tech/T = files.known_tech[v]
|
||||
// Slowly decrease research if health drops below 0
|
||||
if(prob(1))
|
||||
updateRD++
|
||||
T.level--
|
||||
@@ -105,11 +107,7 @@
|
||||
// Backup files to CentComm to help admins recover data after griefer attacks
|
||||
/obj/machinery/r_n_d/server/proc/griefProtection()
|
||||
for(var/obj/machinery/r_n_d/server/centcom/C in machines)
|
||||
for(var/datum/tech/T in files.known_tech)
|
||||
C.files.AddTech2Known(T)
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
C.files.AddDesign2Known(D)
|
||||
C.files.RefreshResearch()
|
||||
files.push_data(C.files)
|
||||
|
||||
/obj/machinery/r_n_d/server/proc/produce_heat(heat_amt)
|
||||
if(!(stat & (NOPOWER|BROKEN))) // Blatantly stolen from space heater.
|
||||
|
||||
@@ -99,7 +99,8 @@
|
||||
|
||||
/obj/machinery/spod_part_fabricator/proc/output_parts_list(set_name)
|
||||
var/output = ""
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
for(var/v in files.known_designs)
|
||||
var/datum/design/D = files.known_designs[v]
|
||||
if(D.build_type & PODFAB)
|
||||
if(!(set_name in D.category))
|
||||
continue
|
||||
@@ -178,7 +179,8 @@
|
||||
|
||||
/obj/machinery/spod_part_fabricator/proc/add_part_set_to_queue(set_name)
|
||||
if(set_name in part_sets)
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
for(var/v in files.known_designs)
|
||||
var/datum/design/D = files.known_designs[v]
|
||||
if(D.build_type & PODFAB)
|
||||
if(set_name in D.category)
|
||||
add_to_queue(D)
|
||||
@@ -238,7 +240,8 @@
|
||||
if(!files)
|
||||
return
|
||||
var/output
|
||||
for(var/datum/tech/T in files.known_tech)
|
||||
for(var/v in files.known_tech)
|
||||
var/datum/tech/T = files.known_tech[v]
|
||||
if(T && T.level > 1)
|
||||
var/diff
|
||||
switch(T.id)
|
||||
@@ -266,11 +269,7 @@
|
||||
for(var/obj/machinery/computer/rdconsole/RDC in localarea.contents)
|
||||
if(!RDC.sync)
|
||||
continue
|
||||
for(var/datum/tech/T in RDC.files.known_tech)
|
||||
files.AddTech2Known(T)
|
||||
for(var/datum/design/D in RDC.files.known_designs)
|
||||
files.AddDesign2Known(D)
|
||||
files.RefreshResearch()
|
||||
RDC.files.push_data(files)
|
||||
temp = "Processed equipment designs.<br>"
|
||||
//check if the tech coefficients have changed
|
||||
temp += update_tech()
|
||||
@@ -364,21 +363,17 @@
|
||||
screen = "parts"
|
||||
if(href_list["part"])
|
||||
var/T = filter.getStr("part")
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
if(D.build_type & PODFAB)
|
||||
if(D.id == T)
|
||||
if(!processing_queue)
|
||||
build_part(D)
|
||||
else
|
||||
add_to_queue(D)
|
||||
break
|
||||
var/datum/design/D = files.known_designs[T]
|
||||
if(D && D.build_type & PODFAB)
|
||||
if(!processing_queue)
|
||||
build_part(D)
|
||||
else
|
||||
add_to_queue(D)
|
||||
if(href_list["add_to_queue"])
|
||||
var/T = filter.getStr("add_to_queue")
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
if(D.build_type & PODFAB)
|
||||
if(D.id == T)
|
||||
add_to_queue(D)
|
||||
break
|
||||
var/datum/design/D = files.known_designs[T]
|
||||
if(D && D.build_type & PODFAB)
|
||||
add_to_queue(D)
|
||||
return update_queue_on_page()
|
||||
if(href_list["remove_from_queue"])
|
||||
remove_from_queue(filter.getNum("remove_from_queue"))
|
||||
@@ -411,15 +406,13 @@
|
||||
sync()
|
||||
if(href_list["part_desc"])
|
||||
var/T = filter.getStr("part_desc")
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
if(D.build_type & PODFAB)
|
||||
if(D.id == T)
|
||||
var/obj/part = D.build_path
|
||||
temp = {"<h1>[initial(part.name)] description:</h1>
|
||||
[initial(part.desc)]<br>
|
||||
<a href='?src=[UID()];clear_temp=1'>Return</a>
|
||||
"}
|
||||
break
|
||||
var/datum/design/D = files.known_designs[T]
|
||||
if(D && D.build_type & PODFAB)
|
||||
var/obj/part = D.build_path
|
||||
temp = {"<h1>[initial(part.name)] description:</h1>
|
||||
[initial(part.desc)]<br>
|
||||
<a href='?src=[UID()];clear_temp=1'>Return</a>
|
||||
"}
|
||||
|
||||
if(href_list["remove_mat"] && href_list["material"])
|
||||
var/amount = text2num(href_list["remove_mat"])
|
||||
@@ -545,4 +538,4 @@
|
||||
return
|
||||
|
||||
/obj/machinery/spod_part_fabricator/proc/material2name(var/ID)
|
||||
return copytext(ID,2)
|
||||
return copytext(ID,2)
|
||||
|
||||
Reference in New Issue
Block a user