Repository navigation
Core - Fix data model and event condition bugs found by the tests - #910
Merged
Merged
Conversation
…e in use - DataModel.RemoveDynamicChild compared the value of each child with the child that was passed in, so it never removed anything. - IsPropertyInUse with includeChildren matched paths by their start, so a path to "Integers" made "Integer" count as in use. Children are now matched on what follows a dot.
…d types - The constructors saved the path before setting it up, while it was still invalid, so a new path stored nothing and didn't follow its data model leaving and returning to the store until it was saved. - Removing the dynamic child a path points to left the path valid and reading a default value, it now becomes invalid like when the child was never there. - The stored type of a path is now also looked up in all loaded assemblies, Type.GetType only found it in Artemis.Core and the .NET libraries, not in plugins or SkiaSharp.
…rt watching - A trigger from before the condition watched its event, for example long before the profile was activated, counted as new and played the element once. Triggers now count from the moment the condition starts watching its path. - A condition on a plain value treated the first value it saw as a change and played the element on the first frame. The first value is now taken as the starting value.
RobertBeekman
marked this pull request as ready for review
October 20, 2026 11:46
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes the data model and event condition bugs found by the test suite (#907). Each fix flips the test that pinned the old behaviour.
Fixed
DataModel.RemoveDynamicChild(child)removes the child. It compared each child's value with the child, so it never removed anything.DataModelPathis saved right away. The constructors calledSavebefore the path was set up, so nothing was saved and the path didn't follow its data model leaving and returning to the store.IsPropertyInUse(..., includeChildren: true)matches whole path segments. "Integer" no longer counts as in use because of a path to "IntegerList".Visible change
Layers with an event condition no longer play once when their profile is activated, unless the event actually happens after that.
Testing
Artemis.Core.Tests: all passedArtemis.UI.Shared.Tests: 176 passed