Repository navigation
Answer node removes and moves with what the tree now holds - #1066
Merged
Merged
Conversation
scene_add_to_group and scene_remove_from_group answered added and removed as constants. Membership was read only before the write, so a commit the node did not take would still have read as done. Both now read is_in_group again after the undo action commits and answer in_group from it. A change the node does not reflect is refused rather than reported. They move from exempt to observed, and a case for each compares in_group with the node's own is_in_group through the witness. Reporting the opposite of what was read fails the harness on both tools. Part of #1019.
scene_remove_node and scene_reparent_node answered action alone. Nothing was read after the commit, and the reparented node's new path was not in the answer, so a caller had to guess it to reach the node again. A remove now checks that the path it named no longer resolves and answers exists: false. A reparent reads the node's parent and path after the commit and answers node_path. Either refuses a change the tree does not reflect. Both move from exempt to observed, with cases that move and then remove the duplicate the case before them makes. Reporting a wrong path fails the harness on scene_reparent_node.node_path. Part of #1019.
3 of 6 tasks
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.
Description
Part of #1019: removing and moving a node.
scene_remove_nodeandscene_reparent_nodeansweredactionalone. Nothing was read after the commit, and the reparented node's new path was not in the answer, so a caller had to work it out to reach the node again.scene_remove_nodechecks after the commit that the path it named no longer resolves, and answersexists: false.scene_reparent_nodereads the node's parent and logical path after the commit, and answersnode_path, the path to reach it by from now on.Related Issues
Part of #1019. Stacked on #1065, which merges first.
Type of Change
Checklist
tests/covering new functionality. Two observed-state cases.tests/run_godot_integration.ps1on Godot 4.5.1, 4.6.2 and 4.7.2.didi --dump-tool-manifestfrom the same build, preserves the Phase 4/5/6 contracts, and keeps reserved runtime debugger tools marked unimplemented.docs/SURFACE_AMENDMENTS.md. No new tool.docs/BUILD_QUEUE.mdsaysIN PROGRESS, orCOMPLETE (#<this pull request>). Not a queue item.test_inventory.py --checkagrees.docs/andREADME.md.Tests
tests/observed_post_state.json. The new cases take the copy the duplicate case just made, move it underSubject, then remove it. Each compares the answer withnode_infothrough the witness. On 4.5.1, 4.6.2 and 4.7.2: 38 cases over 36 tools agreed.scene_reparent_node.node_path answered "/root/ObservedRoot/Subject/SpawnedCopyMoved" but the engine reportsthe real one.Local: native 946/946, Python 540 OK, docs validator clean, inventory 1486.