diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm
index ac795671ea..460065d357 100644
--- a/_maps/map_files/Mining/Lavaland.dmm
+++ b/_maps/map_files/Mining/Lavaland.dmm
@@ -655,7 +655,7 @@
/turf/open/floor/plating,
/area/mine/laborcamp)
"ia" = (
-/obj/item/reagent_containers/glass/bucket,
+/obj/item/reagent_containers/glass/bucket/wood,
/obj/structure/stone_tile/block/cracked{
dir = 4
},
@@ -750,8 +750,23 @@
/obj/item/stack/sheet/mineral/wood,
/obj/item/stack/sheet/mineral/wood,
/obj/item/stack/sheet/mineral/wood,
-/obj/item/seeds/tower,
-/obj/item/seeds/tower,
+/obj/item/seeds/ambrosia/deus{
+ yield = 5
+ potency = 50
+ },
+/obj/item/seeds/ambrosia/deus{
+ yield = 5
+ potency = 50
+ },
+/obj/item/seeds/tower{
+ yield = 5
+ potency = 50
+ },
+/obj/item/seeds/tower{
+ yield = 5
+ potency = 50
+ },
+/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen,
/turf/open/indestructible/boss,
/area/ruin/unpowered/ash_walkers)
"iJ" = (
@@ -2179,8 +2194,15 @@
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/ash_walkers)
"wm" = (
-/obj/item/seeds/glowshroom,
-/obj/item/seeds/glowshroom,
+/obj/item/seeds/glowshroom{
+ yield = 5
+ potency = 50
+ },
+/obj/item/seeds/glowshroom{
+ yield = 5
+ potency = 50
+ },
+/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck,
/obj/structure/stone_tile/block{
dir = 4
},
@@ -3327,8 +3349,15 @@
dir = 4
},
/obj/item/storage/bag/plants/portaseeder,
-/obj/item/seeds/cotton,
-/obj/item/seeds/cotton,
+/obj/item/storage/bag/plants,
+/obj/item/seeds/cotton{
+ yield = 5
+ potency = 50
+ },
+/obj/item/seeds/cotton{
+ yield = 5
+ potency = 50
+ },
/turf/open/indestructible/boss,
/area/ruin/unpowered/ash_walkers)
"Vj" = (
@@ -3355,10 +3384,9 @@
/turf/open/floor/plasteel,
/area/mine/laborcamp)
"VI" = (
-/obj/structure/stone_tile{
- dir = 8
- },
-/obj/structure/reagent_dispensers/watertank,
+/obj/structure/well_foundation,
+/obj/item/reagent_containers/glass/bucket/wood,
+/obj/item/reagent_containers/glass/bucket/wood,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/ash_walkers)
"VP" = (
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index d6c9a94273..6cb351cb74 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -229,6 +229,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
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 bucket", /obj/item/reagent_containers/glass/bucket/wood, 2, time = 30), \
new/datum/stack_recipe("wooden buckler", /obj/item/shield/riot/buckler, 20, time = 40), \
new/datum/stack_recipe("baseball bat", /obj/item/melee/baseball_bat, 5, time = 15),\
null, \
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index bdef4ab46d..78df9b5d57 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -444,9 +444,6 @@
C.adjustFireLoss(5)
to_chat(C, "The water is searing!")
-
-
-
/obj/item/bikehorn/rubberducky
name = "rubber ducky"
desc = "Rubber ducky you're so fine, you make bathtime lots of fuuun. Rubber ducky I'm awfully fooooond of yooooouuuu~" //thanks doohl
@@ -454,8 +451,6 @@
icon_state = "rubberducky"
item_state = "rubberducky"
-
-
/obj/structure/sink
name = "sink"
icon = 'icons/obj/watercloset.dmi'
@@ -465,7 +460,6 @@
var/busy = FALSE //Something's being washed at the moment
var/dispensedreagent = /datum/reagent/water // for whenever plumbing happens
-
/obj/structure/sink/attack_hand(mob/living/user)
. = ..()
if(.)
@@ -578,12 +572,82 @@
new /obj/item/stack/sheet/metal (loc, 3)
qdel(src)
-
-
/obj/structure/sink/kitchen
name = "kitchen sink"
icon_state = "sink_alt"
+/obj/structure/sink/well
+ name = "well"
+ desc = "A well, used to get water from an underground reservoir."
+ icon_state = "well"
+
+//The making of the well
+/obj/structure/well_foundation
+ name = "well foundation"
+ desc = "A small patch of dirt, ready for a well to be made over it. Just use a shovel!"
+ icon = 'icons/obj/watercloset.dmi'
+ icon_state = "well_1"
+ density = FALSE
+ anchored = TRUE
+ max_integrity = 1000
+ var/steps = 0
+
+/obj/structure/well_foundation/attackby(obj/item/S, mob/user, params)
+ if(steps == 0 && S.tool_behaviour == TOOL_SHOVEL)
+ S.use_tool(src, user, 80, volume=100)
+ steps = 1
+ desc = "A deep patch of dirt, ready for a well to be made over it. Just add some sandstone!"
+ icon_state = "well_1"
+ return TRUE
+ if(steps == 1 && istype(S, /obj/item/stack/sheet/mineral/sandstone))
+ if(S.use(15))
+ steps = 2
+ desc = "A patch of dirt and bricks. Just add some more sandstone!"
+ icon_state = "well_2"
+ return TRUE
+ else
+ to_chat(user, "You need at least fifteen pieces of sandstone!")
+ return
+ if(steps == 2 && istype(S, /obj/item/stack/sheet/mineral/sandstone))
+ if(S.use(25))
+ steps = 3
+ desc = "A large well foundation ready to be dug out. Just use a shovel!"
+ icon_state = "well_3"
+ return TRUE
+ else
+ to_chat(user, "You need at least tweenty-five pieces of sandstone!")
+ return
+ if(steps == 3 && S.tool_behaviour == TOOL_SHOVEL)
+ S.use_tool(src, user, 80, volume=100)
+ steps = 4
+ desc = "A deep patch of dirt, needs something to hold a bucket and rope. Just add some wood planks!"
+ icon_state = "well_3"
+ return TRUE
+ if(steps == 4 && istype(S, /obj/item/stack/sheet/mineral/wood))
+ if(S.use(3))
+ steps = 5
+ desc = "A dug out well, A dug out well with out rope. Just add some cloth!"
+ icon_state = "well_4"
+ return TRUE
+ else
+ to_chat(user, "You need at least three planks!")
+ return
+ if(steps == 5 && istype(S, /obj/item/stack/sheet/cloth))
+ if(S.use(2))
+ steps = 6
+ desc = "A dug out well with a rope. Just add a wooden bucket!"
+ icon_state = "well_5"
+ return TRUE
+ else
+ to_chat(user, "You need at least two pieces of cloth!")
+ return
+ if(steps == 6 && istype(S, /obj/item/reagent_containers/glass/bucket/wood))
+ new /obj/structure/sink/well(loc)
+ qdel(S)
+ qdel(src)
+ return
+ else
+ return ..()
/obj/structure/sink/puddle //splishy splashy ^_^
name = "puddle"
diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm
index 982122e314..1775a1f9b1 100644
--- a/code/modules/hydroponics/grown/towercap.dm
+++ b/code/modules/hydroponics/grown/towercap.dm
@@ -27,9 +27,6 @@
mutatelist = list()
rarity = 20
-
-
-
/obj/item/grown/log
seed = /obj/item/seeds/tower
name = "tower-cap log"
@@ -275,6 +272,9 @@
else if(istype(A, /obj/item) && prob(20))
var/obj/item/O = A
O.microwave_act()
+ else if(istype(A, /obj/item/grown/log))
+ qdel(A)
+ new /obj/item/stack/sheet/mineral/coal(loc, 1)
/obj/structure/bonfire/process()
if(!CheckOxygen())
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 78c335ce14..bf888dc50a 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -354,6 +354,14 @@
return
return ..()
+/obj/item/reagent_containers/glass/bucket/wood
+ name = "wooden bucket"
+ desc = "It's a bucket made of wood."
+ icon_state = "bucket_wooden"
+ custom_materials = null
+ slot_flags = NONE
+ item_flags = NO_MAT_REDEMPTION
+
/obj/item/reagent_containers/glass/beaker/waterbottle
name = "bottle of water"
desc = "A bottle of water filled at an old Earth bottling facility."
diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi
index 802e165550..e7d134c85f 100644
Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ
diff --git a/icons/obj/lavaland/ash_flora.dmi b/icons/obj/lavaland/ash_flora.dmi
index c8c128a0ab..07d30629cf 100644
Binary files a/icons/obj/lavaland/ash_flora.dmi and b/icons/obj/lavaland/ash_flora.dmi differ
diff --git a/icons/obj/watercloset.dmi b/icons/obj/watercloset.dmi
index e8cecbc847..5670b9e839 100644
Binary files a/icons/obj/watercloset.dmi and b/icons/obj/watercloset.dmi differ