Merge pull request #5702 from Donkie/traylayer

Morgue/Crematorium update
This commit is contained in:
Swag McYolosteinen
2014-12-16 14:27:49 +01:00
7 changed files with 160 additions and 219 deletions
+2 -2
View File
@@ -345,7 +345,7 @@
"gG" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair_beige"},/turf/simulated/floor/plasteel{icon_state = "floor"},/area/awaymission/centcomAway/general)
"gH" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/fancy/carpet,/area/awaymission/centcomAway/courtroom)
"gI" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/plating,/area/awaymission/centcomAway/maint)
"gJ" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "engine"},/area/awaymission/centcomAway/general)
"gJ" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "engine"},/area/awaymission/centcomAway/general)
"gK" = (/turf/simulated/floor/plasteel{icon_state = "engine"},/area/awaymission/centcomAway/general)
"gL" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access_txt = "103"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/centcomAway/general)
"gM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/awaymission/centcomAway/general)
@@ -409,7 +409,7 @@
"hS" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/turf/simulated/floor/wood,/area/awaymission/centcomAway/courtroom)
"hT" = (/obj/structure/table/wood,/turf/simulated/floor/wood,/area/awaymission/centcomAway/courtroom)
"hU" = (/obj/structure/sign/vacuum,/turf/simulated/wall/r_wall,/area/awaymission/centcomAway/hangar)
"hV" = (/obj/structure/crematorium,/turf/simulated/floor/plasteel{icon_state = "engine"},/area/awaymission/centcomAway/general)
"hV" = (/obj/structure/bodycontainer/crematorium,/turf/simulated/floor/plasteel{icon_state = "engine"},/area/awaymission/centcomAway/general)
"hW" = (/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/awaymission/centcomAway/general)
"hX" = (/obj/machinery/crema_switch{pixel_x = 0; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "engine"},/area/awaymission/centcomAway/general)
"hY" = (/obj/structure/closet/secure_closet/injection,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/centcomAway/courtroom)
+2 -2
View File
@@ -559,7 +559,7 @@
"kM" = (/obj/structure/sink/kitchen{pixel_y = 32},/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"kN" = (/obj/item/weapon/melee/energy/sword/saber/red,/obj/item/clothing/shoes/syndigaloshes,/obj/item/clothing/under/syndicate,/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/obj/item/weapon/paper/sc_safehint_paper_hydro,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"kO" = (/obj/machinery/hydroponics,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"kP" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/southblock)
"kP" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/southblock)
"kQ" = (/obj/machinery/vending/medical,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/southblock)
"kR" = (/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 1},/area/awaymission/southblock)
"kS" = (/obj/structure/table,/obj/item/weapon/paper/pamphlet{pixel_x = 2; pixel_y = 2},/obj/item/weapon/paper/pamphlet{pixel_x = -2; pixel_y = -2},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/awaymission/gateroom)
@@ -570,7 +570,7 @@
"kX" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/awaymission/arrivalblock)
"kY" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/awaymission/arrivalblock)
"kZ" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/awaymission/arrivalblock)
"la" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/awaymission/southblock)
"la" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/awaymission/southblock)
"lb" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 4},/area/awaymission/southblock)
"lc" = (/turf/simulated/floor/plasteel{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/awaymission/southblock)
"ld" = (/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 4},/area/awaymission/southblock)
@@ -4251,7 +4251,7 @@
"bDM" = (/obj/machinery/door_control{dir = 2; id = "Mechbay"; name = "Mech Bay Door Control"; pixel_x = -24; pixel_y = 0; req_access_txt = "29"},/turf/simulated/floor/plasteel,/area/assembly/chargebay)
"bDN" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/assembly/chargebay)
"bDO" = (/turf/simulated/floor/plasteel,/area/assembly/chargebay)
"bDP" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/assembly/assembly_line)
"bDP" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/assembly/assembly_line)
"bDQ" = (/obj/machinery/camera{c_tag = "Robotics Morgue"; dir = 2; network = list("SS13","RD")},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/assembly/assembly_line)
"bDR" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/assembly/assembly_line)
"bDS" = (/obj/machinery/door/window/southleft{name = "Robotics Deliveries"; req_access_txt = "29"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/assembly/assembly_line)
@@ -5438,7 +5438,7 @@
"caD" = (/obj/structure/cable/cyan{tag = "icon-1-2"; icon_state = "1-2"},/obj/structure/cable/cyan{tag = "icon-1-4"; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/asteroidstation/medbay)
"caE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/cyan{tag = "icon-2-8"; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/asteroidstation/medbay)
"caF" = (/obj/machinery/power/apc{dir = 1; name = "Genetics Research APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/cyan{tag = "icon-0-2"; icon_state = "0-2"},/turf/simulated/floor/plating,/area/medical/genetics)
"caG" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"caG" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"caH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"caI" = (/obj/machinery/camera{c_tag = "Medbay Morgue"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"caJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
@@ -5586,7 +5586,7 @@
"cdv" = (/obj/item/clothing/head/ushanka,/obj/item/clothing/under/soviet,/turf/simulated/floor/plating,/area/hallway/primary/aft{name = "Aft Hallway"})
"cdw" = (/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/obj/item/toy/snappop,/turf/simulated/floor/plating,/area/hallway/primary/aft{name = "Aft Hallway"})
"cdx" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 3},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"cdy" = (/obj/structure/crematorium,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"cdy" = (/obj/structure/bodycontainer/crematorium,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"cdz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"cdA" = (/obj/structure/closet/wardrobe/chaplain_black,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"cdB" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
@@ -5683,7 +5683,7 @@
"cfo" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 4},/area/hallway/primary/aft{name = "Aft Hallway"})
"cfp" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/hallway/primary/aft{name = "Aft Hallway"})
"cfq" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plating,/area/hallway/primary/aft{name = "Aft Hallway"})
"cfr" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"cfr" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"cfs" = (/obj/machinery/camera{c_tag = "Chapel Crematorium"; dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"cft" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"cfu" = (/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/item/weapon/storage/fancy/crayons,/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/chapel/main)
+1 -1
View File
@@ -249,7 +249,7 @@
"eO" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/space)
"eP" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel,/area/derelict/arrival)
"eQ" = (/obj/machinery/door/morgue{name = "coffin storage"; req_access_txt = "22"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
"eR" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
"eR" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
"eS" = (/obj/structure/table,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
"eT" = (/turf/simulated/floor/airless{icon_state = "white"},/area/space)
"eU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/hallway/primary)
@@ -1738,7 +1738,7 @@
"aHv" = (/obj/structure/stool/bed/chair/office/dark,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/library)
"aHw" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/wood,/area/library)
"aHx" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/library)
"aHy" = (/obj/structure/crematorium,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office)
"aHy" = (/obj/structure/bodycontainer/crematorium,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office)
"aHz" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office)
"aHA" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
"aHB" = (/obj/effect/landmark/start{name = "Chaplain"},/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
@@ -1968,7 +1968,7 @@
"aLR" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/wood,/area/library)
"aLS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/wood,/area/library)
"aLT" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/wood,/area/library)
"aLU" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office)
"aLU" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office)
"aLV" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office)
"aLW" = (/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
"aLX" = (/obj/machinery/camera{c_tag = "Chapel North"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
@@ -3102,8 +3102,8 @@
"bhH" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/checkpoint/medical)
"bhI" = (/turf/simulated/floor/plasteel,/area/security/checkpoint/medical)
"bhJ" = (/obj/machinery/computer/secure_data,/obj/item/device/radio/intercom{pixel_x = 25},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/checkpoint/medical)
"bhK" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"bhL" = (/obj/structure/morgue,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"bhK" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"bhL" = (/obj/structure/bodycontainer/morgue,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"bhM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"bhN" = (/turf/simulated/floor/plating,/area/storage/emergency)
"bhO" = (/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plating,/area/storage/emergency)
@@ -3251,7 +3251,7 @@
"bkA" = (/obj/machinery/power/apc{dir = 8; name = "Medbay Security APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/checkpoint/medical)
"bkB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel,/area/security/checkpoint/medical)
"bkC" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/checkpoint/medical)
"bkD" = (/obj/structure/morgue,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"bkD" = (/obj/structure/bodycontainer/morgue,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"bkE" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"bkF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue)
"bkG" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable,/turf/simulated/floor/plating,/area/assembly/chargebay)
+1 -1
View File
@@ -352,7 +352,7 @@
"gN" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel,/area/derelict/arrival)
"gO" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/arrival)
"gP" = (/obj/machinery/door/morgue{name = "coffin storage"; req_access_txt = "22"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
"gQ" = (/obj/structure/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
"gQ" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
"gR" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
"gS" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/space)
"gT" = (/obj/structure/window/reinforced,/turf/simulated/floor/airless{icon_state = "white"},/area/space)
+145 -204
View File
@@ -1,40 +1,108 @@
/* Morgue stuff
* Contains:
* Morgue
* Morgue trays
* Creamatorium
* Creamatorium trays
* Morgue tray
* Crematorium
* Crematorium tray
* Crematorium button
*/
/*
* Morgue
* Bodycontainer
* Parent class for morgue and crematorium
* For overriding only
*/
/obj/structure/morgue
name = "Morgue"
desc = "Used to keep bodies in until someone fetches them."
/obj/structure/bodycontainer
icon = 'icons/obj/stationobjs.dmi'
icon_state = "morgue1"
density = 1
var/obj/structure/m_tray/connected = null
anchored = 1.0
/obj/structure/morgue/New()
connected = new(src)
connected.connected = src
var/obj/structure/tray/connected = null
var/locked = 0
var/opendir = SOUTH
/obj/structure/bodycontainer/New()
..()
/obj/structure/morgue/Destroy()
/obj/structure/bodycontainer/Destroy()
open()
if(connected)
qdel(connected)
connected = null
..()
/obj/structure/morgue/on_log()
/obj/structure/bodycontainer/on_log()
update_icon()
/obj/structure/morgue/update_icon()
/obj/structure/bodycontainer/update_icon()
return
/obj/structure/bodycontainer/alter_health()
return src.loc
/obj/structure/bodycontainer/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/structure/bodycontainer/attack_hand(mob/user as mob)
if(locked)
user << "<span class='danger'>It's locked.</span>"
return
if(!connected)
user << "That doesn't appear to have a tray."
return
if(connected.loc == src)
open()
else
close()
add_fingerprint(user)
/obj/structure/bodycontainer/attackby(P as obj, mob/user as mob)
if (istype(P, /obj/item/weapon/pen))
var/t = input(user, "What would you like the label to be?", text("[]", name), null) as text
if (user.get_active_hand() != P)
return
if ((!in_range(src, usr) && src.loc != user))
return
t = copytext(sanitize(t),1,MAX_MESSAGE_LEN)
if (t)
name = text("[]- '[]'", initial(name), t)
else
name = initial(name)
add_fingerprint(user)
/obj/structure/bodycontainer/container_resist()
open()
/obj/structure/bodycontainer/proc/open()
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
var/turf/T = get_step(src, opendir)
for(var/atom/movable/A in src)
A.loc = T
update_icon()
/obj/structure/bodycontainer/proc/close()
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
for(var/atom/movable/A in connected.loc)
if(!A.anchored || A == connected)
A.loc = src
update_icon()
/*
* Morgue
*/
/obj/structure/bodycontainer/morgue
name = "morgue"
desc = "Used to keep bodies in until someone fetches them."
icon_state = "morgue1"
opendir = EAST
/obj/structure/bodycontainer/morgue/New()
connected = new/obj/structure/tray/m_tray(src)
connected.connected = src
..()
/obj/structure/bodycontainer/morgue/update_icon()
if (!connected || connected.loc != src) //open or the tray broke off somehow
src.icon_state = "morgue0"
else
@@ -55,128 +123,29 @@
src.icon_state = "morgue4"//clone that mofo
break
/obj/structure/morgue/alter_health()
return src.loc
/obj/structure/morgue/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/structure/morgue/attack_hand(mob/user as mob)
if(!connected)
user << "That doesn't appear to have a tray."
return
if(connected.loc == src)
open()
else
close()
add_fingerprint(user)
/obj/structure/morgue/attackby(P as obj, mob/user as mob)
if (istype(P, /obj/item/weapon/pen))
var/t = input(user, "What would you like the label to be?", text("[]", src.name), null) as text
if (user.get_active_hand() != P)
return
if ((!in_range(src, usr) && src.loc != user))
return
t = copytext(sanitize(t),1,MAX_MESSAGE_LEN)
if (t)
src.name = text("Morgue- '[]'", t)
else
src.name = "Morgue"
add_fingerprint(user)
/obj/structure/morgue/container_resist()
open()
/obj/structure/morgue/proc/open()
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
var/turf/T = get_step(src, EAST)
for(var/atom/movable/A in src)
A.loc = T
update_icon()
/obj/structure/morgue/proc/close()
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
for(var/atom/movable/A in connected.loc)
if(!A.anchored || A == connected)
A.loc = src
update_icon()
/*
* Morgue tray
*/
/obj/structure/m_tray
name = "morgue tray"
desc = "Apply corpse before closing."
icon = 'icons/obj/stationobjs.dmi'
icon_state = "morguet"
density = 1
layer = 2.0
var/obj/structure/morgue/connected = null
anchored = 1.0
throwpass = 1
/obj/structure/m_tray/Destroy()
if(connected)
connected.connected = null
connected.update_icon()
connected = null
..()
/obj/structure/m_tray/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/structure/m_tray/attack_hand(mob/user as mob)
if (src.connected)
connected.close()
add_fingerprint(user)
else
user << "That's not connected to anything."
/obj/structure/m_tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
if ((!( istype(O, /atom/movable) ) || O.anchored || get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src) || user.contents.Find(O)))
return
if (!ismob(O) && !istype(O, /obj/structure/closet/body_bag))
return
if (!ismob(user) || user.stat || user.lying || user.stunned)
return
O.loc = src.loc
if (user != O)
for(var/mob/B in viewers(user, 3))
B.show_message("<span class='danger'>[user] stuffs [O] into [src]!</span>", 1)
return
/*
* Crematorium
*/
/obj/structure/crematorium
var/global/list/crematoriums = new/list()
/obj/structure/bodycontainer/crematorium
name = "crematorium"
desc = "A human incinerator. Works well on barbeque nights."
icon = 'icons/obj/stationobjs.dmi'
icon_state = "crema1"
density = 1
var/obj/structure/c_tray/connected = null
anchored = 1.0
var/cremating = 0
opendir = SOUTH
var/id = 1
var/locked = 0
/obj/structure/crematorium/New()
connected = new(src)
/obj/structure/bodycontainer/crematorium/Destroy()
crematoriums.Remove(src)
..()
/obj/structure/bodycontainer/crematorium/New()
connected = new/obj/structure/tray/c_tray(src)
connected.connected = src
crematoriums.Add(src)
..()
/obj/structure/crematorium/Destroy()
open()
if(connected)
qdel(connected)
connected = null
..()
/obj/structure/crematorium/update_icon()
/obj/structure/bodycontainer/crematorium/update_icon()
if(!connected || connected.loc != src)
icon_state = "crema0"
else
@@ -186,51 +155,13 @@
else
src.icon_state = "crema1"
if(cremating)
if(locked)
src.icon_state = "crema_active"
return
/obj/structure/crematorium/alter_health()
return src.loc
/obj/structure/crematorium/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/structure/crematorium/attack_hand(mob/user as mob)
if (cremating || locked)
user << "<span class='danger'>It's locked.</span>"
return
if (!connected)
user << "That doesn't appear to have a tray."
return
if(connected.loc == src)
open()
else
close()
add_fingerprint(user)
/obj/structure/crematorium/attackby(P as obj, mob/user as mob)
if (istype(P, /obj/item/weapon/pen))
var/t = input(user, "What would you like the label to be?", text("[]", src.name), null) as text
if (user.get_active_hand() != P)
return
if ((!in_range(src, usr) > 1 && src.loc != user))
return
t = copytext(sanitize(t),1,MAX_MESSAGE_LEN)
if (t)
src.name = text("Crematorium- '[]'", t)
else
src.name = "Crematorium"
src.add_fingerprint(user)
return
/obj/structure/crematorium/container_resist()
open()
/obj/structure/crematorium/proc/cremate(mob/user as mob)
if(cremating)
/obj/structure/bodycontainer/crematorium/proc/cremate(mob/user as mob)
if(locked)
return //don't let you cremate something twice or w/e
if(contents.len <= 1)
@@ -240,7 +171,6 @@
else
audible_message("<span class='danger'>You hear a roar as the crematorium activates.</span>")
cremating = 1
locked = 1
update_icon()
@@ -261,57 +191,62 @@
new /obj/effect/decal/cleanable/ash(src)
sleep(30)
cremating = 0
locked = 0
update_icon()
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
/obj/structure/crematorium/proc/open()
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
var/turf/T = get_step(src, SOUTH)
for(var/atom/movable/A in src)
A.loc = T
update_icon()
/obj/structure/crematorium/proc/close()
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
for(var/atom/movable/A in connected.loc)
if(!A.anchored || A == connected)
A.loc = src
update_icon()
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) //you horrible people
/*
* Crematorium tray
Crematorium Switch
*/
/obj/machinery/crema_switch/attack_hand(mob/user as mob)
if(src.allowed(usr))
for (var/obj/structure/bodycontainer/crematorium/C in crematoriums)
if (C.id != id)
continue
C.cremate(user)
else
usr << "<span class='danger'>Access denied.</span>"
return
/obj/machinery/crema_switch/attackby(obj/item/W as obj, mob/user as mob)
if(W.GetID())
attack_hand(user)
else
return ..()
/*
* Generic Tray
* Parent class for morguetray and crematoriumtray
* For overriding only
*/
/obj/structure/c_tray
name = "crematorium tray"
desc = "Apply body before burning."
/obj/structure/tray
icon = 'icons/obj/stationobjs.dmi'
icon_state = "cremat"
density = 1
layer = 2.0
var/obj/structure/crematorium/connected = null
layer = 2.9
var/obj/structure/bodycontainer/connected = null
anchored = 1.0
throwpass = 1
/obj/structure/c_tray/Destroy()
/obj/structure/tray/Destroy()
if(connected)
connected.connected = null
connected.update_icon()
connected = null
..()
/obj/structure/c_tray/attack_paw(mob/user as mob)
/obj/structure/tray/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/structure/c_tray/attack_hand(mob/user as mob)
/obj/structure/tray/attack_hand(mob/user as mob)
if (src.connected)
connected.close()
add_fingerprint(user)
else
user << "That's not connected to anything."
/obj/structure/c_tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
/obj/structure/tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
if ((!( istype(O, /atom/movable) ) || O.anchored || get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src) || user.contents.Find(O)))
return
if (!ismob(O) && !istype(O, /obj/structure/closet/body_bag))
@@ -325,13 +260,19 @@
//Foreach goto(99)
return
/obj/machinery/crema_switch/attack_hand(mob/user as mob)
if(src.allowed(usr))
for (var/obj/structure/crematorium/C in world)
if (C.id == id)
if (!C.cremating)
C.cremate(user)
else
usr << "<span class='danger'>Access denied.</span>"
return
/*
* Crematorium tray
*/
/obj/structure/tray/c_tray
name = "crematorium tray"
desc = "Apply body before burning."
icon_state = "cremat"
/*
* Morgue tray
*/
/obj/structure/tray/m_tray
name = "morgue tray"
desc = "Apply corpse before closing."
icon_state = "morguet"