public static void StoreAllDreams() { sDreamStore = new Dictionary <ulong, DreamStore>(); foreach (Sim sim in Sims3.Gameplay.Queries.GetObjects <Sim>()) { if (sim.Household != Household.ActiveHousehold) { try { DreamStore store = new DreamStore(sim, true, true); if (!store.IsNeeded) { continue; } sDreamStore[sim.SimDescription.SimDescriptionId] = store; } catch (Exception e) { Common.Exception(sim, e); } } } }
public static void AdjustSelectable(SimDescription sim, bool active, bool dreamCatcher) { try { SafeStore.Flag flags = SafeStore.Flag.StoreOpportunities; if (active) { flags |= SafeStore.Flag.Selectable; } else { flags |= SafeStore.Flag.Unselectable; } using (SafeStore store = new SafeStore(sim, flags)) { if (active) { if (!Household.RoommateManager.IsNPCRoommate(sim)) { sim.CreatedSim.OnBecameSelectable(); } } else { DreamStore dreamStore = null; if (dreamCatcher) { dreamStore = new DreamStore(sim.CreatedSim, false, true); } try { sim.CreatedSim.OnBecameUnselectable(); } finally { if (dreamStore != null) { dreamStore.Restore(sim.CreatedSim); } } } } } catch (Exception e) { Common.Exception(sim, e); } }
public HouseholdStore(IEnumerable <SimDescription> newSims, bool catchDreams) { if (newSims != null) { mNewSims = new List <SimDescription>(newSims); } mOldHouse = PlumbBob.sCurrentNonNullHousehold; if ((mOldHouse != null) && (catchDreams)) { foreach (Sim member in Households.AllSims(mOldHouse)) { DreamStore element = new DreamStore(member, false, true); mDreamStore.Add(member, element); } } if (mNewSims != null) { foreach (SimDescription member in mNewSims) { Corrections.CleanupBrokenSkills(member, null); mSafeStore.Add(member, new SafeStore(member, SafeStore.Flag.Selectable | SafeStore.Flag.Unselectable | SafeStore.Flag.StoreOpportunities)); if ((member.CreatedSim != null) && (member.CreatedSim.Autonomy != null)) { Motives motives = member.CreatedSim.Autonomy.Motives; if ((motives == null) || (motives.GetMotive(CommodityKind.Hunger) == null)) { member.CreatedSim.Autonomy.RecreateAllMotives(); } } } } }