Fuzss / thinair

The air is not always breathable in the depths of the earth and other dimensions.
https://www.curseforge.com/minecraft/mc-mods/new-thin-air
MIT License
1 stars 4 forks source link

[Suggestion]: Add support for definable Block States and NBT in data packs #31

Open TraipsingShadow opened 7 months ago

TraipsingShadow commented 7 months ago

Mod Loader (Optional)

Forge

Minecraft Version(s) (Optional)

1.20.1

Mod Version(s) (Optional)

v8.1.3

Suggestion (Required)

I am not sure if the mod currently supports it, but if it doesn't, I'd like to suggest allowing us to define specific block states and/or block/item NBT for use in data packs!

Example Use-case: A furnace when turned off (lit=false) will not do anything, but an active furnace (lit=true) as defined in the data pack (data\thinair\tags\blocks\yellow_air_providers) becomes a "yellow air provider."

This vastly increases the kinds of blocks, items, and combinations one can use to enhance the experience. This allows us, for example, to have a certain block from another mod which has multiple states which by default is not supported by Thin Air to be supported as a definable air provider.

Imagine a mod which has a Forge Energy-powered (FE) pump and has a certain block state when it is powered or not. Instead of adding support for it, giving the free hand to the end-users allows us to use that same FE pump to work as a green air provider by defining its specific block state in the data pack!

Or on the other hand, what if that certain block has a specific NBT data regarding its amount of "liquid?" What if we only wanted it to become a blue air provider ONLY when this specific value as defined in the data pack is greater than or equal to 50 (x >= 50)?

In other words, the burden gets shifted to us instead of the developers of either mods. Compatibilities for other mods can now more easily be done through data packs rather than make full-fledged compatibility mods just for a specific functionality hook.

I believe this method is the most practical approach to add support for the plethora of mods that have their own block states and item NBTs. The data itself already exists in the block and item and is readily accessible. Allowing Thin Air to not only read this data but be able to define it (with simple mathematical operators like <, >, or =) will greatly enhance its flexibility not only for the current mods that exist but for the rest of the mods to come.

EthanLeitch commented 5 months ago

I'm currently developing a modpack with Thin Air in it, and this feature would be very helpful.