d70eb43dbb3407844a4f1c24cf69ae4433bbdf7c
Belts, splitters, and tunnels accepted items regardless of which edge they arrived through, so a tile would take an item pushed into its own output edge (e.g. two facing belts ping-ponged an item forever). Add oppositeRotation() and an entersThroughOutputEdge() predicate, and guard every acceptance site (tryPutItem, tryPushToTile, and the belt transfer in moveItemsToNextTile) so an item entering through an output edge is refused (REQ-MAT-ACCEPT-DIR). Building output-port deposits now also refuse a belt that faces back into the building. Update requirements (new REQ-MAT-ACCEPT-DIR; REQ-MAT-OUTPUT-PORT and REQ-BLD-TUNNEL-ENTRY clarified) and tests (explicit feed direction on direct deposits; new output-edge rejection cases per tile type). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DZR44tA8sn4dPqDzAVXyps
Description
No description provided
Languages
C++
96%
CMake
2.2%
Python
1.2%
C
0.6%