IllegalArgumentException on constructor of subclass of HorizontalFacingBlock [QKL]

I am trying to create a class AbstractMachineBlock that extends HorizontalFacingBlock and implements BlockEntityProvider. I have based my code off of a Kotlin port of the Fabric tutorial on directional blocks, and the code compiles, but on runtime crashes with this crash report. The full code for AbstractMachineBlock.kt is located here.

That’s a very sneaky crash report!

This is happening because you’re copying the block settings of a blast furnace for your blocks extending this block. This is an issue because said block settings define a luminance function, which takes as input a block state and as output an integer between 0 and 15.

The issue is this method here, for the blast furnace, uses the lit property from its block state.
When you instanciate a new block it will create various caches of values, which it does for the luminance: it generates every value of luminance possible for every block states. Except the function being defined as state.get(Properties.LIT) ? 15 : 0 causes an issue: it request the lit property which does not exist on any of your blocks: thus it crashes.

Oh, huh, I chose that randomly because I thought “a blast furnace is kinda like a machine, right?” And yeah, I can confirm that replacing QuiltBlockSettings.copyOf(Blocks.BLAST_FURNACE) with QuiltBlockSettings.of(Material.METAL) did fix the problem.