This is a framework mod designed for modders, enabling sub-buildings to add new recipes to the main building. You do not need to write any C# code to achieve this functionality.
How to Use:
First, add all recipes, including those that need to be unlocked, to the recipes list of the main building. For example: <li>Make_StoneBlocksAny</li>
Next, mimic the vanilla production facilities by adding the CompProperties_AffectedByFacilities comp and its corresponding content to the main building (if you don't know how, check the vanilla file structure). Also, add this comp component to the main building:
<li Class="SubBuildingRecipes.CompProperties_InitialUnlocked">
<initialUnlockedRecipes>
<li>Make_StoneBlocksAny</li>
</initialUnlockedRecipes>
</li>
Finally, add this comp component to the sub-building (you can copy the vanilla ToolCabinet):
<li Class="SubBuildingRecipes.CompProperties_AddNewRecipes">
<newRecipes>
<li>Make_StoneBlocksAny</li>
</newRecipes>
</li>
Of course, it must also have the CompProperties_Facility component, just like the Tool Cabinet. Please refer to the vanilla structure for specific parameters.
This completes the functional design.