Fabric API

Fabric API

106M Downloads

Chest Neighbor Update triggers during uncomitted Transfer-API Transactions

shartte opened this issue ยท 2 comments

commented

When items are being extracted from or inserted into a chest via the Fabric transfer API, the chest will notify its neighbors about the changed comparator signal due to the changed storage. It does this before the transaction is comitted.

This may cause adjacent blocks to react continuously to attempted ("simulated") extracts even though no transaction is ever being comitted. Additionally, blocks that perform any inventory action in the neighbor update will actually crash the game when they try to create a Transaction of their own, since a transaction is already ongoing, but they do not have access to this transaction.

commented

I blame AE2 sending a change notification when markDirty is called, which is forge behavior but NOT vanilla or default fabric behavior.

commented

However the issue is still relevant since a comparator update in an unwanted markDirty could send a neighbor update with potential consequences (on top of the markDirty performance hit).