Add microwave recipes to the guidebook (#34105)

This commit is contained in:
pathetic meowmeow
2025-02-23 10:24:44 -05:00
committed by GitHub
parent 55e22b6a94
commit b7414d85b4
25 changed files with 794 additions and 79 deletions

View File

@@ -0,0 +1,35 @@
<PanelContainer xmlns="https://spacestation14.io"
xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
Margin="5 5 5 5">
<PanelContainer.PanelOverride>
<gfx:StyleBoxFlat BorderThickness="1" BorderColor="#777777"/>
</PanelContainer.PanelOverride>
<BoxContainer Orientation="Vertical">
<PanelContainer HorizontalExpand="True">
<BoxContainer Orientation="Horizontal" HorizontalAlignment="Center">
<BoxContainer Name="IconContainer"/>
<RichTextLabel Name="ResultName"/>
</BoxContainer>
<PanelContainer.PanelOverride>
<gfx:StyleBoxFlat BackgroundColor="#393c3f"/>
</PanelContainer.PanelOverride>
</PanelContainer>
<GridContainer Columns="2" Margin="10">
<BoxContainer Orientation="Vertical" HorizontalExpand="True">
<Label Text="{Loc 'guidebook-microwave-ingredients-header'}"/>
<GridContainer Columns="3" Name="IngredientsGrid"/>
</BoxContainer>
<BoxContainer Orientation="Vertical" HorizontalExpand="True">
<Label Text="{Loc 'guidebook-microwave-cook-time-header'}"/>
<RichTextLabel Name="CookTimeLabel"/>
</BoxContainer>
</GridContainer>
<BoxContainer Margin="10">
<RichTextLabel Name="ResultDescription" HorizontalAlignment="Left"/>
</BoxContainer>
</BoxContainer>
</PanelContainer>

View File

@@ -0,0 +1,183 @@
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Content.Client.Guidebook.Richtext;
using Content.Client.Message;
using Content.Client.UserInterface.ControlExtensions;
using Content.Shared.Chemistry.Reagent;
using Content.Shared.Kitchen;
using JetBrains.Annotations;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Client.UserInterface;
using Robust.Shared.Prototypes;
using Robust.Shared.Utility;
namespace Content.Client.Guidebook.Controls;
/// <summary>
/// Control for embedding a microwave recipe into a guidebook.
/// </summary>
[UsedImplicitly, GenerateTypedNameReferences]
public sealed partial class GuideMicrowaveEmbed : PanelContainer, IDocumentTag, ISearchableControl
{
[Dependency] private readonly IPrototypeManager _prototype = default!;
[Dependency] private readonly ILogManager _logManager = default!;
private ISawmill _sawmill = default!;
public GuideMicrowaveEmbed()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
MouseFilter = MouseFilterMode.Stop;
_sawmill = _logManager.GetSawmill("guidemicrowaveembed");
}
public GuideMicrowaveEmbed(string recipe) : this()
{
GenerateControl(_prototype.Index<FoodRecipePrototype>(recipe));
}
public GuideMicrowaveEmbed(FoodRecipePrototype recipe) : this()
{
GenerateControl(recipe);
}
public bool CheckMatchesSearch(string query)
{
return this.ChildrenContainText(query);
}
public void SetHiddenState(bool state, string query)
{
Visible = CheckMatchesSearch(query) ? state : !state;
}
public bool TryParseTag(Dictionary<string, string> args, [NotNullWhen(true)] out Control? control)
{
control = null;
if (!args.TryGetValue("Recipe", out var id))
{
_sawmill.Error("Recipe embed tag is missing recipe prototype argument");
return false;
}
if (!_prototype.TryIndex<FoodRecipePrototype>(id, out var recipe))
{
_sawmill.Error($"Specified recipe prototype \"{id}\" is not a valid recipe prototype");
return false;
}
GenerateControl(recipe);
control = this;
return true;
}
private void GenerateHeader(FoodRecipePrototype recipe)
{
var entity = _prototype.Index<EntityPrototype>(recipe.Result);
IconContainer.AddChild(new GuideEntityEmbed(recipe.Result, false, false));
ResultName.SetMarkup(entity.Name);
ResultDescription.SetMarkup(entity.Description);
}
private void GenerateSolidIngredients(FoodRecipePrototype recipe)
{
foreach (var (product, amount) in recipe.IngredientsSolids.OrderByDescending(p => p.Value))
{
var ingredient = _prototype.Index<EntityPrototype>(product);
IngredientsGrid.AddChild(new GuideEntityEmbed(product, false, false));
// solid name
var solidNameMsg = new FormattedMessage();
solidNameMsg.AddMarkupOrThrow(Loc.GetString("guidebook-microwave-solid-name-display", ("ingredient", ingredient.Name)));
solidNameMsg.Pop();
var solidNameLabel = new RichTextLabel();
solidNameLabel.SetMessage(solidNameMsg);
IngredientsGrid.AddChild(solidNameLabel);
// solid quantity
var solidQuantityMsg = new FormattedMessage();
solidQuantityMsg.AddMarkupOrThrow(Loc.GetString("guidebook-microwave-solid-quantity-display", ("amount", amount)));
solidQuantityMsg.Pop();
var solidQuantityLabel = new RichTextLabel();
solidQuantityLabel.SetMessage(solidQuantityMsg);
IngredientsGrid.AddChild(solidQuantityLabel);
}
}
private void GenerateLiquidIngredients(FoodRecipePrototype recipe)
{
foreach (var (product, amount) in recipe.IngredientsReagents.OrderByDescending(p => p.Value))
{
var reagent = _prototype.Index<ReagentPrototype>(product);
// liquid color
var liquidColorMsg = new FormattedMessage();
liquidColorMsg.AddMarkupOrThrow(Loc.GetString("guidebook-microwave-reagent-color-display", ("color", reagent.SubstanceColor)));
liquidColorMsg.Pop();
var liquidColorLabel = new RichTextLabel();
liquidColorLabel.SetMessage(liquidColorMsg);
liquidColorLabel.HorizontalAlignment = Control.HAlignment.Center;
IngredientsGrid.AddChild(liquidColorLabel);
// liquid name
var liquidNameMsg = new FormattedMessage();
liquidNameMsg.AddMarkupOrThrow(Loc.GetString("guidebook-microwave-reagent-name-display", ("reagent", reagent.LocalizedName)));
liquidNameMsg.Pop();
var liquidNameLabel = new RichTextLabel();
liquidNameLabel.SetMessage(liquidNameMsg);
IngredientsGrid.AddChild(liquidNameLabel);
// liquid quantity
var liquidQuantityMsg = new FormattedMessage();
liquidQuantityMsg.AddMarkupOrThrow(Loc.GetString("guidebook-microwave-reagent-quantity-display", ("amount", amount)));
liquidQuantityMsg.Pop();
var liquidQuantityLabel = new RichTextLabel();
liquidQuantityLabel.SetMessage(liquidQuantityMsg);
IngredientsGrid.AddChild(liquidQuantityLabel);
}
}
private void GenerateIngredients(FoodRecipePrototype recipe)
{
GenerateLiquidIngredients(recipe);
GenerateSolidIngredients(recipe);
}
private void GenerateCookTime(FoodRecipePrototype recipe)
{
var msg = new FormattedMessage();
msg.AddMarkupOrThrow(Loc.GetString("guidebook-microwave-cook-time", ("time", recipe.CookTime)));
msg.Pop();
CookTimeLabel.SetMessage(msg);
}
private void GenerateControl(FoodRecipePrototype recipe)
{
GenerateHeader(recipe);
GenerateIngredients(recipe);
GenerateCookTime(recipe);
}
}

View File

@@ -0,0 +1,59 @@
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Content.Client.Guidebook.Richtext;
using Content.Shared.Kitchen;
using JetBrains.Annotations;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface;
using Robust.Shared.Prototypes;
namespace Content.Client.Guidebook.Controls;
/// <summary>
/// Control for listing microwave recipes in a guidebook
/// </summary>
[UsedImplicitly]
public sealed partial class GuideMicrowaveGroupEmbed : BoxContainer, IDocumentTag
{
[Dependency] private readonly IPrototypeManager _prototype = default!;
public GuideMicrowaveGroupEmbed()
{
Orientation = LayoutOrientation.Vertical;
IoCManager.InjectDependencies(this);
MouseFilter = MouseFilterMode.Stop;
}
public GuideMicrowaveGroupEmbed(string group) : this()
{
CreateEntries(group);
}
public bool TryParseTag(Dictionary<string, string> args, [NotNullWhen(true)] out Control? control)
{
control = null;
if (!args.TryGetValue("Group", out var group))
{
Logger.Error("Microwave group embed tag is missing group argument");
return false;
}
CreateEntries(group);
control = this;
return true;
}
private void CreateEntries(string group)
{
var prototypes = _prototype.EnumeratePrototypes<FoodRecipePrototype>()
.Where(p => p.Group.Equals(group))
.OrderBy(p => p.Name);
foreach (var recipe in prototypes)
{
var embed = new GuideMicrowaveEmbed(recipe);
AddChild(embed);
}
}
}

View File

@@ -19,6 +19,9 @@ namespace Content.Shared.Kitchen
[DataField("name")] [DataField("name")]
private string _name = string.Empty; private string _name = string.Empty;
[DataField]
public string Group = "Other";
[DataField("reagents", customTypeSerializer:typeof(PrototypeIdDictionarySerializer<FixedPoint2, ReagentPrototype>))] [DataField("reagents", customTypeSerializer:typeof(PrototypeIdDictionarySerializer<FixedPoint2, ReagentPrototype>))]
private Dictionary<string, FixedPoint2> _ingsReagents = new(); private Dictionary<string, FixedPoint2> _ingsReagents = new();

View File

@@ -0,0 +1,15 @@
guidebook-microwave-ingredients-header = Ingredients
guidebook-microwave-cook-time-header = Cooking Time
guidebook-microwave-cook-time =
{ $time ->
[0] Instant
[1] [bold]1[/bold] second
*[other] [bold]{$time}[/bold] seconds
}
guidebook-microwave-reagent-color-display = [color={$color}]■[/color]
guidebook-microwave-reagent-name-display = [bold]{$reagent}[/bold]
guidebook-microwave-reagent-quantity-display = × {$amount}u
guidebook-microwave-solid-name-display = [bold]{$ingredient}[/bold]
guidebook-microwave-solid-quantity-display = × {$amount}

View File

@@ -112,6 +112,22 @@ guide-entry-botanical = Botanical
guide-entry-special = Special guide-entry-special = Special
guide-entry-others = Others guide-entry-others = Others
guide-entry-pizza-recipes = Pizzas
guide-entry-savory-recipes = Savory Foods
guide-entry-bread-recipes = Breads
guide-entry-breakfast-recipes = Breakfast Foods
guide-entry-moth-recipes = Moth Foods
guide-entry-pasta-recipes = Pastas & Noodles
guide-entry-dessert-recipes = Desserts & Pastries
guide-entry-soup-recipes = Soups & Stews
guide-entry-pie-recipes = Pies & Tarts
guide-entry-barsandcookies-recipes = Bars & Cookies
guide-entry-cake-recipes = Cakes
guide-entry-salad-recipes = Salads
guide-entry-medicinal-recipes = Medicinal
guide-entry-other-recipes = Other
guide-entry-secret-recipes = Secret
guide-entry-antagonists = Antagonists guide-entry-antagonists = Antagonists
guide-entry-nuclear-operatives = Nuclear Operatives guide-entry-nuclear-operatives = Nuclear Operatives
guide-entry-traitors = Traitors guide-entry-traitors = Traitors

View File

@@ -19,6 +19,113 @@
id: FoodRecipes id: FoodRecipes
name: guide-entry-foodrecipes name: guide-entry-foodrecipes
text: "/ServerInfo/Guidebook/Service/FoodRecipes.xml" text: "/ServerInfo/Guidebook/Service/FoodRecipes.xml"
filterEnabled: True
children:
- PizzaRecipes
- SavoryRecipes
- BreadRecipes
- BreakfastRecipes
- MothRecipes
- PastaRecipes
- DessertRecipes
- SoupRecipes
- PieRecipes
- BarsAndCookiesRecipes
- CakeRecipes
- SaladRecipes
- OtherRecipes
- MedicinalRecipes
- SecretRecipes
- type: guideEntry
id: PizzaRecipes
name: guide-entry-pizza-recipes
text: "/ServerInfo/Guidebook/Service/PizzaRecipes.xml"
filterEnabled: True
- type: guideEntry
id: SavoryRecipes
name: guide-entry-savory-recipes
text: "/ServerInfo/Guidebook/Service/SavoryRecipes.xml"
filterEnabled: True
- type: guideEntry
id: BreadRecipes
name: guide-entry-bread-recipes
text: "/ServerInfo/Guidebook/Service/BreadRecipes.xml"
filterEnabled: True
- type: guideEntry
id: BreakfastRecipes
name: guide-entry-breakfast-recipes
text: "/ServerInfo/Guidebook/Service/BreakfastRecipes.xml"
filterEnabled: True
- type: guideEntry
id: MothRecipes
name: guide-entry-moth-recipes
text: "/ServerInfo/Guidebook/Service/MothRecipes.xml"
filterEnabled: True
- type: guideEntry
id: PastaRecipes
name: guide-entry-pasta-recipes
text: "/ServerInfo/Guidebook/Service/PastaRecipes.xml"
filterEnabled: True
- type: guideEntry
id: DessertRecipes
name: guide-entry-dessert-recipes
text: "/ServerInfo/Guidebook/Service/DessertRecipes.xml"
filterEnabled: True
- type: guideEntry
id: SoupRecipes
name: guide-entry-soup-recipes
text: "/ServerInfo/Guidebook/Service/SoupRecipes.xml"
filterEnabled: True
- type: guideEntry
id: PieRecipes
name: guide-entry-pie-recipes
text: "/ServerInfo/Guidebook/Service/PieRecipes.xml"
filterEnabled: True
- type: guideEntry
id: BarsAndCookiesRecipes
name: guide-entry-barsandcookies-recipes
text: "/ServerInfo/Guidebook/Service/BarsAndCookiesRecipes.xml"
filterEnabled: True
- type: guideEntry
id: CakeRecipes
name: guide-entry-cake-recipes
text: "/ServerInfo/Guidebook/Service/CakeRecipes.xml"
filterEnabled: True
- type: guideEntry
id: SaladRecipes
name: guide-entry-salad-recipes
text: "/ServerInfo/Guidebook/Service/SaladRecipes.xml"
filterEnabled: True
- type: guideEntry
id: OtherRecipes
name: guide-entry-other-recipes
text: "/ServerInfo/Guidebook/Service/OtherRecipes.xml"
filterEnabled: True
- type: guideEntry
id: MedicinalRecipes
name: guide-entry-medicinal-recipes
text: "/ServerInfo/Guidebook/Service/MedicinalRecipes.xml"
filterEnabled: True
- type: guideEntry
id: SecretRecipes
name: guide-entry-secret-recipes
text: "/ServerInfo/Guidebook/Service/SecretRecipes.xml"
filterEnabled: True
- type: guideEntry - type: guideEntry
id: Writing id: Writing

File diff suppressed because it is too large Load Diff

View File

@@ -3,6 +3,7 @@
name: aloe cream recipe name: aloe cream recipe
result: AloeCream result: AloeCream
time: 10 time: 10
group: Medicinal
solids: solids:
FoodAloe: 1 FoodAloe: 1
@@ -11,6 +12,7 @@
name: medicated suture recipe name: medicated suture recipe
result: MedicatedSuture result: MedicatedSuture
time: 10 time: 10
group: Medicinal
solids: solids:
FoodPoppy: 1 FoodPoppy: 1
Brutepack: 1 Brutepack: 1
@@ -24,6 +26,7 @@
name: regenerative mesh recipe name: regenerative mesh recipe
result: RegenerativeMesh result: RegenerativeMesh
time: 10 time: 10
group: Medicinal
solids: solids:
FoodAloe: 1 FoodAloe: 1
Ointment: 1 Ointment: 1

View File

@@ -0,0 +1,9 @@
<Document>
# Bars & Cookies
A crowd-pleaser, many of these can be made from pantry ingredients to serve to many crewmates.
<GuideMicrowaveGroupEmbed Group="BarsAndCookies"/>
</Document>

View File

@@ -0,0 +1,9 @@
<Document>
# Breads
A fresh loaf of bread is without equal, and breads are often incorporated into other recipes.
<GuideMicrowaveGroupEmbed Group="Breads"/>
</Document>

View File

@@ -0,0 +1,9 @@
<Document>
# Breakfast Recipes
A wonderful way to start a shift! Or perhaps, to treat the crew to brunch midway through.
<GuideMicrowaveGroupEmbed Group="Breakfast"/>
</Document>

View File

@@ -0,0 +1,9 @@
<Document>
# Cakes
Cakes are a timeless classic, combining fresh ingredients and a delicious tender base to make something that can serve a lot of crewmates.
<GuideMicrowaveGroupEmbed Group="Cake"/>
</Document>

View File

@@ -0,0 +1,9 @@
<Document>
# Pastries & Desserts
A special sweet treat can go a long way to boosting the crew's morale.
<GuideMicrowaveGroupEmbed Group="Dessert"/>
</Document>

View File

@@ -1,94 +1,52 @@
<Document> <Document>
## Starting Out
This is not an extensive list of recipes, these listings are to showcase the basics.
Mixes are done in a Beaker, foods are cooked in a Microwave. Cook times will be listed. # Microwave Recipes
WARNING: This is not an automatically generated list, things here may become outdated. The wiki has much more than is listed here. This is the latest published version of NanoTrasen Central Command Kitchen de Cuisine's recipe collection for chefs upon NanoTrasen vessels to prepare.
## The Basics: Mixing ## Pizza Pies
<GuideMicrowaveGroupEmbed Group="Pizza"/>
- Dough = 15 Flour, 10 Water ## Savory Cooking
- Cornmeal Dough = 1 Egg (6u), 10 Milk, 15 Cornmeal <GuideMicrowaveGroupEmbed Group="Savory"/>
- Tortila Dough = 15 Cornmeal, 10 Water
- Tofu = 5 Enzyme (Catalyst), 30 Soy Milk
- Pie Dough = 2 Eggs (12u), 15 Flour, 5 Table Salt
- Cake Batter = 2 Eggs(12u), 15 flour, 5 Sugar, 5 Milk
- Vegan Cake Batter = 15 Soy Milk, 15 Flour, 5 Sugar
- Butter = 30 Milk, 5 Table Salt (Catalyst)
- Cheese Wheel = 5 Enzyme (Catalyst), 40 Milk
- Chèvre Log = 5 Enzyme (Catalyst), 10 Goat Milk
- Meatball = 1 Egg (6u), 5 Flour, 5 Uncooked Animal Proteins
- Chocolate = 6 Cocoa Powder, 2 Milk, 2 Sugar
- Uncooked Animal Protein: Grind Raw Meat
Buzz! Don't forget about Moth diet! ## Breads
- Fiber: Juice Fabric in a Reagent Grinder, 3 Fiber per Fabric <GuideMicrowaveGroupEmbed Group="Breads"/>
- Cotton Dough = 5 Flour, 10 Fiber, 10 Water
- Cotton bread baked the same as default but with cotton dough instead
- Cotton Pizza: Microwave 1 Flat Cotton Dough and 4 Cotton Bolls for 30 Seconds
<Box> ## Breakfast Foods
<GuideEntityEmbed Entity="FoodDough"/> <GuideMicrowaveGroupEmbed Group="Breakfast"/>
<GuideEntityEmbed Entity="FoodDoughCornmeal"/>
<GuideEntityEmbed Entity="FoodDoughCotton"/>
<GuideEntityEmbed Entity="FoodTofu"/>
<GuideEntityEmbed Entity="FoodDoughPie"/>
<GuideEntityEmbed Entity="FoodCakeBatter"/>
<GuideEntityEmbed Entity="FoodDoughFlat"/>
<GuideEntityEmbed Entity="FoodDoughTortilla"/>
</Box>
<Box> ## Moth Foods
<GuideEntityEmbed Entity="FoodButter"/> <GuideMicrowaveGroupEmbed Group="Moth"/>
<GuideEntityEmbed Entity="FoodMeatMeatball"/>
<GuideEntityEmbed Entity="FoodCheese"/>
<GuideEntityEmbed Entity="FoodChevre"/>
<GuideEntityEmbed Entity="FoodSnackChocolateBar"/>
</Box>
## Secondary Products ## Pastas & Noodles
<GuideMicrowaveGroupEmbed Group="Pasta"/>
- Dough Slice: Cut Dough ## Pastries & Desserts
- Bun: Microwave Dough Slice for 5 Seconds <GuideMicrowaveGroupEmbed Group="Dessert"/>
- Cutlet: Slice Raw Meat
- Cheese Wedge: Slice Cheese Wheel
- Flat Dough: Use a rolling pin or a round object (fire extinguisher, soda can, bottle) on Dough.
- Tortilla Dough Slice: cut Tortilla Dough
- Flat Tortilla Dough: Use a rolling pin or a round object (fire extinguisher, soda can, bottle) on Tortilla Dough Slice
- Taco Shell: Microwave Flat Tortilla Dough for 5 Seconds
## Food Examples ## Soups & Stews
<GuideMicrowaveGroupEmbed Group="Soup"/>
- Bread: Microwave Dough for 10 Seconds ## Pies & Tarts
- Plain Burger: Microwave 1 Bun and 1 Raw Meat for 10 Seconds <GuideMicrowaveGroupEmbed Group="Pie"/>
- Tomato Soup: 10u Water, 1 Bowl, and 2 Tomatoes for 10 Seconds
- Citrus Salad: 1 Bowl, 1 Lemon, 1 Lime, 1 Orange for 5 Seconds
- Margherita Pizza: Microwave 1 Flat Dough, 1 Cheese Wedge, and 4 Tomatoes for 30 Seconds
- Cake: 1 Cake Batter for 15 Seconds
- Apple Pie: 1 Pie Dough, 3 Apples, and 1 Pie Tin for 15 Seconds
- Beef Taco: Microwave 1 Taco Shell, 1 Raw Meat Cutlet, 1 Cheese Wedge for 10 Seconds
- Cuban Carp : Microwave 1 Dough, 1 Cheese Wedge, 1 Chili, 1 Carp Meat for 15 Seconds
- Banana Cream Pie : Microwave 1 Pie Dough, 3 Bananas, and 1 Pie Tin for 15 Seconds
- Carrot Fries : Microwave 1 Carrot, 15u Salt for 15 Seconds
- Pancake : Microwave 5u Flour, 5u Milk, 1 Egg (6u) for 5 Seconds
<Box> ## Bars & Cookies
<GuideEntityEmbed Entity="FoodBreadPlain"/> <GuideMicrowaveGroupEmbed Group="BarsAndCookies"/>
<GuideEntityEmbed Entity="FoodBurgerPlain"/>
<GuideEntityEmbed Entity="FoodSoupTomato"/> ## Cakes
<GuideEntityEmbed Entity="FoodSaladCitrus"/> <GuideMicrowaveGroupEmbed Group="Cake"/>
</Box>
<Box> ## Salads
<GuideEntityEmbed Entity="FoodPizzaMargherita"/> <GuideMicrowaveGroupEmbed Group="Salad"/>
<GuideEntityEmbed Entity="FoodCakePlain"/>
<GuideEntityEmbed Entity="FoodPieApple"/> ## Medicinal
</Box> <GuideMicrowaveGroupEmbed Group="Medicinal"/>
<Box>
<GuideEntityEmbed Entity="FoodMealCubancarp"/> ## Other
<GuideEntityEmbed Entity="FoodPieBananaCream"/> <GuideMicrowaveGroupEmbed Group="Other"/>
<GuideEntityEmbed Entity="FoodMealFriesCarrot"/>
<GuideEntityEmbed Entity="FoodBakedPancake"/> ## Secret
</Box> <GuideMicrowaveGroupEmbed Group="Secret"/>
</Document> </Document>

View File

@@ -0,0 +1,9 @@
<Document>
# Medicinal Recipes
These preparations have interesting medical effects, or are just straight-up medicines.
<GuideMicrowaveGroupEmbed Group="Medicinal"/>
</Document>

View File

@@ -0,0 +1,10 @@
<Document>
# Moth Foods
Moths are sophonts too, and don't appreciate eating random garbage they found any more than other species do just because they eat fabrics.
Fixing them these wonderful meals is a great way to not embarass their dignity.
<GuideMicrowaveGroupEmbed Group="Moth"/>
</Document>

View File

@@ -0,0 +1,9 @@
<Document>
# Other Recipes
The NanoTrasen Central Command Kitchen de Cuisine is still deliberating on the categorization of these recipes.
<GuideMicrowaveGroupEmbed Group="Other"/>
</Document>

View File

@@ -0,0 +1,9 @@
<Document>
# Pastas & Noodles
There's nothing like a big bowl of noodles.
<GuideMicrowaveGroupEmbed Group="Pasta"/>
</Document>

View File

@@ -0,0 +1,9 @@
<Document>
# Pies & Bars
Pies and bars are a great way to fix desserts for a group of people, and to make use of fresh ingredients you have.
<GuideMicrowaveGroupEmbed Group="Pie"/>
</Document>

View File

@@ -0,0 +1,9 @@
<Document>
# Pizza Pies
Pizzas are a great way to prepare food for a large crew, as each pizza is 8 servings.
<GuideMicrowaveGroupEmbed Group="Pizza"/>
</Document>

View File

@@ -0,0 +1,9 @@
<Document>
# Salads
Show off the freshness of your ingredients by serving them with just the right dressings and seasonings to bring out their best.
<GuideMicrowaveGroupEmbed Group="Salad"/>
</Document>

View File

@@ -0,0 +1,9 @@
<Document>
# Savory Recipes
Savory meals are a favourite of meat-eating species such as reptilians and felinids, and are also usually quite nutritious.
<GuideMicrowaveGroupEmbed Group="Savory"/>
</Document>

View File

@@ -0,0 +1,9 @@
<Document>
# Secret Recipes
Normal Nanotrasen-approved microwaves can't cook these recipes.
<GuideMicrowaveGroupEmbed Group="Secret"/>
</Document>

View File

@@ -0,0 +1,9 @@
<Document>
# Soups & Stews
A nice hearty bowl of soup is a great way to serve tough meats, or to preserve a delicate flavour.
<GuideMicrowaveGroupEmbed Group="Soup"/>
</Document>