diff --git a/code/game/machinery/hydroponics.dm b/code/game/machinery/hydroponics.dm index 6b721a2b8ef..036156b5c30 100644 --- a/code/game/machinery/hydroponics.dm +++ b/code/game/machinery/hydroponics.dm @@ -447,6 +447,9 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) var/obj/item/weapon/reagent_containers/syringe/S = O if (src.planted) if (S.mode == 1) + if(!reagents.total_volume) + user << "\red The syringe is empty." + return user << "\red You inject the [src.myseed.plantname] with a chemical solution." // There needs to be a good amount of mutagen to actually work diff --git a/code/game/objects/items/weapons/plant_bag.dm b/code/game/objects/items/weapons/plant_bag.dm new file mode 100644 index 00000000000..3dd30a36fc3 --- /dev/null +++ b/code/game/objects/items/weapons/plant_bag.dm @@ -0,0 +1,62 @@ +// Todo: Allow harvesting from crops, and emptying into the bioprocessor +// Eventually make the new refrigerator-vender, allow emptying into it. + +/**********************Plant Bag**************************/ + +/obj/item/weapon/plantbag + icon = 'hydroponics.dmi' + icon_state = "plantbag" + name = "Plant Bag" + var/mode = 1; //0 = pick one at a time, 1 = pick all on tile + var/capacity = 50; //the number of plant pieces it can carry. + flags = FPRINT | TABLEPASS | ONBELT + w_class = 1 + +/obj/item/weapon/plantbag/attack_self(mob/user as mob) + for (var/obj/item/weapon/reagent_containers/food/snacks/grown/O in contents) + contents -= O + O.loc = user.loc + user << "\blue You empty the plant bag." + return + +/obj/item/weapon/plantbag/verb/toggle_mode() + set name = "Switch Bagging Method" + set category = "Object" + + mode = !mode + switch (mode) + if(1) + usr << "The bag now picks up all plants in a tile at once." + if(0) + usr << "The bag now picks up one plant at a time." + +/obj/item/weapon/reagent_containers/food/snacks/grown/attackby(var/obj/item/O as obj, var/mob/user as mob) + ..() + if (istype(O, /obj/item/weapon/plantbag)) + var/obj/item/weapon/plantbag/S = O + if (S.mode == 1) + for (var/obj/item/weapon/reagent_containers/food/snacks/grown/G in locate(src.x,src.y,src.z)) + if (S.contents.len < S.capacity) + S.contents += G; + else + user << "\blue The plant bag is full." + return + user << "\blue You pick up all the plants." + else + if (S.contents.len < S.capacity) + S.contents += src; + else + user << "\blue The plant bag is full." + return + +/obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) + ..() + if (istype(O, /obj/item/weapon/plantbag)) + src.attack_hand(user) + var/obj/item/weapon/plantbag/S = O + for (var/obj/item/weapon/reagent_containers/food/snacks/grown/G in locate(user.x,user.y,user.z)) + if (S.contents.len < S.capacity) + S.contents += G; + else + user << "\blue The plant bag is full." + return diff --git a/icons/obj/hydroponics.dmi b/icons/obj/hydroponics.dmi index 0732aa184b7..de1a1059c95 100644 Binary files a/icons/obj/hydroponics.dmi and b/icons/obj/hydroponics.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 07edb4bef67..5266d00a823 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -589,6 +589,7 @@ #include "code\game\objects\items\weapons\paint.dm" #include "code\game\objects\items\weapons\paiwire.dm" #include "code\game\objects\items\weapons\papers_bins.dm" +#include "code\game\objects\items\weapons\plant_bag.dm" #include "code\game\objects\items\weapons\RCD.dm" #include "code\game\objects\items\weapons\RSF.dm" #include "code\game\objects\items\weapons\surgery_tools.dm"