Room System - Niilo007/RimWorld-NQoL GitHub Wiki
flowchart TD
OnMapLoad --First--> TryToCreateAllHomes
OnMapLoad --Second--> AttempToAnnexAllRooms
OnMapLoad --Third--> TryToFillAllRooms
TryToCreateAllHomes --> TryToCreateHome --success--> TryToCreateHome --> AttemptToAnnexRooms --success--> AttemptToAnnexRooms
TryToFillAllRooms --AllHomes--> TryToFillRooms --> AssignPawnToRoom
AttempToAnnexAllRooms --> AttemptToAnnexRooms --> AddRoomToHome --success/fail--> AttemptToAnnexRooms
AddRoomToHome --> EvictIfShouldOrAddToOccupants --> AssignPawnToRoom & AddToOccupants
flowchart TD
d{{Defs}} --> dd & jd
dd{{DutyDef}} --> tol & pe
jd{{JobDef}} --> goto{{Goto}} --> JobDriver_Goto --> mnt(MakeNewToils) --> tem(TryExitMap) --> pem(ExitMap)
JobDriver -.-> JobDriver_Goto
LordToil -.-> LordToil_ExitMap
PrisonBreakUtility --> spbi(StartPrisonBreakIn) --> LordJob_PrisonBreak
LordToil -.-> LordToil_Travel -.-> LordToil_PrisonerEscape
LordToil_PrisonerEscape --> uado(UpdateAllDuties) --> pe{{PrisonerEscape}} --> JobGiver_GotoTravelDestination
LordJob -.-> LordJob_PrisonBreak --> cg(CreateGraph) --> LordToil_PrisonerEscape & LordToil_ExitMap
LordToil_Travel --> uad(UpdateAllDuties) --> tol{{TravelOrLeave}} --> JobGiver_GotoTravelDestination & JobGiver_ExitMapRandom
ThinkNode -.-> ThinkNode_JobGiver -.-> JobGiver_GotoTravelDestination & tgj(TryGiveJob)
JobGiver_GotoTravelDestination --> tgjo(TryGiveJob) --> goto
Pawn --> pem --> emajocc --> fctjf
CaravanExitMapUtility --> emajocc(ExitMapAndJoinOrCreateCaravan) & fctjf(FindCaravanToJoinFor) --> pem
LordToil_ExitMap --> ExitMapBest{{ExitMapBest}} & uadoo(UpdateAllDuties)
LordToil_ExitMap --> fltem(LordToil_ExitMap) --> LordToilData_ExitMap
uadoo --> ExitMapBest
LordToilData -.-> LordToilData_ExitMap