Chisel-Team/ConnectedTexturesMod

[1.18] Rework facade system to not require a hard dependency

Closed this issue · 2 comments

The current system makes it hard to implement the IFacade system without making CTM a hard dependency in the progress.
The old "workaround" of including a copy of the interface in the target mod doesn't work anymore due to the module system and TBH it is also legally dubious due to CTM's license.
The only clean workaround at the moment is to provide a duplicate of every block that is supposed to be considered a facade, which gets really ugly when a lot of separate block classes are involved.

Could alternatives be considered which do not require duplicating block classes or making CTM a required dependency?
First thing that comes to my mind would be registering a block->handler mapping via IMC.

Yes, this is of course needed. I need to decide the best design to use.

Forge has a native appearance API now (MinecraftForge/MinecraftForge#9066), so it would be awesome if the IFacade system were deprecated in favor of the Forge implementation as it would solve this issue of having to somehow make the IFacade system not a hard dependency.