Fix exception when telepad system plays beam animations #33010
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
Fixes an exception raised when an order was sent to a cargo telepad.
Why / Balance
Less runtime errors, please.
Technical details
Content.Client.Cargo.Systems.CargoSystem.OnChangeData was reentrant, but did not handle this correctly.
When the appearancechanged event was raised, sending the component into a CargoTelepadState.Teleporting state, the code previously:
However, inside step 2, an AnimationCompletedEvent is raised, which calls OnChangeData() again (i.e. running steps 1-3). When that completes and we attempt to execute 3, the animation is already playing, raising an exception because the early-out in step 1 was invalidated:
Media
Requirements
Breaking changes
Changelog