diff --git a/code/datums/components/crafting/recipes/survival.dm b/code/datums/components/crafting/recipes/survival.dm new file mode 100644 index 00000000000..94f98d4a00f --- /dev/null +++ b/code/datums/components/crafting/recipes/survival.dm @@ -0,0 +1,12 @@ +/datum/crafting_recipe/shovel + name = "Wooden Shovel" + result = /obj/item/weapon/shovel/wood + reqs = list( + /obj/item/stack/material/stick = 5, + /obj/item/stack/material/wood = 1, + /obj/item/stack/material/fiber = 3, + /obj/item/stack/material/flint = 1 + ) + time = 120 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON \ No newline at end of file diff --git a/code/game/objects/structures/flora/flora.dm b/code/game/objects/structures/flora/flora.dm index 6f7963509e4..074f2a41644 100644 --- a/code/game/objects/structures/flora/flora.dm +++ b/code/game/objects/structures/flora/flora.dm @@ -113,7 +113,7 @@ destroy_on_harvest = TRUE harvest_tool = /obj/item/weapon/material/knife randomize_harvest_count = FALSE - harvest_loot = list(/obj/item/stack/material/fiber = 1) + harvest_loot = list(/obj/item/stack/material/fiber = rand(1-2)) max_harvests = 1 /obj/structure/flora/ausbushes/New() diff --git a/code/game/turfs/simulated/outdoors/outdoors_vr.dm b/code/game/turfs/simulated/outdoors/outdoors_vr.dm index 9e5f6961c9f..195762d91dc 100644 --- a/code/game/turfs/simulated/outdoors/outdoors_vr.dm +++ b/code/game/turfs/simulated/outdoors/outdoors_vr.dm @@ -33,13 +33,13 @@ "dirt0" = 150, "dirt1" = 25, "dirt2" = 25, - "dirt3" = 10, - "dirt4" = 3, - "dirt5" = 3, - "dirt6" = 1, - "dirt7" = 25, - "dirt8" = 10, - "dirt9" = 25 + "dirt3" = 25, + "dirt4" = 25, + "dirt5" = 10, + "dirt6" = 10, + "dirt7" = 3, + "dirt8" = 3, + "dirt9" = 1 ) flooring_override = pickweight(possibledirts) return ..() diff --git a/code/game/turfs/simulated/outdoors/survival_action_vr.dm b/code/game/turfs/simulated/outdoors/survival_action_vr.dm new file mode 100644 index 00000000000..8f5394fdcd6 --- /dev/null +++ b/code/game/turfs/simulated/outdoors/survival_action_vr.dm @@ -0,0 +1,43 @@ +/turf/simulated/floor/outdoors/newdirt/attack_hand(mob/user) + var/static/list/has_rocks = list("dirt5", "dirt6", "dirt7", "dirt8", "dirt9") + if(Adjacent(user)) + if(icon_state in has_rocks) + user.visible_message("[user] loosens rocks from [src]...", runemessage = "loosens rocks from [src]") + if(do_after(user, 5 SECONDS, exclusive = TASK_USER_EXCLUSIVE)) + var/obj/item/stack/material/flint/R = new(get_turf(src)) + R.amount = rand(1,4) + R.pixel_x = rand(-6,6) + R.pixel_y = rand(-6,6) + icon_state = "dirt0" + return + if(locate(/obj) in src) + to_chat(user, "The dirt isn't clear.") + else + var/choice= tgui_alert(user, "Do you want to build a growplot out of the dirt?", "Build growplot?" , list("Yes", "No")) + if(!choice||choice=="No") + return + user.visible_message("[user] starts piling up [src]...", runemessage = "piles up [src]") + if(do_after(user, 5 SECONDS, exclusive = TASK_USER_EXCLUSIVE)) + new /obj/machinery/portable_atmospherics/hydroponics/soil(src) + +/turf/simulated/floor/outdoors/newdirt/examine(var/mob/user) + . = ..() + if(Adjacent(user)) + var/static/list/has_rocks = list("dirt5", "dirt6", "dirt7", "dirt8", "dirt9") + if(icon_state in has_rocks) + . += "There are some rocks in the dirt." + +/obj/structure/flora/tree + var/sticks = TRUE + +/obj/structure/flora/tree/attack_hand(mob/user) + if(sticks) + user.visible_message("[user] searches [src] for loose sticks...", runemessage = "searches [src] for loose sticks") + if(do_after(user, 5 SECONDS, exclusive = TASK_USER_EXCLUSIVE)) + var/obj/item/stack/material/stick/S = new(get_turf(user)) + S.amount = rand(1,3) + S.pixel_x = rand(-6,6) + S.pixel_y = rand(-6,6) + sticks = FALSE + else + to_chat(user, "You don't see any loose sticks...") \ No newline at end of file diff --git a/code/modules/hydroponics/trays/tray_soil.dm b/code/modules/hydroponics/trays/tray_soil.dm index ff32f9712b6..dcb07bc9e7a 100644 --- a/code/modules/hydroponics/trays/tray_soil.dm +++ b/code/modules/hydroponics/trays/tray_soil.dm @@ -10,6 +10,16 @@ /obj/machinery/portable_atmospherics/hydroponics/soil/attackby(var/obj/item/O as obj, var/mob/user as mob) if(istype(O,/obj/item/weapon/tank)) return + if(istype(O,/obj/item/weapon/shovel)) + if(!seed) + var/choice= tgui_alert(user, "Do you want to destroy the growplot?", "Destroy growplot?" , list("Yes", "No")) + if(!choice||choice=="No") + return + user.visible_message("[user] starts dispersing the [src]...", runemessage = "disperses the [src]") + if(do_after(user, 5 SECONDS, exclusive = TASK_USER_EXCLUSIVE)) + qdel(src) + else + to_chat(user, "There is something growing here.") else ..() diff --git a/code/modules/materials/materials/organic/wood.dm b/code/modules/materials/materials/organic/wood.dm index 4293979c3b3..6b2fb2ca061 100644 --- a/code/modules/materials/materials/organic/wood.dm +++ b/code/modules/materials/materials/organic/wood.dm @@ -86,4 +86,21 @@ display_name = "alien wood" icon_colour = "#0099cc" // Cyan-ish stack_origin_tech = list(TECH_MATERIAL = 2, TECH_BIO = 2) - stack_type = /obj/item/stack/material/log/sif \ No newline at end of file + stack_type = /obj/item/stack/material/log/sif + +//VOREStation Addition Start +/datum/material/wood/stick + name = "wooden stick" + icon_colour = "#824B28" + display_name = "wood" + icon_base = "stick" + stack_type = /obj/item/stack/material/stick + sheet_collective_name = "pile" + pass_stack_colors = TRUE + supply_conversion_value = 1 + sheet_singular_name = "stick" + sheet_plural_name = "sticks" + +/datum/material/wood/stick/generate_recipes() + return +//VOREStation Addition End \ No newline at end of file diff --git a/code/modules/materials/materials/stone.dm b/code/modules/materials/materials/stone.dm index 823dd19914c..55eb39b7c88 100644 --- a/code/modules/materials/materials/stone.dm +++ b/code/modules/materials/materials/stone.dm @@ -32,4 +32,19 @@ recipes += list( new /datum/stack_recipe("light marble floor tile", /obj/item/stack/tile/wmarble, 1, 4, 20, recycle_material = "[name]"), new /datum/stack_recipe("dark marble floor tile", /obj/item/stack/tile/bmarble, 1, 4, 20, recycle_material = "[name]") - ) \ No newline at end of file + ) +//VOREStation Addition Start +/datum/material/stone/flint + name = "flint" + icon_colour = "#9e9c99" + weight = 26 + hardness = 30 + integrity = 201 + stack_type = /obj/item/stack/material/flint + supply_conversion_value = 2 + sheet_singular_name = "piece" + sheet_plural_name = "pieces" + +/datum/material/stone/flint/generate_recipes() + return +//VOREStation Addition End \ No newline at end of file diff --git a/code/modules/materials/sheets/organic/wood.dm b/code/modules/materials/sheets/organic/wood.dm index d3d1fd6418e..1ad248f7430 100644 --- a/code/modules/materials/sheets/organic/wood.dm +++ b/code/modules/materials/sheets/organic/wood.dm @@ -53,3 +53,15 @@ to_chat(user, "You add the newly-formed wood to the stack. It now contains [existing_wood.amount] planks.") else return ..() + +/obj/item/stack/material/stick + name = "wooden stick" + icon_state = "sheet-stick" + default_type = "wooden stick" + strict_color_stacking = TRUE + apply_colour = 1 + drop_sound = 'sound/items/drop/wooden.ogg' + pickup_sound = 'sound/items/pickup/wooden.ogg' + no_variants = FALSE + pass_color = TRUE + apply_colour = TRUE \ No newline at end of file diff --git a/code/modules/materials/sheets/stone.dm b/code/modules/materials/sheets/stone.dm index 17347ff9d8f..2b78fe0159b 100644 --- a/code/modules/materials/sheets/stone.dm +++ b/code/modules/materials/sheets/stone.dm @@ -13,3 +13,13 @@ no_variants = FALSE drop_sound = 'sound/items/drop/boots.ogg' pickup_sound = 'sound/items/pickup/boots.ogg' + +/obj/item/stack/material/flint + name = "flint piece" + icon_state = "sheet-rock" + default_type = "flint" + no_variants = FALSE + drop_sound = 'sound/items/drop/boots.ogg' + pickup_sound = 'sound/items/pickup/boots.ogg' + pass_color = TRUE + apply_colour = TRUE \ No newline at end of file diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 2500c0dd687..2f744ac7c52 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -137,6 +137,19 @@ throwforce = 7.0 w_class = ITEMSIZE_SMALL +/obj/item/weapon/shovel/wood + name = "wooden shovel" + desc = "An improvised tool for digging and moving dirt." + icon = 'icons/obj/items.dmi' + icon_state = "woodshovel" + slot_flags = SLOT_BELT + item_state = "woodshovel" + w_class = ITEMSIZE_NORMAL + matter = list(MAT_WOOD = 50) + sharp = 0 + edge = 1 + + /**********************Mining car (Crate like thing, not the rail car)**************************/ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index dc5f5057e63..d1a5f7ba5b6 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/turf/outdoors_vr.dmi b/icons/turf/outdoors_vr.dmi index 2629d85a433..d1c2d3844be 100644 Binary files a/icons/turf/outdoors_vr.dmi and b/icons/turf/outdoors_vr.dmi differ diff --git a/vorestation.dme b/vorestation.dme index 9042f20f53e..21dc0a367a0 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -355,6 +355,7 @@ #include "code\datums\components\crafting\recipes.dm" #include "code\datums\components\crafting\tool_quality.dm" #include "code\datums\components\crafting\recipes\primitive.dm" +#include "code\datums\components\crafting\recipes\survival.dm" #include "code\datums\components\crafting\recipes\weapons.dm" #include "code\datums\elements\_element.dm" #include "code\datums\elements\light_blocking.dm" @@ -1608,6 +1609,7 @@ #include "code\game\turfs\simulated\outdoors\outdoors_vr.dm" #include "code\game\turfs\simulated\outdoors\sky.dm" #include "code\game\turfs\simulated\outdoors\snow.dm" +#include "code\game\turfs\simulated\outdoors\survival_action_vr.dm" #include "code\game\turfs\snow\snow.dm" #include "code\game\turfs\space\cracked_asteroid.dm" #include "code\game\turfs\space\space.dm"