diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 0aa19b13ef..c10fb0fa2c 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -191,6 +191,12 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20), \ new/datum/stack_recipe("wood table frame", /obj/structure/table_frame/wood, 2, time = 10), \ null, \ + new/datum/stack_recipe_list("pews", list( + new /datum/stack_recipe("pew (middle)", /obj/structure/chair/pew, 3, one_per_turf = TRUE, on_floor = TRUE),\ + new /datum/stack_recipe("pew (left)", /obj/structure/chair/pew/left, 3, one_per_turf = TRUE, on_floor = TRUE),\ + new /datum/stack_recipe("pew (right)", /obj/structure/chair/pew/right, 3, one_per_turf = TRUE, on_floor = TRUE),\ + )), + null, \ new/datum/stack_recipe("rifle stock", /obj/item/weaponcrafting/stock, 10, time = 40), \ new/datum/stack_recipe("rolling pin", /obj/item/kitchen/rollingpin, 2, time = 30), \ new/datum/stack_recipe("wooden buckler", /obj/item/shield/riot/buckler, 20, time = 40), \ diff --git a/code/game/objects/structures/beds_chairs/pew.dm b/code/game/objects/structures/beds_chairs/pew.dm new file mode 100644 index 0000000000..65440fb5d8 --- /dev/null +++ b/code/game/objects/structures/beds_chairs/pew.dm @@ -0,0 +1,72 @@ +/obj/structure/chair/pew + name = "wooden pew" + desc = "Kneel here and pray." + icon = 'icons/obj/sofa.dmi' + icon_state = "pewmiddle" + resistance_flags = FLAMMABLE + max_integrity = 70 + buildstacktype = /obj/item/stack/sheet/mineral/wood + buildstackamount = 3 + item_chair = null + +/obj/structure/chair/pew/left + name = "left wooden pew end" + icon_state = "pewend_left" + var/mutable_appearance/leftpewarmrest + +/obj/structure/chair/pew/left/Initialize() + leftpewarmrest = GetLeftPewArmrest() + leftpewarmrest.layer = ABOVE_MOB_LAYER + return ..() + +/obj/structure/chair/pew/left/proc/GetLeftPewArmrest() + return mutable_appearance('icons/obj/sofa.dmi', "pewend_left_armrest") + +/obj/structure/chair/pew/left/Destroy() + QDEL_NULL(leftpewarmrest) + return ..() + +/obj/structure/chair/pew/left/post_buckle_mob(mob/living/M) + . = ..() + update_leftpewarmrest() + +/obj/structure/chair/pew/left/proc/update_leftpewarmrest() + if(has_buckled_mobs()) + add_overlay(leftpewarmrest) + else + cut_overlay(leftpewarmrest) + +/obj/structure/chair/pew/left/post_unbuckle_mob() + . = ..() + update_leftpewarmrest() + +/obj/structure/chair/pew/right + name = "left wooden pew end" + icon_state = "pewend_right" + var/mutable_appearance/rightpewarmrest + +/obj/structure/chair/pew/right/Initialize() + rightpewarmrest = GetRightPewArmrest() + rightpewarmrest.layer = ABOVE_MOB_LAYER + return ..() + +/obj/structure/chair/pew/right/proc/GetRightPewArmrest() + return mutable_appearance('icons/obj/sofa.dmi', "pewend_right_armrest") + +/obj/structure/chair/pew/right/Destroy() + QDEL_NULL(rightpewarmrest) + return ..() + +/obj/structure/chair/pew/right/post_buckle_mob(mob/living/M) + . = ..() + update_rightpewarmrest() + +/obj/structure/chair/pew/right/proc/update_rightpewarmrest() + if(has_buckled_mobs()) + add_overlay(rightpewarmrest) + else + cut_overlay(rightpewarmrest) + +/obj/structure/chair/pew/right/post_unbuckle_mob() + . = ..() + update_rightpewarmrest() diff --git a/icons/obj/sofa.dmi b/icons/obj/sofa.dmi index 069fb1e08d..1ec3101c02 100644 Binary files a/icons/obj/sofa.dmi and b/icons/obj/sofa.dmi differ