public ShipHandler(Pawn newShip, ShipRole newRole) { List <Pawn> newHandlers = new List <Pawn>(); uniqueID = Find.UniqueIDsManager.GetNextThingID(); shipPawn = newShip; role = newRole; if (handlers is null) { handlers = new ThingOwner <Pawn>(this, false, LookMode.Reference); } if (currentlyReserving is null) { currentlyReserving = new List <Pawn>(); } if ((newHandlers?.Count ?? 0) > 0) { foreach (Pawn p in newHandlers) { if (p.Spawned) { p.DeSpawn(); } if (p.holdingOwner != null) { p.holdingOwner = null; } if (!p.IsWorldPawn()) { Find.WorldPawns.PassToWorld(p, PawnDiscardDecideMode.Decide); } } handlers.TryAddRangeOrTransfer(newHandlers); } }
public ShipHandler(Pawn newShip, ShipRole newRole) { uniqueID = Find.UniqueIDsManager.GetNextThingID(); shipPawn = newShip; role = newRole; if (handlers is null) { handlers = new ThingOwner <Pawn>(this, false, LookMode.Reference); } }