Fully implemented everything in the multiblock package except for writing/loading from nbt