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:
ExusA
2025-03-16 18:02:40 +00:00
committed by GitHub
co-authored by Toastical Toastical
parent 0ff8eec5ff
commit a1ff715bf1
26 changed files with 314 additions and 117 deletions
@@ -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'
+41
View File
@@ -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))
+7 -2
View File
@@ -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)
/*