diff --git a/code/__DEFINES/crafting.dm b/code/__DEFINES/crafting.dm index 6acaea463f9..7bfd2935280 100644 --- a/code/__DEFINES/crafting.dm +++ b/code/__DEFINES/crafting.dm @@ -1,11 +1,28 @@ +//tablecrafting defines #define CAT_NONE "" -#define CAT_WEAPON "Weaponry" +#define CAT_WEAPONRY "Weaponry" +#define CAT_WEAPON "Weapons" #define CAT_AMMO "Ammunition" #define CAT_ROBOT "Robots" -#define CAT_FOOD "Food" #define CAT_MISC "Misc" #define CAT_PRIMAL "Tribal" #define CAT_CLOTHING "Clothing" +#define CAT_FOOD "Foods" +#define CAT_BREAD "Breads" +#define CAT_BURGER "Burgers" +#define CAT_CAKE "Cakes" +#define CAT_EGG "Egg-Based Food" +#define CAT_MEAT "Meats" +#define CAT_SUSHI "Sushi" +#define CAT_MISCFOOD "Misc. Food" +#define CAT_PASTRY "Pastries" +#define CAT_PIE "Pies" +#define CAT_PIZZA "Pizzas" +#define CAT_SALAD "Salads" +#define CAT_SANDWICH "Sandwiches" +#define CAT_SOUP "Soups" +#define CAT_SPAGHETTI "Spaghettis" +#define CAT_ICE "Frozen" #define RECIPE_MICROWAVE "Microwave" #define RECIPE_OVEN "Oven" diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index dc2b2e4ec0a..2a23cc8baa0 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -46,11 +46,7 @@ if(IS_WHITELISTED in S.species_traits) GLOB.whitelisted_species += S.name - for(var/D in subtypesof(/datum/crafting_recipe)) - var/datum/crafting_recipe/R = D - if(!initial(R.roundstart_enabled)) - continue - GLOB.crafting_recipes += new R + init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes) //Pipe list building init_subtypes(/datum/pipes, GLOB.construction_pipe_list) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 3f4a0cb6b26..c86a18eba80 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -80,6 +80,8 @@ //zealot_master is a reference to the mob that converted them into a zealot (for ease of investigation and such) var/mob/living/carbon/human/zealot_master = null + var/list/learned_recipes //List of learned recipe TYPES. + /datum/mind/New(new_key) key = new_key soulOwner = src diff --git a/code/game/objects/items/weapons/pneumaticCannon.dm b/code/game/objects/items/weapons/pneumaticCannon.dm index 64f554682fc..503228e58d7 100644 --- a/code/game/objects/items/weapons/pneumaticCannon.dm +++ b/code/game/objects/items/weapons/pneumaticCannon.dm @@ -145,7 +145,8 @@ /obj/item/stack/packageWrap = 8, /obj/item/pipe = 2) time = 300 - category = CAT_WEAPON + category = CAT_WEAPONRY + subcategory = CAT_WEAPON /obj/item/pneumatic_cannon/proc/updateTank(obj/item/tank/thetank, removing = 0, mob/living/carbon/human/user) if(removing) diff --git a/code/modules/crafting/craft.dm b/code/modules/crafting/craft.dm index 77cef31ed55..e05e31c297f 100644 --- a/code/modules/crafting/craft.dm +++ b/code/modules/crafting/craft.dm @@ -1,7 +1,26 @@ /datum/personal_crafting var/busy var/viewing_category = 1 //typical powergamer starting on the Weapons tab - var/list/categories = list(CAT_WEAPON,CAT_AMMO,CAT_ROBOT,CAT_FOOD,CAT_CLOTHING,CAT_MISC,CAT_PRIMAL) + var/viewing_subcategory = 1 + var/list/categories = list( + CAT_WEAPONRY, + CAT_ROBOT, + CAT_MISC, + CAT_PRIMAL, + CAT_FOOD, + CAT_CLOTHING) + var/list/subcategories = list( + list( //Weapon subcategories + CAT_WEAPON, + CAT_AMMO), + CAT_NONE, //Robot subcategories + CAT_NONE, //Misc subcategories + CAT_NONE, //Tribal subcategories + list( //Food subcategories + CAT_CAKE, + CAT_SUSHI, + CAT_SANDWICH), + CAT_CLOTHING) //Clothing subcategories var/display_craftable_only = FALSE var/display_compact = TRUE @@ -22,11 +41,14 @@ /datum/personal_crafting/proc/check_contents(datum/crafting_recipe/R, list/contents) + contents = contents["other"] main_loop: for(var/A in R.reqs) var/needed_amount = R.reqs[A] for(var/B in contents) if(ispath(B, A)) + if (R.blacklist.Find(B)) + continue if(contents[B] >= R.reqs[A]) continue main_loop else @@ -56,45 +78,47 @@ if(AM.flags_2 & HOLOGRAM_2) continue . += AM + for(var/slot in list(slot_r_store, slot_l_store)) + . += user.get_item_by_slot(slot) /datum/personal_crafting/proc/get_surroundings(mob/user) . = list() + .["other"] = list() for(var/obj/item/I in get_environment(user)) if(I.flags_2 & HOLOGRAM_2) continue if(istype(I, /obj/item/stack)) var/obj/item/stack/S = I - .[I.type] += S.amount + .["other"][I.type] += S.amount else if(istype(I, /obj/item/reagent_containers)) var/obj/item/reagent_containers/RC = I - if(RC.container_type & OPENCONTAINER) + if(RC.is_drainable()) for(var/datum/reagent/A in RC.reagents.reagent_list) - .[A.type] += A.volume - .[I.type] += 1 + .["other"][A.type] += A.volume + .["other"][I.type] += 1 /datum/personal_crafting/proc/check_tools(mob/user, datum/crafting_recipe/R, list/contents) if(!R.tools.len) - return 1 + return TRUE var/list/possible_tools = list() for(var/obj/item/I in user.contents) if(istype(I, /obj/item/storage)) for(var/obj/item/SI in I.contents) possible_tools += SI.type possible_tools += I.type - possible_tools += contents + possible_tools |= contents["other"] main_loop: for(var/A in R.tools) for(var/I in possible_tools) if(ispath(I,A)) continue main_loop - return 0 - return 1 + return FALSE + return TRUE /datum/personal_crafting/proc/construct_item(mob/user, datum/crafting_recipe/R) - for(var/A in R.parts) var/list/contents = get_surroundings(user) var/send_feedback = 1 if(check_contents(R, contents)) @@ -108,6 +132,8 @@ var/list/parts = del_reqs(R, user) var/atom/movable/I = new R.result (get_turf(user.loc)) I.CheckParts(parts, R) + if(isitem(I)) + user.put_in_hands(I) if(send_feedback) feedback_add_details("object_crafted","[I.type]") return 0 @@ -173,6 +199,7 @@ RGNT.volume += RG.volume RGNT.data += RG.data qdel(RG) + RC.on_reagent_change() else surroundings -= RC else if(ispath(A, /obj/item/stack)) @@ -195,7 +222,7 @@ else data = S.amount S = locate(S.type) in Deletion - S.amount += data + S.add(data) surroundings -= S else var/atom/movable/I @@ -241,11 +268,19 @@ /datum/personal_crafting/ui_data(mob/user) var/list/data = list() + var/list/subs = list() + var/cur_subcategory = CAT_NONE var/cur_category = categories[viewing_category] + if(islist(subcategories[viewing_category])) + subs = subcategories[viewing_category] + cur_subcategory = subs[viewing_subcategory] data["busy"] = busy data["prev_cat"] = categories[prev_cat()] + data["prev_subcat"] = subs[prev_subcat()] data["category"] = cur_category + data["subcategory"] = cur_subcategory data["next_cat"] = categories[next_cat()] + data["next_subcat"] = subs[next_subcat()] data["display_craftable_only"] = display_craftable_only data["display_compact"] = display_compact @@ -254,7 +289,11 @@ var/list/cant_craft = list() for(var/rec in GLOB.crafting_recipes) var/datum/crafting_recipe/R = rec - if(R.category != cur_category) + + if(!R.always_availible && !(R.type in user?.mind?.learned_recipes)) //User doesn't actually know how to make this. + continue + + if((R.category != cur_category) || (R.subcategory != cur_subcategory)) continue if(check_contents(R, surroundings)) can_craft += list(build_recipe_data(R)) @@ -269,41 +308,54 @@ return if(href_list["make"]) - var/datum/crafting_recipe/TR = locate(href_list["make"]) - busy = 1 + var/datum/crafting_recipe/TR = locate(href_list["make"]) in GLOB.crafting_recipes + busy = TRUE SSnanoui.update_uis(src) var/fail_msg = construct_item(usr, TR) if(!fail_msg) to_chat(usr, "[TR.name] constructed.") else to_chat(usr, "Construction failed[fail_msg]") - busy = 0 + busy = FALSE SSnanoui.update_uis(src) if(href_list["forwardCat"]) - viewing_category = next_cat() - to_chat(usr, "Category is now [categories[viewing_category]].") + viewing_category = next_cat(FALSE) . = TRUE if(href_list["backwardCat"]) - viewing_category = prev_cat() - to_chat(usr, "Category is now [categories[viewing_category]].") + viewing_category = prev_cat(FALSE) + . = TRUE + if(href_list["forwardSubCat"]) + viewing_subcategory = next_subcat() + . = TRUE + if(href_list["backwardSubCat"]) + viewing_subcategory = prev_subcat() . = TRUE if(href_list["toggle_recipes"]) display_craftable_only = !display_craftable_only - to_chat(usr, "You will now [display_craftable_only ? "only see recipes you can craft":"see all recipes"].") . = TRUE if(href_list["toggle_compact"]) display_compact = !display_compact - to_chat(usr, "Crafting menu is now [display_compact? "compact" : "full size"].") . = TRUE SSnanoui.update_uis(src) //Next works nicely with modular arithmetic -/datum/personal_crafting/proc/next_cat() +//Next works nicely with modular arithmetic +/datum/personal_crafting/proc/next_cat(readonly = TRUE) + if (!readonly) + viewing_subcategory = 1 . = viewing_category % categories.len + 1 +/datum/personal_crafting/proc/next_subcat() + if(islist(subcategories[viewing_category])) + var/list/subs = subcategories[viewing_category] + . = viewing_subcategory % subs.len + 1 + + //Previous can go fuck itself -/datum/personal_crafting/proc/prev_cat() +/datum/personal_crafting/proc/prev_cat(readonly = TRUE) + if (!readonly) + viewing_subcategory = 1 if(viewing_category == categories.len) . = viewing_category-1 else @@ -311,6 +363,18 @@ if(. <= 0) . = categories.len +/datum/personal_crafting/proc/prev_subcat() + if(islist(subcategories[viewing_category])) + var/list/subs = subcategories[viewing_category] + if(viewing_subcategory == subs.len) + . = viewing_subcategory-1 + else + . = viewing_subcategory % subs.len - 1 + if(. <= 0) + . = subs.len + else + . = null + /datum/personal_crafting/proc/build_recipe_data(datum/crafting_recipe/R) var/list/data = list() data["name"] = R.name @@ -334,9 +398,19 @@ data["catalyst_text"] = catalyst_text for(var/a in R.tools) - var/atom/A = a //cheat-typecast - tool_text += " [R.tools[A]] [initial(A.name)]," + if(ispath(a, /obj/item)) + var/obj/item/b = a + tool_text += " [initial(b.name)]," + else + tool_text += " [a]," tool_text = replacetext(tool_text, ",", "", -1) data["tool_text"] = tool_text - return data \ No newline at end of file + return data + +//Mind helpers + +/datum/mind/proc/teach_crafting_recipe(R) + if(!learned_recipes) + learned_recipes = list() + learned_recipes |= R \ No newline at end of file diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 58338efea61..126e9f30b31 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -1,19 +1,15 @@ /datum/crafting_recipe var/name = "" //in-game display name var/reqs[] = list() //type paths of items consumed associated with how many are needed + var/blacklist[] = list() //type paths of items explicitly not allowed as an ingredient var/result //type path of item resulting from this craft var/tools[] = list() //type paths of items needed but not consumed var/time = 30 //time in deciseconds var/parts[] = list() //type paths of items that will be placed in the result var/chem_catalysts[] = list() //like tools but for reagents - var/category = CAT_NONE // Recipe category - var/roundstart_enabled = TRUE //Set to FALSE if you don't want a particular crafting recipe to be available all the time - -/datum/crafting_recipe/proc/AdjustChems(var/obj/resultobj as obj) - //This proc is to replace the make_food proc of recipes from microwaves and such that are being converted to table crafting recipes. - //Use it to handle the removal of reagents after the food has been created (like removing toxins from a salad made with ambrosia) - //If a recipe does not require it's chems adjusted, don't bother declaring this for the recipe, as it will call this placeholder - return + var/category = CAT_NONE //where it shows up in the crafting UI + var/subcategory = CAT_NONE + var/always_availible = TRUE //Set to FALSE if it needs to be learned first. /datum/crafting_recipe/IED name = "IED" @@ -24,7 +20,8 @@ /obj/item/reagent_containers/food/drinks/cans = 1) parts = list(/obj/item/reagent_containers/food/drinks/cans = 1) time = 15 - category = CAT_WEAPON + category = CAT_WEAPONRY + subcategory = CAT_WEAPON /datum/crafting_recipe/molotov name = "Molotov" @@ -33,7 +30,8 @@ /obj/item/reagent_containers/food/drinks/bottle = 1) parts = list(/obj/item/reagent_containers/food/drinks/bottle = 1) time = 40 - category = CAT_WEAPON + category = CAT_WEAPONRY + subcategory = CAT_WEAPON /datum/crafting_recipe/stunprod name = "Stunprod" @@ -42,7 +40,8 @@ /obj/item/stack/rods = 1, /obj/item/assembly/igniter = 1) time = 40 - category = CAT_WEAPON + category = CAT_WEAPONRY + subcategory = CAT_WEAPON /datum/crafting_recipe/bola name = "Bola" @@ -50,7 +49,8 @@ reqs = list(/obj/item/restraints/handcuffs/cable = 1, /obj/item/stack/sheet/metal = 6) time = 20//15 faster than crafting them by hand! - category= CAT_WEAPON + category = CAT_WEAPONRY + subcategory = CAT_WEAPON /datum/crafting_recipe/ed209 name = "ED209" @@ -144,7 +144,8 @@ /obj/item/weldingtool = 1) tools = list(/obj/item/screwdriver) time = 10 - category = CAT_WEAPON + category = CAT_WEAPONRY + subcategory = CAT_WEAPON /datum/crafting_recipe/meteorshot name = "Meteorshot Shell" @@ -154,7 +155,8 @@ /obj/item/stock_parts/manipulator = 2) tools = list(/obj/item/screwdriver) time = 5 - category = CAT_AMMO + category = CAT_WEAPONRY + subcategory = CAT_AMMO /datum/crafting_recipe/pulseslug name = "Pulse Slug Shell" @@ -164,7 +166,8 @@ /obj/item/stock_parts/micro_laser/ultra = 1) tools = list(/obj/item/screwdriver) time = 5 - category = CAT_AMMO + category = CAT_WEAPONRY + subcategory = CAT_AMMO /datum/crafting_recipe/dragonsbreath name = "Dragonsbreath Shell" @@ -173,7 +176,8 @@ /datum/reagent/phosphorus = 5,) tools = list(/obj/item/screwdriver) time = 5 - category = CAT_AMMO + category = CAT_WEAPONRY + subcategory = CAT_AMMO /datum/crafting_recipe/frag12 name = "FRAG-12 Shell" @@ -184,7 +188,8 @@ /datum/reagent/facid = 5,) tools = list(/obj/item/screwdriver) time = 5 - category = CAT_AMMO + category = CAT_WEAPONRY + subcategory = CAT_AMMO /datum/crafting_recipe/ionslug name = "Ion Scatter Shell" @@ -194,7 +199,8 @@ /obj/item/stock_parts/subspace/crystal = 1) tools = list(/obj/item/screwdriver) time = 5 - category = CAT_AMMO + category = CAT_WEAPONRY + subcategory = CAT_AMMO /datum/crafting_recipe/improvisedslug name = "Improvised Shotgun Shell" @@ -205,7 +211,8 @@ /datum/reagent/fuel = 10) tools = list(/obj/item/screwdriver) time = 5 - category = CAT_AMMO + category = CAT_WEAPONRY + subcategory = CAT_AMMO /datum/crafting_recipe/improvisedslugoverload name = "Overload Improvised Shell" @@ -215,7 +222,8 @@ /datum/reagent/plasma_dust = 20) tools = list(/obj/item/screwdriver) time = 5 - category = CAT_AMMO + category = CAT_WEAPONRY + subcategory = CAT_AMMO /datum/crafting_recipe/laserslug name = "Laser Slug Shell" @@ -225,7 +233,8 @@ /obj/item/stock_parts/micro_laser/high = 1) tools = list(/obj/item/screwdriver) time = 5 - category = CAT_AMMO + category = CAT_WEAPONRY + subcategory = CAT_AMMO /datum/crafting_recipe/ishotgun name = "Improvised Shotgun" @@ -236,7 +245,8 @@ /obj/item/stack/packageWrap = 5,) tools = list(/obj/item/screwdriver) time = 100 - category = CAT_WEAPON + category = CAT_WEAPONRY + subcategory = CAT_AMMO /datum/crafting_recipe/chainsaw name = "Chainsaw" @@ -246,7 +256,8 @@ /obj/item/stack/sheet/plasteel = 1) tools = list(/obj/item/weldingtool) time = 50 - category = CAT_WEAPON + category = CAT_WEAPONRY + subcategory = CAT_WEAPON /datum/crafting_recipe/spear name = "Spear" @@ -255,7 +266,8 @@ /obj/item/shard = 1, /obj/item/stack/rods = 1) time = 40 - category = CAT_WEAPON + category = CAT_WEAPONRY + subcategory = CAT_WEAPON /datum/crafting_recipe/spooky_camera name = "Camera Obscura" @@ -296,7 +308,8 @@ reqs = list(/obj/item/stack/sheet/wood = 1, /obj/item/stack/cable_coil = 5) tools = list(/obj/item/kitchen/knife) // Gotta carve the wood into handles - category = CAT_WEAPON + category = CAT_WEAPONRY + subcategory = CAT_WEAPON /datum/crafting_recipe/makeshift_bolt name = "Makeshift Bolt" @@ -304,7 +317,8 @@ time = 5 reqs = list(/obj/item/stack/rods = 1) tools = list(/obj/item/weldingtool) - category = CAT_AMMO + category = CAT_WEAPONRY + subcategory = CAT_AMMO /datum/crafting_recipe/crossbow name = "Powered Crossbow" @@ -316,7 +330,8 @@ /obj/item/stack/sheet/wood = 5) tools = list(/obj/item/weldingtool, /obj/item/screwdriver) - category = CAT_WEAPON + category = CAT_WEAPONRY + subcategory = CAT_WEAPON /datum/crafting_recipe/glove_balloon name = "Latex Glove Balloon" @@ -361,7 +376,8 @@ ) parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2) time = 30 - category = CAT_WEAPON + category = CAT_WEAPONRY + subcategory = CAT_WEAPON /datum/crafting_recipe/chemical_payload2 name = "Chemical Payload (gibtonite)" @@ -373,7 +389,8 @@ ) parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2) time = 50 - category = CAT_WEAPON + category = CAT_WEAPONRY + subcategory = CAT_WEAPON /datum/crafting_recipe/toxins_payload name = "Toxins Payload Casing" @@ -383,7 +400,8 @@ /obj/item/assembly/signaler = 1, /obj/item/stack/sheet/metal = 2 ) - category = CAT_WEAPON + category = CAT_WEAPONRY + subcategory = CAT_WEAPON /datum/crafting_recipe/bonearmor name = "Bone Armor" @@ -552,4 +570,4 @@ /obj/item/grown/log = 2) time = 50 category = CAT_MISC - roundstart_enabled = FALSE + always_availible = FALSE diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_table.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_table.dm index ba9a67fee43..a0988951855 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_table.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_table.dm @@ -17,6 +17,7 @@ ) result = /obj/item/reagent_containers/food/snacks/sandwich category = CAT_FOOD + subcategory = CAT_SANDWICH /datum/crafting_recipe/slimesandwich name = "Slime Jelly Sandwich" @@ -26,6 +27,7 @@ ) result = /obj/item/reagent_containers/food/snacks/jellysandwich/slime category = CAT_FOOD + subcategory = CAT_SANDWICH /datum/crafting_recipe/cherrysandwich name = "Cherry Jelly Sandwich" @@ -35,6 +37,7 @@ ) result = /obj/item/reagent_containers/food/snacks/jellysandwich/cherry category = CAT_FOOD + subcategory = CAT_SANDWICH /datum/crafting_recipe/slimeburger name = "Slime Jelly Burger" @@ -44,6 +47,7 @@ ) result = /obj/item/reagent_containers/food/snacks/jellyburger/slime category = CAT_FOOD + subcategory = CAT_SANDWICH /datum/crafting_recipe/jellyburger name = "Cherry Jelly Burger" @@ -53,6 +57,7 @@ ) result = /obj/item/reagent_containers/food/snacks/jellyburger/cherry category = CAT_FOOD + subcategory = CAT_SANDWICH /datum/crafting_recipe/baseballburger name = "Home run baseball burger" @@ -62,6 +67,7 @@ ) result = /obj/item/reagent_containers/food/snacks/baseballburger category = CAT_FOOD + subcategory = CAT_SANDWICH /datum/crafting_recipe/notasandwich name = "not-a-sandwich" @@ -71,7 +77,7 @@ ) result = /obj/item/reagent_containers/food/snacks/notasandwich category = CAT_FOOD - + subcategory = CAT_SANDWICH /datum/crafting_recipe/sushi_Ebi name = "Ebi Sushi" @@ -81,6 +87,7 @@ ) result = /obj/item/reagent_containers/food/snacks/sushi_Ebi category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/Ebi_maki name = "Ebi Makiroll" @@ -91,6 +98,7 @@ tools = list(/obj/item/kitchen/sushimat) result = /obj/item/reagent_containers/food/snacks/sliceable/Ebi_maki category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/sushi_Ikura name = "Ikura Sushi" @@ -100,6 +108,7 @@ ) result = /obj/item/reagent_containers/food/snacks/sushi_Ikura category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/Ikura_maki name = "Ikura Makiroll" @@ -110,6 +119,7 @@ tools = list(/obj/item/kitchen/sushimat) result = /obj/item/reagent_containers/food/snacks/sliceable/Ikura_maki category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/sushi_Inari name = "Inari Sushi" @@ -119,6 +129,7 @@ ) result = /obj/item/reagent_containers/food/snacks/sushi_Inari category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/Inari_maki name = "Inari Makiroll" @@ -129,6 +140,7 @@ tools = list(/obj/item/kitchen/sushimat) result = /obj/item/reagent_containers/food/snacks/sliceable/Inari_maki category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/sushi_Sake name = "Sake Sushi" @@ -138,6 +150,7 @@ ) result = /obj/item/reagent_containers/food/snacks/sushi_Sake category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/Sake_maki name = "Sake Makiroll" @@ -148,6 +161,7 @@ tools = list(/obj/item/kitchen/sushimat) result = /obj/item/reagent_containers/food/snacks/sliceable/Sake_maki category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/sushi_SmokedSalmon name = "Smoked Salmon Sushi" @@ -157,6 +171,7 @@ ) result = /obj/item/reagent_containers/food/snacks/sushi_SmokedSalmon category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/SmokedSalmon_maki name = "Smoked Salmon Makiroll" @@ -167,6 +182,7 @@ tools = list(/obj/item/kitchen/sushimat) result = /obj/item/reagent_containers/food/snacks/sliceable/SmokedSalmon_maki category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/sushi_Masago name = "Masago Sushi" @@ -176,6 +192,7 @@ ) result = /obj/item/reagent_containers/food/snacks/sushi_Masago category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/Masago_maki name = "Masago Makiroll" @@ -186,6 +203,7 @@ tools = list(/obj/item/kitchen/sushimat) result = /obj/item/reagent_containers/food/snacks/sliceable/Masago_maki category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/sushi_Tobiko name = "Tobiko Sushi" @@ -195,6 +213,7 @@ ) result = /obj/item/reagent_containers/food/snacks/sushi_Tobiko category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/Tobiko_maki name = "Tobiko Makiroll" @@ -205,6 +224,7 @@ tools = list(/obj/item/kitchen/sushimat) result = /obj/item/reagent_containers/food/snacks/sliceable/Tobiko_maki category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/sushi_TobikoEgg name = "Tobiko and Egg Sushi" @@ -214,6 +234,7 @@ ) result = /obj/item/reagent_containers/food/snacks/sushi_TobikoEgg category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/TobikoEgg_maki name = "Tobiko Makiroll" @@ -224,6 +245,7 @@ tools = list(/obj/item/kitchen/sushimat) result = /obj/item/reagent_containers/food/snacks/sliceable/TobikoEgg_maki category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/Sake_maki name = "Sake Makiroll" @@ -234,6 +256,7 @@ tools = list(/obj/item/kitchen/sushimat) result = /obj/item/reagent_containers/food/snacks/sliceable/TobikoEgg_maki category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/sushi_Tai name = "Tai Sushi" @@ -243,6 +266,7 @@ ) result = /obj/item/reagent_containers/food/snacks/sushi_Tai category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/Tai_maki name = "Tai Makiroll" @@ -253,6 +277,7 @@ tools = list(/obj/item/kitchen/sushimat) result = /obj/item/reagent_containers/food/snacks/sliceable/Tai_maki category = CAT_FOOD + subcategory = CAT_SUSHI /datum/crafting_recipe/food @@ -271,4 +296,5 @@ /datum/reagent/teslium = 1, ) result = /mob/living/simple_animal/pet/cat/cak - category = CAT_FOOD \ No newline at end of file + category = CAT_FOOD + subcategory = CAT_CAKE //Cat! Haha, get it? CAT? GET IT? We get it - Love Felines -Foxes are better \ No newline at end of file diff --git a/code/modules/holiday/christmas.dm b/code/modules/holiday/christmas.dm index ea608e35e4d..047c8ce069e 100644 --- a/code/modules/holiday/christmas.dm +++ b/code/modules/holiday/christmas.dm @@ -6,8 +6,10 @@ new /obj/item/a_gift(T) for(var/mob/living/simple_animal/pet/corgi/Ian/Ian in GLOB.mob_list) Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat(Ian)) - GLOB.crafting_recipes += new /datum/crafting_recipe/snowman -//The following spawn is necessary as both the timer and the shuttle systems initialise after the events system does, so we can't add stuff to the shuttle system as it doesn't exist yet and we can't use a timer + for(var/datum/crafting_recipe/snowman/S in GLOB.crafting_recipes) + S.always_availible = TRUE + break + //The following spawn is necessary as both the timer and the shuttle systems initialise after the events system does, so we can't add stuff to the shuttle system as it doesn't exist yet and we can't use a timer spawn(60 SECONDS) var/datum/supply_packs/xmas = SSshuttle.supply_packs["[/datum/supply_packs/misc/snow_machine]"] xmas.special_enabled = TRUE diff --git a/nano/templates/personal_crafting.tmpl b/nano/templates/personal_crafting.tmpl index c209a8ad4bf..3158d7c3906 100644 --- a/nano/templates/personal_crafting.tmpl +++ b/nano/templates/personal_crafting.tmpl @@ -4,7 +4,7 @@