Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Filter by Proportion of Biomes #266

Closed
LordSicarious opened this issue Oct 19, 2023 · 1 comment
Closed

[Feature Request] Filter by Proportion of Biomes #266

LordSicarious opened this issue Oct 19, 2023 · 1 comment

Comments

@LordSicarious
Copy link

Recently I've been using Cubiomes quite a lot, and a filter that I've found myself doing manually quite a lot is "judging how much of this area is the target biome(s)." At the moment, the only filters are binary, checking the existence of a biome or not. It's also possible to make an "all biomes must by X" filter by excluding all other biomes. However, there are many scenarios where it would be more useful to allow some more tolerance in this regard.

For instance:

  • Finding islands and peninsulas. An "island" of a particular biome is very difficult to locate at present time, as you can only check for the presence of a nearby ocean, or try to construct some awkward box where you say "these lines must be ocean", improperly excluding weirdly shaped islands. It would be far superior to say "80% of target region must be ocean biomes."
  • Other biome enclaves are also difficult to find at present. For instance, finding a pocket of cherry grove, surrounded by a large mass of mountains. Or finding a small pocket of Basalt Delta surrounded by Soul Sand Valley, to make a perfect Magma Cube farm without going above the Nether Roof.
  • Easily Spawn-Proofed Area. There are a lot of technical usecases where certain biomes might be preferable for spawn-proofing purposes. But it doesn't need to be 100%. Finding a seed where very little effort is required to proof your Spawn Chunks against passive mobs, for instance: if you set the filter to only allow no-passive biomes, you will miss seeds which have a small (and potentially desirable) pocket of plains inside them, or simply almost completely spawnproof.
  • Desiring large areas of mixed biomes. For instance, you might want a large plains or savanna at spawn, or some mix of the two. But not want to designate the entire spawn as only being plains or savanna. This would address that issue.
  • You might want to avoid large patches of a particular biome, but not avoid the biome completely, which you could do by demanding that 90% of the target area is made up of other biomes.

My suggestion for implementation is that you would have a selection of biomes to include, and then a slider where you can specify the minimum proportion that those biomes must make up in total. For example, a selection of "Warm Ocean, Lukewarm Ocean, Deep Lukewarm Ocean, 50%" would filter only for seeds where at least 50% of the target area is any of those ocean types. This data is already available by doing biome analysis, however there is is not a filterable target for now, making seedhunting on that basis slow and tedious.

Cubitect added a commit that referenced this issue Jan 7, 2024
…ut change)

* added biome samples filter to check biome proportions (#173, #266)
* added outline display for the area of selected conditions (WIP)
* added "from-visible" to conditions editor (#271)
* added Locations to Search tab, to look for positions in the current seed
* moved Tiggers to Search tab
* changed area/position input fields to use block coordinates (#265)
* changed spiral iterator to use an arbitrary, user defined step size
* fixed octave options and added generated display texts (#253)
@Cubitect
Copy link
Owner

Cubitect commented Feb 10, 2024

In version 4.0, there is now a Biome Samples filter, which takes pseudo-random samples of the biomes in an area and checks that a minimum proportion of the biomes are part of an allowed biome set.
This is a convenient way to make fuzzy biome checks that are fairly performance friendly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants