diff --git a/code/_helpers/type2type.dm b/code/_helpers/type2type.dm index 18a94a501d0..77019ab7b9f 100644 --- a/code/_helpers/type2type.dm +++ b/code/_helpers/type2type.dm @@ -281,3 +281,103 @@ return strtype return copytext(strtype, delim_pos) +// Concatenates a list of strings into a single string. A seperator may optionally be provided. +/proc/list2text(list/ls, sep) + if (ls.len <= 1) // Early-out code for empty or singleton lists. + return ls.len ? ls[1] : "" + + var/l = ls.len // Made local for sanic speed. + var/i = 0 // Incremented every time a list index is accessed. + + if (sep != null) + // Macros expand to long argument lists like so: sep, ls[++i], sep, ls[++i], sep, ls[++i], etc... + #define S1 sep, ls[++i] + #define S4 S1, S1, S1, S1 + #define S16 S4, S4, S4, S4 + #define S64 S16, S16, S16, S16 + + . = "[ls[++i]]" // Make sure the initial element is converted to text. + + // Having the small concatenations come before the large ones boosted speed by an average of at least 5%. + if (l-1 & 0x01) // 'i' will always be 1 here. + . = text("[][][]", ., S1) // Append 1 element if the remaining elements are not a multiple of 2. + if (l-i & 0x02) + . = text("[][][][][]", ., S1, S1) // Append 2 elements if the remaining elements are not a multiple of 4. + if (l-i & 0x04) + . = text("[][][][][][][][][]", ., S4) // And so on.... + if (l-i & 0x08) + . = text("[][][][][][][][][][][][][][][][][]", ., S4, S4) + if (l-i & 0x10) + . = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S16) + if (l-i & 0x20) + . = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\ + [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S16, S16) + if (l-i & 0x40) + . = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\ + [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\ + [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\ + [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S64) + while (l > i) // Chomp through the rest of the list, 128 elements at a time. + . = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\ + [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\ + [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\ + [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\ + [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\ + [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\ + [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\ + [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S64, S64) + + #undef S64 + #undef S16 + #undef S4 + #undef S1 + else + // Macros expand to long argument lists like so: ls[++i], ls[++i], ls[++i], etc... + #define S1 ls[++i] + #define S4 S1, S1, S1, S1 + #define S16 S4, S4, S4, S4 + #define S64 S16, S16, S16, S16 + + . = "[ls[++i]]" // Make sure the initial element is converted to text. + + if (l-1 & 0x01) // 'i' will always be 1 here. + . += S1 // Append 1 element if the remaining elements are not a multiple of 2. + if (l-i & 0x02) + . = text("[][][]", ., S1, S1) // Append 2 elements if the remaining elements are not a multiple of 4. + if (l-i & 0x04) + . = text("[][][][][]", ., S4) // And so on... + if (l-i & 0x08) + . = text("[][][][][][][][][]", ., S4, S4) + if (l-i & 0x10) + . = text("[][][][][][][][][][][][][][][][][]", ., S16) + if (l-i & 0x20) + . = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S16, S16) + if (l-i & 0x40) + . = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\ + [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S64) + while (l > i) // Chomp through the rest of the list, 128 elements at a time. + . = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\ + [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\ + [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\ + [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S64, S64) + + #undef S64 + #undef S16 + #undef S4 + #undef S1 + +// Converts a string into a list by splitting the string at each delimiter found. (discarding the seperator) +/proc/text2list(text, delimiter="\n") + var/delim_len = length(delimiter) + if (delim_len < 1) + return list(text) + + . = list() + var/last_found = 1 + var/found + + do + found = findtext(text, delimiter, last_found, 0) + . += copytext(text, last_found, found) + last_found = found + delim_len + while (found) diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm index 3fcbc98e850..b9aca5a2323 100644 --- a/code/game/machinery/biogenerator.dm +++ b/code/game/machinery/biogenerator.dm @@ -129,7 +129,10 @@ dat += "Leather Coat ([round(500/build_eff)])
" dat += "Leather Jacket ([round(500/build_eff)])
" dat += "Winter Coat ([round(500/build_eff)])
" +<<<<<<< HEAD dat += "4 Algae Sheets ([round(400/build_eff)])
" //VOREStation Edit - Algae for oxygen generator +======= +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking //dat += "Other
" //dat += "Monkey (500)
" else diff --git a/code/game/machinery/vending_machines.dm b/code/game/machinery/vending_machines.dm index 59524f869a1..7ca2a2031d8 100644 --- a/code/game/machinery/vending_machines.dm +++ b/code/game/machinery/vending_machines.dm @@ -384,8 +384,12 @@ /obj/item/weapon/storage/toolbox/lunchbox/nymph = 3, /obj/item/weapon/storage/toolbox/lunchbox/syndicate = 3, /obj/item/weapon/reagent_containers/cooking_container/oven = 5, +<<<<<<< HEAD /obj/item/weapon/reagent_containers/cooking_container/fryer = 4, /obj/item/trash/bowl = 10) //VOREStation Add +======= + /obj/item/weapon/reagent_containers/cooking_container/fryer = 4) +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking contraband = list(/obj/item/weapon/material/knife/butch = 2) /obj/machinery/vending/sovietsoda diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm index 95574343725..8110f0901b2 100644 --- a/code/modules/food/food/snacks.dm +++ b/code/modules/food/food/snacks.dm @@ -157,7 +157,11 @@ . = ..() if(Adjacent(user)) if(coating) +<<<<<<< HEAD to_chat(user, "It's coated in [coating.name]!") +======= + . += "It's coated in [coating.name]!" +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking if(bitecount==0) return . else if (bitecount==1) @@ -4528,12 +4532,23 @@ filling_color = "#DB0000" center_of_mass = list("x"=16, "y"=16) do_coating_prefix = 0 +<<<<<<< HEAD New() . = ..() reagents.add_reagent("protein", 6) reagents.add_reagent("batter", 1.7) reagents.add_reagent("oil", 1.5) bitesize = 2 +======= + bitesize = 2 + + +/obj/item/weapon/reagent_containers/food/snacks/sausage/battered/Initialize() + . = ..() + reagents.add_reagent("protein", 6) + reagents.add_reagent("batter", 1.7) + reagents.add_reagent("oil", 1.5) +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking /obj/item/weapon/reagent_containers/food/snacks/jalapeno_poppers name = "jalapeno popper" @@ -4558,10 +4573,18 @@ icon = 'icons/obj/food_syn.dmi' icon_state = "ratburger" center_of_mass = list("x"=16, "y"=11) +<<<<<<< HEAD New() . = ..() reagents.add_reagent("protein", 4) bitesize = 2 +======= + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/mouseburger/Initialize() + . = ..() + reagents.add_reagent("protein", 4) +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking /obj/item/weapon/reagent_containers/food/snacks/chickenkatsu name = "chicken katsu" @@ -4637,6 +4660,7 @@ nutriment_amt = 25 nutriment_desc = list("fried pizza" = 25) center_of_mass = list("x"=16, "y"=11) +<<<<<<< HEAD New() . = ..() @@ -4644,6 +4668,15 @@ coating = reagents.get_reagent("batter") reagents.add_reagent("oil", 4) bitesize = 2 +======= + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/crunch/Initialize() + . = ..() + reagents.add_reagent("batter", 6.5) + coating = reagents.get_reagent("batter") + reagents.add_reagent("oil", 4) +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking /obj/item/weapon/reagent_containers/food/snacks/pizzacrunchslice name = "pizza crunch" @@ -6032,4 +6065,20 @@ /obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice/filled/Initialize() . = ..() - reagents.add_reagent("protein", 1) \ No newline at end of file +<<<<<<< HEAD + reagents.add_reagent("protein", 1) +======= + reagents.add_reagent("protein", 1) + +/obj/item/weapon/reagent_containers/food/snacks/lasagna + name = "lasagna" + desc = "Meaty, tomato-y, and ready to eat-y. Favorite of cats." + icon = 'icons/obj/food.dmi' + icon_state = "lasagna" + nutriment_amt = 5 + nutriment_desc = list("tomato" = 4, "meat" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/lasagna/Initialize() + ..() + reagents.add_reagent("protein", 2) //For meaty things. +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking diff --git a/code/modules/food/kitchen/cooking_machines/_appliance.dm b/code/modules/food/kitchen/cooking_machines/_appliance.dm index 265b0c95bcd..f600d1aeb3a 100644 --- a/code/modules/food/kitchen/cooking_machines/_appliance.dm +++ b/code/modules/food/kitchen/cooking_machines/_appliance.dm @@ -53,12 +53,19 @@ if (!available_recipes) available_recipes = new +<<<<<<< HEAD for (var/type in subtypesof(/datum/recipe)) var/datum/recipe/test = new type if ((appliancetype & test.appliance)) available_recipes += test else qdel(test) +======= + for(var/type in subtypesof(/datum/recipe)) + var/datum/recipe/test = type + if((appliancetype & initial(test.appliance))) + available_recipes += new test +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking /obj/machinery/appliance/Destroy() for (var/a in cooking_objs) @@ -79,7 +86,11 @@ for (var/a in cooking_objs) var/datum/cooking_item/CI = a string += "-\a [CI.container.label(null, CI.combine_target)], [report_progress(CI)]
" +<<<<<<< HEAD to_chat(user, string) +======= + return string +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking else to_chat(user, "") @@ -125,14 +136,22 @@ return if (!user.IsAdvancedToolUser()) +<<<<<<< HEAD to_chat(user, "You lack the dexterity to do that!") +======= + to_chat(user, "You lack the dexterity to do that!") +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking return if (user.stat || user.restrained() || user.incapacitated()) return if (!Adjacent(user) && !issilicon(user)) +<<<<<<< HEAD to_chat(user, "You can't reach [src] from here.") +======= + to_chat(user, "You can't reach [src] from here!") +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking return if (stat & POWEROFF)//Its turned off @@ -234,10 +253,17 @@ //This function is overridden by cookers that do stuff with containers /obj/machinery/appliance/proc/has_space(var/obj/item/I) +<<<<<<< HEAD if (cooking_objs.len >= max_contents) return FALSE else return TRUE +======= + if(cooking_objs.len >= max_contents) + return FALSE + + return TRUE +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking /obj/machinery/appliance/attackby(var/obj/item/I, var/mob/user) if(!cook_type || (stat & (BROKEN))) @@ -246,12 +272,18 @@ var/result = can_insert(I, user) if(!result) +<<<<<<< HEAD if(default_deconstruction_screwdriver(user, I)) return else if(default_part_replacement(user, I)) return else return +======= + if(!(default_deconstruction_screwdriver(user, I))) + default_part_replacement(user, I) + return +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking if(result == 2) var/obj/item/weapon/grab/G = I @@ -344,7 +376,11 @@ else if(istype(I, /obj/item/weapon/holder)) var/obj/item/weapon/holder/H = I if (H.held_mob) +<<<<<<< HEAD work += ((H.held_mob.mob_size * H.held_mob.size_multiplier) * (H.held_mob.mob_size * H.held_mob.size_multiplier) * 2)+2 +======= + work += (H.held_mob.mob_size * H.held_mob.mob_size * 2)+2 +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking CI.max_cookwork += work @@ -370,7 +406,11 @@ for(var/obj/item/weapon/holder/H in CI.container.contents) var/mob/living/M = H.held_mob if(M) +<<<<<<< HEAD M.apply_damage(rand(1,3) * (1/M.size_multiplier), mobdamagetype, pick(BP_ALL)) +======= + M.apply_damage(rand(1,3) * (1/M.mob_size), mobdamagetype, pick(BP_ALL)) // Allows special handling for mice/smaller mobs. +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking return TRUE @@ -572,6 +612,7 @@ var/datum/cooking_item/CI = menuoptions[selection] eject(CI, user) update_icon() +<<<<<<< HEAD return 1 return 0 @@ -583,6 +624,19 @@ return 0 return 1 +======= + return TRUE + return FALSE + +/obj/machinery/appliance/proc/can_remove_items(var/mob/user) + if (!Adjacent(user)) + return FALSE + + if (isanimal(user)) + return FALSE + + return TRUE +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking /obj/machinery/appliance/proc/eject(var/datum/cooking_item/CI, var/mob/user = null) var/obj/item/thing diff --git a/code/modules/food/kitchen/cooking_machines/_cooker.dm b/code/modules/food/kitchen/cooking_machines/_cooker.dm index 1e7193f166e..66340a08260 100644 --- a/code/modules/food/kitchen/cooking_machines/_cooker.dm +++ b/code/modules/food/kitchen/cooking_machines/_cooker.dm @@ -19,12 +19,21 @@ if(.) //no need to duplicate adjacency check if(!stat) if (temperature < min_temp) +<<<<<<< HEAD to_chat(user, "\The [src] is still heating up and is too cold to cook anything yet.") else to_chat(user, "It is running at [round(get_efficiency(), 0.1)]% efficiency!") to_chat(user, "Temperature: [round(temperature - T0C, 0.1)]C / [round(optimal_temp - T0C, 0.1)]C") else to_chat(user, "It is switched off.") +======= + . += "\The [src] is still heating up and is too cold to cook anything yet." + else + . += "It is running at [round(get_efficiency(), 0.1)]% efficiency!" + . += "Temperature: [round(temperature - T0C, 0.1)]C / [round(optimal_temp - T0C, 0.1)]C" + else + . += "It is switched off." +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking /obj/machinery/appliance/cooker/list_contents(var/mob/user) if (cooking_objs.len) diff --git a/code/modules/food/kitchen/cooking_machines/_mixer.dm b/code/modules/food/kitchen/cooking_machines/_mixer.dm index 18b75998d97..013ebd73186 100644 --- a/code/modules/food/kitchen/cooking_machines/_mixer.dm +++ b/code/modules/food/kitchen/cooking_machines/_mixer.dm @@ -17,7 +17,11 @@ fundamental differences /obj/machinery/appliance/mixer/examine(var/mob/user) . = ..() if(Adjacent(user)) +<<<<<<< HEAD to_chat(user, "It is currently set to make a [selected_option]") +======= + . += "It is currently set to make a [selected_option]" +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking /obj/machinery/appliance/mixer/Initialize() . = ..() @@ -27,7 +31,11 @@ fundamental differences //Mixers cannot-not do combining mode. So the default option is removed from this. A combine target must be chosen /obj/machinery/appliance/mixer/choose_output() +<<<<<<< HEAD set src in oview(1) +======= + set src in view(1) +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking set name = "Choose output" set category = "Object" @@ -91,7 +99,11 @@ fundamental differences /obj/machinery/appliance/mixer/toggle_power() +<<<<<<< HEAD set src in view() +======= + set src in view(1) +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking set name = "Toggle Power" set category = "Object" diff --git a/code/modules/food/kitchen/microwave.dm b/code/modules/food/kitchen/microwave.dm index 3e40412b1b0..1fe2500cf00 100644 --- a/code/modules/food/kitchen/microwave.dm +++ b/code/modules/food/kitchen/microwave.dm @@ -268,7 +268,11 @@ return start() if(reagents.total_volume==0 && !(locate(/obj) in ((contents - component_parts) - circuit))) //dry run +<<<<<<< HEAD if(!wzhzhzh(16)) //VOREStation Edit - Quicker Microwaves (Undone during Auroraport, left note in case of reversion, was 5) +======= + if(!wzhzhzh(16)) +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking abort() return abort() @@ -279,23 +283,39 @@ if(!recipe) dirty += 1 if(prob(max(10,dirty*5))) +<<<<<<< HEAD if(!wzhzhzh(16)) //VOREStation Edit - Quicker Microwaves (Undone during Auroraport, left note in case of reversion, was 2) abort() return muck_start() wzhzhzh(2) //VOREStation Edit - Quicker Microwaves (Undone during Auroraport, left note in case of reversion, was 2) +======= + if(!wzhzhzh(16)) + abort() + return + muck_start() + wzhzhzh(2) +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking muck_finish() cooked = fail() cooked.forceMove(src.loc) else if(has_extra_item()) +<<<<<<< HEAD if(!wzhzhzh(16)) //VOREStation Edit - Quicker Microwaves (Undone during Auroraport, left note in case of reversion, was 2) +======= + if(!wzhzhzh(16)) +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking abort() return broke() cooked = fail() cooked.forceMove(src.loc) else +<<<<<<< HEAD if(!wzhzhzh(40)) //VOREStation Edit - Quicker Microwaves (Undone during Auroraport, left note in case of reversion, was 5) +======= + if(!wzhzhzh(40)) +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking abort() return stop() @@ -304,7 +324,11 @@ return //Making multiple copies of a recipe +<<<<<<< HEAD var/halftime = round(recipe.time*4/10/2) // VOREStation Edit - Quicker Microwaves (Undone during Auroraport, left note in case of reversion, was round(recipe.time/20/2)) +======= + var/halftime = round(recipe.time*4/10/2) +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking if(!wzhzhzh(halftime)) abort() return @@ -359,7 +383,11 @@ if (stat & (NOPOWER|BROKEN)) return 0 use_power(active_power_usage) +<<<<<<< HEAD sleep(5) //VOREStation Edit - Quicker Microwaves +======= + sleep(10) +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking return 1 /obj/machinery/microwave/proc/has_extra_item() //- coded to have different microwaves be able to handle different items @@ -519,7 +547,11 @@ ..() reagents.maximum_volume = 1000 +<<<<<<< HEAD /datum/recipe/splat // We use this to handle cooking micros (or mice, etc) in a microwave. Janky but it works better than snowflake code to handle the same thing. +======= +/datum/recipe/splat // We use this to handle cooking mice or other smaller/similar-size mobs in a microwave. Janky but it works better than snowflake code to handle the same thing. +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking items = list( /obj/item/weapon/holder ) diff --git a/code/modules/food/recipe.dm b/code/modules/food/recipe.dm index e5b5a02eb04..6a90986c163 100644 --- a/code/modules/food/recipe.dm +++ b/code/modules/food/recipe.dm @@ -71,6 +71,7 @@ // This is a bitfield, more than one type can be used // Grill is presently unused and not listed +<<<<<<< HEAD /datum/recipe/proc/check_reagents(var/datum/reagents/avail_reagents) if(!reagents || !reagents.len) return 1 @@ -96,6 +97,33 @@ return 1 . = 1 +======= +/datum/recipe/proc/check_reagents(var/datum/reagents/avail_reagents, var/exact = 0) + if(!reagents || !reagents.len) + return TRUE + + if(!avail_reagents) + return FALSE + + . = TRUE + for(var/r_r in reagents) + var/aval_r_amnt = avail_reagents.get_reagent_amount(r_r) + if(aval_r_amnt - reagents[r_r] >= 0) + if(aval_r_amnt>(reagents[r_r] && exact)) + . = FALSE + else + return FALSE + + if((reagents?(reagents.len):(0)) < avail_reagents.reagent_list.len) + return FALSE + return . + +/datum/recipe/proc/check_fruit(var/obj/container, var/exact = 0) + if (!fruit || !fruit.len) + return TRUE + + . = TRUE +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking if(fruit && fruit.len) var/list/checklist = list() // You should trust Copy(). @@ -107,6 +135,7 @@ checklist[G.seed.kitchen_tag]-- for(var/ktag in checklist) if(!isnull(checklist[ktag])) +<<<<<<< HEAD if(checklist[ktag] < 0) . = 0 else if(checklist[ktag] > 0) @@ -119,6 +148,20 @@ return 1 . = 1 +======= + if(checklist[ktag] < 0 && exact) + . = FALSE + else if(checklist[ktag] > 0) + . = FALSE + break + return . + +/datum/recipe/proc/check_items(var/obj/container as obj, var/exact = 0) + if(!items || !items.len) + return TRUE + + . = TRUE +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking if(items && items.len) var/list/checklist = list() checklist = items.Copy() // You should really trust Copy @@ -127,25 +170,41 @@ for(var/obj/O in ((machine.contents - machine.component_parts) - machine.circuit)) if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown)) continue // Fruit is handled in check_fruit(). +<<<<<<< HEAD var/found = 0 +======= + var/found = FALSE +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking for(var/i = 1; i < checklist.len+1; i++) var/item_type = checklist[i] if (istype(O,item_type)) checklist.Cut(i, i+1) +<<<<<<< HEAD found = 1 break if(!found) . = 0 +======= + found = TRUE + break + if(!found && exact) + return FALSE +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking else for(var/obj/O in container.contents) if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown)) continue // Fruit is handled in check_fruit(). +<<<<<<< HEAD var/found = 0 +======= + var/found = FALSE +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking for(var/i = 1; i < checklist.len+1; i++) var/item_type = checklist[i] if (istype(O,item_type)) if(check_coating(O)) checklist.Cut(i, i+1) +<<<<<<< HEAD found = 1 break if (!found) @@ -161,16 +220,42 @@ if (coating == -1) return 1 //-1 value doesnt care +======= + found = TRUE + break + if (!found && exact) + return FALSE + if(checklist.len) + return FALSE + return . + +//This is called on individual items within the container. +/datum/recipe/proc/check_coating(var/obj/O, var/exact = FALSE) + if(!istype(O,/obj/item/weapon/reagent_containers/food/snacks)) + return TRUE //Only snacks can be battered + + if (coating == -1) + return TRUE //-1 value doesnt care +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking var/obj/item/weapon/reagent_containers/food/snacks/S = O if (!S.coating) if (!coating) +<<<<<<< HEAD return 1 return 0 else if (S.coating.type == coating) return 1 return 0 +======= + return TRUE + return FALSE + else if (S.coating.type == coating) + return TRUE + + return FALSE +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking //general version /datum/recipe/proc/make(var/obj/container as obj) @@ -308,7 +393,11 @@ /proc/select_recipe(var/list/datum/recipe/available_recipes, var/obj/obj as obj, var/exact) var/list/datum/recipe/possible_recipes = list() for (var/datum/recipe/recipe in available_recipes) +<<<<<<< HEAD if((recipe.check_reagents(obj.reagents) < exact) || (recipe.check_items(obj) < exact) || (recipe.check_fruit(obj) < exact)) +======= + if(!recipe.check_reagents(obj.reagents, exact) || !recipe.check_items(obj, exact) || !recipe.check_fruit(obj, exact)) +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking continue possible_recipes |= recipe if (!possible_recipes.len) diff --git a/code/modules/food/recipes_fryer.dm b/code/modules/food/recipes_fryer.dm index b0347d154d9..30963429ee0 100644 --- a/code/modules/food/recipes_fryer.dm +++ b/code/modules/food/recipes_fryer.dm @@ -6,6 +6,10 @@ result = /obj/item/weapon/reagent_containers/food/snacks/fries /datum/recipe/cheesyfries +<<<<<<< HEAD +======= + appliance = FRYER +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking items = list( /obj/item/weapon/reagent_containers/food/snacks/fries, /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, @@ -100,6 +104,7 @@ ) result = /obj/item/weapon/reagent_containers/food/snacks/donut/poisonberry +<<<<<<< HEAD /datum/recipe/jellydonut/slime appliance = FRYER reagents = list("slimejelly" = 5, "sugar" = 5) @@ -107,6 +112,13 @@ /datum/recipe/jellydonut/cherry appliance = FRYER +======= +/datum/recipe/jellydonut/slime // Subtypes of jellydonut, appliance inheritance applies. + reagents = list("slimejelly" = 5, "sugar" = 5) + result = /obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly + +/datum/recipe/jellydonut/cherry // Subtypes of jellydonut, appliance inheritance applies. +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking reagents = list("cherryjelly" = 5, "sugar" = 5) result = /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly @@ -158,6 +170,7 @@ ) reagents = list("soysauce" = 5, "batter" = 10) result = /obj/item/weapon/reagent_containers/food/snacks/sweet_and_sour +<<<<<<< HEAD /datum/recipe/generalschicken appliance = FRYER @@ -177,4 +190,6 @@ /obj/item/weapon/reagent_containers/food/snacks/meat, /obj/item/weapon/reagent_containers/food/snacks/meat ) - result = /obj/item/weapon/storage/box/wings //This is kinda like the donut box. \ No newline at end of file + result = /obj/item/weapon/storage/box/wings //This is kinda like the donut box. +======= +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm index 1245c7e0211..aeab2acc33e 100644 --- a/code/modules/food/recipes_microwave.dm +++ b/code/modules/food/recipes_microwave.dm @@ -208,10 +208,18 @@ I said no! /datum/recipe/amanitajelly reagents = list("water" = 5, "vodka" = 5, "amatoxin" = 5) result = /obj/item/weapon/reagent_containers/food/snacks/amanitajelly +<<<<<<< HEAD make_food(var/obj/container as obj) . = ..(container) for(var/obj/item/weapon/reagent_containers/food/snacks/amanitajelly/being_cooked in .) being_cooked.reagents.del_reagent("amatoxin") +======= + +/datum/recipe/amanitajelly/make_food(var/obj/container as obj) + . = ..(container) + for(var/obj/item/weapon/reagent_containers/food/snacks/amanitajelly/being_cooked in .) + being_cooked.reagents.del_reagent("amatoxin") +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking /datum/recipe/meatballsoup fruit = list("carrot" = 1, "potato" = 1) @@ -531,12 +539,21 @@ I said no! fruit = list("potato" = 1, "ambrosia" = 3) items = list(/obj/item/weapon/reagent_containers/food/snacks/meatball) result = /obj/item/weapon/reagent_containers/food/snacks/validsalad +<<<<<<< HEAD make_food(var/obj/container as obj) . = ..(container) for (var/obj/item/weapon/reagent_containers/food/snacks/validsalad/being_cooked in .) being_cooked.reagents.del_reagent("toxin") +======= + +/datum/recipe/validsalad/make_food(var/obj/container as obj) + . = ..(container) + for (var/obj/item/weapon/reagent_containers/food/snacks/validsalad/being_cooked in .) + being_cooked.reagents.del_reagent("toxin") + +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking /datum/recipe/stuffing reagents = list("water" = 5, "sodiumchloride" = 1, "blackpepper" = 1) items = list( @@ -1010,6 +1027,7 @@ I said no! reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product result = /obj/item/weapon/reagent_containers/food/snacks/honeytoast +<<<<<<< HEAD /datum/recipe/donerkebab fruit = list("tomato" = 1, "cabbage" = 1) @@ -1021,6 +1039,8 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/donerkebab +======= +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking /datum/recipe/sashimi reagents = list("soysauce" = 5) items = list( @@ -1028,7 +1048,10 @@ I said no! ) result = /obj/item/weapon/reagent_containers/food/snacks/sashimi +<<<<<<< HEAD +======= +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking /datum/recipe/nugget reagents = list("flour" = 5) items = list( @@ -1312,6 +1335,7 @@ I said no! /obj/item/weapon/reagent_containers/food/snacks/bacon ) result = /obj/item/weapon/reagent_containers/food/snacks/porkbowl +<<<<<<< HEAD /datum/recipe/sushi fruit = list("cabbage" = 1) @@ -1392,3 +1416,5 @@ I said no! ) result = /obj/item/weapon/reagent_containers/food/snacks/makaroni +======= +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking diff --git a/code/modules/food/recipes_oven.dm b/code/modules/food/recipes_oven.dm index 3f89560372a..e7198cbe4b1 100644 --- a/code/modules/food/recipes_oven.dm +++ b/code/modules/food/recipes_oven.dm @@ -83,6 +83,10 @@ result = /obj/item/weapon/reagent_containers/food/snacks/flatbread /datum/recipe/tortilla +<<<<<<< HEAD +======= + appliance = OVEN +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking reagents = list("flour" = 5) items = list( /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm index a70f4777796..5d522ae8f6f 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -69,6 +69,7 @@ /datum/reagent/nutriment/coating/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) //We'll assume that the batter isnt going to be regurgitated and eaten by someone else. Only show this once +<<<<<<< HEAD if (data["cooked"] != 1) if (!messaged) to_chat(M, "Ugh, this raw [name] tastes disgusting.") @@ -77,6 +78,16 @@ //Raw coatings will sometimes cause vomiting if (prob(1)) +======= + if(data["cooked"] != 1) + if (!messaged) + to_chat(M, "Ugh, this raw [name] tastes disgusting.") + nutriment_factor *= 0.5 + messaged = 1 + + //Raw coatings will sometimes cause vomiting. 75% chance of this happening. + if(prob(75)) +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking M.vomit() ..() diff --git a/code/modules/research/designs/circuits/circuits.dm b/code/modules/research/designs/circuits/circuits.dm index 28e76ceac98..980dfb96e66 100644 --- a/code/modules/research/designs/circuits/circuits.dm +++ b/code/modules/research/designs/circuits/circuits.dm @@ -625,6 +625,10 @@ CIRCUITS BELOW req_tech = list(TECH_DATA = 5, TECH_ENGINEERING = 5, TECH_BLUESPACE = 4) build_path = /obj/item/weapon/circuitboard/microwave/advanced sort_string = "HACAA" +<<<<<<< HEAD +======= + +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking /datum/design/circuit/shield_generator name = "shield generator" diff --git a/html/changelogs/rykka-stormheart-pr-7344.yml b/html/changelogs/rykka-stormheart-pr-7344.yml new file mode 100644 index 00000000000..e8394c72cb6 --- /dev/null +++ b/html/changelogs/rykka-stormheart-pr-7344.yml @@ -0,0 +1,43 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Rykka Stormheart + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Ported over Aurora Cooking from AuroraStation and Citadel-RP!" + - rscadd: "Refactored Recipes to be separated per-appliance, and all appliances have a use!" + - rscadd: "Please take note, Chefs, to pre-heat you appliances at the start of your shift." + - rscadd: "Fryer Recipes require batter before they can be made!" + - rscadd: "Fire alarms will go off if you burn food!" + - rscadd: "The largest change - Cooking takes TIME. Around 6 minutes for the largest recipes in the game." + - rscadd: "Too many other changes to list - refer to PR #7344 https://github.com/PolarisSS13/Polaris/pull/7344" + - rscdel: "Removed fun, and any sense of joy in the game." diff --git a/maps/submaps/surface_submaps/plains/Diner.dmm b/maps/submaps/surface_submaps/plains/Diner.dmm index 69f2b63996c..a462d83e12d 100644 --- a/maps/submaps/surface_submaps/plains/Diner.dmm +++ b/maps/submaps/surface_submaps/plains/Diner.dmm @@ -1,3 +1,4 @@ +<<<<<<< HEAD //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( /turf/template_noop, @@ -1130,3 +1131,489 @@ aa aa aa "} +======= +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/template_noop, +/area/submap/Diner) +"ac" = ( +/turf/simulated/floor/outdoors/dirt, +/area/submap/Diner) +"ad" = ( +/turf/simulated/wall, +/area/submap/Diner) +"ae" = ( +/obj/structure/window/reinforced/full, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"af" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ag" = ( +/obj/structure/table/standard, +/obj/machinery/microwave, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ah" = ( +/obj/structure/table/standard, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ai" = ( +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/condiment/enzyme, +/obj/item/weapon/reagent_containers/glass/beaker, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aj" = ( +/obj/structure/table/standard, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/material/knife/butch, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ak" = ( +/obj/machinery/vending/cola, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"al" = ( +/obj/machinery/vending/dinnerware, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"am" = ( +/obj/structure/sink/kitchen, +/turf/simulated/wall, +/area/submap/Diner) +"an" = ( +/obj/structure/flora/tree/sif, +/turf/template_noop, +/area/submap/Diner) +"ao" = ( +/obj/structure/bed/chair/wood{ + dir = 1 + }, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ap" = ( +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aq" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ar" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker, +/obj/item/weapon/material/kitchen/utensil/fork, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"as" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/condiment/small/peppermill, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"at" = ( +/obj/machinery/light{ + dir = 8; + icon_state = "tube1"; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"au" = ( +/obj/structure/table/standard, +/obj/item/weapon/book/manual/chef_recipes, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"av" = ( +/obj/structure/table/standard, +/obj/item/weapon/material/kitchen/rollingpin, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aw" = ( +/obj/machinery/appliance/mixer/cereal, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ax" = ( +/obj/structure/bed/chair/wood, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ay" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/weapon/storage/fancy/egg_box, +/obj/item/weapon/storage/fancy/egg_box, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/obj/item/weapon/reagent_containers/food/condiment/sugar, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"az" = ( +/obj/structure/simple_door/wood, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aA" = ( +/obj/structure/simple_door/wood, +/turf/simulated/floor/tiled, +/area/submap/Diner) +"aB" = ( +/obj/structure/simple_door/wood, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aC" = ( +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker, +/obj/effect/floor_decal/corner/red/diagonal, +/obj/item/weapon/material/kitchen/utensil/fork, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aD" = ( +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/condiment/small/peppermill, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aE" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/item/weapon/stool/padded, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aF" = ( +/obj/structure/table/standard, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aG" = ( +/turf/simulated/floor/tiled, +/area/submap/Diner) +"aH" = ( +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aI" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aJ" = ( +/obj/structure/table/standard, +/obj/effect/floor_decal/corner/red/diagonal, +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aK" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aL" = ( +/obj/machinery/light/small{ + brightness_color = "#DA0205"; + brightness_power = 1; + brightness_range = 5; + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/submap/Diner) +"aM" = ( +/obj/machinery/light/small{ + brightness_color = "#DA0205"; + brightness_power = 1; + brightness_range = 5; + dir = 8 + }, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aN" = ( +/obj/structure/closet/crate/freezer, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aO" = ( +/obj/structure/table/standard, +/obj/effect/floor_decal/corner/red/diagonal, +/obj/item/weapon/reagent_containers/food/condiment/small/peppermill, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aP" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/table/standard, +/obj/machinery/microwave, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aQ" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aR" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/coatrack, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aS" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/table/standard, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aT" = ( +/obj/structure/closet/crate/freezer, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aU" = ( +/obj/machinery/gibber, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aV" = ( +/obj/machinery/light/small, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aW" = ( +/obj/machinery/appliance/cooker/fryer, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aX" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/outdoors/dirt, +/area/submap/Diner) +"aY" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/machinery/light{ + dir = 8; + icon_state = "tube1"; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aZ" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/machinery/appliance/cooker/grill, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ba" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/submap/Diner) +"bb" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/submap/Diner) +"bc" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bd" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/weapon/storage/fancy/egg_box, +/obj/item/weapon/storage/fancy/egg_box, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"be" = ( +/obj/structure/table/standard, +/obj/machinery/chemical_dispenser/bar_coffee, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bf" = ( +/obj/item/frame/apc, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bg" = ( +/obj/structure/table/woodentable, +/obj/item/device/flashlight/lamp, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bh" = ( +/obj/structure/bed/chair/office/light, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bi" = ( +/turf/simulated/floor/lino, +/area/submap/Diner) +"bk" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bl" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/cell/high, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bm" = ( +/obj/structure/table/woodentable, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bn" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bo" = ( +/obj/structure/simple_door/wood, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bp" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/windoor_assembly{ + icon_state = "l_windoor_assembly01"; + dir = 2 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bq" = ( +/obj/structure/bookcase, +/turf/simulated/floor/lino, +/area/submap/Diner) +"br" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/machinery/space_heater, +/obj/machinery/light, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bs" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"bt" = ( +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"bu" = ( +/obj/structure/toilet, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"bv" = ( +/obj/structure/bed/chair/wood{ + dir = 4 + }, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bw" = ( +/obj/structure/bed/chair/wood{ + dir = 8 + }, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bx" = ( +/obj/structure/simple_door/wood, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"by" = ( +/obj/structure/mirror{ + dir = 4; + pixel_x = -32; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"bz" = ( +/obj/machinery/light/small, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"bA" = ( +/obj/structure/table/standard, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaabababacabababababadaeaeadadadadadadadadabababaa +aaabababacacabababadadafafadagahaiajakalamadababaa +aaabanacacacababadadafaxaxadapapapapapapapadadabaa +aaababacacacabadadaqafarasadatapauahavapapawadadaa +aaababacacacabadafafafaoaoadapapapapapapapapayadaa +aaababacacacabaeaxaxafafafadazazadaAadadaBadadadaa +aaababacacacabaeaCaDafafaEaFafafadaGadaHaHaHaIadaa +aaababacacacabaeaoaoafafaEaJafaKadaLadaMaHaHaNadaa +aaababacacacabadafafafafaEaOafaPadaGadaQaHaHaHadaa +aaababacacacacadadadaRafaEaFafaSadaGadaTaHaHaUadaa +aaababacacacacazaVazafafaEaFafaWadaGadadadadadadaa +aaababacacacaXadadadaYafaEaFafaZadaGbabbaGaAbbaAaa +aaanabacacacabaeaxaxafafaEaFafbcadbabababaaAaGaAaa +aaababacacacabaeaCaDafafaEaFafbdadbaadadadadadadaa +aaababacacacabaeaoaoafafaEaFafbeadaGadbfbgbhbiadaa +aaababacacacabadaxaxafafaEaOafahadaGadbkblbmbnadaa +aaababacacacabaeaCaDafafaEaJafaKadaLbobibibibiadaa +aaababacacacabaeaoaoafafaEaFahbpadaGadbibibqbqadaa +aaababacacacabaeafafafafafafafafadadadadadadadadaa +aaababacacacabadadbrafafafafafafadbsbtbuadadadadaa +aaabababacabababadadafafbvaDbwafbxbtbtbtadadadabaa +aaabanababababababadadafbvaCbwafadbybzbAadadababaa +aaabababababababababadadaeaeaeadadadadadadabababaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking diff --git a/maps/submaps/surface_submaps/wilderness/Manor1.dmm b/maps/submaps/surface_submaps/wilderness/Manor1.dmm index 311e2b7bb14..2d00027ba4c 100644 --- a/maps/submaps/surface_submaps/wilderness/Manor1.dmm +++ b/maps/submaps/surface_submaps/wilderness/Manor1.dmm @@ -1,3 +1,4 @@ +<<<<<<< HEAD "aa" = (/turf/template_noop,/area/submap/Manor1) "ab" = (/turf/simulated/wall/wood,/area/submap/Manor1) "ac" = (/obj/structure/window/reinforced/full,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) @@ -185,4 +186,194 @@ cNaaaaaaaaaaaaaaaaababcwcFcGabcwcJabcKcLabaaaaaaaaaaaaaaaaaaaaaaaaabcMalalagagag cNaaaaaacOaaaaaaaaaaabababababababababababaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababaaaaaaaaaaaaaacN cNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacN cNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcN -"} \ No newline at end of file +"} +======= +"aa" = (/turf/template_noop,/area/submap/Manor1) +"ab" = (/turf/simulated/wall/wood,/area/submap/Manor1) +"ac" = (/obj/structure/window/reinforced/full,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ad" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 4},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ae" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"af" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 8},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ag" = (/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ah" = (/obj/structure/flora/pottedplant/dead,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ai" = (/obj/structure/flora/pottedplant/drooping,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aj" = (/obj/structure/table/woodentable,/obj/item/clothing/mask/smokable/cigarette/cigar,/obj/item/weapon/material/ashtray/glass,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ak" = (/obj/structure/flora/pottedplant/dead,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"al" = (/obj/structure/table/woodentable,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"am" = (/obj/structure/table/woodentable,/obj/item/device/flashlight,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"an" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ao" = (/obj/structure/mopbucket,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ap" = (/obj/structure/sink,/turf/simulated/wall/wood,/area/submap/Manor1) +"aq" = (/turf/simulated/floor/carpet/bcarpet,/area/submap/Manor1) +"ar" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/bcarpet,/area/submap/Manor1) +"as" = (/obj/structure/simple_door/wood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"at" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/obj/effect/decal/cleanable/blood/gibs/robot,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"au" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"av" = (/obj/structure/janitorialcart,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aw" = (/obj/structure/table/woodentable,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ax" = (/obj/structure/closet/cabinet,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ay" = (/obj/effect/decal/cleanable/blood/gibs/robot/limb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"az" = (/obj/structure/table/woodentable,/obj/item/trash/candle,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aA" = (/obj/effect/decal/cleanable/dirt,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aB" = (/obj/effect/decal/cleanable/dirt,/obj/effect/spider/stickyweb,/mob/living/simple_mob/animal/giant_spider/lurker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aC" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/maglight,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aD" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aE" = (/obj/structure/closet/cabinet,/obj/effect/decal/cleanable/cobweb2,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aF" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aG" = (/obj/structure/table/woodentable,/obj/item/weapon/paper,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aH" = (/obj/structure/table/woodentable,/obj/item/weapon/pen,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aI" = (/obj/structure/flora/pottedplant/dead,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aJ" = (/obj/effect/spider/stickyweb,/mob/living/simple_mob/animal/giant_spider/lurker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aK" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aL" = (/obj/structure/fireplace,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aM" = (/mob/living/simple_mob/animal/giant_spider/lurker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aN" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aO" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aP" = (/obj/structure/bed/chair/wood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aQ" = (/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1) +"aR" = (/obj/structure/table/standard,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aS" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aT" = (/obj/structure/closet/cabinet,/obj/random/projectile/shotgun,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aU" = (/obj/structure/bookcase,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aV" = (/obj/structure/table/woodentable,/obj/item/weapon/material/kitchen/utensil/fork,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aW" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aX" = (/obj/structure/table/standard,/obj/item/weapon/material/knife,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aY" = (/obj/machinery/appliance/cooker/oven,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aZ" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ba" = (/obj/machinery/appliance/cooker/grill,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bb" = (/obj/structure/table/standard,/obj/item/weapon/tray,/obj/item/weapon/tray,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bc" = (/obj/structure/table/standard,/obj/item/weapon/material/knife/butch,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bd" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"be" = (/obj/random/trash,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bf" = (/obj/structure/closet/cabinet,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/random/contraband,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bg" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bh" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 1},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bi" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken0"},/area/submap/Manor1) +"bj" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bk" = (/obj/random/plushielarge,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bl" = (/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) +"bm" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/accessory/sweater/blue,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) +"bn" = (/obj/structure/window/reinforced/full,/turf/template_noop,/area/submap/Manor1) +"bo" = (/obj/item/weapon/material/twohanded/baseballbat/metal,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) +"bp" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) +"bq" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"br" = (/obj/structure/bed/chair/comfy/purp{icon_state = "comfychair_preview"; dir = 4},/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken5"},/area/submap/Manor1) +"bs" = (/obj/structure/table,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bt" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bu" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bv" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/sugar,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bw" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) +"bx" = (/obj/structure/bed/chair/comfy/purp{icon_state = "comfychair_preview"; dir = 4},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"by" = (/obj/structure/closet/cabinet,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bz" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bA" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/utensil/fork,/obj/item/weapon/material/kitchen/utensil/fork,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bB" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/reagent_containers/food/snacks/stew,/obj/item/weapon/reagent_containers/food/snacks/stew,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bC" = (/obj/item/weapon/shovel,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bD" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bE" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/utensil/spoon,/obj/item/weapon/material/kitchen/utensil/spoon,/obj/item/weapon/material/kitchen/utensil/spoon,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bF" = (/obj/structure/table/standard,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bG" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/reagent_containers/food/snacks/sausage,/obj/item/weapon/reagent_containers/food/snacks/sausage,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bH" = (/obj/effect/decal/cleanable/dirt,/obj/structure/flora/pottedplant/drooping,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bI" = (/obj/effect/decal/cleanable/dirt,/obj/structure/flora/pottedplant/dead,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bJ" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/rollingpin,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bK" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bL" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/fancy/candle_box,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bM" = (/obj/machinery/papershredder,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bN" = (/obj/structure/simple_door/wood,/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1) +"bO" = (/obj/machinery/icecream_vat,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bP" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) +"bQ" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bR" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/table/woodentable,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bS" = (/obj/structure/flora/pottedplant/subterranean,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bT" = (/obj/item/weapon/material/minihoe,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) +"bU" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1) +"bV" = (/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken6"},/area/submap/Manor1) +"bW" = (/obj/machinery/washing_machine,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bX" = (/obj/structure/table/woodentable,/obj/structure/bedsheetbin,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bY" = (/obj/structure/table/rack,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bZ" = (/obj/structure/closet/crate,/obj/item/stack/cable_coil/random_belt,/obj/random/cash,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ca" = (/obj/structure/table/woodentable,/obj/item/weapon/melee/umbrella/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cb" = (/obj/structure/closet/cabinet,/obj/random/gun/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cc" = (/obj/structure/closet/cabinet,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/random/medical,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cd" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ce" = (/obj/structure/bed/double,/obj/item/weapon/bedsheet/rddouble,/obj/structure/curtain/open/bed,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cf" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/wallet/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cg" = (/obj/structure/flora/pottedplant/dead,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ch" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/accessory/sweater,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) +"ci" = (/obj/structure/closet/crate,/obj/item/weapon/flame/lighter/random,/obj/random/powercell,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cj" = (/obj/structure/closet/cabinet,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/head/hood/winter,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ck" = (/obj/effect/decal/cleanable/spiderling_remains,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cl" = (/turf/simulated/floor/carpet/turcarpet,/area/submap/Manor1) +"cm" = (/obj/effect/decal/cleanable/blood,/obj/structure/bed/chair/comfy/purp{icon_state = "comfychair_preview"; dir = 4},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cn" = (/obj/structure/closet/crate,/obj/item/weapon/storage/wallet/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"co" = (/obj/structure/coatrack,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cp" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cq" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/shoes/black,/obj/random/projectile/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cr" = (/obj/structure/simple_door/wood,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1) +"cs" = (/obj/item/weapon/material/twohanded/spear,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ct" = (/obj/structure/closet/cabinet{opened = 1},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cu" = (/obj/effect/decal/remains,/obj/item/weapon/material/knife/tacknife/combatknife,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cv" = (/obj/structure/sink{pixel_y = 30},/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cw" = (/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cx" = (/obj/structure/table/standard,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cy" = (/obj/structure/table/standard,/obj/item/weapon/towel/random,/obj/item/weapon/towel/random,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cz" = (/obj/effect/decal/cleanable/cobweb2,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cA" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cB" = (/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken3"},/area/submap/Manor1) +"cC" = (/obj/effect/decal/cleanable/spiderling_remains,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cD" = (/obj/structure/closet/crate,/obj/item/clothing/suit/armor/vest,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cE" = (/obj/structure/closet/crate,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cF" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cG" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cH" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cI" = (/obj/item/stack/material/wood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cJ" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/structure/curtain/open/shower,/obj/random/soap,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cK" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cL" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 1},/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cM" = (/obj/structure/table/woodentable,/obj/item/modular_computer/laptop/preset/custom_loadout/cheap,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cN" = (/turf/template_noop,/area/template_noop) +"cO" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Manor1) + +(1,1,1) = {" +cNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcN +cNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacababacacacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacN +cNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababadaeafagahaiagadajafababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacN +cNaaaaaaaaaaaaaaaaababababababababababababagagagagagagagagagagagagababababababababababababababaaaaaaaaaaaacN +cNaaaacOaaaaaaaaabababakagagagalamalagananagagagagananananagagagagagagagagalalalagagagaiabaoapabaaaacOaaaacN +cNaaaaaaaaaaaaababalabagaqaqaqaqarararararararaqarararararararaqaqaqaqaqaqaqaqaqaqaqaqagasagagababaaaaaaaacN +cNaaaaaaaaaaababatauabagaqaqaqaqaqaqaqarararararararararararararaqaqaqaqaqaqaqaqaqaqaqagabavagawababaaaaaacN +cNaaaaaaaaaaabaxagayabagaqagagazalalaganananaAaBaAagananagagagagagagagagagalalaCagagaqagababababababaaaaaacN +cNaaaaaaaaaaababasababagaqagabababababababababababababababababababababababababababagaqagabaDagagaEabaaaaaacN +cNaaaaaacOaaabagagagasagaqagabaFaGagalaHabaIaJaKagagaLaLagagagagahabagaMagagagaNabagaqagabaOagagalabaaaaaacN +cNaaaaaaaaaaabasabababagaqagabagagagagagabaKaKaPaPagaQaQagaPaPagagabaRagaRaRagaSabagaqagabababasababaaaaaacN +cNaaaaaaaaaaabagagaTabagaqagabagaUagaUagabagadalaVafaQaQadaValafagabaRagaWaXagaYabalaqagasagagagagabaaaaaacN +cNaaaaaaaaaaabagagaMabagaqagabagaUagaUagabagadalalafaQaQadalalafagabaRagaZaRagbaabagaqagabababasababaaaaaacN +cNaaaaaaaaaaabaDalaOabagaqagabagaUagaUagabagadalalafaQaQadalalafagabbbagaRbcagbdabagaqagabaOagagalabaaaaaacN +cNaaaaaaaaaaabababababagaqagabagagagaganabagadalalafaQaQadalalafagabagagagagagagabagaqagabaDbeagbfabaaaaaacN +cNaaaaaaaaaaabaDalbgabalaqagabagaUagaUanabagadalalafaQaQadalalafagabagagagagagagabagaqagababababababaaaaaacN +cNaaaaaaaaababagbhagabazaqagasagaUagaUanabagadaGalafaQaQadalalafagabagagagagagagabagaqagabbiagagagababaaaacN +cNaaaaaaababbjagagbkabalaqagabagaUanaUanabagadalalafaQaQadalalafagabagagagagagagabagaqagabagblbmagagababaacN +cNaaaaaabnagagagagaOabagaqanabanananananabanadalalafaQaQadalalafagasagagagagagagasagaqagasagbobpbqbrbsacaacN +cNaaaaaabnagagagagalabagaranabagaUanaUagabanbtalalafaQaQadalalbuanabagagaRbvagagabagaqagabagblbwagbxbsacaacN +cNaaaaaaababagagagbyabanaranabagaUanaUagabanbtalalafaQaQadalbzbuanabagagbAaRagbBabagaqagabagblblagbCababaacN +cNaaaaaaaaababagagagabanaragabagaUanaUagabananbhbhagaQaQagbhbDananabagagbEbFagbGabagaqagabalblblagababaaaacN +cNaaaaaaaaaaabagagagabagaragabagaganagagabbHananagagaQaQaganananbIabagagbFbJagbKabagaqagabaDblblalabaaaaaacN +cNaaaaaaaaaaabagagagasagaqagabaGbLbMagaiababababababbNbNababababababbOaKaKaKagagabagaqagabalblblalabaaaaaacN +cNaaaaaaaaaaabazalagabagaqagababababasabababababalalaQaQalalabababababababababababagaqagabalbwbPalabaaaaaacN +cNaaaaaaaaaaabababababbQaqagagananananananananasagagaQaQagagasagagagagagagagagagagagaqagabazblbPalabaaaaaacN +cNaaaaaaaaababbRazbSabbqaqagagagagananananananasagagaQaQagagasagagagagagagagagagagagaqagabalblbTagababaaaacN +cNaaaaaaababagagagagabagaqagababababasabababababalagbUaQagalabababababababababababagaqagabagblblbVagababaacN +cNaaaaaaacagagagagbqasbqaqagabbWbXabagabbYagbZabalagbUbUagcaabcbccagcdcecfagagcgabagaqagasagbpchagbxbsacaacN +cNaacOaaacagagagbqagabagaqagabagagasagabagagciabcjckbUbUagcjabagclclclclclclclaDabagaqagabbqbwblagcmagacaacN +cNaaaaaaababagbQbQagabahaqagabbWazabagasagagcnababcobUbUcoababagclclclclclclclalabahaqahabagbwblagcpababaacN +cNaaaaaaaaababcqagagababasabababababagabagagagaKababcrcrababagagclclclclclclclalababasababcsblbwagababaaaacN +cNaaaaaaaaaaabctagcuabcvcwcxabcycwasagabbYagaKaKczabbUbUabazafagclclclclclclclagagagagahabagcAcBagabaaaaaacN +cNaaaaaaaaaaababalagabcwabababcwcwabagabbYcCaJcDcEabbUbUabalagagagagagclclclclclclclclagabcAbqagababaaaaaacN +cNaaaaaaaaaaaaababalabcwcFcGabcwcHabasabababababababbNbNabababababahagclclclclclclclclagabagcIababaaaaaaaacN +cNaaaaaaaaaaaaaaabababcwabababcwcHabcwcvababaaaaaaaaaaaaaaaaaaaaababalclclclclclclclclagabcIababaaaaaaaaaacN +cNaaaaaaaaaaaaaaaaababcwcFcGabcwcJabcKcLabaaaaaaaaaaaaaaaaaaaaaaaaabcMalalagagagagagagahabababaaaaaacOaaaacN +cNaaaaaacOaaaaaaaaaaabababababababababababaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababaaaaaaaaaaaaaacN +cNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacN +cNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcN +"} +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking diff --git a/nano/README.md b/nano/README.md index 5a3f55425b8..9ec131522a7 100644 --- a/nano/README.md +++ b/nano/README.md @@ -249,6 +249,240 @@ The doT tutorial is [here](https://olado.github.io/doT/tutorial.html). __Print Tag__ - The print tag outputs the given expression as text to the UI. +<<<<<<< HEAD +======= +### Credit goes to Neersighted of /tg/station for the styling and large chunks of content of this README. + +NanoUI is one of the three primary user interface libraries currently in use +on Polaris (browse(), /datum/browser, NanoUI). It is the most complex of the three, +but offers quite a few advantages, most notably in default features. + +NanoUI adds a `ui_interact()` proc to all atoms, which, ideally, should be called +via `interact()`; However, the current standardized layout is `ui_interact()` being +directly called from anywhere in the atom, generally `attack_hand()` or `attack_self()`. +The `ui_interact()` proc should not contain anything but NanoUI data and code. + +Here is a simple example from +[poolcontroller.dm @ ParadiseSS13/Paradise](https://github.com/ParadiseSS13/Paradise/blob/master/code/game/machinery/poolcontroller.dm). + +``` + /obj/machinery/poolcontroller/attack_hand(mob/user) + ui_interact(user) + + /obj/machinery/poolcontroller/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + var/data[0] + + data["currentTemp"] = temperature + data["emagged"] = emagged + data["TempColor"] = temperaturecolor + + ui = SSnano.try_update_ui(user, src, ui_key, ui, data, force_open) + if(!ui) + ui = new(user, src, ui_key, "poolcontroller.tmpl", "Pool Controller Interface", 520, 410) + ui.set_initial_data(data) + ui.open() +``` + + + +## Components + +### `ui_interact()` + +The `ui_interact()` proc is used to open a NanoUI (or update it if already open). +As NanoUI will call this proc to update your UI, you should include the data list +within it. On /tg/station, this is handled via `get_ui_data()`, however, as it would +take quite a long time to convert every single one of the 100~ UI's to using such a method, +it is instead just directly created within `ui_interact()`. + +The parameters for `try_update_ui` and `/datum/nanoui/New()` are documented in +the code [here](https://github.com/PolarisSS13/Polaris/tree/master/code/modules/nano). + +For: +`/datum/nanoui/New(nuser, nsrc_object, nui_key, ntemplate_filename, ntitle = 0, nwidth = 0, nheight = 0, var/atom/nref = null, var/datum/nanoui/master_ui = null, var/datum/topic_state/state = default_state)` +Most of the parameters are fairly self explanatory. + - `nuser` is the person who gets to see the UI window + - `nsrc_obj` is the thing you want to call Topic() on + - `nui_key` should almost always be `main` + - `ntemplate_filename` is the filename with `.tmpl` extension in /nano/templates/ + - `ntitle` is what you want to show at the top of the UI window + - `nwidth` is the width of the new window + - `nheight` is the height of the new window + - `nref` is used for onclose() + - `master_ui` is used for UIs that have multiple children, see code for examples + - And finally, `state`. + +The most interesting parameter here is `state`, which allows the object to choose the +checks that allow the UI to be interacted with. + +The default state (`default_state`) checks that the user is alive, conscious, +and within a few tiles. It allows universal access to silicons. Other states +exist, and may be more appropriate for different interfaces. For example, +`physical_state` requires the user to be nearby, even if they are a silicon. +`inventory_state` checks that the user has the object in their first-level +(not container) inventory, this is suitable for devices such as radios; +`admin_state` checks that the user is an admin (good for admin tools). + +``` + /obj/item/the/thing/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, force_open = 0) + var/data[0] + + ui = SSnano.try_update_ui(user, src, ui_key, ui, data, force_open = force_open) + if(!ui) + ui = new(user, src, ui_key, "template_name_here.tmpl", title, width, height) + ui.set_initial_data(data) + ui.open() +``` + +### `Topic()` + +`Topic()` handles input from the UI. Typically you will recieve some data from +a button press, or pop up a input dialog to take a numerical value from the +user. Sanity checking is useful here, as `Topic()` is trivial to spoof with +arbitrary data. + +The `Topic()` interface is just the same as with more conventional, +stringbuilder-based UIs, and this needs little explanation. + +``` + /obj/item/weapon/tank/Topic(href, href_list) + if(..()) + return 1 + + if(href_list["dist_p"]) + if(href_list["dist_p"] == "custom") + var/custom = input(usr, "What rate do you set the regulator to? The dial reads from 0 to [TANK_MAX_RELEASE_PRESSURE].") as null|num + if(isnum(custom)) + href_list["dist_p"] = custom + .() + else if(href_list["dist_p"] == "reset") + distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE + else if(href_list["dist_p"] == "min") + distribute_pressure = TANK_MIN_RELEASE_PRESSURE + else if(href_list["dist_p"] == "max") + distribute_pressure = TANK_MAX_RELEASE_PRESSURE + else + distribute_pressure = text2num(href_list["dist_p"]) + distribute_pressure = min(max(round(distribute_pressure), TANK_MIN_RELEASE_PRESSURE), TANK_MAX_RELEASE_PRESSURE) + if(href_list["stat"]) + if(istype(loc,/mob/living/carbon)) + var/mob/living/carbon/location = loc + if(location.internal == src) + location.internal = null + location.internals.icon_state = "internal0" + to_chat(usr, "You close the tank release valve.") + if(location.internals) + location.internals.icon_state = "internal0" + else + if(location.wear_mask && (location.wear_mask.flags & MASKINTERNALS)) + location.internal = src + to_chat(usr, "You open \the [src] valve.") + if(location.internals) + location.internals.icon_state = "internal1" + else + to_chat(usr, "You need something to connect to \the [src]!") +``` + +### Template (doT) + +NanoUI templates are written in a customized version of +[doT](https://olado.github.io/doT/index.html), +a Javascript template engine. Data is accessed from the `data` object, +configuration (not used in pratice) from the `config` object, and template +helpers are accessed from the `helper` object. + +It is worth explaining that Polaris's version of doT uses custom syntax +for the templates. The `?` operator is split into `if`, `else if parameter`, and `else`, +instead of `?`, `?? paramater`, `??`, and the `=` operator is replaced with `:`. Refer +to the chart below for a full comparison. + +#### Helpers + +##### Link + +`{{:helpers.link(text, icon, {'parameter': true}, status, class, id)}}` + +Used to create a link (button), which will pass its parameters to `Topic()`. + +* Text: The text content of the link/button +* Icon: The icon shown to the left of the link (http://fontawesome.io/) +* Parameters: The values to be passed to `Topic()`'s `href_list`. +* Status: `null` for clickable, a class for selected/unclickable. +* Class: Styling to apply to the link. +* ID: Sets the element ID. + +Status and Class have almost the same effect. However, changing a link's status +from `null` to something else makes it unclickable, while setting a custom Class +does not. + +Ternary operators are often used to avoid writing many `if` statements. +For example, depending on if a value in `data` is true or false we can set a +button to clickable or selected: + +`{{:helper.link('Close', 'lock', {'stat': 1}, data.valveOpen ? null : 'selected')}}` + +Available classes/statuses are: + +* null (normal) +* selected +* disabled +* yellowButton +* redButton +* linkDanger + +##### displayBar + +`{{:helpers.displayBar(value, min, max, class, text)}}` + +Used to create a bar, to display a numerical value visually. Min and Max default +to 0 and 100, but you can change them to avoid doing your own percent calculations. + +* Value: Defaults to a percentage but can be a straight number if Min/Max are set +* Min: The minimum value (left hand side) of the bar +* Max: The maximum value (right hand side) of the bar +* Class: The color of the bar (null/normal, good, average, bad) +* Text: The text label for the data contained in the bar (often just number form) + +As with buttons, ternary operators are quite useful: + +`{{:helper.bar(data.tankPressure, 0, 1013, (data.tankPressure > 200) ? 'good' : ((data.tankPressure > 100) ? 'average' : 'bad'))}}` + + +#### doT + +doT is a simple template language, with control statements mixed in with +regular HTML and interpolation expressions. + +However, Polaris uses a custom version with a different syntax. Refer +to the chart below for the differences. + +Operator | doT | equiv | +|-----------|------------|-------------------| +|Conditional| ? | if | +| | ?? | else | +| | ?? (param) | else if(param) | +|Interpolate| = | : | +|^ + Encode | ! | > | +|Evaluation | # | # | +|Defines | ## # | ## # | +|Iteration | ~ (param) | for (param) | + +Here is a simple example from tanks, checking if a variable is true: + +``` + {{if data.maskConnected}} + The regulator is connected to a mask. + {{else if}} + The regulator is not connected to a mask. + {{/if}} +``` + +The doT tutorial is [here](https://olado.github.io/doT/tutorial.html). + +__Print Tag__ +- The print tag outputs the given expression as text to the UI. + +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking `{{:data.variable}}` `{{:functioncall()}}` diff --git a/vorestation.dme b/vorestation.dme index 4d08abb4ff7..aace82fae43 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2077,7 +2077,10 @@ #include "code\modules\food\recipes_fryer.dm" #include "code\modules\food\recipes_grill.dm" #include "code\modules\food\recipes_microwave.dm" +<<<<<<< HEAD:vorestation.dme #include "code\modules\food\recipes_microwave_vr.dm" +======= +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking:polaris.dme #include "code\modules\food\recipes_oven.dm" #include "code\modules\food\drinkingglass\drinkingglass.dm" #include "code\modules\food\drinkingglass\extras.dm" @@ -2110,7 +2113,10 @@ #include "code\modules\food\kitchen\icecream.dm" #include "code\modules\food\kitchen\microwave.dm" #include "code\modules\food\kitchen\smartfridge.dm" +<<<<<<< HEAD:vorestation.dme #include "code\modules\food\kitchen\smartfridge_vr.dm" +======= +>>>>>>> d003767... Merge pull request #7344 from Rykka-Stormheart/shep-dev-aurora-cooking:polaris.dme #include "code\modules\food\kitchen\cooking_machines\_appliance.dm" #include "code\modules\food\kitchen\cooking_machines\_cooker.dm" #include "code\modules\food\kitchen\cooking_machines\_cooker_output.dm"