From 13413635db4e01ce5986b7377025f9816aee3313 Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Thu, 15 May 2014 22:21:11 +0200 Subject: [PATCH] Makes photos visible on bundles Conflicts: code/modules/paperwork/paper_bundle.dm code/modules/paperwork/photography.dm icons/obj/bureaucracy.dmi --- baystation12.dme | 1 + code/modules/paperwork/paper_bundle.dm | 231 +++++++++++++++++++++++++ code/modules/paperwork/photography.dm | 13 +- icons/obj/bureaucracy.dmi | Bin 10334 -> 10886 bytes 4 files changed, 239 insertions(+), 6 deletions(-) create mode 100644 code/modules/paperwork/paper_bundle.dm diff --git a/baystation12.dme b/baystation12.dme index 641bb0b7bdb..8024f3fa119 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1197,6 +1197,7 @@ #include "code\modules\paperwork\folders.dm" #include "code\modules\paperwork\handlabeler.dm" #include "code\modules\paperwork\paper.dm" +#include "code\modules\paperwork\paper_bundle.dm" #include "code\modules\paperwork\paperbin.dm" #include "code\modules\paperwork\pen.dm" #include "code\modules\paperwork\photocopier.dm" diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm new file mode 100644 index 00000000000..baff965cd61 --- /dev/null +++ b/code/modules/paperwork/paper_bundle.dm @@ -0,0 +1,231 @@ +/obj/item/weapon/paper_bundle + name = "paper bundle" + gender = PLURAL + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "paper" + item_state = "paper" + throwforce = 0 + w_class = 1.0 + throw_range = 2 + throw_speed = 1 + layer = 4 + pressure_resistance = 1 + attack_verb = list("bapped") + var/amount = 0 //Amount of items clipped to the paper + var/page = 1 + var/screen = 0 + + +/obj/item/weapon/paper_bundle/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + var/obj/item/weapon/paper/P + if(istype(W, /obj/item/weapon/paper)) + P = W + amount++ + if(screen == 2) + screen = 1 + user << "You add [(P.name == "paper") ? "the paper" : P.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name]." + user.drop_from_inventory(P) + P.loc = src + if(istype(user,/mob/living/carbon/human)) + user:update_inv_l_hand() + user:update_inv_r_hand() + else if(istype(W, /obj/item/weapon/photo)) + amount++ + if(screen == 2) + screen = 1 + user << "You add [(W.name == "photo") ? "the photo" : W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name]." + user.drop_from_inventory(W) + W.loc = src + if(istype(user,/mob/living/carbon/human)) + user:update_inv_l_hand() + user:update_inv_r_hand() + else + if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/toy/crayon)) + usr << browse("", "window=[name]") //Closes the dialog + P = src[page] + P.attackby(W, user) + update_icon() + add_fingerprint(usr) + return + + +/obj/item/weapon/paper_bundle/examine() + set src in oview(1) + + usr << desc + if(in_range(usr, src)) + src.attack_self(usr) + else + usr << "It is too far away." + return + + +/obj/item/weapon/paper_bundle/attack_self(mob/user as mob) + if(ishuman(user)) + var/mob/living/carbon/human/human_user = user + var/dat + var/obj/item/weapon/W = src[page] + switch(screen) + if(0) + dat+= "
" + dat+= "
Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]
" + dat+= "
Next Page


" + if(1) + dat+= "
Previous Page
" + dat+= "
Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]
" + dat+= "
Next Page


" + if(2) + dat+= "
Previous Page
" + dat+= "
Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]


" + dat+= "
" + if(istype(src[page], /obj/item/weapon/paper)) + var/obj/item/weapon/paper/P = W + dat+= "[P.name][P.info][P.stamps]" + human_user << browse(dat, "window=[name]") + P.add_fingerprint(usr) + else if(istype(src[page], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P = W + human_user << browse_rsc(P.img, "tmp_photo.png") + human_user << browse(dat + "[P.name]" \ + + "" \ + + "
Written on the back:
[P.scribble]" : ]"\ + + "", "window=[name]") + P.add_fingerprint(usr) + add_fingerprint(usr) + update_icon() + return + + +/obj/item/weapon/paper_bundle/Topic(href, href_list) + ..() + if((src in usr.contents) || (src.loc in usr.contents)) + usr.set_machine(src) + if(href_list["next_page"]) + if(page == amount) + screen = 2 + else if(page == 1) + screen = 1 + else if(page == amount+1) + return + page++ + playsound(src.loc, "pageturn", 50, 1) + if(href_list["prev_page"]) + if(page == 1) + return + else if(page == 2) + screen = 0 + else if(page == amount+1) + screen = 1 + page-- + playsound(src.loc, "pageturn", 50, 1) + if(href_list["remove"]) + var/obj/item/weapon/W = src[page] + W.loc = usr.loc + if(istype(usr,/mob/living/carbon)) + //Place the item in the user's hand if possible + if(!usr.r_hand) + W.loc = usr + usr.r_hand = W + W.layer = 20 + else if(!usr.l_hand) + W.loc = usr + usr.l_hand = W + W.layer = 20 + usr << "You remove the [W.name] from the bundle." + + if(amount == 1) + var/obj/item/weapon/paper/P = src[1] + P.loc = usr.loc + if (usr.r_hand == src) + usr.drop_from_inventory(src) + P.loc = usr + usr.r_hand = P + P.layer = 20 + else if (usr.l_hand == src) + usr.drop_from_inventory(src) + P.loc = usr + usr.l_hand = P + P.layer = 20 + if(istype(usr,/mob/living/carbon/human)) + usr:update_inv_l_hand() + usr:update_inv_r_hand() + del(src) + else if(page == amount) + screen = 2 + else if(page == amount+1) + page-- + + if(istype(usr,/mob/living/carbon/human)) + usr:update_inv_l_hand() + usr:update_inv_r_hand() + amount-- + update_icon() + else + usr << "You need to hold it in hands!" + if (istype(src.loc, /mob) ||istype(src.loc.loc, /mob)) + src.attack_self(src.loc) + updateUsrDialog() + + + +/obj/item/weapon/paper_bundle/verb/rename() + set name = "Rename bundle" + set category = "Object" + set src in usr + + var/n_name = copytext(sanitize(input(usr, "What would you like to label the bundle?", "Bundle Labelling", null) as text), 1, MAX_NAME_LEN) + if((loc == usr && usr.stat == 0)) + name = "[(n_name ? text("[n_name]") : "paper")]" + add_fingerprint(usr) + return + + +/obj/item/weapon/paper_bundle/verb/remove_all() + set name = "Loose bundle" + set category = "Object" + set src in usr + + usr << "You loosen the bundle." + for(var/obj/O in src) + O.loc = usr.loc + usr.drop_from_inventory(src) + if(istype(usr,/mob/living/carbon/human)) + usr:update_inv_l_hand() + usr:update_inv_r_hand() + del(src) + return + + +/obj/item/weapon/paper_bundle/update_icon() + var/obj/item/weapon/paper/P = src[1] + icon_state = P.icon_state + overlays = P.overlays + underlays = 0 + var/i = 0 + var/photo + for(var/obj/O in src) + var/image/img = image('icons/obj/bureaucracy.dmi') + if(istype(O, /obj/item/weapon/paper)) + img.icon_state = O.icon_state + img.pixel_x -= min(1*i, 2) + img.pixel_y -= min(1*i, 2) + pixel_x = min(0.5*i, 1) + pixel_y = min( 1*i, 2) + underlays += img + i++ + else if(istype(O, /obj/item/weapon/photo)) + var/obj/item/weapon/photo/Ph = O +// img.icon_state = "photo" + img = Ph.tiny + photo = 1 + overlays += img + if(i>1) + desc = "[i] papers clipped to each other." + else + desc = "A single sheet of paper." + if(photo) + desc += "\nThere is a photo attached to it." + overlays += image('icons/obj/bureaucracy.dmi', "clip") + return \ No newline at end of file diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index e70a4bad86a..3a956e7ff65 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -26,12 +26,10 @@ icon = 'icons/obj/items.dmi' icon_state = "photo" item_state = "paper" - w_class = 1.0 - var/icon/img //Big photo image - var/scribble //Scribble on the back. - - autoignition_temperature = 530 // Kelvin - + w_class = 2.0 + var/icon/img //Big photo image + var/scribble //Scribble on the back. + var/icon/tiny /obj/item/weapon/photo/attack_self(mob/user as mob) examine() @@ -254,8 +252,11 @@ var/icon/small_img = icon(photoimage) var/icon/tiny_img = icon(photoimage) var/icon/ic = icon('icons/obj/items.dmi',"photo") + var/icon/pc = icon('icons/obj/bureaucracy.dmi', "photo") small_img.Scale(8, 8) + tiny_img.Scale(4, 4) ic.Blend(small_img,ICON_OVERLAY, 10, 13) + pc.Blend(tiny_img,ICON_OVERLAY, 12, 19) P.icon = ic P.tiny = pc P.img = photoimage diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index 613a8f08806b80b00269381e9029e1d9b5042fdc..36b46a1bbb8af984f87a9cdbef28d3174d304cb3 100644 GIT binary patch literal 10886 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