diff --git a/code/modules/hydroponics/_hydro_setup.dm b/code/modules/hydroponics/_hydro_setup.dm index a3fd4604a6..4641aa3ace 100644 --- a/code/modules/hydroponics/_hydro_setup.dm +++ b/code/modules/hydroponics/_hydro_setup.dm @@ -55,4 +55,5 @@ #define TRAIT_PRODUCT_COLOUR 35 #define TRAIT_BIOLUM 36 #define TRAIT_BIOLUM_COLOUR 37 -#define TRAIT_IMMUTABLE 38 \ No newline at end of file +#define TRAIT_IMMUTABLE 38 +#define TRAIT_FLESH_COLOUR 39 \ No newline at end of file diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 8b7678f19f..72f0e444ab 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -194,9 +194,11 @@ else if(seed.chems) if(istype(W,/obj/item/weapon/material/hatchet) && !isnull(seed.chems["woodpulp"])) user.show_message("You make planks out of \the [src]!", 1) + var/flesh_colour = seed.get_trait(TRAIT_FLESH_COLOUR) + if(!flesh_colour) flesh_colour = seed.get_trait(TRAIT_PRODUCT_COLOUR) for(var/i=0,i<2,i++) var/obj/item/stack/material/wood/NG = new (user.loc) - NG.color = seed.get_trait(TRAIT_PRODUCT_COLOUR) + if(flesh_colour) NG.color = flesh_colour for (var/obj/item/stack/material/wood/G in user.loc) if(G==NG) continue @@ -221,6 +223,15 @@ new /obj/item/weapon/reagent_containers/food/snacks/soydope(get_turf(src)) qdel(src) return + else //This may need to be made more specific, but at this point I am not sure what the criteria should be. + user << "You slice up \the [src]." + var/slices = rand(3,5) + var/reagents_to_transfer = round(reagents.total_volume/slices) + for(var/i=i;i<=slices;i++) + var/obj/item/weapon/reagent_containers/food/snacks/fruit_slice/F = new(get_turf(src),seed) + if(reagents_to_transfer) reagents.trans_to_obj(F,reagents_to_transfer) + qdel(src) + return ..() /obj/item/weapon/reagent_containers/food/snacks/grown/attack(var/mob/living/carbon/M, var/mob/user, var/def_zone) @@ -301,9 +312,11 @@ if(seed.kitchen_tag == "grass") user.show_message("You make a grass tile out of \the [src]!", 1) + var/flesh_colour = seed.get_trait(TRAIT_FLESH_COLOUR) + if(!flesh_colour) flesh_colour = seed.get_trait(TRAIT_PRODUCT_COLOUR) for(var/i=0,i<2,i++) var/obj/item/stack/tile/grass/G = new (user.loc) - G.color = seed.get_trait(TRAIT_PRODUCT_COLOUR) + if(flesh_colour) G.color = flesh_colour for (var/obj/item/stack/tile/grass/NG in user.loc) if(G==NG) continue @@ -358,3 +371,35 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris plantname = "ambrosia" + +/obj/item/weapon/reagent_containers/food/snacks/fruit_slice + name = "fruit slice" + desc = "A slice of some tasty fruit." + icon = 'icons/obj/hydroponics_misc.dmi' + icon_state = "" + +var/list/fruit_icon_cache = list() + +/obj/item/weapon/reagent_containers/food/snacks/fruit_slice/New(var/newloc, var/datum/seed/S) + ..(newloc) + // Need to go through and make a general image caching controller. Todo. + if(!istype(S)) + qdel(src) + return + + name = "[S.seed_name] slice" + desc = "A slice of \a [S.seed_name]. Tasty, probably." + + var/rind_colour = S.get_trait(TRAIT_PRODUCT_COLOUR) + var/flesh_colour = S.get_trait(TRAIT_FLESH_COLOUR) + if(!flesh_colour) flesh_colour = rind_colour + if(!fruit_icon_cache["rind-[rind_colour]"]) + var/image/I = image(icon,"fruit_rind") + I.color = rind_colour + fruit_icon_cache["rind-[rind_colour]"] = I + overlays |= fruit_icon_cache["rind-[rind_colour]"] + if(!fruit_icon_cache["slice-[rind_colour]"]) + var/image/I = image(icon,"fruit_slice") + I.color = flesh_colour + fruit_icon_cache["slice-[rind_colour]"] = I + overlays |= fruit_icon_cache["slice-[rind_colour]"] \ No newline at end of file diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index 9fd666fbb6..2331c328dc 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -60,6 +60,7 @@ set_trait(TRAIT_IDEAL_HEAT, 293) // Preferred temperature in Kelvin. set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.25) // Plant eats this much per tick. set_trait(TRAIT_PLANT_COLOUR, "#46B543") // Colour of the plant icon. + set_trait(TRAIT_FLESH_COLOUR, "#46B543") spawn(5) sleep(-1) @@ -169,8 +170,9 @@ if(get_trait(TRAIT_BIOLUM_COLOUR)) clr = get_trait(TRAIT_BIOLUM_COLOUR) splat.set_light(get_trait(TRAIT_BIOLUM), l_color = clr) - if(get_trait(TRAIT_PRODUCT_COLOUR)) - splat.color = get_trait(TRAIT_PRODUCT_COLOUR) + var/flesh_colour = get_trait(TRAIT_FLESH_COLOUR) + if(!flesh_colour) flesh_colour = get_trait(TRAIT_PRODUCT_COLOUR) + if(flesh_colour) splat.color = get_trait(TRAIT_PRODUCT_COLOUR) if(chems) for(var/mob/living/M in T.contents) diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm index cfbf024eda..d93de27286 100644 --- a/code/modules/hydroponics/seed_datums.dm +++ b/code/modules/hydroponics/seed_datums.dm @@ -244,6 +244,7 @@ set_trait(TRAIT_PRODUCT_ICON,"apple") set_trait(TRAIT_PRODUCT_COLOUR,"#FF540A") set_trait(TRAIT_PLANT_ICON,"tree2") + set_trait(TRAIT_FLESH_COLOUR,"#E8E39B") /datum/seed/apple/poison name = "poisonapple" @@ -804,6 +805,7 @@ set_trait(TRAIT_PRODUCT_COLOUR,"#326B30") set_trait(TRAIT_PLANT_COLOUR,"#257522") set_trait(TRAIT_PLANT_ICON,"vine2") + set_trait(TRAIT_FLESH_COLOUR,"#F22C2C") /datum/seed/pumpkin name = "pumpkin" diff --git a/icons/obj/hydroponics_misc.dmi b/icons/obj/hydroponics_misc.dmi new file mode 100644 index 0000000000..a5c594d93f Binary files /dev/null and b/icons/obj/hydroponics_misc.dmi differ