diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm
index 11d96de6459..7a804bbc20f 100644
--- a/code/game/objects/items/stacks/rods.dm
+++ b/code/game/objects/items/stacks/rods.dm
@@ -1,5 +1,6 @@
var/global/list/datum/stack_recipe/rod_recipes = list ( \
new/datum/stack_recipe("grille", /obj/structure/grille, 2, time = 10, one_per_turf = 1, on_floor = 1), \
+ new/datum/stack_recipe("table frame", /obj/structure/table_frame, 2, time = 10, one_per_turf = 1, on_floor = 1), \
)
/obj/item/stack/rods
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 15c4ab31162..34c8445a8d5 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -17,7 +17,6 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \
new/datum/stack_recipe("comfy chair", /obj/structure/stool/bed/chair/comfy/beige, 2, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("bed", /obj/structure/stool/bed, 2, one_per_turf = 1, on_floor = 1), \
null, \
- new/datum/stack_recipe("table parts", /obj/item/weapon/table_parts, 2), \
new/datum/stack_recipe("rack parts", /obj/item/weapon/rack_parts), \
new/datum/stack_recipe("closet", /obj/structure/closet, 2, time = 15, one_per_turf = 1, on_floor = 1), \
null, \
@@ -91,7 +90,7 @@ var/global/list/datum/stack_recipe/plasteel_recipes = list ( \
var/global/list/datum/stack_recipe/wood_recipes = list ( \
new/datum/stack_recipe("wooden sandals", /obj/item/clothing/shoes/sandal, 1), \
new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20), \
- new/datum/stack_recipe("table parts", /obj/item/weapon/table_parts/wood, 2), \
+ new/datum/stack_recipe("wood table frame", /obj/structure/table_frame/wood, 2, time = 10), \
new/datum/stack_recipe("rifle stock", /obj/item/weaponcrafting/stock, 10, time = 40), \
new/datum/stack_recipe("wooden chair", /obj/structure/stool/bed/chair/wood/normal, 3, time = 10, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("wooden barricade", /obj/structure/barricade/wooden, 5, time = 50, one_per_turf = 1, on_floor = 1), \
diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm
index 33c404d136e..ab3fd5579ef 100644
--- a/code/game/objects/structures/table_frames.dm
+++ b/code/game/objects/structures/table_frames.dm
@@ -2,7 +2,6 @@
* Contains:
* Frames
* Wooden Frames
- * Reinforced Frames
*/
@@ -19,7 +18,35 @@
anchored = 0
layer = 2.8
-/obj/structure/table_frame/attackby()
+/obj/structure/table_frame/attackby(var/obj/item/I, mob/user)
+ if(istype(I, /obj/item/weapon/wrench))
+ user << "Now disassembling [src]."
+ playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ if(do_after(user, 40))
+ new /obj/item/stack/rods(src.loc)
+ qdel(src)
+ return
+ if(istype(I, /obj/item/stack/sheet/plasteel))
+ user << "Now adding the [I] to the [src]."
+ if(do_after(user, 50))
+ new /obj/structure/table/reinforced(src.loc)
+ qdel(src)
+ I.use(1)
+ return
+ if(istype(I, /obj/item/stack/sheet/metal))
+ user << "Now adding the [I] to the [src]."
+ if(do_after(user, 20))
+ new /obj/structure/table(src.loc)
+ qdel(src)
+ I.use(1)
+ return
+ if(istype(I, /obj/item/stack/sheet/glass))
+ user << "Now adding the [I] to the [src]."
+ if(do_after(user, 20))
+ new /obj/structure/table/glass(src.loc)
+ qdel(src)
+ I.use(1)
+ return
/*
* Wooden Frames
@@ -30,14 +57,25 @@
desc = "Four wooden legs with four framing wooden rods for a wooden table. You could easily pass through this."
icon_state = "wood_frame"
- /*
- * Reinforced Frames
- */
-
-/obj/structure/table_frame/reinforced
- name = "reinforced table frame"
- desc = "Four metal legs with four framing rods for a table. They seem especially reinforced."
- icon_state = "reinforced_frame"
- density = 1
- anchored = 1
- throwpass = 1
\ No newline at end of file
+/obj/structure/table_frame/wood/attackby(var/obj/item/I, mob/user)
+ if(istype(I, /obj/item/weapon/wrench))
+ user << "Now disassembling [src]."
+ playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ if(do_after(user, 40))
+ new /obj/item/stack/sheet/mineral/wood(src.loc)
+ qdel(src)
+ return
+ if(istype(I, /obj/item/stack/sheet/mineral/wood))
+ user << "Now adding the [I] to the [src]."
+ if(do_after(user, 20))
+ new /obj/structure/table/wood(src.loc)
+ qdel(src)
+ I.use(1)
+ return
+ if(istype(I, /obj/item/stack/tile/carpet))
+ user << "Now adding the [I] to the [src]."
+ if(do_after(user, 20))
+ new /obj/structure/table/wood/poker(src.loc)
+ qdel(src)
+ I.use(1)
+ return
\ No newline at end of file
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 58c92f4338a..ef25f4c0fce 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -346,9 +346,9 @@ Destroy type values:
return
if(destroy_type == 2)
- user << "Now disassembling [src]"
+ user << "Now disassembling [src]."
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
- if (do_after(user, 50))
+ if (do_after(user, 30))
new frame(src.loc)
if(istype(src, /obj/structure/table/reinforced))
new /obj/item/stack/sheet/plasteel(src.loc)
@@ -401,7 +401,7 @@ Destroy type values:
name = "wooden table"
desc = "Do not apply fire to this. Rumour says it burns easily."
icon_state = "woodtable"
- frame = /obj/item/weapon/table_frame/wood
+ frame = /obj/structure/table_frame/wood
/obj/structure/table/wood/poker //No specialties, Just a mapping object.
@@ -416,7 +416,6 @@ Destroy type values:
name = "reinforced table"
desc = "A reinforced version of the four legged table, much harder to simply deconstruct."
icon_state = "reinftable"
- frame = /obj/item/weapon/table_frame/reinforced
var/status = 2
@@ -453,6 +452,7 @@ Destroy type values:
else
return
+
/*
* Racks
*/
diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi
index 37cb31eb248..6492be0537a 100644
Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ