protected override bool PrivateUpdate(ScenarioFrame frame) { if (Sim == null) { return(false); } RetainedInventorySimData data = GetData <RetainedInventorySimData>(Sim); if (data == null || data.mInventory == null) { IncStat("Retention Missing"); return(false); } if (data.mInventory.Count == 0) { IncStat("Inventory Empty"); return(false); } AddStat("Inventory", data.mInventory.Count); foreach (GameObject obj in data.mInventory) { if (mSim.Inventory == null) { continue; } mSim.Inventory.IgnoreInventoryValidation = true; try { if (Inventories.TryToMove(obj, mSim)) { IncStat("Returned " + obj.CatalogName); } } catch (Exception e) { Common.Exception(mSim, obj, e); } finally { mSim.Inventory.IgnoreInventoryValidation = false; } } data.mInventory.Clear(); return(true); }
protected override bool PrivateUpdate(ScenarioFrame frame) { RetainedInventorySimData data = GetData <RetainedInventorySimData>(Sim); data.mInventory.Clear(); Inventory familyInventory = Sim.Household.SharedFamilyInventory.Inventory; familyInventory.IgnoreInventoryValidation = true; try { foreach (GameObject obj in Inventories.InventoryFindAll <GameObject>(mSim.SimDescription)) { if (obj is IHiddenInInventory) { continue; } try { if (familyInventory.TryToMove(obj)) { data.mInventory.Add(obj); IncStat("Retained " + obj.CatalogName); } } catch (Exception e) { Common.Exception(mSim, obj, e); } } } finally { familyInventory.IgnoreInventoryValidation = false; } AddStat("Inventory", data.mInventory.Count); return(true); }