From 509449da84c6a4d8f6fccf7b79dac9eeba3ad297 Mon Sep 17 00:00:00 2001 From: spatialfree Date: Sat, 9 Nov 2024 19:52:14 -0500 Subject: [PATCH] switch case boxmode --- src/Mono.cs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/Mono.cs b/src/Mono.cs index 982a655..968971c 100644 --- a/src/Mono.cs +++ b/src/Mono.cs @@ -75,13 +75,20 @@ static class Mono Rig.head.orientation * Vec3.Forward, Vec3.Direction(box_pose.position, Rig.head.position) ) < 15.0f); + switch (box_mode) { - box_pose.position = Rig.r_con_stick.position; - } - else - { - // orbital_view - box_pose.position = Rig.head.position + Rig.head.orientation * V.XYZ(0, -(SD_Y + 0.5f) * box_scale, -32 * U.cm); + case BoxMode.Float: + if (pickup) { box_mode = BoxMode.Hold; } + break; + case BoxMode.Hold: + box_pose.position = Rig.r_con_stick.position; + if (Rig.btn_grip.delta == -1) { box_mode = in_cone.state ? BoxMode.Mount : BoxMode.Float; } + break; + case BoxMode.Mount: + // orbital_view + box_pose.position = Rig.head.position + Rig.head.orientation * V.XYZ(0, -(SD_Y + 0.5f) * box_scale, -32 * U.cm); + if (pickup) { box_mode = BoxMode.Hold; } + break; } }