[Suggestion] Some hook in the API to make certain bee mutations completely hidden from the Mutatron
Vexatos opened this issue ยท 21 comments
There are various bee mutations you really don't want to have unless certain requirements are met, and even making them secret doesn't help in this case (for obvious reasons); it would be nice if you could hide mutations that you really, really want to keep limited (for instance the holiday mutations with a limited time frame in Forestry or certain bee mutations in one of my addons) from the mutatron and the advanced mutatron. I suggest simply having a method in the API that takes an IMutation or IBeeMutation and makes both the NEI integration and the Mutatrons unable to ever get that mutation... Maybe add a second parameter to the method, a boolean, that makes the Mutatrons unable to get the mutation unless the requirements are actually met...
I'm not sure how i feel about it. The whole point of this mod is to take out the tedium out of bee breeding, and i feel that this will be misused by other modders to override that.
I could implement this as a configuration option, that way users (pack makers, server admins) will be able to control it without having to mess with code.
Well, most of the very, very special forestry bees are meant to give the player a reward for playing on certain holidays. You are not ever supposed to get them otherwise. Not having them doesn't hurt the player at all as they aren't producing any particularly good things most of the time. They are really just meant as a gimmick and the mutatron turns those special bees into easily obtainable bees.
I would not have a config option for this as it really is only meant for bees you are not ever supposed to get outside of special conditions. I also don't think mod devs would abuse this blacklist for bees that should be easily obtainable as doing so, you're right in this part, would defeat the entire point of this mod.
The problem is that when it's part of the API - neither me nor the users have control over how it's used. If tomorrow some other modder decides that e.g. uranium bees are too OP, and blacklists their mutation.
If it's a config setting - i can tell users how to override it back. I could also ship a list of the holiday bees from forestry in the default configs.
Well, I guess that would be decent enough... Again, I highly doubt someone would abuse this...
Actually, it'd be nice to have a method in the API to make Gendustry add a config for a bee species. something like blacklistMutation(String speciesname, EnumWhatever allowed)
, the enum being "REQUIREMENTS", "ENABLED" and "DISABLED".
Ok i'll go with the config option then.
I'll allow them to either be outright disabled or check mutation requirements (which means i need to implement IBeeHousing on the mutatron... eww!)
Disabled mutations will not show in NEI. Those with requirements check will show them in the tooltip.
- Date requirements doesn't show anything in getSpecialConditions in Forestry 3.5.x, but this seems to be fixed in current dev versions.
The default config will include Leporine, Merry, Tipsy and Tricky set to check requirements.
Anything i missed?
He was talking about other mods using it. So, for example, if Player felt that uranium bees were overpowered, he could blacklist it.
Also, certain bees, though normally restricted, really are unmatched. The jaded bee, for example, has the best flowering gene ("for.gui.maximum") not found in anything else until I added it myself to the Kurauri bees in ChromatiCraft.
Hmm... So you mean e.g. a mod adding copper blacklisting copper bees? Yea, that might indeed be an issue (even though I still see no reason why anyone would do this). Good thing it'll be a config option, then.
yeah that's the plan, the config will have higher priority than what's added from the api
I will certainly agree with @bdew that this is the sort of thing that gets severely abused.
But why would one install an addon just for restricting gendustry's mutatron? The "big bee addons" surely wouldn't do that themselves. If you think gendustry is "too overpowered" or something, you simply don't have it in your pack. At least that's what I'd think.
So... Now I can set my bee species so that the mutatron has to meet the requirements for it to breed, and it will appear in the config file so mod pack makers can override it? That sounds fine to me. I'll add integration once the version number is increased. Thank you.
The override that you add using the API will not appear in the config (because i don't currently have a system to handle writing/merging config files) - but if there is an override in the config for the same species it will take priority over what was added from the API.
Gendustry 1.4.14 is now out. Also i've switched to using semantic versioning for the API which is now version 2.0.0.