mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-26 17:41:05 +00:00
* [MDB Ignore][Bounty][Complete Refactor] Papercode Redux: Too Many Damn Files <Map Conflict Edition> * Fixes merge conflicts and compilation errors, alongside fixing the joker card to make it fully functional again * Fixed a bunch of info variables in map files * Alright this is why I wanted this merged yesterday Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk> Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
94 lines
2.9 KiB
Plaintext
94 lines
2.9 KiB
Plaintext
/obj/item/computer_hardware/printer
|
|
name = "printer"
|
|
desc = "Computer-integrated printer with paper recycling module."
|
|
power_usage = 100
|
|
icon_state = "printer"
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
device_type = MC_PRINT
|
|
expansion_hw = TRUE
|
|
var/stored_paper = 20
|
|
var/max_paper = 30
|
|
|
|
/obj/item/computer_hardware/printer/diagnostics(mob/living/user)
|
|
..()
|
|
to_chat(user, span_notice("Paper level: [stored_paper]/[max_paper]."))
|
|
|
|
/obj/item/computer_hardware/printer/examine(mob/user)
|
|
. = ..()
|
|
. += span_notice("Paper level: [stored_paper]/[max_paper].")
|
|
|
|
|
|
/obj/item/computer_hardware/printer/proc/print_text(text_to_print, paper_title = "")
|
|
if(!stored_paper)
|
|
return FALSE
|
|
if(!check_functionality())
|
|
return FALSE
|
|
|
|
var/obj/item/paper/printed_paper = new/obj/item/paper(holder.drop_location())
|
|
|
|
// Damaged printer causes the resulting paper to be somewhat harder to read.
|
|
|
|
if(damage > damage_malfunction)
|
|
printed_paper.add_raw_text(stars(text_to_print, 100-malfunction_probability))
|
|
else
|
|
printed_paper.add_raw_text(text_to_print)
|
|
if(paper_title)
|
|
printed_paper.name = paper_title
|
|
printed_paper.update_appearance()
|
|
stored_paper--
|
|
|
|
return TRUE
|
|
|
|
/obj/item/computer_hardware/printer/try_insert(obj/item/I, mob/living/user = null)
|
|
if(istype(I, /obj/item/paper))
|
|
if(stored_paper >= max_paper)
|
|
to_chat(user, span_warning("You try to add \the [I] into [src], but its paper bin is full!"))
|
|
return FALSE
|
|
|
|
if(user && !user.temporarilyRemoveItemFromInventory(I))
|
|
return FALSE
|
|
to_chat(user, span_notice("You insert \the [I] into [src]'s paper recycler."))
|
|
qdel(I)
|
|
stored_paper++
|
|
return TRUE
|
|
if(istype(I, /obj/item/paper_bin))
|
|
var/obj/item/paper_bin/bin = I
|
|
if(LAZYLEN(bin.papers))
|
|
if(stored_paper >= max_paper)
|
|
balloon_alert(user, "it's full!")
|
|
return FALSE
|
|
/// Number of sheets we're adding
|
|
var/num_to_add = 0
|
|
for(var/obj/item/paper/the_paper as anything in bin.papers) // Search for the first blank sheet of paper, then toss it in
|
|
if(the_paper.get_total_length()) // Uh oh, paper has words!
|
|
continue
|
|
if(istype(the_paper, /obj/item/paper/carbon)) // Add both the carbon, and the copy
|
|
var/obj/item/paper/carbon/carbon_paper = the_paper
|
|
if(!carbon_paper.copied && ((max_paper - stored_paper) >= 2)) // See if there's room for both
|
|
num_to_add = 2
|
|
else
|
|
num_to_add = 1
|
|
LAZYREMOVE(bin.papers, the_paper)
|
|
qdel(the_paper)
|
|
stored_paper += num_to_add
|
|
break // All full!
|
|
bin.update_appearance()
|
|
if(!num_to_add)
|
|
balloon_alert(user, "everything is written on!")
|
|
else
|
|
balloon_alert(user, "pulled in [num_to_add] sheets\s of paper")
|
|
return TRUE
|
|
else
|
|
balloon_alert(user, "the bin is empty!")
|
|
return FALSE
|
|
return FALSE
|
|
|
|
/obj/item/computer_hardware/printer/mini
|
|
name = "miniprinter"
|
|
desc = "A small printer with paper recycling module."
|
|
power_usage = 50
|
|
icon_state = "printer_mini"
|
|
w_class = WEIGHT_CLASS_TINY
|
|
stored_paper = 5
|
|
max_paper = 15
|