"
dat += list_categories(linked_lathe.categories, 3.15)
//Grouping designs by categories, to improve readability
if(3.15)
dat += "
Browsing [selected_category]:
"
dat += "
Material Amount: [linked_lathe.TotalMaterials()] / [linked_lathe.max_material_storage]
"
dat += "
Chemical Volume: [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]
"
var/coeff = linked_lathe.efficiency_coeff
for(var/datum/design/D in files.known_designs)
if(!(selected_category in D.category)|| !(D.build_type & PROTOLATHE))
continue
var/temp_material
var/c = 50
var/t
for(var/M in D.materials)
t = linked_lathe.check_mat(D, M)
temp_material += " | "
if (!t)
temp_material += "
[D.materials[M]/coeff] [CallMaterialName(M)]"
else
temp_material += " [D.materials[M]/coeff] [CallMaterialName(M)]"
c = min(c,t)
if (c)
dat += "
[D.name]"
if(c >= 5.0)
dat += "
x5"
if(c >= 10.0)
dat += "
x10"
dat += "[temp_material]"
else
dat += "
[D.name][temp_material]"
if(D.locked)
dat += " |
LOCKED"
dat += "
"
dat += "
"
dat += "
Material Storage:
"
//Metal
dat += "* [linked_lathe.m_amount] of Metal: "
if(linked_lathe.m_amount >= 3750) dat += "
Eject "
if(linked_lathe.m_amount >= 18750) dat += "
5x "
if(linked_lathe.m_amount >= 3750) dat += "
All"
dat += "
"
//Glass
dat += "* [linked_lathe.g_amount] of Glass: "
if(linked_lathe.g_amount >= 3750) dat += "
Eject "
if(linked_lathe.g_amount >= 18750) dat += "
5x "
if(linked_lathe.g_amount >= 3750) dat += "
All"
dat += "
"
//Gold
dat += "* [linked_lathe.gold_amount] of Gold: "
if(linked_lathe.gold_amount >= 2000) dat += "
Eject "
if(linked_lathe.gold_amount >= 10000) dat += "
5x "
if(linked_lathe.gold_amount >= 2000) dat += "
All"
dat += "
"
//Silver
dat += "* [linked_lathe.silver_amount] of Silver: "
if(linked_lathe.silver_amount >= 2000) dat += "
Eject "
if(linked_lathe.silver_amount >= 10000) dat += "
5x "
if(linked_lathe.silver_amount >= 2000) dat += "
All"
dat += "
"
//Plasma
dat += "* [linked_lathe.plasma_amount] of Solid Plasma: "
if(linked_lathe.plasma_amount >= 2000) dat += "
Eject "
if(linked_lathe.plasma_amount >= 10000) dat += "
5x "
if(linked_lathe.plasma_amount >= 2000) dat += "
All"
dat += "
"
//Uranium
dat += "* [linked_lathe.uranium_amount] of Uranium: "
if(linked_lathe.uranium_amount >= 2000) dat += "
Eject "
if(linked_lathe.uranium_amount >= 10000) dat += "
5x "
if(linked_lathe.uranium_amount >= 2000) dat += "
All"
dat += "
"
//Diamond
dat += "* [linked_lathe.diamond_amount] of Diamond: "
if(linked_lathe.diamond_amount >= 2000) dat += "
Eject "
if(linked_lathe.diamond_amount >= 10000) dat += "
5x "
if(linked_lathe.diamond_amount >= 2000) dat += "
All"
dat += "
"
//Bananium
dat += "* [linked_lathe.clown_amount] of Bananium: "
if(linked_lathe.clown_amount >= 2000) dat += "
Eject "
if(linked_lathe.clown_amount >= 10000) dat += "
5x "
if(linked_lathe.clown_amount >= 2000) dat += "
All"
dat += "
"
dat += "
Chemical Storage:
"
for(var/datum/reagent/R in linked_lathe.reagents.reagent_list)
dat += "[R.name]: [R.volume]"
dat += "
Purge"
///////////////////CIRCUIT IMPRINTER SCREENS////////////////////
if(4.0)
dat += "
Main Menu
"
dat += "
NO CIRCUIT IMPRINTER LINKED TO CONSOLE
"
if(4.1)
dat += "
Main Menu"
dat += "
Material Storage"
dat += "
Chemical Storage"
dat += "
Circuit Imprinter Menu:
"
dat += "Material Amount: [linked_imprinter.TotalMaterials()]
"
dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
"
dat += list_categories(linked_imprinter.categories, 4.15)
if(4.15)
dat += "
Main Menu"
dat += "
Circuit Imprinter Menu"
dat += "
Browsing [selected_category]:
"
dat += "Material Amount: [linked_imprinter.TotalMaterials()]
"
dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
"
var/coeff = linked_imprinter.efficiency_coeff
for(var/datum/design/D in files.known_designs)
if(!(selected_category in D.category) || !(D.build_type & IMPRINTER))
continue
var/temp_materials
var/check_materials = 1
for(var/M in D.materials)
temp_materials += " | "
if (!linked_imprinter.check_mat(D, M))
check_materials = 0
temp_materials += "
[D.materials[M]/coeff] [CallMaterialName(M)]"
else
temp_materials += " [D.materials[M]/coeff] [CallMaterialName(M)]"
if (check_materials)
dat += "
[D.name][temp_materials]
"
else
dat += "
[D.name][temp_materials]
"
if(D.locked)
dat += " |
LOCKED"
dat += "
"
if(4.2)
dat += "
Main Menu"
dat += "
Imprinter Menu"
dat += "
Disposal All Chemicals in Storage"
dat += "
Chemical Storage:
"
for(var/datum/reagent/R in linked_imprinter.reagents.reagent_list)
dat += "[R.name]: [R.volume]"
dat += "
Purge"
if(4.3)
dat += "
Main Menu"
dat += "
Circuit Imprinter Menu"
dat += "
Material Storage:
"
//Glass
dat += "* [linked_imprinter.g_amount] glass: "
if(linked_imprinter.g_amount >= 3750) dat += "
Eject "
if(linked_imprinter.g_amount >= 18750) dat += "
5x "
if(linked_imprinter.g_amount >= 3750) dat += "
All"
dat += "
"
//Gold
dat += "* [linked_imprinter.gold_amount] gold: "
if(linked_imprinter.gold_amount >= 2000) dat += "
Eject "
if(linked_imprinter.gold_amount >= 10000) dat += "
5x "
if(linked_imprinter.gold_amount >= 2000) dat += "
All"
dat += "
"
//Diamond
dat += "* [linked_imprinter.diamond_amount] diamond: "
if(linked_imprinter.diamond_amount >= 2000) dat += "
Eject "
if(linked_imprinter.diamond_amount >= 10000) dat += "
5x "
if(linked_imprinter.diamond_amount >= 2000) dat += "
All"
dat += "
"
var/datum/browser/popup = new(user, "rndconsole", name, 700, 550)
popup.set_content(dat)
popup.open()
return
//helper proc, which return a table containing categories
/obj/machinery/computer/rdconsole/proc/list_categories(var/list/categories, var/menu_num as num)
if(!categories)
return
var/line_length = 1
var/dat = "
"
for(var/C in categories)
if(line_length > 2)
dat += "
"
line_length = 1
dat += "| [C] | "
line_length++
dat += "
"
return dat
/obj/machinery/computer/rdconsole/robotics
name = "Robotics R&D Console"
desc = "A console used to interface with R&D tools."
id = 2
req_access = null
req_access_txt = "29"
/obj/machinery/computer/rdconsole/core
name = "Core R&D Console"
desc = "A console used to interface with R&D tools."
id = 1