2 Months Ago
Bugfix: Avoid dangling ItemContainer reference on Clear. - ItemContainer.Clear now removes items immediately, rather than deferring them to ItemManager's removal queue - Callbacks are also invoked earlier, before the ItemManager's removal queue pumping - Instead of sending out per-item ItemContainer-MarkDirty events, we only do 1 for all - ItemContainer.Kill also clears onPreItemRemove and parent This prevents a pooling bug where we recycle ItemContainers in same frame before ItemManager removal queue being pumped. It would lead to "invisible" items occupying the inventory. Tests: Spawned a wooden box, filled it up with stuffs, destroyed it - dropped container spawned with inventory(instead of dropping on the ground). Looting it caused it to despawn(instead of stay in the world).