Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Several suggestions for the app. #73

Open
Androix777 opened this issue Aug 15, 2020 · 6 comments
Open

Several suggestions for the app. #73

Androix777 opened this issue Aug 15, 2020 · 6 comments

Comments

@Androix777
Copy link

Androix777 commented Aug 15, 2020

English is not my first language, so I apologize for the mistakes.

I am playing with factorio with pyanodon mods and this app helps me a lot. While using the application, I came up with several ideas that can make the application more convenient and functional.

  1. Ability to disable certain recipes in the calculator. For example, if I want to try a different recipe, then I can disable the old recipe. If I don't like the new recipe, I can delete it and turn the old one back on. Disabled recipes simply don't take any part in the calculations.

  2. Folders. I know that recipes can be nested within each other. But sometimes you need to combine several recipes into one folder that are at the same nesting level, but at the same time have much in common and therefore will be produced side by side and use shared resources.

  3. Mark initial resources. It would be great if you could mark the resources that initially come to the factory, for example, with some color. Then it would be possible to very quickly determine which resources still need to be divided into composite ones, and which ones have already been fully disclosed into composite ones.

A more complex development of this idea is to search for these initial resources in other project tabs. For example, I am making a circuit board recipe and iron plates are an initial resource for it, since it is not produced in this factory. But in another project tab, I have a recipe for iron plates. And then in the circuit board recipe I can see if I have enough iron plates.

  1. Possibility to prohibit the use of produced not linked resources. For example, at my factory, a total of 2 ash is produced in 5 places, and 10 ash is spent in one place. For Ash, I have not created a link, as I will be bringing ash by train from another factory. Then in summary ingredients I will get 8 ash. But I do not want to collect 2 ash from those 5 places, since they are in inconvenient places, so in this case I would like to prohibit wasting resources if they are not marked as linked.

  2. It would be great if the search highlighted the resources containing the search query.

  3. Ability to define YAFC cost only with available milestones.

Thanks for the app.

@ShadowTheAge
Copy link
Owner

ShadowTheAge commented Aug 15, 2020

  1. Workaround: You can sort of do it now - set fixed amount of crafting buildings to 0.001 or something. You can't set 0 unfortunately and now I can't change that as "0" now means "not limited" and it is too late to change. I will think about that.
  2. You can use nested tables for that. Nested table root does not have to be the main recipe, and does not need to have any relation to other recipes.
  3. What are initial resources? Initial resources depend on context. And I don't think searching other tabs help with that - I, for example, often have dozens of "experimenting" tabs that I don't have built. I am thinking about the new "auto planner" feature that may need project-wide "ready to use" resources (that needed to be set up manually)
  4. You can use nested tables for that
    • option A: Have separate recipes in separate tables
    • option B: Create an empty nested table just for the recipe you want to ignore some outputs from. Create (unmatched) link inside that table.
  5. Oh I forgot I have search function :D
  6. This feature is already in development. It actually already works if you build from the sources bot TODO - show flow with respect to milestones in NEIE, etc

@Androix777
Copy link
Author

  1. I understand that initial resources are context dependent and meant to mark them manually. The simple function "mark the resource as initial" would be enough and everywhere on this page this resource will be marked in green, for example. Then, just by quickly looking at the page, it will be clear which resources still need to be decomposed into composite ones, and which are no longer needed.
    The second part of the idea of ​​linking all the tabs together is more complicated and I'm not sure if this is required. But as an option it is possible to mark tables as "suppliers" and customize which recipes they supply. And if on a certain tab you marked a resource as "initial", then it looks for possible suppliers on other tabs.

  2. I didn't quite understand how to do this. Output is still shown in the Products column and is therefore subtracted from the Summary ingredients.

@ShadowTheAge
Copy link
Owner

#1 is implemented for the next version

@ShadowTheAge
Copy link
Owner

ShadowTheAge commented Aug 31, 2020

I have published the 0.5.1 release

  1. is done
  2. I have added an undocumented feature where you can mark an object with a green background using ctrl+click but I may move or rework that functionality when I do the new auto-planner so marked objects coule be lost. But you can use it.
  3. is done

As for others:
2. I wouldn't do (at least for now).
4. I don't see how it could be done. If you don't want to link some resources, you should use nested tables and look at these nested table resources i/o instead of the overall i/o. Otherwise, if there are several links for a resource, how should YAFC choose between them?
When I was prototyping split fluid temperatures, I have initially implemented it at the production table level so there could be several links with the same fluid but different temperatures. And this was already confusing to work with, even though there were an algoritm to choose one of the links
So, while there is a technical possibility to add some more link customization in addition to nested tables, I don't think it will be added soon.
5. I agree that would be great, but it is not currently a priority. I will try to add this when I will be updating some systems around the search.

@tornewuff
Copy link

Having nested tables that don't have a "root" recipe, just a user-defined name (pretty much what's requested here in 2) would be pretty useful to me as well.

The issue I've run into with just picking an arbitrary root recipe (other than it just not always being obvious which one to pick to make it clear what the table is for) is that the thing you pick then cannot have a second-level nested table. So, to represent a structure like (A: (B, C), D: (E, F)) you have to either pick one and "flatten" into A: (B, C, D: (E, F)) which looks a little odd if A/B/C and D/E/F are otherwise parallels to each other, or you have to add some other extra recipe without a nested table just to function as the root (which makes it even harder to pick one that's clear).

This has come up quite a few times because at the moment I'm using a single sheet for my entire factory with the top level recipes all corresponding to a "block" that imports/exports by rail. Being able to just make folder-like groups for these with names that correspond to the stations would be clearer. Having a factory overview like in #123 might ultimately be a better way to represent this I guess, but I do currently get some use out of being able to have top-level links.

@ShadowTheAge
Copy link
Owner

ShadowTheAge commented Sep 9, 2021

yeah, I agree, I shouldve done like that initially, have encountered the same problem a few times, but now it needs "more reasons" to change/add because having several somewhat conflicting ways to do the same thing is annoying. Like modules currently, there are a ton of ways to set up modules and they don't always work well together. Yafc support for modules was initially very basic.

Maybe I can just add a fake "null recipe" that can be added as a nested table root

DaleStan referenced this issue in DaleStan/yafc May 9, 2024
Besides typos, also fixed some/most camelCase variable names.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants