Instead of quoting everything that’s wrong, I’m just going to link https://gist.github.com/Cadiboo/fbea89dc95ebbdc58d118f5350b7ba93. Please read it. Descriptions of most of the methods can be found in their javadocs. If those are lacking, you can find out what the method does by finding the usages of it.
Im not sure if it’s mentioned in the file I linked, but don’t use ITileEntityProvider, it’s legacy vanilla code and Forge has a better replacement. Simply override hasTileEntity(IBlockState) and createTileEntity(IBlockState) in your block class. To answer your question, all functionality outside of your block just sitting there is implemented through a TileEntity (usually a Tickable one)