Digital Miner Filter Enhancement
TheCutter opened this issue ยท 6 comments
Would be cool if the inverse mode could be set on Filter Level. For example:
- Filter: OreDict (ore*) Inverse off
- Filter: Mod ID (ArcanaRPG) Inverse on
- Filter: Mod ID (BiomesOPlenty) Inverse on
so that the Miner would mine every ore but the ones from ArcanaRPG and BiomesOPlenty.
Filter 1 lets it mine all ores in the ore dictionary
Filter 2 lets it mine everything except ArcanaRPG stuff
Filter 3 lets it mine everything except BiomesOPlenty stuff
Mixing 2 and 3 would literally mine everything. It would be simpler to just specify all the ores you do want to pull up.
Sorry, maybe it wasn't clear enough. The filters I wrote in the first comment are the filters how I would like them to setup. So the idea is to build a simple Filter list like: Mine all ores (ore*) but not from the mods (Arcana, BiomesOPlenty).
Specify all ores I want the Digital Miner to mine isn't simpler because there are many ores to farm (Mekanism, Tinkers, IndustrialCraft, Thermal, ...)
Btw what is the idea behind the ordering of the filters?
I think I understood your idea, but unfortunately that would require a complete overhaul of the Digital Miner's filter system.
Right now, filters do not interact with one another (ordering does nothing). They are all "or" statements.
If I understand your request, you would like to make the filters "and" statements, or "Any ore and not from Arcana and not from BoP."
If I'm remembering the boolean logic correctly, that would break something as simple as a two filter system:
oreIron - Inverse Off
oreGold - Inverse Off
With your interacting filters, that would be "Iron ore and gold ore." Because it's an 'and' statement, it would require the pulled up item to be both iron and gold ore at the same time, and not pull anything up.
The filter system could be optimized, but it's usually not terribly difficult to list the 15 or so ores you want to pull up.
What about this:
If the miner founds a block it will check the filters in the defined order if it matches any of them. The first one that matches defines what to do with the block. If the filter is set to "Inverse"/"Don't mine" it will not be mined. Otherwise it will be mined. If no filter matches it will not be mined.
This way defining oreIron and oreGold both will be mined and the filter ordering finally makes sense. ;)
Inverse mode at the moment simply makes the filter a blacklist instead of a whitelist. Again, would require a complete rewrite of the system.
The filter ordering makes perfect sense right now; the ordering does nothing. It is just a list. I'm also fairly certain there's also no buttons to change the ordering, just to drive home that ordering is not important.
If you want more advanced filters, then you have to make them way more complicated, which is more confusing and difficult to use. It's better (IMO) to keep the current filter system and simply make a list of what you want to pull up. Heck, a list of "don't pull up these ores" could easily end up the same size as the list of ores you do want to pull up.