greeny / SatisfactoryTools

Satisfactory Tools for planning and building the perfect base.
https://www.satisfactorytools.com/
MIT License
268 stars 57 forks source link

Different color per machine type #52

Closed houghi closed 1 year ago

houghi commented 3 years ago

As a feature request: It would be very handy if each machine type had a different color. e.g Miner is brown, Refinery is blue, Assembler is Orange, Constructor is Yellow and so on. Grey for the product and green for the end product is already good.

It would help make the more complex production lines better readable.

greeny commented 3 years ago

Hi, sorry, I missed this.

This is something that has been requested a few times, but there's a few issues. First is that there can be many machines and you'll eventually run out of colors that are distinguishable enough. Second point is that I like to keep things simple and clean and I don't think that making it having a lot of colors will make it look better.

And there's also third problem - how do you assign these colors? (keep in mind that the schema is updated automatically, so it should be something that can be done automatically without user's input)

jcornaz commented 3 years ago

First is that there can be many machines and you'll eventually run out of colors that are distinguishable enough

I think this feature request ask for color each machine type. Not each machine.

There is only 5 production machine types: constructor, assembler, manufacturer, refinery and packager. Picking 5 distinguishable colors should be doable. Example: blue, green, orange, red and purple.

I don't think it is necessary to distingish the different type of resource extractors. But even if we want that, there is only 3 different type of resource extractors: miner, water extractor and oil extractor.

how do you assign these colors?

Each machine type could have an assigned color that never change. Example: Assemblers are in blue.

greeny commented 3 years ago

I think this feature request ask for color each machine type. Not each machine.

yeah, but still there can be more machines in the future (in fact there's already at least one confirmed for next update).

Picking 5 distinguishable colors should be doable. Example: blue, green, orange, red and purple.

There's already 3 different colors, so you need different colors than those.

Each machine type could have an assigned color that never change. Example: Assemblers are in blue.

That didn't answer my question. The data is updated automatically, there's no color assigned to those machines in game files and I'd need a way to assign the color automatically.

(And I still think that too many colors would just cause harm).

jcornaz commented 3 years ago

yeah, but still there can be more machines in the future (in fact there's already at least one confirmed for next update).

1 more would mean 6. Sill doable. I don't see how they could add so many new type that it exhausts the list of differentiable colors.

That didn't answer my question. The data is updated automatically, there's no color assigned to those machines in game files and I'd need a way to assign the color automatically.

My point was to assign the color statically. In other words, don't consider that color as "data". It could be written in the code. "hardcoded" if you want. For instance, currently the color of resource extraction is grey, the color of production machines is orange and the color of output is green. These colors are not generated right?

(And I still think that too many colors would just cause harm).

Of course. I don't have anything answer to that, except I don't share this opinion ;-)

After all, it is your decision of course @greeny. If you have all rights to not like the idea and close this issue as "won't fix". I will still consider this the best satisfactory calculator out there ;-)

greeny commented 3 years ago

1 more would mean 6. Sill doable. I don't see how they could add so many new type that it exhausts the list of differentiable colors.

Sure, but there's rumors that there's even one more, and I'm also focusing a lot on future-proofing the tool.

My point was to assign the color statically. In other words, don't consider that color as "data". It could be written in the code. "hardcoded" if you want. For instance, currently the color of resource extraction is grey, the color of production machines is orange and the color of output is green. These colors are not generated right?

Sure, they are hardcoded, but that's because they are assigned to "type" of resource (raw, final product, anything else), so there's pretty much zero chance there will be another "type" (I'm considering showing byproducts in different color, but that's it). If I had to hardcode the colors per machine type, it would be harder to update (as it's no longer just update data, it's also finding another color that works for the machine type, etc.)

And final point against hardcoding stuff - there are plans to support mods as well, which would be then almost impossible to do (as there's a lot of mods and a lot of new machines, so that will be a lot of colors).

I'm not closing this issue for now as my opinion isn't straight "no", but I don't have a good idea on how to do this considering all the issues mentioned above. (and I haven't even mentioned color blindness yet, although for now the site isn't really good in that matter)

greeny commented 1 year ago

Closing as won't fix. Future planned mod support means there can be infinite number of machines. Maybe I'll add something similar later, but for now it's a no.