StudiableBuilding - Vanilla-Expanded/VanillaExpandedFramework GitHub Wiki
StudiableBuilding creates buildings that colonists can approach, study for a while, and produce an effect of some kind
First of all, the thingClass of the building needs to be:
       <thingClass>VEF.Buildings.StudiableBuilding</thingClass>Second of all (the hard part), you need to make a C# class that inherits from the StudiableBuilding class. It will need to override the Study method, as that is what will be called by the JobDriver. For example, this is the ancient planning desk in Vanilla Quests Expanded - Deadlife that when activated gives a new quest with the location of a new silo:
 public class StudiableBuilding_NewSilo : StudiableBuilding
    {
        public override void Study(Pawn pawn)
        {
            base.Study(pawn);
            QuestNode_Root_AncientSilo.noAsker = true;
            Quest quest = QuestUtility.GenerateQuestAndMakeAvailable(InternalDefOf.VQE_Deadlife_AncientSilo, StorytellerUtility.DefaultThreatPointsNow(Find.World));
            QuestUtility.SendLetterQuestAvailable(quest);
            QuestNode_Root_AncientSilo.noAsker = false;
        }
    }Thirdly, you need a mod extension that tells details to the main class what to pop up when the building is opened. This mod extension is StudiableBuildingDetails
    public ThingDef buildingLeft = null;
    public SoundDef deconstructSound = null;
    public string gizmoTexture;
    public string gizmoText;
    public string gizmoDesc;
    public bool craftingInspiration;
    public SkillDef skillForStudying;
    public string overlayTexture;
    public bool showProgressBar = false;
    public bool showResearchEffecter = true;Here is the def extension of the above mentioned desk:
<modExtensions>
	<li Class="VEF.Buildings.StudiableBuildingDetails">
		<gizmoTexture>UI/Gizmos/StudyAncientPlans</gizmoTexture>
		<gizmoText>VQED_StudyAncientPlansLabel</gizmoText>
		<gizmoDesc>VQED_StudyAncientPlansDesc</gizmoDesc>
		<buildingLeft>VQED_AncientDesk</buildingLeft>
		<skillForStudying>Intellectual</skillForStudying>
		<overlayTexture>UI/Overlays/Study_Overlay</overlayTexture>
	</li>
</modExtensions>