[Modding] Non-public blocks causing crashes and other undesirable behaviour in RadialMenu.

gruzzob shared this bug 15 days ago
Submitted

Firstly: create two BlockVariantGroups. one containing Cockpit\PassengerSeatSmall and another containing CubeBlock\LargeDeadAstronaut. These are both vanilla blocks with <Public>false</Public>false in their block definition. Either for backwards compatibility with older blueprints or used in encounters/cargo ships. PassengerSeatSmall is Small Grid, and LargeDeadAstronaut is LargeGrid. These two entries can be used to demonstrate 3 different bugs all related to them being non-public

  1. The groups are shown at all. This is in contrast to the g-menu and its BlockCategory entries where the BlockVariantGroups stop showing at all when no public blocks are present.
  2. Selecting the group containing the PassengerSeatSmall causes and immediate crash. More specifically, selecting a small grid block with <Public>false</Public> in its block definition causes a crash. This also occurs if the non-public small grid block is the second entry in the BlockVariantGroup.
    This is also a regression from .205/Contact, where a crash would only occur if the selected blocksize had been changed to before selecting the group (for groups where the first block was non-public), or when navigating past a public block in the BlockVariantGroup to a non-public one.
  3. Selecting the LargeDeadAstronaut shows the component list of the last inspected block, or nothing if no block had been inspected during this opening of the RadialMenu. More specifically, selecting a large grid block <Public>false</Public> in the block definition.
    This is essentially the same behaviour as in .205/Contact, except there it happened for non-public small grid blocks as well, which instead now cause a game crash.


The core of the issue stems from the Radial Menu not respecting the publicness of blocks in the same manner as the G-Menu and BlockCategories

Leave a Comment
 
Attach a file