NermNermNerm / Junimatic

MIT License
3 stars 7 forks source link

Fruit Wines change to default Wine if player is present when Junimos load into the cask #10

Closed Oxdeception closed 1 month ago

Oxdeception commented 1 month ago

Video:

https://github.com/user-attachments/assets/f6486894-7dc2-4849-b981-de65550708c3

It appears that when the player is not present this is not an issue

NermNermNerm commented 1 month ago

Oh wow! That's the cause of it alright! I've seen it happen, but I've been fixated on the results end of things and never looked at where the real problem was, right at the start! I believe this commit will fix it:

https://github.com/NermNermNerm/Junimatic/commit/aa73d6b4f70fe5f93cc125df2fabb54a3b8dcef6

This change is in the "now I think I know better" bucket -- that is, I learned about this way of duplicating objects by reading other people's code after I wrote this code, and I think it's the preferred way to do it. But I'm not totally confident that this change won't break something else. I want to test with this for a bit before creating a public release.

I'd love it if you could test it too - I'm guessing that since you're reporting here and not on nexus you're a developer and could pull & compile it from source. You can kick the tires on the new "Shiny Things" feature too -- click on a Junimo hut and you can specify kinds of things that Junimos shouldn't process. (Hm. Now that I think about it, I bet that feature's a little wonky with wines!)

Oxdeception commented 1 month ago

I'm neither a C# developer nor a Stardew mod developer, to be clear.

I did try a compile but unfortunately the build process appears to run LfsCompiler.exe through Wine which then fails with a file not found error on git.

I did take a look at the code for "Shiny Things" as well as your description and it doesn't seem like it would fit into my current setup; I tend to create dedicated networks so that I can control what gets processed in which machines and quantities. This allows me to keep certain amounts of resources like copper ore or coal available for crafting, and decide which fruits and vegetables I want to be preserved vs dried vs juiced.

As far as I can tell the new option doesn't appear to change anything in my current setup, and doesn't offer enough conditional control to consider combining my networks.

NermNermNerm commented 1 month ago

I have mixed thoughts after playing with it a bit. The main inspiration I had for it wasn't as a replacement for separating networks, but rather for buildings like the coop - where you want it to preserve gold-quality void eggs for gifts, but silver and worse can be mayonnaise. Gold and Iridium quality wool is also more valuable than cloth, so you might mark that as shiny too.

It also works for situations like this: I keep a "dump chest" that's in a network with smelters near the entrance to the house. I often pass by it, just pressing the button to empty my inventory into it, and it just smelts everything... But I don't want Quartz smelted, so without the Shinies feature, I have to have 2 dump chests. In a world where Big Chests are a thing, it's nice to put Quartz in the shiny list and not have to fuss with two dump chests.

But Cave Carrots end up in that chest as well, and it's just more convenient to keep my Preserve Jars on another network so I don't get pickled cave carrots.

But then there's stuff like Corn, where I do want it turned into Oil, but I don't want it dehydrated and, for various reasons, I want the oil machines and dehydrators on the same network.

So I feel like it's got its charms, but it doesn't work for everything.

I thought that it would also help with Shipping Bins. I had wanted to say "If it comes out of a machine, and it isn't shiny, it can be shipped" But "comes out of a machine" has a bit more of a fuzzy meaning since it could go into another one (e.g. keg to cask). It's hard to implement and sounds hard to understand too.

My thinking now is to have a "Shippables" list as well as the "Shinies" list. That would be much easier to implement, but it seems like it'd be a busy UI. Got any better ideas?

Oxdeception commented 1 month ago

I personally use convenient inventory to make dumping into multiple chests simpler.

I also don't quite like the idea of automatically shipping anything, but possibly you could have blacklists and/or whitelists per machine? If you include the shipping bin in that configuration you can set up a list of things that are fine to ship automatically rather than processing. Though I suppose it would need some categories to make setting up less tedious...