Apologies for PR spam, just this one has a couple of changes I was unsure of, so it felt cleaner to split it into something separate:
- I'm a bit conflicted on `.getCollisionShape` - it appears to be used both
for entity collision and determining if a block's side is a "full cube" (and so can have torches placed against or w/e)
- I've renamed `getRenderingState` to `getStateForNeighborUpdate`, though am not 100% it's a good name - it may also perform side effects (mostly scheduling this block to be ticked next thread), so isn't quite a pure getter.