public Dialog_AssignBuildingOwner(CompAssignableToPawn assignable) { this.assignable = assignable; doCloseButton = true; doCloseX = true; closeOnClickedOutside = true; absorbInputAroundWindow = true; }
public static Pawn GetAssignedPawn(this Building building) { CompAssignableToPawn compAssignableToPawn = building.TryGetComp <CompAssignableToPawn>(); if (compAssignableToPawn == null || !compAssignableToPawn.AssignedPawnsForReading.Any()) { return(null); } return(compAssignableToPawn.AssignedPawnsForReading[0]); }
private List <Pawn> CulpritsAre() { culpritsResult.Clear(); if (targetPawns.Any()) { foreach (Pawn allMapsCaravansAndTravelingTransportPods_Alive_Colonist in PawnsFinder.AllMapsCaravansAndTravelingTransportPods_Alive_Colonists) { if (allMapsCaravansAndTravelingTransportPods_Alive_Colonist.royalty != null && allMapsCaravansAndTravelingTransportPods_Alive_Colonist.royalty.HighestTitleWithBedroomRequirements() != null && !allMapsCaravansAndTravelingTransportPods_Alive_Colonist.Suspended && (!allMapsCaravansAndTravelingTransportPods_Alive_Colonist.royalty.HasPersonalBedroom() || allMapsCaravansAndTravelingTransportPods_Alive_Colonist.royalty.GetUnmetBedroomRequirements().Any())) { culpritsResult.Add(allMapsCaravansAndTravelingTransportPods_Alive_Colonist); } } } tmpOccupiedBeds.Clear(); List <Thing> list = mapParent.Map.listerThings.ThingsInGroup(ThingRequestGroup.Bed); foreach (Pawn targetPawn in targetPawns) { RoyalTitle royalTitle = targetPawn.royalty.HighestTitleWithBedroomRequirements(); if (royalTitle == null) { continue; } Thing thing = null; for (int i = 0; i < list.Count; i++) { Thing thing2 = list[i]; if (thing2.Faction == Faction.OfPlayer && thing2.GetRoom() != null && !tmpOccupiedBeds.Contains(thing2)) { CompAssignableToPawn compAssignableToPawn = thing2.TryGetComp <CompAssignableToPawn>(); if (compAssignableToPawn != null && compAssignableToPawn.AssignedPawnsForReading.Count <= 0 && RoyalTitleUtility.BedroomSatisfiesRequirements(thing2.GetRoom(), royalTitle)) { thing = thing2; break; } } } if (thing != null) { tmpOccupiedBeds.Add(thing); } else { culpritsResult.Add(targetPawn); } } tmpOccupiedBeds.Clear(); return(culpritsResult); }
public void ExposeData() { Building_Grave refee = AssignedGrave; Building_Throne refee2 = AssignedThrone; Building refee3 = AssignedMeditationSpot; Scribe_References.Look(ref intOwnedBed, "ownedBed"); Scribe_References.Look(ref refee3, "assignedMeditationSpot"); Scribe_References.Look(ref refee, "assignedGrave"); Scribe_References.Look(ref refee2, "assignedThrone"); AssignedGrave = refee; AssignedThrone = refee2; AssignedMeditationSpot = refee3; if (Scribe.mode != LoadSaveMode.PostLoadInit) { return; } if (intOwnedBed != null) { CompAssignableToPawn compAssignableToPawn = intOwnedBed.TryGetComp <CompAssignableToPawn>(); if (compAssignableToPawn != null && !compAssignableToPawn.AssignedPawns.Contains(pawn)) { Building_Bed newBed = intOwnedBed; UnclaimBed(); ClaimBedIfNonMedical(newBed); } } if (AssignedGrave != null) { CompAssignableToPawn compAssignableToPawn2 = AssignedGrave.TryGetComp <CompAssignableToPawn>(); if (compAssignableToPawn2 != null && !compAssignableToPawn2.AssignedPawns.Contains(pawn)) { Building_Grave assignedGrave = AssignedGrave; UnclaimGrave(); ClaimGrave(assignedGrave); } } if (AssignedThrone != null) { CompAssignableToPawn compAssignableToPawn3 = AssignedThrone.TryGetComp <CompAssignableToPawn>(); if (compAssignableToPawn3 != null && !compAssignableToPawn3.AssignedPawns.Contains(pawn)) { Building_Throne assignedThrone = AssignedThrone; UnclaimThrone(); ClaimThrone(assignedThrone); } } }