diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index d51e52b99d..35e66d5f4b 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -787,7 +787,8 @@ GLOBAL_LIST_INIT(WALLITEMS, typecacheof(list( /obj/machinery/newscaster, /obj/machinery/firealarm, /obj/structure/noticeboard, /obj/machinery/button, /obj/machinery/computer/security/telescreen, /obj/machinery/embedded_controller/radio/simple_vent_controller, /obj/item/weapon/storage/secure/safe, /obj/machinery/door_timer, /obj/machinery/flasher, /obj/machinery/keycard_auth, - /obj/structure/mirror, /obj/structure/fireaxecabinet, /obj/machinery/computer/security/telescreen/entertainment + /obj/structure/mirror, /obj/structure/fireaxecabinet, /obj/machinery/computer/security/telescreen/entertainment, + /obj/structure/sign/picture_frame ))) GLOBAL_LIST_INIT(WALLITEMS_EXTERNAL, typecacheof(list( diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 6fa2aeffc5..48203bf630 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -215,7 +215,6 @@ /obj/item/wallframe/button name = "button frame" desc = "Used for building buttons." - icon = 'icons/obj/apc_repair.dmi' - icon_state = "button_frame" + icon_state = "button" result_path = /obj/machinery/button materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 97f09820d1..447ff5f9bc 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -1,10 +1,10 @@ /obj/item/weapon/electronics/firealarm name = "fire alarm electronics" - desc = "A circuit. It has a label on it, it says \"Can handle heat levels up to 40 degrees celsius!\"" + desc = "A fire alarm circuit. Can handle heat levels up to 40 degrees celsius." /obj/item/wallframe/firealarm name = "fire alarm frame" - desc = "Used for building Fire Alarms" + desc = "Used for building fire alarms" icon = 'icons/obj/monitors.dmi' icon_state = "fire_bitem" result_path = /obj/machinery/firealarm diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index a2aea05389..b8ba21fd35 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -784,8 +784,7 @@ /obj/item/wallframe/turret_control name = "turret control frame" desc = "Used for building turret control panels" - icon = 'icons/obj/apc_repair.dmi' - icon_state = "apc_frame" + icon_state = "apc" result_path = /obj/machinery/turretid materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) diff --git a/code/game/objects/items/apc_frame.dm b/code/game/objects/items/apc_frame.dm index edc7d0f3fe..b98e3c6e69 100644 --- a/code/game/objects/items/apc_frame.dm +++ b/code/game/objects/items/apc_frame.dm @@ -1,4 +1,5 @@ /obj/item/wallframe + icon = 'icons/obj/wallframe.dmi' materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT*2) flags = CONDUCT origin_tech = "materials=1;engineering=1" @@ -38,7 +39,7 @@ if(inverse) ndir = turn(ndir, 180) - var/obj/O = new result_path(get_turf(user), ndir, 1) + var/obj/O = new result_path(get_turf(user), ndir, TRUE) after_attach(O) qdel(src) @@ -71,8 +72,7 @@ /obj/item/wallframe/apc name = "\improper APC frame" desc = "Used for repairing or building APCs" - icon = 'icons/obj/apc_repair.dmi' - icon_state = "apc_frame" + icon_state = "apc" result_path = /obj/machinery/power/apc inverse = 1 diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index dbd2de2e75..6ab9493f4f 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -139,7 +139,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("book case", /obj/structure/bookcase, 4, time = 15, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("drying rack", /obj/machinery/smartfridge/drying_rack, 10, time = 15, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("dog bed", /obj/structure/bed/dogbed, 10, time = 10, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("picture frame", /obj/item/weapon/picture_frame, 1, time = 10),\ + new/datum/stack_recipe("picture frame", /obj/item/wallframe/picture, 1, time = 10),\ new/datum/stack_recipe("display case chassis", /obj/structure/displaycase_chassis, 5, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("wooden buckler", /obj/item/weapon/shield/riot/buckler, 20, time = 40), \ new/datum/stack_recipe("apiary", /obj/structure/beebox, 40, time = 50),\ diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm index bedd583a27..ad8d700fe5 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -144,6 +144,5 @@ /obj/item/wallframe/extinguisher_cabinet name = "extinguisher cabinet frame" desc = "Used for building wall-mounted extinguisher cabinets." - icon = 'icons/obj/apc_repair.dmi' - icon_state = "extinguisher_frame" + icon_state = "extinguisher" result_path = /obj/structure/extinguisher_cabinet diff --git a/code/modules/mob/living/carbon/human/human_defense.dm.rej b/code/modules/mob/living/carbon/human/human_defense.dm.rej new file mode 100644 index 0000000000..b62723dbc7 --- /dev/null +++ b/code/modules/mob/living/carbon/human/human_defense.dm.rej @@ -0,0 +1,14 @@ +diff a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm (rejected hunks) +@@ -682,10 +682,10 @@ + status += "numb" + if(status == "") + status = "OK" +- to_chat(src, " [status == "OK" ? "\blue" : "\red"] Your [LB.name] is [status].") ++ to_chat(src, "\t [status == "OK" ? "\blue" : "\red"] Your [LB.name] is [status].") + + for(var/obj/item/I in LB.embedded_objects) +- to_chat(src, " There is \a [I] embedded in your [LB.name]!") ++ to_chat(src, "\t There is \a [I] embedded in your [LB.name]!") + + for(var/t in missing) + to_chat(src, "Your [parse_zone(t)] is missing!") diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 2e92a318c7..e2447d6e4a 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -309,7 +309,7 @@ var/icon/small_img = icon(temp) var/icon/ic = icon('icons/obj/items.dmi',"photo") small_img.Scale(8, 8) - ic.Blend(small_img,ICON_OVERLAY, 10, 13) + ic.Blend(small_img,ICON_OVERLAY, 13, 13) P.icon = ic P.img = temp P.desc = mobs @@ -326,7 +326,7 @@ var/icon/small_img = icon(temp) var/icon/ic = icon('icons/obj/items.dmi',"photo") small_img.Scale(8, 8) - ic.Blend(small_img,ICON_OVERLAY, 10, 13) + ic.Blend(small_img,ICON_OVERLAY, 13, 13) var/icon = ic var/img = temp var/desc = mobs @@ -488,27 +488,28 @@ // Picture frames -/obj/item/weapon/picture_frame +/obj/item/wallframe/picture name = "picture frame" desc = "The perfect showcase for your favorite deathtrap memories." icon = 'icons/obj/decals.dmi' + materials = list() + flags = 0 icon_state = "frame-empty" + result_path = /obj/structure/sign/picture_frame var/obj/item/weapon/photo/displayed -/obj/item/weapon/picture_frame/attackby(obj/item/I, mob/user) +/obj/item/wallframe/picture/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/weapon/photo)) if(!displayed) - var/obj/item/weapon/photo/P = I - if(!user.transferItemToLoc(P, src)) + if(!user.transferItemToLoc(I, src)) return - displayed = P + displayed = I update_icon() else to_chat(user, "\The [src] already contains a photo.") - ..() -/obj/item/weapon/picture_frame/attack_hand(mob/user) +/obj/item/wallframe/picture/attack_hand(mob/user) if(user.get_inactive_held_item() != src) ..() return @@ -519,37 +520,31 @@ displayed = null update_icon() -/obj/item/weapon/picture_frame/attack_self(mob/user) +/obj/item/wallframe/picture/attack_self(mob/user) user.examinate(src) -/obj/item/weapon/picture_frame/examine(mob/user) +/obj/item/wallframe/picture/examine(mob/user) if(user.is_holding(src) && displayed) displayed.show(user) else ..() -/obj/item/weapon/picture_frame/update_icon() +/obj/item/wallframe/picture/update_icon() cut_overlays() if(displayed) add_overlay(getFlatIcon(displayed)) - else - icon_state = initial(icon_state) + add_overlay("frame-overlay") -/obj/item/weapon/picture_frame/afterattack(atom/target, mob/user, proximity) - var/turf/T = target - if(!iswallturf(T)) - return - user.visible_message("[user] fastens [src] to [T].", \ - "You attach the sign to [T].") - playsound(T, 'sound/items/Deconstruct.ogg', 50, 1) - var/obj/structure/sign/picture_frame/PF = new /obj/structure/sign/picture_frame(T) +/obj/item/wallframe/picture/after_attach(obj/O) + ..() + var/obj/structure/sign/picture_frame/PF = O PF.copy_overlays(src) if(displayed) PF.framed = displayed if(contents.len) var/obj/item/I = pick(contents) I.forceMove(PF) - qdel(src) + /obj/structure/sign/picture_frame name = "picture frame" @@ -558,35 +553,33 @@ icon_state = "frame-empty" var/obj/item/weapon/photo/framed +/obj/structure/sign/picture_frame/New(loc, dir, building) + ..() + if(dir) + setDir(dir) + if(building) + pixel_x = (dir & 3)? 0 : (dir == 4 ? -30 : 30) + pixel_y = (dir & 3)? (dir ==1 ? -30 : 30) : 0 + /obj/structure/sign/picture_frame/examine(mob/user) if(in_range(src, user) && framed) framed.show(user) else ..() -/obj/structure/sign/picture_frame/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/weapon/screwdriver)) - user.visible_message("[user] starts removing [src]...", \ - "You start unfastening [src].") - playsound(src, O.usesound, 50, 1) - if(!do_after(user, 30*O.toolspeed, target = src)) - return - playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) - user.visible_message("[user] unfastens [src].", \ - "You unfasten [src].") - var/obj/item/weapon/picture_frame/F = new /obj/item/weapon/picture_frame(get_turf(user)) - if(framed) - F.displayed = framed - framed = null - if(contents.len) - var/obj/item/I = pick(contents) - I.forceMove(F) - F.update_icon() - qdel(src) +/obj/structure/sign/picture_frame/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver) || istype(I, /obj/item/weapon/wrench)) + to_chat(user, "You start unsecuring [name]...") + playsound(loc, I.usesound, 50, 1) + if(do_after(user, 30*I.toolspeed, target = src)) + playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) + to_chat(user, "You unsecure [name].") + deconstruct() + return - else if(istype(O, /obj/item/weapon/photo)) + else if(istype(I, /obj/item/weapon/photo)) if(!framed) - var/obj/item/weapon/photo/P = O + var/obj/item/weapon/photo/P = I if(!user.transferItemToLoc(P, src)) return framed = P @@ -604,5 +597,16 @@ cut_overlays() if(framed) add_overlay(getFlatIcon(framed)) - else - icon_state = initial(icon_state) \ No newline at end of file + add_overlay("frame-overlay") + +/obj/structure/sign/picture_frame/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + var/obj/item/wallframe/picture/F = new /obj/item/wallframe/picture(loc) + if(framed) + F.displayed = framed + framed = null + if(contents.len) + var/obj/item/I = pick(contents) + I.forceMove(F) + F.update_icon() + qdel(src) diff --git a/icons/obj/apc_repair.dmi b/icons/obj/apc_repair.dmi deleted file mode 100644 index 220a267fe7..0000000000 Binary files a/icons/obj/apc_repair.dmi and /dev/null differ diff --git a/icons/obj/decals.dmi b/icons/obj/decals.dmi index 46d2ba0d1a..d86d2e5e40 100644 Binary files a/icons/obj/decals.dmi and b/icons/obj/decals.dmi differ diff --git a/icons/obj/wallframe.dmi b/icons/obj/wallframe.dmi new file mode 100644 index 0000000000..48eff704b6 Binary files /dev/null and b/icons/obj/wallframe.dmi differ