Open danaYatsuta opened 1 month ago
It could be done, but I'm a bit uneasy about it. For one, it's a bit hacky to do it by forging distributions on the RS side, rather than the JER side. For another, it's not actually that trivial to figure out which ores are variants of others. For the vanilla ores it's the deepslate_
prefix, and most mods like Create follow the same pattern, but e.g. DeepResonance instead uses the _deepslate
suffix vs the _stone
suffix for the deep and normal variants. So it'll be some fairly messy code. As an example, here's how I did it last time I was making some modded ore distribution plots:
def collect_variants(ores) -> dict[str, list[str]]:
ore_combs = {}
for el in ores:
if "xychorium" in el:
continue # these are many, and uninteresting
raw = el.replace("deepslate_", "").replace("_deepslate", "").replace(":stone_", ":").replace("_stone", "")
ore_combs.setdefault(raw, []).append(el)
return ore_combs
So I'm thinking if I do it at all, it'd be in the form of some python scripts that I publish along with RegionScanner, rather than as part of its own code. That way it'd be easier to modify and play around with the parameters.
That makes sense.
For vanilla ores, JER shows combined ore distribution for normal ore variant and deepslate variant, which is convenient, since if you are looking for ore you likely don't care what variant it is. Is there a way to generate world-gen.json in such a way that, for example, Create's both zinc ore and deepslate zinc ore have the same
distrib
values that are actually combined distribution of those two ores?