Dunkmania101 / SpatialHarvesters

A Minecraft mod that adds harvesters that gather resources from space-time itself!
https://www.curseforge.com/minecraft/mc-mods/spatial-harvesters
MIT License
3 stars 5 forks source link

[Feature Request] Custom harvester outputs to act as overwrite #19

Closed JeffersonDoan closed 3 years ago

JeffersonDoan commented 3 years ago

This feature would essentially be a behavior change with how the custom harvester outputs config option works. Currently machines will always check for items in forge tags along with anything in the config. I suggest instead to ignore checking forge tags if the custom output array has anything in it, acting as an overwrite.

Example: If you want an ore harvester to only output iron and coal...

Currently: Not possible.

With change: custom_ores = [["minecraft", "iron_ore"], ["minecraft", "coal_ore"]]

Taking this further, a config option could be included to determine if the custom output options should act as an overwrite or an addition to what is already checked in forge tags.

Dunkmania101 commented 3 years ago

Unless I find out it's not possible, I might actually make the tags themselves determined by the config. Would that still work for you?

JeffersonDoan commented 3 years ago

That could still work. My only concern for that would be harvesters pulling out duplicate items from a tag, such as copper ore from both Mekanism and Immersive Engineering. I don't know enough about the backend to know how items from tags are determined.

Dunkmania101 commented 3 years ago

My thinking was that if someone wanted to override a tag, they could just remove it from the list in the config and specify the custom items. As for the duplicates, they already do that. One use for the override could be to fix that problem. For example, they could remove the ores tag and specify the copper manually. That would disable all other ores that weren't manually specified, so that solution wouldn't be ideal. A better one would be to blacklist all the mods' copper ores but one, leaving everything else intact. Either way, I'm pretty sure what I suggested was effectively identical to your original implementation idea, just a bit more flexible. Not to downplay what you suggested, all I'm trying to say is that they shouldn't be very different and that your concern would be caused and fixed by something else. Is that valid, or is there something I'm missing that actually would make my suggestion have an issue that yours wouldn't? You'd think I'd be a little more confident in the logistics of my own mod! I guess I actually am, just want to make sure :)

Also, just in case and to clarify, my understanding is that tags are just categories that any item can be assigned to. One item can also be in multiple tags. For example, "forge:ores" is a tag that most ore items are added to. That said, an ore item, for example, has to actually be told to be in that tag for it to show up, which is why there are a bunch of premade items listed in the ore harvester's custom outputs. The FunOres mod, for example, was pointed out to me not to have used that tag, so I added it manually. For a while, the manual support was actually hardcoded, I then later added the config options. I say it's just my understanding because I am rather new here and I saw a post on the Forge forums where a bunch of errors by a few YouTubers were basically shamed. Although I'd like to think I won't be shamed if I'm wrong about the tags system (which I doubt, it seems simple enough to me), I don't want to spread misinformation, so there you go.

Sorry for the wall of text, I just kept thinking of stuff I should mention.

JeffersonDoan commented 3 years ago

It's still fairly early in the morning but now your idea makes complete sense in just removing a tag and manually setting items if needed. In fact that would be a much better system overall just for flexibility.

And no need to apologize for sharing information! I've been following the development of this mod while working on my modpack and your support for Spatial Harvesters is on another level.

Dunkmania101 commented 3 years ago

Done!