diff --git a/gui/public/i18n/en/translation.ftl b/gui/public/i18n/en/translation.ftl index d431ec41b1..a0096f37ef 100644 --- a/gui/public/i18n/en/translation.ftl +++ b/gui/public/i18n/en/translation.ftl @@ -612,8 +612,8 @@ onboarding-assignment_tutorial = How to prepare a Slime Tracker before putting i onboarding-assignment_tutorial-first_step = 1. Place a body part sticker (if you have one) on the tracker according to your choosing # This text has a character limit of around 11 characters, so please keep it short onboarding-assignment_tutorial-sticker = Sticker -onboarding-assignment_tutorial-second_step = 2. Attach the strap to your tracker, keeping the hook and loop side of the strap face in the following orientation: -onboarding-assignment_tutorial-second_step-continuation = The hook and loop side for the extension should be in this orientation: +onboarding-assignment_tutorial-second_step-v2 = 2. Attach the strap to your tracker, keeping the velcro side of the strap facing the same direction as the slime face of your tracker: +onboarding-assignment_tutorial-second_step-continuation-v2 = The velcro side for the extension should be facing up like the following image: onboarding-assignment_tutorial-done = I put stickers and straps! ## Tracker assignment setup diff --git a/gui/src-tauri/src/main.rs b/gui/src-tauri/src/main.rs index ce80095f20..a16d5d2c34 100644 --- a/gui/src-tauri/src/main.rs +++ b/gui/src-tauri/src/main.rs @@ -239,7 +239,7 @@ fn main() -> Result<()> { }; app_handle .emit_all("server-status", emit_me) - .expect("Failed to emit"); + .expect("Check server log files. \nFailed to emit"); } log::error!("Java server receiver died"); app_handle diff --git a/gui/src/components/ClearMountingButton.tsx b/gui/src/components/ClearMountingButton.tsx index 4ce177b4c9..2cc56938ce 100644 --- a/gui/src/components/ClearMountingButton.tsx +++ b/gui/src/components/ClearMountingButton.tsx @@ -3,10 +3,30 @@ import { ClearMountingResetRequestT, RpcMessage } from 'solarxr-protocol'; import { useWebsocketAPI } from '../hooks/websocket-api'; import { BigButton } from './commons/BigButton'; import { TrashIcon } from './commons/icon/TrashIcon'; +import { useTrackers } from '../hooks/tracker'; +import { Quaternion } from 'three'; +import { QuaternionFromQuatT, similarQuaternions } from '../maths/quaternion'; +import { useMemo } from 'react'; + +const _q = new Quaternion(); export function ClearMountingButton() { const { l10n } = useLocalization(); const { sendRPCPacket } = useWebsocketAPI(); + const { useAssignedTrackers } = useTrackers(); + const assignedTrackers = useAssignedTrackers(); + + const trackerWithMounting = useMemo( + () => + assignedTrackers.some( + (d) => + !similarQuaternions( + QuaternionFromQuatT(d?.tracker.info?.mountingResetOrientation), + _q + ) + ), + [assignedTrackers] + ); const clearMounting = () => { const record = new ClearMountingResetRequestT(); @@ -18,8 +38,7 @@ export function ClearMountingButton() { text={l10n.getString('widget-clear_mounting')} icon={} onClick={clearMounting} - > - {} - + disabled={!trackerWithMounting} + /> ); } diff --git a/gui/src/components/onboarding/pages/assignment-preparation/AssignmentTutorial.tsx b/gui/src/components/onboarding/pages/assignment-preparation/AssignmentTutorial.tsx index 507ef6be34..8a540379c5 100644 --- a/gui/src/components/onboarding/pages/assignment-preparation/AssignmentTutorial.tsx +++ b/gui/src/components/onboarding/pages/assignment-preparation/AssignmentTutorial.tsx @@ -44,7 +44,7 @@ export function AssignmentTutorialPage() {
{l10n.getString( - 'onboarding-assignment_tutorial-second_step' + 'onboarding-assignment_tutorial-second_step-v2' )}
@@ -54,7 +54,7 @@ export function AssignmentTutorialPage() {
{l10n.getString( - 'onboarding-assignment_tutorial-second_step-continuation' + 'onboarding-assignment_tutorial-second_step-continuation-v2' )}
diff --git a/package-lock.json b/package-lock.json index 449a84508b..4e37e5fc06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ } }, "gui": { + "name": "slimevr-ui", "version": "0.5.1", "dependencies": { "@fluent/bundle": "^0.17.1",