This is a pretty big change which should reduce the amount of data sent by sending all chunk changes in a single packet, which allows for further optimisation (only sending block pos once per block, for example). All part changes get stored in a change list (1 per chunk) which gets flushed at the end of the tick. (See #48)
Also, a lot of the code in TileMultipartContainer has been refactored/redone to reduce bugs and reduce duplicate code.
This is a pretty big change which should reduce the amount of data sent by sending all chunk changes in a single packet, which allows for further optimisation (only sending block pos once per block, for example). All part changes get stored in a change list (1 per chunk) which gets flushed at the end of the tick. (See #48) Also, a lot of the code in TileMultipartContainer has been refactored/redone to reduce bugs and reduce duplicate code.
This is also a prerequisite for #57.