From 0ef4e2465dad0ace3ebcf3bb9ccb0d9f5db53882 Mon Sep 17 00:00:00 2001 From: Dahlular Date: Sat, 16 Jan 2021 08:57:25 -0700 Subject: [PATCH 1/3] Basic Crafting Recipes and Items --- hyperstation/code/modules/cargo/sweatshop.dm | 153 +++++++++++++++++++ hyperstation/icons/obj/sweatshop.dmi | Bin 0 -> 1481 bytes tgstation.dme | 1 + 3 files changed, 154 insertions(+) create mode 100644 hyperstation/code/modules/cargo/sweatshop.dm create mode 100644 hyperstation/icons/obj/sweatshop.dmi diff --git a/hyperstation/code/modules/cargo/sweatshop.dm b/hyperstation/code/modules/cargo/sweatshop.dm new file mode 100644 index 00000000..cc399d10 --- /dev/null +++ b/hyperstation/code/modules/cargo/sweatshop.dm @@ -0,0 +1,153 @@ +//THE TOOLS + +/obj/item/handsaw + name = "handsaw" + desc = "A shoddy tool used to process wood into smaller segments." + icon = 'hyperstation/icons/obj/sweatshop.dmi' + icon_state = "handsaw" + slot_flags = ITEM_SLOT_BACK + force = 8 + sharpness = TRUE + w_class = WEIGHT_CLASS_HUGE + materials = list(MAT_METAL=50) + attack_verb = list("slashed", "sawed") + +/obj/item/hammer + name = "hammer" + desc = "A tool used to manually bash nails into place." + icon = 'hyperstation/icons/obj/sweatshop.dmi' + icon_state = "hammer" + slot_flags = ITEM_SLOT_BELT + force = 7 + sharpness = FALSE + w_class = WEIGHT_CLASS_NORMAL + materials = list(MAT_METAL=100) + attack_verb = list("bonked", "nailed") + +/obj/item/glue + name = "glue" + desc = "Used to haphazardly stick things together; secured by the toughest Monkey Glue(TM)." + icon = 'hyperstation/icons/obj/sweatshop.dmi' + icon_state = "glue" + force = 0 + sharpness = FALSE + w_class = WEIGHT_CLASS_SMALL + materials = list(MAT_PLASTIC=25) + attack_verb = list("glued", "coughed") + +/obj/item/borer + name = "manual borer" + desc = "An incredibly awful tool used to manually drill holes into something... Surely there's a better option." + icon = 'hyperstation/icons/obj/sweatshop.dmi' + icon_state = "borer" + force = 3 + sharpness = TRUE + w_class = WEIGHT_CLASS_SMALL + materials = list(MAT_METAL=25) + attack_verb = list("bored", "drilled") + +/obj/item/sandpaper + name = "sandpaper strip" + desc = "A strip of sandpaper, commonly used for sanding down rough surfaces into a more smooth shape." + icon = 'hyperstation/icons/obj/sweatshop.dmi' + icon_state = "sandpaper" + force = 1 + sharpness = FALSE + w_class = WEIGHT_CLASS_TINY + materials = list(MAT_GLASS=1) //lmao + attack_verb = list("sanded", "licked") + +/obj/item/nails + name = "metal nails" + desc = "A bunch of nails, used for hammering into things." + icon = 'hyperstation/icons/obj/sweatshop.dmi' + icon_state = "nails" + force = 0 + sharpness = TRUE + w_class = WEIGHT_CLASS_TINY + materials = list(MAT_METAL=10) + attack_verb = list("nailed", "screwed") + +/obj/item/woodenplatform + name = "wood platform" + desc = "A somewhat sturdy cropping of a plank. This one is an alright foundation for chairs and stools." + icon = 'hyperstation/icons/obj/sweatshop.dmi' + icon_state = "wood-platform" + force = 3 + sharpness = FALSE + w_class = WEIGHT_CLASS_NORMAL + attack_verb = list("slapped", "thunked") + +/obj/item/woodenblock + name = "wood block" + desc = "A chopped platform into a wooden block. This one can be used for sanded into pegs, or used as a base on it's own." + icon = 'hyperstation/icons/obj/sweatshop.dmi' + icon_state = "wood-block" + force = 2 + sharpness = FALSE + w_class = WEIGHT_CLASS_SMALL + attack_verb = list("slapped", "thunked") + +/obj/item/woodenpeg + name = "wood peg" + desc = "A wooden peg. Useful for fitting into holes." + icon = 'hyperstation/icons/obj/sweatshop.dmi' + icon_state = "wood-peg" + force = 1 + sharpness = FALSE + w_class = WEIGHT_CLASS_TINY + attack_verb = list("donked", "thunked") + +//BASIC RECIPES - To do, add sound + +/obj/item/stack/sheet/mineral/wood/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/handsaw)) + to_chat(user," You begin to saw [src] in half...") + if(isturf(loc) && do_after(user, 40)) + new /obj/item/woodenplatform(loc) + new /obj/item/woodenplatform(loc) //send help i dont know how to make two in the same line lmfao + to_chat(user, " You saw [src] in half.") + qdel(src) + else + to_chat(user, "You need to put [src] on a surface and hold still to saw it!") + else + ..() + +/obj/item/woodenplatform/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/handsaw)) + to_chat(user," You begin cut [src] into smaller pieces...") + if(isturf(loc) && do_after(user, 20)) + new /obj/item/woodenblock(loc) + new /obj/item/woodenblock(loc) + new /obj/item/woodenblock(loc) + new /obj/item/woodenblock(loc) + to_chat(user, " You cut [src] into four pieces.") + qdel(src) + else + to_chat(user, "You need to put [src] on a surface and hold still to saw it!") + else + ..() + +/obj/item/woodenblock/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/sandpaper)) + to_chat(user," You carefully begin to sand down [src]...") + if(isturf(loc) && do_after(user, 50)) + new /obj/item/woodenpeg(loc) + to_chat(user, " You smooth [src] into a peg.") + qdel(src) + else + to_chat(user, "You need to put [src] on a surface and hold still to sand it!") + else + ..() + +/obj/item/stack/rods/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/wirecutters)) + to_chat(user," You tediously begin to cut [src] into several nails.") + if(isturf(loc) && do_after(user, 80)) + new /obj/item/nails(loc) + to_chat(user, " You make some crude metal nails.") + qdel(src) + else + to_chat(user, "You need to put [src] on a surface and hold still to cut it!") + else + ..() diff --git a/hyperstation/icons/obj/sweatshop.dmi b/hyperstation/icons/obj/sweatshop.dmi new file mode 100644 index 0000000000000000000000000000000000000000..5064ebfea86f220f48984c5c0fdab6c5efaccfdc GIT binary patch literal 1481 zcmV;)1vdJLP)nU|KIpPzz&f5XDS)YH+Fl94zoA(Vr6pp!knwQr`CiC|!0I{*Mz3=d{o2%>97 zmX?;Iqoa>OMNdLF*`7%>V!Z0d!JMQvg8b*k%9#0H%6WSad{Xb7OL8 zaCB*JZU6vyoQ=`D3d1lA1<=|43X{w&eXU(eLdekkgHkK8sbAP`{rfe|(xup&t~gu- zYT2zH#))I)%2mWIga{Gy*a$E@Kx!!A(uce`QnGl^ zxXnLKYxG67suvc~Y<)#l$d@^A71DrIp{SCzeCHIz#d=+*XJsGH%3@sq!It$?_kGR> z3=4Qw{zLel000B1Nkl zX#M^lW0$mG2e~A4^dHCh6dq~%zPY=k1x5K^Vur>fiL-z6=K_IXC^SLC?7Z6$4g}@` zAw^l3m|=E45^)*AK`<;#3hwZq1vBAb5Dc$;;|Jz~p@rb$>xmgC-&LV7Ex$T3gUx^A z`h-@0Nqs9}SYGzPw_{0_Fs!Vuu88?-Oo5DHg$Vct!e3+ZiD6OHhvjILUn6J!Y=Ldy z3)VNd0?Nk{kT67}>l^Q)-ua{ryduRmH{)CHH)GiOZMuFUk$F@=4T%rf*gSsP($XY zkZ&89DHMuD5adUjoJya;D-|3{2#Dbq%TOqupXZMlf{TmN87PRLEWwAB#5TlsX|R^* zMX7WKg3@mpe&3KCHPB#QLJXOVB;PS)M-7|+gY5hrLv~!j<>eT|sbCyF7{(i(7?(eG z_|2cjG+t^{XjH3JzxZ0MR=cXzGz~XgU*p&7sz6ZHw3>EB47i})z!kcx8UjPLY8Q#a zziHf{3e(VazCmf;wpyI0X1#q!3=OtH)lC6jX*P{kr-}0$-FCN44Ge{Zezvb^q}5*fDF3yAcoOK z=(>FnkIK$~(}Q~Nks9v%b+U#Az^u)I0RCfA@E*YYdyh{K;2?B3hWWZ_680boWYb|i zAbet=S6=-}f@W}ph8N_^c=tJ+*n8q}w;XNvT^EH1B75L)rr-A Date: Sun, 17 Jan 2021 04:06:31 -0700 Subject: [PATCH 2/3] Stool framework --- .../code/modules/cargo/exports/sweatshop.dm | 4 + hyperstation/code/modules/cargo/sweatshop.dm | 153 ------------ .../code/modules/cargo/sweatshop/metal.dm | 6 + .../code/modules/cargo/sweatshop/sweatshop.dm | 219 ++++++++++++++++++ .../code/modules/cargo/sweatshop/wooden.dm | 102 ++++++++ hyperstation/code/modules/crafting/recipes.dm | 21 ++ .../icons/obj/cargo/sweatshop/metal.dmi | Bin 0 -> 881 bytes .../icons/obj/cargo/sweatshop/sweatshop.dmi | Bin 0 -> 1315 bytes .../icons/obj/cargo/sweatshop/wooden.dmi | Bin 0 -> 947 bytes hyperstation/icons/obj/sweatshop.dmi | Bin 1481 -> 0 bytes tgstation.dme | 5 +- 11 files changed, 356 insertions(+), 154 deletions(-) create mode 100644 hyperstation/code/modules/cargo/exports/sweatshop.dm delete mode 100644 hyperstation/code/modules/cargo/sweatshop.dm create mode 100644 hyperstation/code/modules/cargo/sweatshop/metal.dm create mode 100644 hyperstation/code/modules/cargo/sweatshop/sweatshop.dm create mode 100644 hyperstation/code/modules/cargo/sweatshop/wooden.dm create mode 100644 hyperstation/icons/obj/cargo/sweatshop/metal.dmi create mode 100644 hyperstation/icons/obj/cargo/sweatshop/sweatshop.dmi create mode 100644 hyperstation/icons/obj/cargo/sweatshop/wooden.dmi delete mode 100644 hyperstation/icons/obj/sweatshop.dmi diff --git a/hyperstation/code/modules/cargo/exports/sweatshop.dm b/hyperstation/code/modules/cargo/exports/sweatshop.dm new file mode 100644 index 00000000..326364df --- /dev/null +++ b/hyperstation/code/modules/cargo/exports/sweatshop.dm @@ -0,0 +1,4 @@ +/datum/export/sweatshop + cost = 850 + unit_name = "custom furniture" + export_types = list(/obj/item/processed/wood/stool) diff --git a/hyperstation/code/modules/cargo/sweatshop.dm b/hyperstation/code/modules/cargo/sweatshop.dm deleted file mode 100644 index cc399d10..00000000 --- a/hyperstation/code/modules/cargo/sweatshop.dm +++ /dev/null @@ -1,153 +0,0 @@ -//THE TOOLS - -/obj/item/handsaw - name = "handsaw" - desc = "A shoddy tool used to process wood into smaller segments." - icon = 'hyperstation/icons/obj/sweatshop.dmi' - icon_state = "handsaw" - slot_flags = ITEM_SLOT_BACK - force = 8 - sharpness = TRUE - w_class = WEIGHT_CLASS_HUGE - materials = list(MAT_METAL=50) - attack_verb = list("slashed", "sawed") - -/obj/item/hammer - name = "hammer" - desc = "A tool used to manually bash nails into place." - icon = 'hyperstation/icons/obj/sweatshop.dmi' - icon_state = "hammer" - slot_flags = ITEM_SLOT_BELT - force = 7 - sharpness = FALSE - w_class = WEIGHT_CLASS_NORMAL - materials = list(MAT_METAL=100) - attack_verb = list("bonked", "nailed") - -/obj/item/glue - name = "glue" - desc = "Used to haphazardly stick things together; secured by the toughest Monkey Glue(TM)." - icon = 'hyperstation/icons/obj/sweatshop.dmi' - icon_state = "glue" - force = 0 - sharpness = FALSE - w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_PLASTIC=25) - attack_verb = list("glued", "coughed") - -/obj/item/borer - name = "manual borer" - desc = "An incredibly awful tool used to manually drill holes into something... Surely there's a better option." - icon = 'hyperstation/icons/obj/sweatshop.dmi' - icon_state = "borer" - force = 3 - sharpness = TRUE - w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=25) - attack_verb = list("bored", "drilled") - -/obj/item/sandpaper - name = "sandpaper strip" - desc = "A strip of sandpaper, commonly used for sanding down rough surfaces into a more smooth shape." - icon = 'hyperstation/icons/obj/sweatshop.dmi' - icon_state = "sandpaper" - force = 1 - sharpness = FALSE - w_class = WEIGHT_CLASS_TINY - materials = list(MAT_GLASS=1) //lmao - attack_verb = list("sanded", "licked") - -/obj/item/nails - name = "metal nails" - desc = "A bunch of nails, used for hammering into things." - icon = 'hyperstation/icons/obj/sweatshop.dmi' - icon_state = "nails" - force = 0 - sharpness = TRUE - w_class = WEIGHT_CLASS_TINY - materials = list(MAT_METAL=10) - attack_verb = list("nailed", "screwed") - -/obj/item/woodenplatform - name = "wood platform" - desc = "A somewhat sturdy cropping of a plank. This one is an alright foundation for chairs and stools." - icon = 'hyperstation/icons/obj/sweatshop.dmi' - icon_state = "wood-platform" - force = 3 - sharpness = FALSE - w_class = WEIGHT_CLASS_NORMAL - attack_verb = list("slapped", "thunked") - -/obj/item/woodenblock - name = "wood block" - desc = "A chopped platform into a wooden block. This one can be used for sanded into pegs, or used as a base on it's own." - icon = 'hyperstation/icons/obj/sweatshop.dmi' - icon_state = "wood-block" - force = 2 - sharpness = FALSE - w_class = WEIGHT_CLASS_SMALL - attack_verb = list("slapped", "thunked") - -/obj/item/woodenpeg - name = "wood peg" - desc = "A wooden peg. Useful for fitting into holes." - icon = 'hyperstation/icons/obj/sweatshop.dmi' - icon_state = "wood-peg" - force = 1 - sharpness = FALSE - w_class = WEIGHT_CLASS_TINY - attack_verb = list("donked", "thunked") - -//BASIC RECIPES - To do, add sound - -/obj/item/stack/sheet/mineral/wood/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/handsaw)) - to_chat(user," You begin to saw [src] in half...") - if(isturf(loc) && do_after(user, 40)) - new /obj/item/woodenplatform(loc) - new /obj/item/woodenplatform(loc) //send help i dont know how to make two in the same line lmfao - to_chat(user, " You saw [src] in half.") - qdel(src) - else - to_chat(user, "You need to put [src] on a surface and hold still to saw it!") - else - ..() - -/obj/item/woodenplatform/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/handsaw)) - to_chat(user," You begin cut [src] into smaller pieces...") - if(isturf(loc) && do_after(user, 20)) - new /obj/item/woodenblock(loc) - new /obj/item/woodenblock(loc) - new /obj/item/woodenblock(loc) - new /obj/item/woodenblock(loc) - to_chat(user, " You cut [src] into four pieces.") - qdel(src) - else - to_chat(user, "You need to put [src] on a surface and hold still to saw it!") - else - ..() - -/obj/item/woodenblock/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/sandpaper)) - to_chat(user," You carefully begin to sand down [src]...") - if(isturf(loc) && do_after(user, 50)) - new /obj/item/woodenpeg(loc) - to_chat(user, " You smooth [src] into a peg.") - qdel(src) - else - to_chat(user, "You need to put [src] on a surface and hold still to sand it!") - else - ..() - -/obj/item/stack/rods/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/wirecutters)) - to_chat(user," You tediously begin to cut [src] into several nails.") - if(isturf(loc) && do_after(user, 80)) - new /obj/item/nails(loc) - to_chat(user, " You make some crude metal nails.") - qdel(src) - else - to_chat(user, "You need to put [src] on a surface and hold still to cut it!") - else - ..() diff --git a/hyperstation/code/modules/cargo/sweatshop/metal.dm b/hyperstation/code/modules/cargo/sweatshop/metal.dm new file mode 100644 index 00000000..456dd0c2 --- /dev/null +++ b/hyperstation/code/modules/cargo/sweatshop/metal.dm @@ -0,0 +1,6 @@ +/obj/item/processed/metal + name = "Heated Metal" + desc = "A malleable metal, able to be cut into nails." + icon = 'hyperstation/icons/obj/cargo/sweatshop/metal.dmi' + icon_state = "metal" + sharpness = TRUE diff --git a/hyperstation/code/modules/cargo/sweatshop/sweatshop.dm b/hyperstation/code/modules/cargo/sweatshop/sweatshop.dm new file mode 100644 index 00000000..351bcd87 --- /dev/null +++ b/hyperstation/code/modules/cargo/sweatshop/sweatshop.dm @@ -0,0 +1,219 @@ +//THE TOOLS + +/obj/item/handsaw + name = "handsaw" + desc = "A shoddy tool used to process wood into smaller segments." + icon = 'hyperstation/icons/obj/cargo/sweatshop/sweatshop.dmi' + icon_state = "handsaw" + slot_flags = ITEM_SLOT_BACK + force = 8 + sharpness = TRUE + w_class = WEIGHT_CLASS_HUGE + materials = list(MAT_METAL=50) + attack_verb = list("slashed", "sawed") + +/obj/item/hammer + name = "hammer" + desc = "A tool used to manually bash nails into place." + icon = 'hyperstation/icons/obj/cargo/sweatshop/sweatshop.dmi' + icon_state = "hammer" + slot_flags = ITEM_SLOT_BELT + force = 7 + sharpness = FALSE + w_class = WEIGHT_CLASS_NORMAL + materials = list(MAT_METAL=100) + attack_verb = list("bonked", "nailed") + +/obj/item/glue + name = "glue" + desc = "Used to haphazardly stick things together; secured by the toughest Monkey Glue(TM)." + icon = 'hyperstation/icons/obj/cargo/sweatshop/sweatshop.dmi' + icon_state = "glue" + force = 0 + sharpness = FALSE + w_class = WEIGHT_CLASS_SMALL + materials = list(MAT_PLASTIC=25) + attack_verb = list("glued", "coughed") + +/obj/item/borer + name = "manual borer" + desc = "An incredibly awful tool used to manually drill holes into something... Surely there's a better option." + icon = 'hyperstation/icons/obj/cargo/sweatshop/sweatshop.dmi' + icon_state = "borer" + force = 3 + sharpness = TRUE + w_class = WEIGHT_CLASS_SMALL + materials = list(MAT_METAL=25) + attack_verb = list("bored", "drilled") + +/obj/item/sandpaper + name = "sandpaper strip" + desc = "A strip of sandpaper, commonly used for sanding down rough surfaces into a more smooth shape." + icon = 'hyperstation/icons/obj/cargo/sweatshop/sweatshop.dmi' + icon_state = "sandpaper" + force = 1 + sharpness = FALSE + w_class = WEIGHT_CLASS_TINY + materials = list(MAT_GLASS=1) //lmao + attack_verb = list("sanded", "licked") + +/obj/item/nails + name = "metal nails" + desc = "A bunch of nails, used for hammering into things." + icon = 'hyperstation/icons/obj/cargo/sweatshop/sweatshop.dmi' + icon_state = "nails" + force = 0 + sharpness = TRUE + w_class = WEIGHT_CLASS_TINY + materials = list(MAT_METAL=10) + attack_verb = list("nailed", "screwed") + +/obj/item/processed + name = "Generic Processed Item" + desc = "You shouldn't see this!" + icon = 'hyperstation/icons/obj/cargo/sweatshop/sweatshop.dmi' + +//BASIC RECIPES - To do, add sound. As well as refactor everything in a more smart way so we can add the possibility of multiple wood types in the future. + +/obj/item/processed/wood/plank/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/handsaw)) + to_chat(user," You begin to saw [src] in half...") + if(do_after(user, 40)) + new /obj/item/processed/wood/platform(loc) + new /obj/item/processed/wood/platform(loc) //send help i dont know how to make two in the same line lmfao + to_chat(user, " You saw [src] in half.") + qdel(src) + else + to_chat(user, "You need to hold still to saw [src]!") + else + ..() + +/obj/item/processed/wood/platform/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/handsaw)) + to_chat(user," You begin cut [src] into smaller pieces...") + if(do_after(user, 20)) + new /obj/item/processed/wood/block(loc) + new /obj/item/processed/wood/block(loc) + new /obj/item/processed/wood/block(loc) + new /obj/item/processed/wood/block(loc) + to_chat(user, " You cut [src] into four pieces.") + qdel(src) + else + to_chat(user, "You need to hold still to saw [src]!") + else + ..() + +/obj/item/processed/wood/block/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/sandpaper)) + to_chat(user," You carefully begin to sand down [src]...") + if(do_after(user, 50)) + new /obj/item/processed/wood/peg(loc) + to_chat(user, " You smooth [src] into a peg.") + qdel(src) + else + to_chat(user, "You need to hold still to sand [src]!") + else + ..() + +/obj/item/processed/metal/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/wirecutters)) + to_chat(user," You tediously begin to cut [src] into several nails...") + if(do_after(user, 80)) + new /obj/item/nails(loc) + to_chat(user, " You make some crude metal nails.") + qdel(src) + else + to_chat(user, "You need to hold still to process [src]!") + else + ..() + +//Covered in glue + +/obj/item/processed/wood/block/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/glue)) + to_chat(user," You begin to glue down one end of the [src]...") + if(do_after(user, 10)) + new /obj/item/processed/wood/glueblock(loc) + to_chat(user, " You slap some glue onto [src].") + qdel(src) + else + to_chat(user, "You need to hold still to glue [src]!") + else + ..() + +/obj/item/processed/wood/peg/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/glue)) + to_chat(user," You begin to glue down one end of the [src]...") + if(do_after(user, 10)) + new /obj/item/processed/wood/gluepeg(loc) + to_chat(user, " You slap some glue onto [src].") + qdel(src) + else + to_chat(user, "You need to hold still to glue [src]!") + else + ..() + +//Seats + +/obj/item/processed/wood/platform/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/borer)) + to_chat(user," You begin to cut four holes into [src]...") + if(do_after(user, 40)) + new /obj/item/processed/wood/seat(loc) + to_chat(user, " You drill four holes into [src].") + qdel(src) + else + to_chat(user, "You need to hold still to refine [src]!") + else + ..() + +//Stools - Further crafting +/obj/item/processed/wood/stool1/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/nails)) + to_chat(user," You place nails into [src]...") + if(do_after(user, 20)) + new /obj/item/processed/wood/stool2(loc) + to_chat(user, " The nails are ready to be hammered.") + qdel(src) + qdel(I) + else + to_chat(user, "You need to hold still to refine [src]!") + else + ..() + +/obj/item/processed/wood/stool2/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/hammer)) + to_chat(user," You begin to hammer the [src]...") + if(do_after(user, 30)) + new /obj/item/processed/wood/stool3(loc) + to_chat(user, " The nails are hammered into place.") + qdel(src) + else + to_chat(user, "You need to hold still to refine [src]!") + else + ..() + +/obj/item/processed/wood/stool3/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/sandpaper)) + to_chat(user," You begin to sand the [src]...") + if(do_after(user, 30)) + new /obj/item/processed/wood/stool4(loc) + to_chat(user, " You sand down the [src].") + qdel(src) + else + to_chat(user, "You need to hold still to refine [src]!") + else + ..() + +/obj/item/processed/wood/stool4/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/processed/wood/glueblock)) + to_chat(user," You add some finishing touches to the [src]...") + if(do_after(user, 30)) + new /obj/item/processed/wood/stool(loc) + to_chat(user, " You complete the [src].") + qdel(src) + qdel(I) + else + to_chat(user, "You need to hold still to refine [src]!") + else + ..() diff --git a/hyperstation/code/modules/cargo/sweatshop/wooden.dm b/hyperstation/code/modules/cargo/sweatshop/wooden.dm new file mode 100644 index 00000000..2e4de904 --- /dev/null +++ b/hyperstation/code/modules/cargo/sweatshop/wooden.dm @@ -0,0 +1,102 @@ +//WOODEN COMPONENTS. honestly i need to move some shit around to allow for easier material swapping, but that's for a later date. + +/obj/item/processed/wood + name = "Wooden Processed Item" + desc = "You shouldn't see this!" + icon = 'hyperstation/icons/obj/cargo/sweatshop/wooden.dmi' + sharpness = FALSE + +/obj/item/processed/wood/plank + name = "processable wooden plank" + desc = "A somewhat sturdy refined plank. This can be used in various applications." + icon_state = "plank" + sharpness = FALSE + +/obj/item/processed/wood/platform + name = "wood platform" + desc = "A somewhat sturdy cropping of a plank. This one is an alright foundation for chairs and stools." + icon_state = "platform" + force = 3 + w_class = WEIGHT_CLASS_NORMAL + attack_verb = list("slapped", "thunked") + +/obj/item/processed/wood/block + name = "wood block" + desc = "A chopped platform into a wooden block. This one can be used for sanded into pegs, or used as a base on it's own." + icon_state = "block" + force = 2 + w_class = WEIGHT_CLASS_SMALL + attack_verb = list("slapped", "thunked") + +/obj/item/processed/wood/peg + name = "wood peg" + desc = "A wooden peg. Useful for fitting into holes." + icon_state = "peg" + force = 1 + w_class = WEIGHT_CLASS_TINY + attack_verb = list("donked", "thunked") + +//glue + +/obj/item/processed/wood/gluepeg + name = "glued wood peg" + desc = "A wooden peg. With a bunch of glue used for securing." + icon_state = "gluepeg" + force = 1 + w_class = WEIGHT_CLASS_TINY + attack_verb = list("pegged", "thunked") + +/obj/item/processed/wood/glueblock + name = "glued wood block" + desc = "A wooden block. With a bunch of glue used for securing." + icon_state = "glueblock" + force = 2 + w_class = WEIGHT_CLASS_SMALL + attack_verb = list("blocked", "thunked") + +//seat +/obj/item/processed/wood/seat + name = "wood seat" + desc = "A baseline for crafting seats. Not exactly that comfortable to sit on..." + icon_state = "seat" + force = 2 + w_class = WEIGHT_CLASS_SMALL + attack_verb = list("slapped", "thunked") + + +//Stool steps. There's probably an easier way to do this, but I cannot be assed rn, I'll refine after PR +/obj/item/processed/wood/stool1 + name = "stool base" + desc = "A haphazardly made base for a stool. It's not even secured with any nails." + icon_state = "stool1" + force = 4 + w_class = WEIGHT_CLASS_BULKY + +/obj/item/processed/wood/stool2 + name = "nailed stool base" + desc = "Nails are in position" + icon_state = "stool2" + force = 4 + w_class = WEIGHT_CLASS_BULKY + +/obj/item/processed/wood/stool3 + name = "hammered stool base" + desc = "A vaguely stool-shaped... Thing. Could use some sandpaper." + icon_state = "stool3" + force = 4 + w_class = WEIGHT_CLASS_BULKY + +/obj/item/processed/wood/stool4 + name = "bland stool" + desc = "A rather bland stool." + icon_state = "stool4" + force = 4 + w_class = WEIGHT_CLASS_BULKY + +//The finished product +/obj/item/processed/wood/stool + name = "custom stool" + desc = "An intricite, custom stool." + icon_state = "stool" + force = 4 + w_class = WEIGHT_CLASS_BULKY diff --git a/hyperstation/code/modules/crafting/recipes.dm b/hyperstation/code/modules/crafting/recipes.dm index 5be10633..7ab22e60 100644 --- a/hyperstation/code/modules/crafting/recipes.dm +++ b/hyperstation/code/modules/crafting/recipes.dm @@ -9,3 +9,24 @@ name = "Penis Milking Machine" reqs = list(/obj/item/stack/cable_coil = 5, /obj/item/stack/rods = 1, /obj/item/stack/sheet/cardboard = 1, /obj/item/reagent_containers/glass/beaker/large = 1, /obj/item/stock_parts/manipulator = 1) result = /obj/item/milking_machine/penis + +//to do: put carpentry in it's own crafting tab +/datum/crafting_recipe/weak_metal + name = "Heated Metal" + reqs = list(/obj/item/stack/sheet/metal = 5) + tools = list(TOOL_WELDER) + category = CAT_MISC + result = /obj/item/processed/metal + +/datum/crafting_recipe/processed_wood + name = "Processable Wood" + reqs = list(/obj/item/stack/sheet/mineral/wood = 5) + tools = list(TOOL_WIRECUTTER, TOOL_WELDER) + category = CAT_MISC + result = /obj/item/processed/wood/plank + +/datum/crafting_recipe/stool_base + name = "Stool Base" + reqs = list(/obj/item/processed/wood/seat = 1, /obj/item/processed/wood/gluepeg = 4) + category = CAT_MISC + result = /obj/item/processed/wood/stool1 diff --git a/hyperstation/icons/obj/cargo/sweatshop/metal.dmi b/hyperstation/icons/obj/cargo/sweatshop/metal.dmi new file mode 100644 index 0000000000000000000000000000000000000000..e847d11c35882a67606e02976a172710fcde3e3f GIT binary patch literal 881 zcmV-%1CIQOP)yDJIWH|cFfKbWFElGDE+!-_BqAswAWuO)QbRyfL_t(VLRCgXRz^cnLqJVG zJxM${Bpn<&FD+O|MOsQmTuVq@Oi5l%N?lD!Tuew?OGivUJSHF>V^L0JQ&479P-Ie1 zT1rPwKs{ehOJ!3}X;xEhSygUZS8iHXY*|%lR#I0-L{LIMDM?_#xOJ`M4b6#3@VO@A*UQD@x2wg|L+sT>V_Y#sUC0)*2py;8_j;00CV| zL_t(Ijpfm4R{>!d24GvlthN_}3>g%Y-87a_V|fcRqLdbu7M0Zh|Cl~Men98+e7&!8 z?sM+PVE994G#Skn%a+w*-nQ8t8*+lAD4JmznsO2@w+8?(Ngk9lV`1xq+#4?v_(~hAkPM) zMZMCvU+)m(mj9vm<=oK-< z;thb@`;JS<&Pj?Sv%E|HP)nU|KIpPzz&f5XDS)YH+Fl94zoA(Vr6pp!knwQr`CiC|!0I{*Mz3=d{o2%>97 zmX?;Iqoa>OMNdLF*`7%>V!Z0d!JMQvg8b*k%9#0FQc9Sad{Xb7OL8 zaCB*JZU6vyoKseCa&`CgQ*iP1HO)Vm*EIp?*m7t=e z{30TZDh9f&AhCc5m3fJoImNhCDJ!`8xqyQP0KU6Y9mDTKVgLXG8A(JzR9J=WmFrg8 zKoEeVa+BKBdO?d=DYQyjL8%p5g;Jpw&_E1=AR6EQF*>t}n3A2{;K4uD;Uqb*$@lHd z>;^@7E-}Mmn#9?E`E!9lFcg}iVK(eGL;``iKuA&Mr)HQ9N24x7BnXE2X~7--gJ32S z41(d+lko#{!O(ng;q}xEjPI&Ygq2^Nn!)D3as9%ozo@?TVOUyv1mBKD)rVnuWo22; zU*!t?7?x2WHXwhM%SXe4tPe}En7BsH{P_agAQr5x3k8f%CE&vli>sL@m+kxFeQQp9k2>*J?Y2mv1r$?a{*5Z^(;4v|4R zqiLVN$OKAqH=CslxxG|kb3dOW_?fR6?Lfv?zU|V6Tz)ULe^@9Id<^ZogfBGY@`WEq zM_fTVb9{UZIrtDb2Hr@qQ~(1{kj|79X3&00`L=YqokZdf4K~DK0oxa>q|VR Z_zUf~!Y~j7(As+nE9nvWv@|FY zNm$i}vCVq`CHeGF-6khhzWo~D{o9{bZU%I-YC6GOCql?U1G_8?w%B9lr}gD_~d zp{+zxgeewxr`B5mVzMEoUV)f{T5!w1ie?{{EW9{>Wz3<@8top)Tl+}PVnjuGMBclK z$7&vHc&z2If2x%I*nKbX1_7Isq=YM<#sB~Ug-Jv~RA_ zKP5qxy+V3|I(sG7))3U%D_R2OoMf~~N1)s*S#8n~DEEq@O~X15c}$?3llcOvKEFO9 z(CwAEO_D^O2Sfy_Ihosp>a&0a2<8j2>X#sx+mu(o0D(dO90INfvi?CL`GO}1Qd1}_ z4*{PcNbN&$dBtN|O#s%(4<$jh`Z|KTCpR?f^&JG7_4+4QIP0$>czkWYnxI+zSIjyj zXsG`ld+hOlgI3W7V0^=cQ%0Mo>`;8Pt^q)L&wO;BxfNuIl>p@XTmm3*OncCS;gaJ~ zCiv=3r^HvKJ6zIE^w-{h_q{(0_33i$Yyd(Jg1vBw^Jym_G0N_Bsa{CjPGkLEpG{k?G) zA^#5jeauewke?wbkNi9I_v`f&3ZlH|-=V*^1IYdz`gKRl1L}PA|9l+K?J3wv=e*iqg V6(eTz_Rs(T002ovPDHLkV1nIQwc!8& literal 0 HcmV?d00001 diff --git a/hyperstation/icons/obj/sweatshop.dmi b/hyperstation/icons/obj/sweatshop.dmi deleted file mode 100644 index 5064ebfea86f220f48984c5c0fdab6c5efaccfdc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1481 zcmV;)1vdJLP)nU|KIpPzz&f5XDS)YH+Fl94zoA(Vr6pp!knwQr`CiC|!0I{*Mz3=d{o2%>97 zmX?;Iqoa>OMNdLF*`7%>V!Z0d!JMQvg8b*k%9#0H%6WSad{Xb7OL8 zaCB*JZU6vyoQ=`D3d1lA1<=|43X{w&eXU(eLdekkgHkK8sbAP`{rfe|(xup&t~gu- zYT2zH#))I)%2mWIga{Gy*a$E@Kx!!A(uce`QnGl^ zxXnLKYxG67suvc~Y<)#l$d@^A71DrIp{SCzeCHIz#d=+*XJsGH%3@sq!It$?_kGR> z3=4Qw{zLel000B1Nkl zX#M^lW0$mG2e~A4^dHCh6dq~%zPY=k1x5K^Vur>fiL-z6=K_IXC^SLC?7Z6$4g}@` zAw^l3m|=E45^)*AK`<;#3hwZq1vBAb5Dc$;;|Jz~p@rb$>xmgC-&LV7Ex$T3gUx^A z`h-@0Nqs9}SYGzPw_{0_Fs!Vuu88?-Oo5DHg$Vct!e3+ZiD6OHhvjILUn6J!Y=Ldy z3)VNd0?Nk{kT67}>l^Q)-ua{ryduRmH{)CHH)GiOZMuFUk$F@=4T%rf*gSsP($XY zkZ&89DHMuD5adUjoJya;D-|3{2#Dbq%TOqupXZMlf{TmN87PRLEWwAB#5TlsX|R^* zMX7WKg3@mpe&3KCHPB#QLJXOVB;PS)M-7|+gY5hrLv~!j<>eT|sbCyF7{(i(7?(eG z_|2cjG+t^{XjH3JzxZ0MR=cXzGz~XgU*p&7sz6ZHw3>EB47i})z!kcx8UjPLY8Q#a zziHf{3e(VazCmf;wpyI0X1#q!3=OtH)lC6jX*P{kr-}0$-FCN44Ge{Zezvb^q}5*fDF3yAcoOK z=(>FnkIK$~(}Q~Nks9v%b+U#Az^u)I0RCfA@E*YYdyh{K;2?B3hWWZ_680boWYb|i zAbet=S6=-}f@W}ph8N_^c=tJ+*n8q}w;XNvT^EH1B75L)rr-A Date: Sun, 17 Jan 2021 04:12:13 -0700 Subject: [PATCH 3/3] makes it fucking buyable --- code/modules/cargo/packs/misc.dm | 12 ++++++++++++ hyperstation/code/modules/cargo/packs/misc.dm | 0 2 files changed, 12 insertions(+) create mode 100644 hyperstation/code/modules/cargo/packs/misc.dm diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm index ceacd0cd..b6f75e50 100644 --- a/code/modules/cargo/packs/misc.dm +++ b/code/modules/cargo/packs/misc.dm @@ -406,6 +406,18 @@ /obj/item/stack/tile/carpet/monochrome/fifty) crate_name = "exotic carpet crate" +/datum/supply_pack/misc/carpentry + name = "Carpentry Crate" + desc = "Make money at cargo by learning some carpentry and making custom furniture." + cost = 1000 + contains = list(/obj/item/handsaw + /obj/item/hammer, + /obj/item/glue, + /obj/item/borer, + /obj/item/sandpaper) + crate_name = "carpentry crate" + + /datum/supply_pack/misc/prospacillin //size changing should be hard to achieve; so enjoy the price tag. name = "Prospacillin Bottle" desc = "An extremely expensive solution of growth serum known as Prospacillin. Effects are permanent upon consumption, and growth is slow." diff --git a/hyperstation/code/modules/cargo/packs/misc.dm b/hyperstation/code/modules/cargo/packs/misc.dm new file mode 100644 index 00000000..e69de29b