UnifyTags

UnifyTags

3.2k Downloads

[Question] Is it possible to add in exclusions or block-to-block conversions without using forge tags?

Whiskey-Sunshine opened this issue ยท 5 comments

commented

As the title suggests, I'm looking for a way to do specific replacements, or in some cases exclude specific items/blocks from conversion, as the catch-all nature of the tags in this causes some very problematic behavior with mods like Geolosys that add multiple ores of the same or similar type. The situations that arise from this are as following:

  1. Several geolosys ores share tags, as some are sources of multiple ores while others are single type (such as limonite tagged as both iron and nickel, while hematite is only iron). Using tag only conversion makes several materials unavailable depending on the conversion order (limonite is the only source of nickel through geolosys, and if it gets converted to hematite, nickel is impossible to acquire)
  2. The clusters dropped from mining geolosys ores are also tagged under forge:ores, resulting in either the clusters converting back into ore blocks when dropped (which makes them unusable in smelting recipes) or the blocks convert into clusters (which does some horrible breakage if global["unify_ore_gen"]="true")

I just wanted to know if it were possible to add in some kind of conversion blacklist or to allow block for block replacements somewhere in the script, or if it was something that would have to be rewritten to accommodate such changes.

Thanks for your time! And I greatly appreciate the fact that this script exists, it makes everything so much easier and cleaner overall.

commented

Must have been something else then, it seems. And yes, it would be fantastic to have a conversion blacklist.

commented

global["unify_ore_gen"]="true" does not do anything, as world gen is impossible to modify after startup, and I need to have tags loaded in order to modify anything. This is done on server-join, way after the game starts. UnifyTags never actually changed world gen in any way at any time, it was a planned feature that just physically could not be implemented. You can still modify ore gen directly through a KubeJS script of your own, but you'd have to look up how to do that.

If you just want to blacklist items from being unified at all, I can implement that.

commented

Apologies for the extended delay in responding, things have been overly busy and I didn't get the email that a response was given.

As for blacklisting, what I would like to see is, as an example: I have geolosys, mystical world, fire and ice, and immersive engineering, all of which add their own copper ore (five different types in total). In this case, I want to turn all those different ores into geolosys malachite, but I don't want geolosys azurite to be converted, as it's a richer ore that yields more on average and generates as part of larger unique deposits. So I would want to set the replacement for the copper ore as geolosys malachite, and blacklist geolosys azurite from the conversion, so that the mystical world, ice and fire, and immersive engineering copper ores are converted to malachite, but the azurite is not. I would also blacklist the geolosys copper clusters from the conversion, since they're also tagged as ores, which without the blacklist would convert back into geolosys malachite ore (which by default recipes is not smeltable). Otherwise a block to block direct conversion would also work, rather than only replacing a broad tag with a single block, though that might be a bit slower in the long run.

The trouble I had with global["unify_ore_gen"]="true" at the time was that if the conversion was set to change ores into clusters, the worldgen would attempt to create ore blocks with the items instead and fail, resulting in holes or blank stone where ores should have been. Though I'm not sure if that was a problem with another mod at the time.

commented

Fixed by this commit

commented

I don't actually think global["unify_ore_gen"]="true" actually does anything right now, probably should've commented it out. A blacklist is a neat idea; though I'd need to know more information about how you want the items to be blacklisted. I could blacklist them from everything, if that's what you want.