Added folders and filing cabinets. Filing cabinet code jacked from BS12!

Clipboard and paper fixes.
Committed Nodrak's monkey vent crawl fix and removed that dumb disposal from the Sec entrance.
Additionally fixed monkeys crawling when stunned.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3274 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
petethegoat@gmail.com
2012-03-11 23:07:32 +00:00
parent 5cf9243b20
commit 1dfffdd4f8
8 changed files with 7331 additions and 7221 deletions
+7 -2
View File
@@ -122,9 +122,14 @@
toppaper = null
if(href_list["read"])
var/obj/item/P = locate(href_list["read"])
var/obj/item/weapon/paper/P = locate(href_list["read"])
if(P)
P.examine(usr)
if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon)))
usr << browse("<HTML><HEAD><TITLE>[P.name]</TITLE></HEAD><BODY>[stars(P.info)][P.stamps]</BODY></HTML>", "window=[P.name]")
onclose(usr, "[P.name]")
else
usr << browse("<HTML><HEAD><TITLE>[P.name]</TITLE></HEAD><BODY>[P.info][P.stamps]</BODY></HTML>", "window=[P.name]")
onclose(usr, "[P.name]")
if(href_list["top"])
var/obj/item/P = locate(href_list["top"])
+33
View File
@@ -0,0 +1,33 @@
/obj/structure/filingcabinet
name = "filing cabinet"
desc = "A large cabinet with drawers."
icon = 'bureaucracy.dmi'
icon_state = "filing_cabinet0"
density = 1
anchored = 1
/obj/structure/filingcabinet/attackby(obj/item/P as obj, mob/user as mob)
if(istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/folder))
user << "You put the [P] in the [src]."
user.drop_item()
P.loc = src
else if(istype(P, /obj/item/weapon/wrench))
playsound(loc, 'Ratchet.ogg', 50, 1)
anchored = !anchored
user << "You [anchored ? "wrench" : "unwrench"] the [src]."
else
user << "You can't put a [P] in the [src]!"
/obj/structure/filingcabinet/attack_hand(mob/user as mob)
if(src.contents.len <= 0)
user << "The [src] is empty."
return
icon_state = "filing_cabinet1" //make it look open for kicks
var/obj/item/P = input(user,"Choose a file or folder to take out.","[src]", "Cancel") as null|obj in contents
if(!isnull(P) && in_range(src,user))
if(!user.get_active_hand())
user.put_in_hand(P)
else
P.loc = get_turf_loc(src)
icon_state = "filing_cabinet0"
return
+64 -2
View File
@@ -18,5 +18,67 @@
desc = "A yellow folder."
icon_state = "folder_yellow"
/obj/item/weapon/folder/attack_self()
usr << "lol!"
/obj/item/weapon/folder/white
desc = "A white folder."
icon_state = "folder_white"
/obj/item/weapon/folder/update_icon()
overlays = null
if(contents.len)
overlays += "folder_paper"
return
/obj/item/weapon/folder/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/paper))
user.drop_item()
W.loc = src
user << "\blue You put the [W] into the folder."
update_icon()
else if(istype(W, /obj/item/weapon/pen))
var/n_name = input(usr, "What would you like to label the folder?", "Folder Labelling", null) as text
n_name = copytext(n_name, 1, 32)
if ((loc == usr && usr.stat == 0))
name = "folder[(n_name ? text("- '[n_name]'") : null)]"
return
/obj/item/weapon/folder/attack_self(mob/user as mob)
var/dat = "<title>[name]</title>"
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>"
user << browse(dat, "window=folder")
onclose(user, "folder")
add_fingerprint(usr)
return
/obj/item/weapon/folder/Topic(href, href_list)
..()
if ((usr.stat || usr.restrained()))
return
if (usr.contents.Find(src))
if(href_list["remove"])
var/obj/item/P = locate(href_list["remove"])
if(P)
P.loc = usr.loc
if(ishuman(usr))
if(!usr.get_active_hand())
usr.put_in_hand(P)
else
P.loc = get_turf(usr)
if(href_list["read"])
var/obj/item/weapon/paper/P = locate(href_list["read"])
if(P)
if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon)))
usr << browse("<HTML><HEAD><TITLE>[P.name]</TITLE></HEAD><BODY>[stars(P.info)][P.stamps]</BODY></HTML>", "window=[P.name]")
onclose(usr, "[P.name]")
else
usr << browse("<HTML><HEAD><TITLE>[P.name]</TITLE></HEAD><BODY>[P.info][P.stamps]</BODY></HTML>", "window=[P.name]")
onclose(usr, "[P.name]")
//Update everything
attack_self(usr)
update_icon()
return
+6 -9
View File
@@ -29,19 +29,16 @@
src.overlays += "paper_words"
return
/obj/item/weapon/paper/examine(mob/user as mob)
/obj/item/weapon/paper/examine()
set src in oview(1)
//I think this is the best way to handle this! Shout at me if it isn't! -Pete
if(!user)
user = usr
// ..() //We don't want them to see the dumb "this is a paper" thing every time.
if (!( istype(user, /mob/living/carbon/human) || istype(user, /mob/dead/observer) || istype(user, /mob/living/silicon) ))
user << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[stars(info)][stamps]</BODY></HTML>", "window=[name]")
onclose(user, "[name]")
if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon)))
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[stars(info)][stamps]</BODY></HTML>", "window=[name]")
onclose(usr, "[name]")
else
user << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[info][stamps]</BODY></HTML>", "window=[name]")
onclose(user, "[name]")
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[info][stamps]</BODY></HTML>", "window=[name]")
onclose(usr, "[name]")
return
/obj/item/weapon/paper/verb/rename()