There is a difference between an ALife's intent to pick up an item and actually picking it up. Items are locked when the ALife add an action to pick up the item, but there is no guarantee that the action will be popped from the queue right away. The item will still be locked and not unlocked until the ALife completes the action, introducing a situation where items are locked forever if the ALife who requests the lock never unlocks it.
Possible solution would be to implement a "run on action start/cancel" callback so we could unlock these items.
There is a difference between an ALife's intent to pick up an item and actually picking it up. Items are locked when the ALife add an action to pick up the item, but there is no guarantee that the action will be popped from the queue right away. The item will still be locked and not unlocked until the ALife completes the action, introducing a situation where items are locked forever if the ALife who requests the lock never unlocks it.
Possible solution would be to implement a "run on action start/cancel" callback so we could unlock these items.