Fuzss / diagonalwalls

The missing diagonal blocks are here! After all these years. Finally, you have them all.
Mozilla Public License 2.0
2 stars 1 forks source link

[Bug]: Compatibility - Tardis Refined #8

Open Jeryn99 opened 3 months ago

Jeryn99 commented 3 months ago

Mod Loader (Required)

Fabric

Minecraft Version(s) (Required)

1.20.x

Mod Version(s) (Required)

DiagonalWalls-v8.0.3-1.20.1-Fabric

Minimal Setup (Required)

Yes

Notes (Required)

I am one of the Developers of the Tardis Refined mod. Within our mod we have a crafting system that allows for the player to craft blocks or items using blocks in the real world, examples being seen here

Users have a compatibility issue with your mod installed, as the blocks we check for are replaced by the ones from your mod - meaning that users are block from progression due to the blocks they require essentially become "unobtainable"

image

Is there something we need to do on our side that we have missed?

You can see where we do our validation check for recipes here: https://github.com/WhoCraft/TardisRefined/blob/20f13cbe80a6d93c131650447f6d276c1516e28c/common/src/main/java/whocraft/tardis_refined/common/crafting/astral_manipulator/ManipulatorCraftingIngredient.java#L37-L42

latest.log (Required)

N/A

Fuzss commented 3 months ago

I have two ideas that should solve this:

1. Support block tags for your crafting ingredients

Diagonal blocks inherit all block tags from the original blocks. Maybe that can be useful here? Is it important for you to have access to the block state properties, or is a block enough for the recipe ingredient?

You could switch your block state codec here to one that supports either a block or block tag together with the block state properties (if the properties are necessary to have): https://github.com/WhoCraft/TardisRefined/blob/20f13cbe80a6d93c131650447f6d276c1516e28c/common/src/main/java/whocraft/tardis_refined/common/crafting/astral_manipulator/ManipulatorCraftingIngredient.java#L22 And then all polished blackstone walls would need to have a block tag which is used in the recipe, e.g. tardisrefined:ingredients/polished_blackstone_wall.

Maybe you can even generate a block tag dynamically for all blocks used in manipulator recipes via dynamic data generation. Although since this issue only seems to affect two blocks (polished blackstone walls & glass panes) for now that's probably overkill.

2. Blacklist your recipe ingredients from turning into diagonal blocks

Alternatively there is a block tag for blacklisting walls from being converted to the new diagonal blocks: diagonalwalls:non_diagonal_walls. You could include polished deepslate walls in the tag in your mod jar, so if both mods are loaded together there will be no issues. Also this seems to affect glass panes in terraformer.json.

Those are the only two solutions that come to mind without introducing dedicated compatibility.

Jeryn99 commented 3 months ago

For the meantime, it may be good for us to go with solution 2 and see how everything fairs before leaping to create a tag per block we use

OllyWHO01 commented 2 months ago

How else could i do it as im using a mod pack and may corrupt things if i delete the mod