mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Adds a bunch of buildable wood stuff, resprites planks (#28528)
* New wooden furniture * Bonfire repath * Wood retexture * Wood Resprite * Fixes * Description fix * Fixes * Undo match changes * Undo match icon changes * Typepath script * rackable spears * bounding box adjustment * Spear Rack * Memorial tweaks * Apply suggestions from code review Co-authored-by: Toastical <vnndvp@gmail.com> Signed-off-by: ExusA <67055922+ExusA@users.noreply.github.com> * More memorial tweaks --------- Signed-off-by: ExusA <67055922+ExusA@users.noreply.github.com> Co-authored-by: Toastical <toastical@toaster.com> Co-authored-by: Toastical <vnndvp@gmail.com>
This commit is contained in:
co-authored by
Toastical
Toastical
parent
0ff8eec5ff
commit
a1ff715bf1
@@ -248,19 +248,25 @@ GLOBAL_LIST_INIT(wood_recipes, list(
|
||||
new /datum/stack_recipe("rake", /obj/item/cultivator/rake, 5, time = 1 SECONDS),
|
||||
new /datum/stack_recipe("wooden bucket", /obj/item/reagent_containers/glass/bucket/wooden, 3, time = 1 SECONDS),
|
||||
new /datum/stack_recipe("firebrand", /obj/item/match/firebrand, 2, time = 10 SECONDS),
|
||||
new /datum/stack_recipe("mug", /obj/item/reagent_containers/drinks/mug/wood, 1, time = 0.5 SECONDS),
|
||||
new /datum/stack_recipe("notice board", /obj/item/mounted/noticeboard, 5, time = 5 SECONDS),
|
||||
null,
|
||||
new /datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20),
|
||||
new /datum/stack_recipe_list("wood structures", list(
|
||||
new /datum/stack_recipe("wood table frame", /obj/structure/table_frame/wood, 2, time = 1 SECONDS),
|
||||
new /datum/stack_recipe("wooden chair", /obj/structure/chair/wood, 3, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("wooden stool", /obj/structure/chair/stool/wood, 2, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("wooden barricade", /obj/structure/barricade/wooden, 5, time = 5 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("bookcase", /obj/structure/bookcase, 5, time = 5 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("dresser", /obj/structure/dresser, 30, time = 5 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("wooden marker", /obj/structure/signpost/wood, 2, time = 2 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("spear rack", /obj/structure/spear_rack, 2, time = 2 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("dog bed", /obj/structure/bed/dogbed, 10, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("slab bed", /obj/structure/bed/wood, 5, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("wooden door", /obj/structure/mineral_door/wood, 10, time = 2 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("wooden airlock assembly", /obj/structure/door_assembly/door_assembly_wood, 4, time = 50, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("wooden airlock assembly", /obj/structure/door_assembly/door_assembly_wood, 4, time = 5 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("coffin", /obj/structure/closet/coffin, 5, time = 1.5 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("torch sconce", /obj/structure/lightable/torch, 5, time = 3 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
|
||||
)),
|
||||
new /datum/stack_recipe_list("pews", list(
|
||||
new /datum/stack_recipe("pew (middle)", /obj/structure/chair/sofa/pew, 5, one_per_turf = TRUE, on_floor = TRUE),
|
||||
|
||||
@@ -6,13 +6,79 @@
|
||||
*/
|
||||
|
||||
/obj/structure/signpost
|
||||
name = "signpost"
|
||||
icon = 'icons/obj/stationobjs.dmi'
|
||||
icon_state = "signpost"
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
density = FALSE
|
||||
new_attack_chain = TRUE
|
||||
var/writing = ""
|
||||
|
||||
/obj/structure/signpost/Initialize(mapload)
|
||||
. = ..()
|
||||
update()
|
||||
|
||||
/obj/structure/signpost/deconstruct()
|
||||
new /obj/item/stack/sheet/wood (get_turf(src), 2)
|
||||
qdel(src)
|
||||
..()
|
||||
|
||||
/obj/structure/signpost/wrench_act(mob/user, obj/item/I)
|
||||
. = TRUE
|
||||
if(!I.use_tool(src, user, 0, volume = I.tool_volume))
|
||||
return
|
||||
deconstruct()
|
||||
|
||||
/obj/structure/signpost/item_interaction(mob/living/user, obj/item/used, list/modifiers)
|
||||
if(istype(used, /obj/item/pen))
|
||||
rename(user)
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
return ..()
|
||||
|
||||
/obj/structure/signpost/proc/rename(mob/user)
|
||||
var/n_name = rename_interactive(user)
|
||||
if(n_name)
|
||||
writing = n_name
|
||||
update()
|
||||
add_fingerprint(user)
|
||||
|
||||
/obj/structure/signpost/proc/update()
|
||||
if(writing)
|
||||
overlays += "[initial(icon_state)]_writing"
|
||||
desc = "It says: '[writing]'."
|
||||
else
|
||||
overlays.Cut()
|
||||
desc = "It says... nothing."
|
||||
|
||||
/obj/structure/signpost/ruin
|
||||
name = "Salvation"
|
||||
writing = "This way home"
|
||||
|
||||
/obj/structure/signpost/wood
|
||||
name = "wooden sign"
|
||||
desc = "A small wooden marker."
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "signpost_wood"
|
||||
var/scarf = FALSE
|
||||
max_integrity = 100
|
||||
|
||||
/obj/structure/signpost/wood/AltClick(mob/living/user)
|
||||
if(!scarf)
|
||||
scarf = TRUE
|
||||
to_chat(user, "<span class='notice'>You tie a memorial wreath around the sign.</span>")
|
||||
else
|
||||
scarf = FALSE
|
||||
to_chat(user, "<span class='notice'>You untie the memorial wreath from the sign.</span>")
|
||||
update()
|
||||
|
||||
/obj/structure/signpost/wood/update()
|
||||
..()
|
||||
if(scarf)
|
||||
icon_state = "signpost_wood_scarf"
|
||||
else
|
||||
icon_state = "signpost_wood"
|
||||
|
||||
/obj/structure/ninjatele
|
||||
|
||||
name = "Long-Distance Teleportation Console"
|
||||
desc = "A console used to send a Spider Clan operative long distances rapidly."
|
||||
icon = 'icons/obj/ninjaobjects.dmi'
|
||||
|
||||
@@ -155,3 +155,44 @@ GLOBAL_LIST_INIT(shelf_colors, list("basic", "sci", "sup", "serv", "med", "sec",
|
||||
name = "brass weapon rack"
|
||||
icon_state = "gunrack_clockwork"
|
||||
build_stack_type = /obj/item/stack/tile/brass
|
||||
|
||||
/obj/structure/spear_rack
|
||||
name = "spear rack"
|
||||
desc = "A rack meant to hold spears, though you could probably balance other things on there if you tried..."
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "rack_wood"
|
||||
layer = TABLE_LAYER
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
pass_flags_self = PASSTAKE
|
||||
max_integrity = 80
|
||||
var/build_stack_type = /obj/item/stack/sheet/wood
|
||||
var/image/shelf_overlay
|
||||
|
||||
/obj/structure/spear_rack/Initialize(mapload)
|
||||
. = ..()
|
||||
var/static/list/spear_subtypes = typesof(/obj/item/spear)
|
||||
shelf_overlay = mutable_appearance('icons/obj/objects.dmi', "rack_wood_over")
|
||||
shelf_overlay.layer = LOW_ITEM_LAYER
|
||||
AddComponent(/datum/component/shelver/spear_rack, allowed_types_ = spear_subtypes)
|
||||
update_appearance(UPDATE_OVERLAYS)
|
||||
|
||||
if(mapload)
|
||||
SEND_SIGNAL(src, COMSIG_SHELF_ADDED_ON_MAPLOAD)
|
||||
|
||||
/obj/structure/spear_rack/update_overlays()
|
||||
return list(shelf_overlay)
|
||||
|
||||
/obj/structure/spear_rack/wrench_act(mob/living/user, obj/item/I)
|
||||
. = TRUE
|
||||
if(user.a_intent != INTENT_HELP)
|
||||
return FALSE
|
||||
if(!I.use_tool(src, user, 2.5 SECONDS, volume = I.tool_volume))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You disassemble [src].</span>")
|
||||
deconstruct()
|
||||
|
||||
/obj/structure/spear_rack/deconstruct(disassembled)
|
||||
new build_stack_type(get_turf(src), 2)
|
||||
return ..()
|
||||
|
||||
@@ -128,6 +128,13 @@
|
||||
|
||||
return TRUE
|
||||
|
||||
/obj/structure/bed/wood
|
||||
name = "wooden slab"
|
||||
desc = "It looks even less comfortable than the floor it's built on..."
|
||||
icon_state = "bed_wood"
|
||||
buildstacktype = /obj/item/stack/sheet/wood
|
||||
buildstackamount = 5
|
||||
|
||||
/*
|
||||
* Roller beds
|
||||
*/
|
||||
|
||||
@@ -506,6 +506,16 @@
|
||||
buildstackamount = 2
|
||||
buildstacktype = /obj/item/stack/sheet/bamboo
|
||||
|
||||
/obj/structure/chair/stool/wood
|
||||
name = "wooden chair"
|
||||
desc = "A short wooden stool. Pull up a stump, won't you?"
|
||||
icon_state = "wooden_stool"
|
||||
resistance_flags = FLAMMABLE
|
||||
max_integrity = 50
|
||||
buildstackamount = 2
|
||||
buildstacktype = /obj/item/stack/sheet/wood
|
||||
item_chair = /obj/item/chair/stool/wood
|
||||
|
||||
/obj/item/chair
|
||||
name = "chair"
|
||||
desc = "Bar brawl essential."
|
||||
@@ -573,6 +583,13 @@
|
||||
item_state = "stool_bamboo"
|
||||
origin_type = /obj/structure/chair/stool/bamboo
|
||||
|
||||
/obj/item/chair/stool/wood
|
||||
name = "wood stool"
|
||||
desc = "The barfighter's choice of stool."
|
||||
icon_state = "wooden_stool_toppled"
|
||||
item_state = "stool_wood"
|
||||
origin_type = /obj/structure/chair/stool/wood
|
||||
|
||||
/obj/item/chair/AltClick(mob/user)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
|
||||
@@ -909,6 +909,8 @@
|
||||
anchored = TRUE
|
||||
pass_flags_self = LETPASSTHROW | PASSTAKE
|
||||
max_integrity = 20
|
||||
var/deconstruction_item = /obj/item/rack_parts
|
||||
var/deconstruction_quantity = 1
|
||||
|
||||
/obj/structure/rack/examine(mob/user)
|
||||
. = ..()
|
||||
@@ -1001,8 +1003,11 @@
|
||||
/obj/structure/rack/deconstruct(disassembled = TRUE)
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
density = FALSE
|
||||
var/obj/item/rack_parts/newparts = new(loc)
|
||||
transfer_fingerprints_to(newparts)
|
||||
if(deconstruction_quantity)
|
||||
new deconstruction_item(loc, deconstruction_quantity)
|
||||
else
|
||||
var/decon_parts = new deconstruction_item(get_turf(src))
|
||||
transfer_fingerprints_to(decon_parts)
|
||||
qdel(src)
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user