Files
Aurora.3/code/modules/modular_computers/hardware/nano_printer.dm

62 lines
1.3 KiB
Plaintext

/obj/item/weapon/computer_hardware/nano_printer
name = "nano printer"
desc = "Small integrated printer with scanner and paper recycling module."
power_usage = 50
critical = 0
icon_state = "printer"
hardware_size = 1
var/stored_paper = 5
var/max_paper = 10
var/obj/item/weapon/paper/P = null // Currently stored paper for scanning.
/obj/item/weapon/computer_hardware/nano_printer/proc/print_text(var/text_to_print, var/paper_title = null)
if(!stored_paper)
return 0
// Recycle stored paper
if(P)
stored_paper++
qdel(P)
P = null
P = new/obj/item/weapon/paper(get_turf(holder2))
P.info = text_to_print
if(paper_title)
P.name = paper_title
P.update_icon()
stored_paper--
P = null
return 1
/obj/item/weapon/computer_hardware/nano_printer/proc/load_paper(var/obj/item/weapon/paper/paper)
if(!paper || !istype(paper))
return 0
// We already have paper loaded, recycle it.
if(P && try_recycle_paper())
P = paper
P.forceMove(holder2)
/obj/item/weapon/computer_hardware/nano_printer/proc/try_recycle_paper()
if(!P)
return 0
if(stored_paper >= max_paper)
return 0
qdel(P)
P = null
return 1
/obj/item/weapon/computer_hardware/nano_printer/Destroy()
if(holder2 && (holder2.nano_printer == src))
holder2.nano_printer = null
if(P)
if(holder2)
P.forceMove(get_turf(holder2))
else
qdel(P)
P = null
holder2 = null
..()