fix: make IdentityComp.IdentityEntitySlot optional #39357
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
About the PR
This fixes a rare edge case where if the client handles some event that depends on identity in response to that entity's spawning it would end up dying to a NRE.
Why / Balance
Bugs bad.
Technical details
IdentityEntitySlotis ensured on ComponentInit, so it's possible to have stuff that depends on identity occur while the IdentityComponent is still in its Added lifestage. This changes the nullability of the slot to accurately represent that.This does mean there's an extreme edge case where Identity.Name/Entity can return the real identity buuuuuut I feel like that's probably fine. (As far as I know this could only really happen on an entity entering a client's PVS for the first time.)
Media
Identity still works
Requirements
Breaking changes
IdentityComponent.IdentityEntitySlotis now optional.Changelog
wawaa