mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Merge pull request #8972 from DeeUnderscore/paper-functionality
Paper functionality additions
This commit is contained in:
@@ -1369,8 +1369,8 @@
|
|||||||
var/data = ""
|
var/data = ""
|
||||||
var/obj/item/weapon/paper_bundle/B = fax
|
var/obj/item/weapon/paper_bundle/B = fax
|
||||||
|
|
||||||
for (var/page = 1, page <= B.amount, page++)
|
for (var/page = 1, page <= B.pages.len, page++)
|
||||||
var/obj/pageobj = B.contents[page]
|
var/obj/pageobj = B.pages[page]
|
||||||
data += "<A href='?src=\ref[src];AdminFaxViewPage=[page];paper_bundle=\ref[B]'>Page [page] - [pageobj.name]</A><BR>"
|
data += "<A href='?src=\ref[src];AdminFaxViewPage=[page];paper_bundle=\ref[B]'>Page [page] - [pageobj.name]</A><BR>"
|
||||||
|
|
||||||
usr << browse(data, "window=[B.name]")
|
usr << browse(data, "window=[B.name]")
|
||||||
@@ -1383,11 +1383,11 @@
|
|||||||
|
|
||||||
if (!bundle) return
|
if (!bundle) return
|
||||||
|
|
||||||
if (istype(bundle.contents[page], /obj/item/weapon/paper))
|
if (istype(bundle.pages[page], /obj/item/weapon/paper))
|
||||||
var/obj/item/weapon/paper/P = bundle.contents[page]
|
var/obj/item/weapon/paper/P = bundle.pages[page]
|
||||||
P.show_content(src.owner, 1)
|
P.show_content(src.owner, 1)
|
||||||
else if (istype(bundle.contents[page], /obj/item/weapon/photo))
|
else if (istype(bundle.pages[page], /obj/item/weapon/photo))
|
||||||
var/obj/item/weapon/photo/H = bundle.contents[page]
|
var/obj/item/weapon/photo/H = bundle.pages[page]
|
||||||
H.show(src.owner)
|
H.show(src.owner)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -68,14 +68,14 @@
|
|||||||
//The topmost paper. I don't think there's any way to organise contents in byond, so this is what we're stuck with. -Pete
|
//The topmost paper. I don't think there's any way to organise contents in byond, so this is what we're stuck with. -Pete
|
||||||
if(toppaper)
|
if(toppaper)
|
||||||
var/obj/item/weapon/paper/P = toppaper
|
var/obj/item/weapon/paper/P = toppaper
|
||||||
dat += "<A href='?src=\ref[src];write=\ref[P]'>Write</A> <A href='?src=\ref[src];remove=\ref[P]'>Remove</A> - <A href='?src=\ref[src];read=\ref[P]'>[P.name]</A><BR><HR>"
|
dat += "<A href='?src=\ref[src];write=\ref[P]'>Write</A> <A href='?src=\ref[src];remove=\ref[P]'>Remove</A> <A href='?src=\ref[src];rename=\ref[P]'>Rename</A> - <A href='?src=\ref[src];read=\ref[P]'>[P.name]</A><BR><HR>"
|
||||||
|
|
||||||
for(var/obj/item/weapon/paper/P in src)
|
for(var/obj/item/weapon/paper/P in src)
|
||||||
if(P==toppaper)
|
if(P==toppaper)
|
||||||
continue
|
continue
|
||||||
dat += "<A href='?src=\ref[src];remove=\ref[P]'>Remove</A> - <A href='?src=\ref[src];read=\ref[P]'>[P.name]</A><BR>"
|
dat += "<A href='?src=\ref[src];remove=\ref[P]'>Remove</A> <A href='?src=\ref[src];rename=\ref[P]'>Rename</A> - <A href='?src=\ref[src];read=\ref[P]'>[P.name]</A><BR>"
|
||||||
for(var/obj/item/weapon/photo/Ph in src)
|
for(var/obj/item/weapon/photo/Ph in src)
|
||||||
dat += "<A href='?src=\ref[src];remove=\ref[Ph]'>Remove</A> - <A href='?src=\ref[src];look=\ref[Ph]'>[Ph.name]</A><BR>"
|
dat += "<A href='?src=\ref[src];remove=\ref[Ph]'>Remove</A> <A href='?src=\ref[src];rename=\ref[Ph]'>Rename</A> - <A href='?src=\ref[src];look=\ref[Ph]'>[Ph.name]</A><BR>"
|
||||||
|
|
||||||
user << browse(dat, "window=clipboard")
|
user << browse(dat, "window=clipboard")
|
||||||
onclose(user, "clipboard")
|
onclose(user, "clipboard")
|
||||||
@@ -129,6 +129,18 @@
|
|||||||
toppaper = newtop
|
toppaper = newtop
|
||||||
else
|
else
|
||||||
toppaper = null
|
toppaper = null
|
||||||
|
|
||||||
|
else if(href_list["rename"])
|
||||||
|
var/obj/item/weapon/O = locate(href_list["rename"])
|
||||||
|
|
||||||
|
if(O && (O.loc == src))
|
||||||
|
if(istype(O, /obj/item/weapon/paper))
|
||||||
|
var/obj/item/weapon/paper/to_rename = O
|
||||||
|
to_rename.rename()
|
||||||
|
|
||||||
|
else if(istype(O, /obj/item/weapon/photo))
|
||||||
|
var/obj/item/weapon/photo/to_rename = O
|
||||||
|
to_rename.rename()
|
||||||
|
|
||||||
else if(href_list["read"])
|
else if(href_list["read"])
|
||||||
var/obj/item/weapon/paper/P = locate(href_list["read"])
|
var/obj/item/weapon/paper/P = locate(href_list["read"])
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins
|
|||||||
else if (istype(copyitem, /obj/item/weapon/photo))
|
else if (istype(copyitem, /obj/item/weapon/photo))
|
||||||
rcvdcopy = photocopy(copyitem)
|
rcvdcopy = photocopy(copyitem)
|
||||||
else if (istype(copyitem, /obj/item/weapon/paper_bundle))
|
else if (istype(copyitem, /obj/item/weapon/paper_bundle))
|
||||||
rcvdcopy = bundlecopy(copyitem)
|
rcvdcopy = bundlecopy(copyitem, 0)
|
||||||
else
|
else
|
||||||
visible_message("[src] beeps, \"Error transmitting message.\"")
|
visible_message("[src] beeps, \"Error transmitting message.\"")
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -44,11 +44,11 @@
|
|||||||
var/dat = "<title>[name]</title>"
|
var/dat = "<title>[name]</title>"
|
||||||
|
|
||||||
for(var/obj/item/weapon/paper/P in src)
|
for(var/obj/item/weapon/paper/P in src)
|
||||||
dat += "<A href='?src=\ref[src];remove=\ref[P]'>Remove</A> - <A href='?src=\ref[src];read=\ref[P]'>[P.name]</A><BR>"
|
dat += "<A href='?src=\ref[src];remove=\ref[P]'>Remove</A> <A href='?src=\ref[src];rename=\ref[P]'>Rename</A> - <A href='?src=\ref[src];read=\ref[P]'>[P.name]</A><BR>"
|
||||||
for(var/obj/item/weapon/photo/Ph in src)
|
for(var/obj/item/weapon/photo/Ph in src)
|
||||||
dat += "<A href='?src=\ref[src];remove=\ref[Ph]'>Remove</A> - <A href='?src=\ref[src];look=\ref[Ph]'>[Ph.name]</A><BR>"
|
dat += "<A href='?src=\ref[src];remove=\ref[Ph]'>Remove</A> <A href='?src=\ref[src];rename=\ref[Ph]'>Rename</A> - <A href='?src=\ref[src];look=\ref[Ph]'>[Ph.name]</A><BR>"
|
||||||
for(var/obj/item/weapon/paper_bundle/Pb in src)
|
for(var/obj/item/weapon/paper_bundle/Pb in src)
|
||||||
dat += "<A href='?src=\ref[src];remove=\ref[Pb]'>Remove</A> - <A href='?src=\ref[src];browse=\ref[Pb]'>[Pb.name]</A><BR>"
|
dat += "<A href='?src=\ref[src];remove=\ref[Pb]'>Remove</A> <A href='?src=\ref[src];rename=\ref[Pb]'>Rename</A> - <A href='?src=\ref[src];browse=\ref[Pb]'>[Pb.name]</A><BR>"
|
||||||
user << browse(dat, "window=folder")
|
user << browse(dat, "window=folder")
|
||||||
onclose(user, "folder")
|
onclose(user, "folder")
|
||||||
add_fingerprint(usr)
|
add_fingerprint(usr)
|
||||||
@@ -85,7 +85,22 @@
|
|||||||
if(P && (P.loc == src) && istype(P))
|
if(P && (P.loc == src) && istype(P))
|
||||||
P.attack_self(usr)
|
P.attack_self(usr)
|
||||||
onclose(usr, "[P.name]")
|
onclose(usr, "[P.name]")
|
||||||
|
else if(href_list["rename"])
|
||||||
|
var/obj/item/weapon/O = locate(href_list["rename"])
|
||||||
|
|
||||||
|
if(O && (O.loc == src))
|
||||||
|
if(istype(O, /obj/item/weapon/paper))
|
||||||
|
var/obj/item/weapon/paper/to_rename = O
|
||||||
|
to_rename.rename()
|
||||||
|
|
||||||
|
else if(istype(O, /obj/item/weapon/photo))
|
||||||
|
var/obj/item/weapon/photo/to_rename = O
|
||||||
|
to_rename.rename()
|
||||||
|
|
||||||
|
else if(istype(O, /obj/item/weapon/paper_bundle))
|
||||||
|
var/obj/item/weapon/paper_bundle/to_rename = O
|
||||||
|
to_rename.rename()
|
||||||
|
|
||||||
//Update everything
|
//Update everything
|
||||||
attack_self(usr)
|
attack_self(usr)
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|||||||
@@ -95,12 +95,15 @@
|
|||||||
usr << "<span class='warning'>You cut yourself on the paper.</span>"
|
usr << "<span class='warning'>You cut yourself on the paper.</span>"
|
||||||
return
|
return
|
||||||
var/n_name = sanitizeSafe(input(usr, "What would you like to label the paper?", "Paper Labelling", null) as text, MAX_NAME_LEN)
|
var/n_name = sanitizeSafe(input(usr, "What would you like to label the paper?", "Paper Labelling", null) as text, MAX_NAME_LEN)
|
||||||
if((loc == usr && usr.stat == 0))
|
|
||||||
name = "[(n_name ? text("[n_name]") : initial(name))]"
|
// We check loc one level up, so we can rename in clipboards and such. See also: /obj/item/weapon/photo/rename()
|
||||||
if(name != "paper")
|
if((loc == usr || loc.loc && loc.loc == usr) && usr.stat == 0 && n_name)
|
||||||
desc = "This is a paper titled '" + name + "'."
|
name = n_name
|
||||||
add_fingerprint(usr)
|
if(n_name != "paper")
|
||||||
return
|
desc = "This is a paper titled '" + name + "'."
|
||||||
|
|
||||||
|
add_fingerprint(usr)
|
||||||
|
return
|
||||||
|
|
||||||
/obj/item/weapon/paper/attack_self(mob/living/user as mob)
|
/obj/item/weapon/paper/attack_self(mob/living/user as mob)
|
||||||
user.examinate(src)
|
user.examinate(src)
|
||||||
@@ -447,7 +450,9 @@
|
|||||||
user << "<span class='notice'>You clip the [P.name] to [(src.name == "paper") ? "the paper" : src.name].</span>"
|
user << "<span class='notice'>You clip the [P.name] to [(src.name == "paper") ? "the paper" : src.name].</span>"
|
||||||
src.loc = B
|
src.loc = B
|
||||||
P.loc = B
|
P.loc = B
|
||||||
B.amount++
|
|
||||||
|
B.pages.Add(src)
|
||||||
|
B.pages.Add(P)
|
||||||
B.update_icon()
|
B.update_icon()
|
||||||
|
|
||||||
else if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon))
|
else if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon))
|
||||||
|
|||||||
@@ -11,50 +11,35 @@
|
|||||||
layer = 4
|
layer = 4
|
||||||
pressure_resistance = 1
|
pressure_resistance = 1
|
||||||
attack_verb = list("bapped")
|
attack_verb = list("bapped")
|
||||||
var/amount = 0 //Amount of items clipped to the paper
|
var/page = 1 // current page
|
||||||
var/page = 1
|
var/list/pages = list() // Ordered list of pages as they are to be displayed. Can be different order than src.contents.
|
||||||
var/screen = 0
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/weapon/paper_bundle/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
/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
|
|
||||||
if (istype(P, /obj/item/weapon/paper/carbon))
|
|
||||||
var/obj/item/weapon/paper/carbon/C = P
|
|
||||||
if (!C.iscopy && !C.copied)
|
|
||||||
user << "<span class='notice'>Take off the carbon copy first.</span>"
|
|
||||||
add_fingerprint(user)
|
|
||||||
return
|
|
||||||
|
|
||||||
amount++
|
if (istype(W, /obj/item/weapon/paper/carbon))
|
||||||
if(screen == 2)
|
var/obj/item/weapon/paper/carbon/C = W
|
||||||
screen = 1
|
if (!C.iscopy && !C.copied)
|
||||||
user << "<span class='notice'>You add [(P.name == "paper") ? "the paper" : P.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].</span>"
|
user << "<span class='notice'>Take off the carbon copy first.</span>"
|
||||||
user.drop_from_inventory(P)
|
add_fingerprint(user)
|
||||||
P.loc = src
|
return
|
||||||
if(istype(user,/mob/living/carbon/human))
|
// adding sheets
|
||||||
var/mob/living/carbon/human/H = user
|
if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo))
|
||||||
H.update_inv_l_hand()
|
insert_sheet_at(user, pages.len+1, W)
|
||||||
H.update_inv_r_hand()
|
|
||||||
else if(istype(W, /obj/item/weapon/photo))
|
// burning
|
||||||
amount++
|
|
||||||
if(screen == 2)
|
|
||||||
screen = 1
|
|
||||||
user << "<span class='notice'>You add [(W.name == "photo") ? "the photo" : W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].</span>"
|
|
||||||
user.drop_from_inventory(W)
|
|
||||||
W.loc = src
|
|
||||||
else if(istype(W, /obj/item/weapon/flame))
|
else if(istype(W, /obj/item/weapon/flame))
|
||||||
burnpaper(W, user)
|
burnpaper(W, user)
|
||||||
|
|
||||||
|
// merging bundles
|
||||||
else if(istype(W, /obj/item/weapon/paper_bundle))
|
else if(istype(W, /obj/item/weapon/paper_bundle))
|
||||||
user.drop_from_inventory(W)
|
user.drop_from_inventory(W)
|
||||||
for(var/obj/O in W)
|
for(var/obj/O in W)
|
||||||
O.loc = src
|
O.loc = src
|
||||||
O.add_fingerprint(usr)
|
O.add_fingerprint(usr)
|
||||||
src.amount++
|
pages.Add(O)
|
||||||
if(screen == 2)
|
|
||||||
screen = 1
|
|
||||||
user << "<span class='notice'>You add \the [W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].</span>"
|
user << "<span class='notice'>You add \the [W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].</span>"
|
||||||
qdel(W)
|
qdel(W)
|
||||||
else
|
else
|
||||||
@@ -62,15 +47,27 @@
|
|||||||
return 0
|
return 0
|
||||||
if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/toy/crayon))
|
if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/toy/crayon))
|
||||||
usr << browse("", "window=[name]") //Closes the dialog
|
usr << browse("", "window=[name]") //Closes the dialog
|
||||||
P = src[page]
|
var/obj/P = pages[page]
|
||||||
P.attackby(W, user)
|
P.attackby(W, user)
|
||||||
|
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
attack_self(usr) //Update the browsed page.
|
attack_self(usr) //Update the browsed page.
|
||||||
add_fingerprint(usr)
|
add_fingerprint(usr)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
/obj/item/weapon/paper_bundle/proc/insert_sheet_at(mob/user, var/index, obj/item/weapon/sheet)
|
||||||
|
if(istype(sheet, /obj/item/weapon/paper))
|
||||||
|
user << "<span class='notice'>You add [(sheet.name == "paper") ? "the paper" : sheet.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].</span>"
|
||||||
|
else if(istype(sheet, /obj/item/weapon/photo))
|
||||||
|
user << "<span class='notice'>You add [(sheet.name == "photo") ? "the photo" : sheet.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].</span>"
|
||||||
|
|
||||||
|
user.drop_from_inventory(sheet)
|
||||||
|
sheet.loc = src
|
||||||
|
|
||||||
|
pages.Insert(index, sheet)
|
||||||
|
|
||||||
|
if(index <= page)
|
||||||
|
page++
|
||||||
|
|
||||||
/obj/item/weapon/paper_bundle/proc/burnpaper(obj/item/weapon/flame/P, mob/user)
|
/obj/item/weapon/paper_bundle/proc/burnpaper(obj/item/weapon/flame/P, mob/user)
|
||||||
var/class = "<span class='warning'>"
|
var/class = "<span class='warning'>"
|
||||||
@@ -105,28 +102,32 @@
|
|||||||
|
|
||||||
/obj/item/weapon/paper_bundle/proc/show_content(mob/user as mob)
|
/obj/item/weapon/paper_bundle/proc/show_content(mob/user as mob)
|
||||||
var/dat
|
var/dat
|
||||||
var/obj/item/weapon/W = src[page]
|
var/obj/item/weapon/W = pages[page]
|
||||||
switch(screen)
|
|
||||||
if(0)
|
// first
|
||||||
dat+= "<DIV STYLE='float:left; text-align:left; width:33.33333%'></DIV>"
|
if(page == 1)
|
||||||
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=\ref[src];remove=1'>Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]</A></DIV>"
|
dat+= "<DIV STYLE='float:left; text-align:left; width:33.33333%'><A href='?src=\ref[src];prev_page=1'>Front</A></DIV>"
|
||||||
dat+= "<DIV STYLE='float:left; text-align:right; width:33.33333%'><A href='?src=\ref[src];next_page=1'>Next Page</A></DIV><BR><HR>"
|
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=\ref[src];remove=1'>Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]</A></DIV>"
|
||||||
if(1)
|
dat+= "<DIV STYLE='float:left; text-align:right; width:33.33333%'><A href='?src=\ref[src];next_page=1'>Next Page</A></DIV><BR><HR>"
|
||||||
dat+= "<DIV STYLE='float:left; text-align:left; width:33.33333%'><A href='?src=\ref[src];prev_page=1'>Previous Page</A></DIV>"
|
// last
|
||||||
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=\ref[src];remove=1'>Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]</A></DIV>"
|
else if(page == pages.len)
|
||||||
dat+= "<DIV STYLE='float:left; text-align:right; width:33.33333%'><A href='?src=\ref[src];next_page=1'>Next Page</A></DIV><BR><HR>"
|
dat+= "<DIV STYLE='float:left; text-align:left; width:33.33333%'><A href='?src=\ref[src];prev_page=1'>Previous Page</A></DIV>"
|
||||||
if(2)
|
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=\ref[src];remove=1'>Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]</A></DIV>"
|
||||||
dat+= "<DIV STYLE='float:left; text-align:left; width:33.33333%'><A href='?src=\ref[src];prev_page=1'>Previous Page</A></DIV>"
|
dat+= "<DIV STYLE='float;left; text-align:right; with:33.33333%'><A href='?src=\ref[src];next_page=1'>Back</A></DIV><BR><HR>"
|
||||||
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=\ref[src];remove=1'>Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]</A></DIV><BR><HR>"
|
// middle pages
|
||||||
dat+= "<DIV STYLE='float;left; text-align:right; with:33.33333%'></DIV>"
|
else
|
||||||
if(istype(src[page], /obj/item/weapon/paper))
|
dat+= "<DIV STYLE='float:left; text-align:left; width:33.33333%'><A href='?src=\ref[src];prev_page=1'>Previous Page</A></DIV>"
|
||||||
|
dat+= "<DIV STYLE='float:left; text-align:center; width:33.33333%'><A href='?src=\ref[src];remove=1'>Remove [(istype(W, /obj/item/weapon/paper)) ? "paper" : "photo"]</A></DIV>"
|
||||||
|
dat+= "<DIV STYLE='float:left; text-align:right; width:33.33333%'><A href='?src=\ref[src];next_page=1'>Next Page</A></DIV><BR><HR>"
|
||||||
|
|
||||||
|
if(istype(pages[page], /obj/item/weapon/paper))
|
||||||
var/obj/item/weapon/paper/P = W
|
var/obj/item/weapon/paper/P = W
|
||||||
if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon)))
|
if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon)))
|
||||||
dat+= "<HTML><HEAD><TITLE>[P.name]</TITLE></HEAD><BODY>[stars(P.info)][P.stamps]</BODY></HTML>"
|
dat+= "<HTML><HEAD><TITLE>[P.name]</TITLE></HEAD><BODY>[stars(P.info)][P.stamps]</BODY></HTML>"
|
||||||
else
|
else
|
||||||
dat+= "<HTML><HEAD><TITLE>[P.name]</TITLE></HEAD><BODY>[P.info][P.stamps]</BODY></HTML>"
|
dat+= "<HTML><HEAD><TITLE>[P.name]</TITLE></HEAD><BODY>[P.info][P.stamps]</BODY></HTML>"
|
||||||
user << browse(dat, "window=[name]")
|
user << browse(dat, "window=[name]")
|
||||||
else if(istype(src[page], /obj/item/weapon/photo))
|
else if(istype(pages[page], /obj/item/weapon/photo))
|
||||||
var/obj/item/weapon/photo/P = W
|
var/obj/item/weapon/photo/P = W
|
||||||
user << browse_rsc(P.img, "tmp_photo.png")
|
user << browse_rsc(P.img, "tmp_photo.png")
|
||||||
user << browse(dat + "<html><head><title>[P.name]</title></head>" \
|
user << browse(dat + "<html><head><title>[P.name]</title></head>" \
|
||||||
@@ -145,55 +146,51 @@
|
|||||||
..()
|
..()
|
||||||
if((src in usr.contents) || (istype(src.loc, /obj/item/weapon/folder) && (src.loc in usr.contents)))
|
if((src in usr.contents) || (istype(src.loc, /obj/item/weapon/folder) && (src.loc in usr.contents)))
|
||||||
usr.set_machine(src)
|
usr.set_machine(src)
|
||||||
|
var/obj/item/weapon/in_hand = usr.get_active_hand()
|
||||||
if(href_list["next_page"])
|
if(href_list["next_page"])
|
||||||
if(page == amount)
|
if(in_hand && (istype(in_hand, /obj/item/weapon/paper) || istype(in_hand, /obj/item/weapon/photo)))
|
||||||
screen = 2
|
insert_sheet_at(usr, page+1, in_hand)
|
||||||
else if(page == 1)
|
else if(page != pages.len)
|
||||||
screen = 1
|
page++
|
||||||
else if(page == amount+1)
|
playsound(src.loc, "pageturn", 50, 1)
|
||||||
return
|
|
||||||
page++
|
|
||||||
playsound(src.loc, "pageturn", 50, 1)
|
|
||||||
if(href_list["prev_page"])
|
if(href_list["prev_page"])
|
||||||
if(page == 1)
|
if(in_hand && (istype(in_hand, /obj/item/weapon/paper) || istype(in_hand, /obj/item/weapon/photo)))
|
||||||
return
|
insert_sheet_at(usr, page, in_hand)
|
||||||
else if(page == 2)
|
else if(page > 1)
|
||||||
screen = 0
|
page--
|
||||||
else if(page == amount+1)
|
playsound(src.loc, "pageturn", 50, 1)
|
||||||
screen = 1
|
|
||||||
page--
|
|
||||||
playsound(src.loc, "pageturn", 50, 1)
|
|
||||||
if(href_list["remove"])
|
if(href_list["remove"])
|
||||||
var/obj/item/weapon/W = src[page]
|
var/obj/item/weapon/W = pages[page]
|
||||||
usr.put_in_hands(W)
|
usr.put_in_hands(W)
|
||||||
|
pages.Remove(pages[page])
|
||||||
|
|
||||||
usr << "<span class='notice'>You remove the [W.name] from the bundle.</span>"
|
usr << "<span class='notice'>You remove the [W.name] from the bundle.</span>"
|
||||||
if(amount == 1)
|
|
||||||
|
if(pages.len <= 1)
|
||||||
var/obj/item/weapon/paper/P = src[1]
|
var/obj/item/weapon/paper/P = src[1]
|
||||||
usr.drop_from_inventory(src)
|
usr.drop_from_inventory(src)
|
||||||
usr.put_in_hands(P)
|
usr.put_in_hands(P)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
else if(page == amount)
|
|
||||||
screen = 2
|
return
|
||||||
else if(page == amount+1)
|
|
||||||
page--
|
if(page > pages.len)
|
||||||
|
page = pages.len
|
||||||
amount--
|
|
||||||
update_icon()
|
update_icon()
|
||||||
else
|
else
|
||||||
usr << "<span class='notice'>You need to hold it in hands!</span>"
|
usr << "<span class='notice'>You need to hold it in hands!</span>"
|
||||||
if (istype(src.loc, /mob) ||istype(src.loc.loc, /mob))
|
if (istype(src.loc, /mob) ||istype(src.loc.loc, /mob))
|
||||||
src.attack_self(src.loc)
|
src.attack_self(usr)
|
||||||
updateUsrDialog()
|
updateUsrDialog()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/weapon/paper_bundle/verb/rename()
|
/obj/item/weapon/paper_bundle/verb/rename()
|
||||||
set name = "Rename bundle"
|
set name = "Rename bundle"
|
||||||
set category = "Object"
|
set category = "Object"
|
||||||
set src in usr
|
set src in usr
|
||||||
|
|
||||||
var/n_name = sanitizeSafe(input(usr, "What would you like to label the bundle?", "Bundle Labelling", null) as text, MAX_NAME_LEN)
|
var/n_name = sanitizeSafe(input(usr, "What would you like to label the bundle?", "Bundle Labelling", null) as text, MAX_NAME_LEN)
|
||||||
if((loc == usr && usr.stat == 0))
|
if((loc == usr || loc.loc && loc.loc == usr) && usr.stat == 0)
|
||||||
name = "[(n_name ? text("[n_name]") : "paper")]"
|
name = "[(n_name ? text("[n_name]") : "paper")]"
|
||||||
add_fingerprint(usr)
|
add_fingerprint(usr)
|
||||||
return
|
return
|
||||||
@@ -215,7 +212,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/item/weapon/paper_bundle/update_icon()
|
/obj/item/weapon/paper_bundle/update_icon()
|
||||||
var/obj/item/weapon/paper/P = src[1]
|
var/obj/item/weapon/paper/P = pages[1]
|
||||||
icon_state = P.icon_state
|
icon_state = P.icon_state
|
||||||
overlays = P.overlays
|
overlays = P.overlays
|
||||||
underlays = 0
|
underlays = 0
|
||||||
|
|||||||
@@ -56,7 +56,7 @@
|
|||||||
sleep(15)
|
sleep(15)
|
||||||
else if (istype(copyitem, /obj/item/weapon/paper_bundle))
|
else if (istype(copyitem, /obj/item/weapon/paper_bundle))
|
||||||
var/obj/item/weapon/paper_bundle/B = bundlecopy(copyitem)
|
var/obj/item/weapon/paper_bundle/B = bundlecopy(copyitem)
|
||||||
sleep(15*B.amount)
|
sleep(15*B.pages.len)
|
||||||
else
|
else
|
||||||
usr << "<span class='warning'>\The [copyitem] can't be copied by \the [src].</span>"
|
usr << "<span class='warning'>\The [copyitem] can't be copied by \the [src].</span>"
|
||||||
break
|
break
|
||||||
@@ -216,7 +216,7 @@
|
|||||||
//If need_toner is 0, the copies will still be lightened when low on toner, however it will not be prevented from printing. TODO: Implement print queues for fax machines and get rid of need_toner
|
//If need_toner is 0, the copies will still be lightened when low on toner, however it will not be prevented from printing. TODO: Implement print queues for fax machines and get rid of need_toner
|
||||||
/obj/machinery/photocopier/proc/bundlecopy(var/obj/item/weapon/paper_bundle/bundle, var/need_toner=1)
|
/obj/machinery/photocopier/proc/bundlecopy(var/obj/item/weapon/paper_bundle/bundle, var/need_toner=1)
|
||||||
var/obj/item/weapon/paper_bundle/p = new /obj/item/weapon/paper_bundle (src)
|
var/obj/item/weapon/paper_bundle/p = new /obj/item/weapon/paper_bundle (src)
|
||||||
for(var/obj/item/weapon/W in bundle)
|
for(var/obj/item/weapon/W in bundle.pages)
|
||||||
if(toner <= 0 && need_toner)
|
if(toner <= 0 && need_toner)
|
||||||
toner = 0
|
toner = 0
|
||||||
visible_message("<span class='notice'>A red light on \the [src] flashes, indicating that it is out of toner.</span>")
|
visible_message("<span class='notice'>A red light on \the [src] flashes, indicating that it is out of toner.</span>")
|
||||||
@@ -227,8 +227,8 @@
|
|||||||
else if(istype(W, /obj/item/weapon/photo))
|
else if(istype(W, /obj/item/weapon/photo))
|
||||||
W = photocopy(W)
|
W = photocopy(W)
|
||||||
W.loc = p
|
W.loc = p
|
||||||
p.amount++
|
p.pages += W
|
||||||
//p.amount--
|
|
||||||
p.loc = src.loc
|
p.loc = src.loc
|
||||||
p.update_icon()
|
p.update_icon()
|
||||||
p.icon_state = "paper_words"
|
p.icon_state = "paper_words"
|
||||||
|
|||||||
5
html/changelogs/Daranz-paper_functionality.yml
Normal file
5
html/changelogs/Daranz-paper_functionality.yml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
author: Daranz
|
||||||
|
delete-after: True
|
||||||
|
|
||||||
|
changes:
|
||||||
|
- rscadd: "Paper bundles can now have papers inserted at arbitrary points. This can be done by clicking the previous/next page links with a sheet of paper in hand."
|
||||||
Reference in New Issue
Block a user