Use BlockUtil.isAttachableDetached()
A bit more NPE protection
Redid the predefined substitution handling, should be faster
Also using new isItemsDropped() call from dhutils Cost