SE fails to read EmissiveColors.sbc and defaults to fallbacks

enenra shared this bug 5 years ago
Outdated

Summary: EmissiveColors.sbc in Data\ is supposed to control the emissive color profiles (which block states are assigned to what colors) as well as what RGB values those colors have. Currently, SE fails to actually load that file however. As a result some vanilla blocks likely display the wrong colors and it is completely impossible to mod emissive colors even though a file was set up specifically to enable it.

Example EmissiveColorStatePreset:

    <EmissiveColorStatePreset>
      <Id>
        <TypeId>MyObjectBuilder_EmissiveColorStatePresetDefinition</TypeId>
        <SubtypeId>Default</SubtypeId>
      </Id>
      <EmissiveStates>
        <EmissiveState StateName="Damaged" EmissiveColorName="Black" DisplayColorName="Black" Emissivity="0" />
        <EmissiveState StateName="Disabled" EmissiveColorName="Red" DisplayColorName="White" Emissivity="0.5" />
        <EmissiveState StateName="Working" EmissiveColorName="Green" DisplayColorName="White" Emissivity="1" />
        <EmissiveState StateName="Warning" EmissiveColorName="Yellow" DisplayColorName="White" Emissivity="1" />
      </EmissiveStates>
    </EmissiveColorStatePreset>
Example EmissiveColor:

    <EmissiveColor>
      <Id>
        <TypeId>MyObjectBuilder_EmissiveColorDefinition</TypeId>
        <SubtypeId>Red</SubtypeId>
      </Id>
      <ColorDefinition>
        <R>255</R>
        <G>0</G>
        <B>0</B>
        <A>255</A>
      </ColorDefinition>
    </EmissiveColor>
Relevant file: Content\Data\EmissiveColors.sbc


Bug description:

Changes to that file in a mod do not result in any difference ingame. Not even changes to the file in the game directory do. The file is completely ignored. It likely has to do with SE failing to load the EmissiveColors.sbc altogether and instead falling back to internal default values.

Replies (2)

photo
1

Hello, Engineer!


Thank you for your feedback! Your topic has been added between considered issues.

Please keep voting for the issue as it will help us to identify the most serious bugs.


We really appreciate your patience.


Kind Regards

Keen Software House: QA Department

photo
1

This is still a bug in SE v206, attached an example sbc that overwrites timer block's emissives to be orange, yet in game there's no change because the MyEmissiveColorPresets.AddPresetState() is always called with overWrite set to false.


The same exact problem is for <EmissiveColor> (in the same vanilla file), because MyEmissiveColors.AddEmissiveColor() is always called with overWrite set to false.


Please fix.

photo
1

Oh also, since the presets are stored in a static way, they also need to be reset on world unload so that their overrides don't leak into other worlds.

photo
Leave a Comment
 
Attach a file