mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-23 16:42:13 +00:00
62 lines
1.3 KiB
Plaintext
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
|
|
..() |