Keep depth fixtures in save order and bind positions by ID

This commit is contained in:
NINI
2026-10-10 08:25:34 +09:00
parent 2494459945
commit fa3da70923
2 changed files with 51 additions and 5 deletions
+4 -4
View File
@@ -166,7 +166,7 @@ function ApproachDepth([string]$Name,$Source){
for($attempt=0;$attempt-lt5;$attempt++){
$current=if($attempt-eq0){$before}else{Save "$Name-before-attempt-$attempt"};$board=$current.latestFreePlay
$point=BallPoint $board 'native-depth-front';Check "$Name-first-hit-safe-$attempt" (WorldSafe $point) ($point-join',')
$pointer=@($point[0]+20,$point[1]);NativeTouch @($point[0],$point[1],73,1024);NativeTouch @($pointer[0],$pointer[1],73,1024);Start-Sleep -Milliseconds 800
$pointer=@(($point[0]+20),$point[1]);NativeTouch @($point[0],$point[1],73,1024);NativeTouch @($pointer[0],$pointer[1],73,1024);Start-Sleep -Milliseconds 800
for($step=0;$step-lt45;$step++){
$label="$Name-live-$attempt-$step";Step $label @() 0;$friends=@(BlueFriends (Join-Path $EvidenceDir "$label.png"))
$commands.Add(@{command='Observe actual live blue friends for input steering';png="$label.png";friends=$friends;pointer=$pointer;utc=[DateTime]::UtcNow.ToString('o')})
@@ -234,8 +234,8 @@ try {
$stopped=@($thin.expected.balls|Where-Object id -eq $thin.ballId)[0].position;$reversed=@($after.latestFreePlay.balls|Where-Object id -eq $thin.ballId)[0].position
Check 'thin-fast-reverse-opposite-immediate-safe-drop' ($reversed.x-lt$stopped.x-.05-and(SameMembership $thin.source $after.latestFreePlay)-and(InBounds $after.latestFreePlay 1)-and(Same $thin.source.camera $after.latestFreePlay.camera)) 'Actual opposite move from blocked last-safe point reacts immediately and drops with both exact groups preserved'
$depth=Clone $fixtures.restores[0].freeSource;$depth.sourceStageId=1;$depth.camera=[pscustomobject][ordered]@{target=[pscustomobject][ordered]@{x=0;y=2.35;z=0};rotation=[pscustomobject][ordered]@{x=0;y=0;z=0;w=1};distance=14}
$depth.balls=@(@{id='native-depth-front';position=@{x=-1;y=3;z=0}},@{id='native-depth-back';position=@{x=1;y=3;z=4}})
$depth.groups=@(@{id='native-depth-front-group';ballIds=@('native-depth-front')},@{id='native-depth-back-group';ballIds=@('native-depth-back')})
$depth.balls=@([pscustomobject][ordered]@{id='native-depth-back';position=[pscustomobject][ordered]@{x=1;y=3;z=4}},[pscustomobject][ordered]@{id='native-depth-front';position=[pscustomobject][ordered]@{x=-1;y=3;z=0}})
$depth.groups=@([pscustomobject][ordered]@{id='native-depth-back-group';ballIds=@('native-depth-back')},[pscustomobject][ordered]@{id='native-depth-front-group';ballIds=@('native-depth-front')})
$short=$null
foreach($hold in @(150,2500)){
$state=FixtureState $depth 'free' 1;$before=LoadFixture "stationary-$hold" $state 'free' 1;$point=BallPoint $before.latestFreePlay 'native-depth-front'
@@ -246,7 +246,7 @@ try {
$before=LoadFixture 'pause-cancel' (FixtureState $depth 'free' 1) 'free' 1;$point=BallPoint $before.latestFreePlay 'native-depth-front'
$after=HoldDrag 'pause-cancel' $before.latestFreePlay 'native-depth-front' ($point[0]+80) $point[1] 1200 -Cancel
Check 'pause-cancel-restores-board-manual-camera' (Same $before $after) 'Native HOME interrupts actual assisted drag, board and manual camera restored'
$depth.balls[0].position=@{x=-1.5;y=2;z=-1};$depth.balls[1].position=@{x=.5;y=2;z=2.2}
(@($depth.balls|Where-Object {$_.id-ceq'native-depth-front'})[0]).position=[pscustomobject][ordered]@{x=-1.5;y=2;z=-1};(@($depth.balls|Where-Object {$_.id-ceq'native-depth-back'})[0]).position=[pscustomobject][ordered]@{x=.5;y=2;z=2.2}
ApproachDepth 'actual-deep-contact' $depth
$required=@('six-scenes-ground-prop-feet-arch-hole','front-prop-occlusion-all-original-ids-search','stable-candidate-display-live-assist-and-visible-manual-return','six-scenes-variants-all-five-boundaries-free-source','phone-tablet-readable-ui-numbers-gaps','matched-baseline-native-presentation-memory-observation')
if(Test-Path -LiteralPath $observationPath){