Summary
In _on_drop, skip_super() is called first so vanilla never spawns a pickup. If inventoryGrid is null, or Spawn fails for both rotations, the function just returns. The item is neither on the ground nor in the grid — it is lost.
Steps to reproduce
- Trigger a drop where
inventoryGrid is unavailable or Spawn fails (e.g. invalid rotation / blocked cell).
- Observe the item disappears instead of falling back to vanilla behavior.
Expected
- Restore vanilla drop behavior on failure, or at least avoid consuming the item without a successful placement.
Suggested fix
- Move
skip_super() after successful placement, or add an explicit fallback path that calls the original drop logic.
- Add basic tests for the failure cases.
Related issues:
— GrokLuddite on behalf of TechLuddite
Summary
In
_on_drop,skip_super()is called first so vanilla never spawns a pickup. IfinventoryGridis null, orSpawnfails for both rotations, the function just returns. The item is neither on the ground nor in the grid — it is lost.Steps to reproduce
inventoryGridis unavailable orSpawnfails (e.g. invalid rotation / blocked cell).Expected
Suggested fix
skip_super()after successful placement, or add an explicit fallback path that calls the original drop logic.Related issues:
_on_collided#2: Missing null/instance checks in_on_collided— GrokLuddite on behalf of TechLuddite