space-wizards / space-station-14

A multiplayer game about paranoia and chaos on a space station. Remake of the cult-classic Space Station 13.
https://spacestation14.io
MIT License
2.53k stars 3.13k forks source link

Jumpsuits, gloves and shoes look white in the clothesmate #26972

Closed UbaserB closed 2 weeks ago

UbaserB commented 4 months ago

Screenshots

image

image

image

Hanzdegloker commented 4 months ago

casual jumpsuits have had this same issue for a long while, due to the formatting and how the coloured variants are achieved

now we get more of it! sadly...

Garggamel commented 4 months ago

Noticed that this also is the case for red, blue, and green flannel jackets in the WinterDrobe

Willhelm53 commented 2 months ago

I took a look, and I think it's happening because IRsiStateLike does not support the color-override stuff we're now doing for clothing. As others have noted in Discord, adding IconComponent for the individual colors as an override would defeat the purpose of greyscaling them in the first place (#26943).

My theory is that the custom coloring works fine on the dummy, but gets lost in translation when that icon gets passed back to the VendingMachineMenu:

For the VendingMachineMenu (and e.g. the Entity Spawn Panel), the icon is being generated by the GetPrototypeIcon method within SpriteSystem.Specifier. This involves spawning a dummy to get the icon. This part likely works fine, however, the method simply returns an IRsiStateLike. Since the RSI is intentionally greyscale, and no custom coloring information is included in the actual return value, the end result is the default greyscale version of the item icon.

Is this best handled engine-side, or am I perhaps missing a clean approach that could work content-side? I don't want to just complicate VendingMachineMenu and call it a day! 😁