SatisfactoryTools icon indicating copy to clipboard operation
SatisfactoryTools copied to clipboard

Partial completion and sub-graph selection

Open Bergmann89 opened this issue 10 months ago • 4 comments

Hey guys,

I face the Problem that it is really hard to plan huge factories with the tool. Like having a production graph from raw resources to final tier 9 items is possible, but then I struggled to break it down to smaller graphs to build the actual factory. First I tried to solve it using inputs, but then the overall graph changed because of different inputs and optimizations. So I implemented a couple of features to only change the visual representation of the graph without changing the underlying production graph. I've implemented basically 3 features:

  • If two recipes share two (or more) input/output resources, these resources will be consumed first before searching for different alternatives. This is more or less just an optimization for item loops. screenshow_loop_optimization
  • An additional menu (below the inputs menu) where you can add different recipes. These recipes are used to mark parts of the graph as completed. This can be used to keep the overview while implementing the factory step by step. screenshow_completed
  • It is now possible to select a sub-section of the graph by double clicking on a node. This subsection shows only relevant items for this sub-graph. This makes it easier to keep the overview in really complex scenarios. screenshow_sub_graph

I've put everything in one commit. Please let me know if you are interested in merging this. If so, I could also cleanup the git history a bit, to give better overview over the changes.

Bergmann89 avatar Feb 05 '25 16:02 Bergmann89

Hi, thanks for the PR. I don't have time to do a proper code review/testing now, but first thing would be to remove the "docker support" commit from it, as it has nothing to do with it (could be separate PR if you really want to, but as Tools are being rewritten anyway, I don't find it worth adding it to current Tools).

greeny avatar Feb 05 '25 18:02 greeny

Hey, no problem. I used the docker stuff just for development from an already existing PR. I will drop it and do a general cleanup if you had some time to have a look to the implemented features. If you don't want them in the current version I don't have to spend the time to make it clean :)

Bergmann89 avatar Feb 05 '25 20:02 Bergmann89

It's not that I don't want cool new changes, it's that my focus is primarily on new version, which is a completely separate codebase, so features are hard/impossible to port to new Tools. I'll try to go through the code and test it tomorrow or the day after and see if it's something that can be merged.

greeny avatar Feb 05 '25 21:02 greeny

No worries, I totally understand. So take your time, and give me a hint once you are done. I have a local version of my changes running I can work with. I also have no problem with merging it later or not merging it at all, just thought that someone else might be also interested in it, so I shared it. To give something back to the community :)

p.s.: I'm also curious how the new version of the tools would look like, and what cool features it might have 🙃😁

Bergmann89 avatar Feb 05 '25 23:02 Bergmann89