diff --git a/code/game/objects/items/weapons/table_rack_parts.dm b/code/game/objects/items/weapons/table_rack_parts.dm
index 6498aaa227a..d66945d1b75 100644
--- a/code/game/objects/items/weapons/table_rack_parts.dm
+++ b/code/game/objects/items/weapons/table_rack_parts.dm
@@ -50,6 +50,7 @@
/obj/item/weapon/table_parts/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if (istype(W, /obj/item/weapon/wrench))
+ new /obj/item/stack/sheet/metal( user.loc )
new /obj/item/stack/sheet/metal( user.loc )
//SN src = null
qdel(src)
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index d59055afdcf..1fa27723486 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -5,6 +5,11 @@
layer = TURF_LAYER + 0.9
var/state = 0
var/health = 200
+ var/metalUsed = 2 //used to determine amount returned in deconstruction
+
+/obj/structure/girder/proc/refundMetal(metalAmount) //refunds metal used in construction when deconstructed
+ for(var/i=0;i < metalAmount;i++)
+ new /obj/item/stack/sheet/metal(get_turf(src))
/obj/structure/girder/attackby(obj/item/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/wrench) && state == 0)
@@ -14,7 +19,7 @@
if(do_after(user,40, target = src))
if(!src) return
user << "\blue You dissasembled the girder!"
- new /obj/item/stack/sheet/metal(get_turf(src))
+ refundMetal(metalUsed)
qdel(src)
else if(!anchored)
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
@@ -29,18 +34,18 @@
if(do_after(user,30, target = src))
if(!src) return
user << "\blue You slice apart the girder!"
- new /obj/item/stack/sheet/metal(get_turf(src))
+ refundMetal(metalUsed)
qdel(src)
else if(istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill))
user << "\blue You drill through the girder!"
- new /obj/item/stack/sheet/metal(get_turf(src))
+ refundMetal(metalUsed)
qdel(src)
else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
playsound(src.loc, 'sound/weapons/sonic_jackhammer.ogg', 100, 1)
user << "You Disintegrate the girder!"
- new /obj/item/stack/sheet/metal(get_turf(src))
+ refundMetal(metalUsed)
qdel(src)
else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 && istype(src,/obj/structure/girder/reinforced))
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 3cbad10c5c9..354a7c1b83c 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -566,7 +566,8 @@
/obj/structure/table/woodentable/attackby(obj/item/I as obj, mob/user as mob, params)
if (istype(I, /obj/item/stack/tile/grass))
- qdel(I)
+ var/obj/item/stack/tile/grass/gr = I
+ gr.use(1)
new /obj/structure/table/woodentable/poker( src.loc )
qdel(src)
visible_message("[user] adds the grass to the wooden table")
@@ -610,7 +611,7 @@
qdel(src)
return
- if(!(I.flags & ABSTRACT))
+ if(!(I.flags & ABSTRACT) && !(istype(I, /obj/item/stack/tile/grass)))
if(user.drop_item())
I.Move(loc)
var/list/click_params = params2list(params)
@@ -621,6 +622,7 @@
I.pixel_x = Clamp(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2)
I.pixel_y = Clamp(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2)
+
return 1
/obj/structure/table/woodentable/poker //No specialties, Just a mapping object.