From 549a44753332541caa2d849397caa8c6fde7f849 Mon Sep 17 00:00:00 2001 From: Mamadou Babaei Date: Mon, 11 May 2026 22:12:49 +0200 Subject: [PATCH] fix inconsistent blueprint ufunction category paths in nova and nova2 Kismet libraries --- Handbook/src/appendix/changelog.md | 6 +++++ .../SGCoreKismet/SGNova2GloveKismetLibrary.h | 24 +++++++++---------- .../SGCoreKismet/SGNovaGloveKismetLibrary.h | 20 ++++++++-------- 3 files changed, 28 insertions(+), 22 deletions(-) diff --git a/Handbook/src/appendix/changelog.md b/Handbook/src/appendix/changelog.md index b6a4d46a..55093e2b 100644 --- a/Handbook/src/appendix/changelog.md +++ b/Handbook/src/appendix/changelog.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Fixed + +- Fix inconsistent Unreal Engine Blueprint `UFUNCTION` category paths in `Nova` and `Nova 2` Kismet libraries. + ## [2.8.0] - 2026-02-24 This minor release introduces high-level haptics and hand-tracking components, simplifies OpenXR integration around `FXRHandTrackingState`, and removes legacy `FXRMotionControllerData` APIs. It also includes ABI-breaking changes, Unreal Engine deprecations, documentation expansions, and various internal improvements. diff --git a/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNova2GloveKismetLibrary.h b/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNova2GloveKismetLibrary.h index e7650e8d..3a3555e8 100644 --- a/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNova2GloveKismetLibrary.h +++ b/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNova2GloveKismetLibrary.h @@ -268,50 +268,50 @@ public: /* * Retrieve the calibration status of this Nova 2.0 Glove. */ - UFUNCTION(BlueprintPure, Category="Nova2Glove | Core | Nova | Nova 2 Glove") + UFUNCTION(BlueprintPure, Category="SenseGlove | Core | Nova | Nova 2 Glove") static ESGHapticGloveCalibrationState GetCalibrationState(const USGNova2Glove* Nova2Glove); /* * Completes sensor Normalization on the Nova 2.0's end. */ - UFUNCTION(BlueprintCallable, Category="Nova2Glove | Core | Nova | Nova 2 Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova 2 Glove") static void EndCalibration(UPARAM(ref) USGNova2Glove* Nova2Glove); /* * Completes sensor Normalization on the Nova 2.0's end. */ - UFUNCTION(BlueprintCallable, Category="Nova2Glove | Core | Nova | Nova 2 Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova 2 Glove") static void ResetCalibration(UPARAM(ref) USGNova2Glove* Nova2Glove); public: /* * Stop all haptic feedback effects playing on this device. */ - UFUNCTION(BlueprintCallable, Category="Nova2Glove | Core | Nova | Nova 2 Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova 2 Glove") static void StopHaptics(UPARAM(ref) USGNova2Glove* Nova2Glove); /** * Stop only all vibrotactile feedback. */ - UFUNCTION(BlueprintCallable, Category="Nova2Glove | Core | Nova | Nova 2 Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova 2 Glove") static void StopVibrations(UPARAM(ref) USGNova2Glove* Nova2Glove); /** * Flush all streaming haptic effects on the different fingers to the Nova 2.0 Glove. */ - UFUNCTION(BlueprintCallable, Category="Nova2Glove | Core | SG | Nova 2 Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | SG | Nova 2 Glove") static bool SendHaptics(UPARAM(ref) USGNova2Glove* Nova2Glove); /** * Returns true if this Glove supports the chosen haptic location. */ - UFUNCTION(BlueprintPure, Category="Nova2Glove | Core | Nova | Nova 2 Glove") + UFUNCTION(BlueprintPure, Category="SenseGlove | Core | Nova | Nova 2 Glove") static bool SupportsCustomWaveform(const USGNova2Glove* Nova2Glove, ESGHapticLocation AtLocation); /** * Send a custom waveform to the Nova 2.0. */ - UFUNCTION(BlueprintCallable, Category="Nova2Glove | Core | Nova | Nova 2 Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova 2 Glove") static bool SendCustomWaveform(UPARAM(ref) USGNova2Glove* Nova2Glove, USGCustomWaveform* OutWaveform, ESGHapticLocation Location); @@ -320,13 +320,13 @@ public: * * @remarks Devices that 'only' have on/off FFB will treat any value > 0.0 as 1.0. */ - UFUNCTION(BlueprintCallable, Category="Nova2Glove | Core | Nova | Nova 2 Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova 2 Glove") static bool QueueForceFeedbackLevels(UPARAM(ref) USGNova2Glove* Nova2Glove, const TArray& Levels01); /** * Set the Force-Feedback value of a particular finger to a specific level. */ - UFUNCTION(BlueprintCallable, Category="Nova2Glove | Core | Nova | Nova 2 Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova 2 Glove") static bool QueueForceFeedbackLevel(UPARAM(ref) USGNova2Glove* Nova2Glove, int32 Finger, float Level01); /** @@ -334,14 +334,14 @@ public: * * @remarks Devices that 'only' have on/off FFB will treat any value > 0.0 as 1.0. */ - UFUNCTION(BlueprintCallable, Category="Nova2Glove | Core | Nova | Nova 2 Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova 2 Glove") static bool QueueVibroLevels(UPARAM(ref) USGNova2Glove* Nova2Glove, const TArray& Amplitudes); /** * Queue a command to set the (continuous) vibration level at a specific location to a set amplitude. This is to * support backwards compatibility for older plugins. Use of Customwaveforms is encouraged. */ - UFUNCTION(BlueprintCallable, Category="Nova2Glove | Core | Nova | Nova 2 Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova 2 Glove") static bool QueueVibroLevel(UPARAM(ref) USGNova2Glove* Nova2Glove, ESGHapticLocation Location, float Level01); /** diff --git a/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNovaGloveKismetLibrary.h b/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNovaGloveKismetLibrary.h index 8d46ddef..79c2a4ac 100644 --- a/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNovaGloveKismetLibrary.h +++ b/Source/SenseGloveCoreKismet/Public/SGCoreKismet/SGNovaGloveKismetLibrary.h @@ -288,32 +288,32 @@ public: /* * Retrieve the calibration status of this Nova Glove. */ - UFUNCTION(BlueprintPure, Category="NovaGlove | Core | Nova | Nova Glove") + UFUNCTION(BlueprintPure, Category="SenseGlove | Core | Nova | Nova Glove") static ESGHapticGloveCalibrationState GetCalibrationState(const USGNovaGlove* NovaGlove); /* * Completes sensor Normalization on the Nova's end. */ - UFUNCTION(BlueprintCallable, Category="NovaGlove | Core | Nova | Nova Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova Glove") static void EndCalibration(UPARAM(ref) USGNovaGlove* NovaGlove); /* * Completes sensor Normalization on the Nova's end. */ - UFUNCTION(BlueprintCallable, Category="NovaGlove | Core | Nova | Nova Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova Glove") static void ResetCalibration(UPARAM(ref) USGNovaGlove* NovaGlove); public: /* * Stop all haptic feedback effects playing on this device. */ - UFUNCTION(BlueprintCallable, Category="NovaGlove | Core | Nova | Nova Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova Glove") static void StopHaptics(UPARAM(ref) USGNovaGlove* NovaGlove); /** * Stop only all vibrotactile feedback. */ - UFUNCTION(BlueprintCallable, Category="NovaGlove | Core | Nova | Nova Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova Glove") static void StopVibrations(UPARAM(ref) USGNovaGlove* NovaGlove); /** @@ -324,19 +324,19 @@ public: * * @remarks Generic function across any Haptic Interface in SGCore. */ - UFUNCTION(BlueprintCallable, Category="NovaGlove | Core | SG | Nova Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | SG | Nova Glove") static bool SendHaptics(UPARAM(ref) USGNovaGlove* NovaGlove); /** * Returns true if this Glove supports the chosen haptic location. */ - UFUNCTION(BlueprintPure, Category="NovaGlove | Core | Nova | Nova Glove") + UFUNCTION(BlueprintPure, Category="SenseGlove | Core | Nova | Nova Glove") static bool SupportsCustomWaveform(const USGNovaGlove* NovaGlove, ESGHapticLocation AtLocation); /** * Send a custom waveform to the Nova. */ - UFUNCTION(BlueprintCallable, Category="NovaGlove | Core | Nova | Nova Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova Glove") static bool SendCustomWaveform(UPARAM(ref) USGNovaGlove* NovaGlove, USGCustomWaveform* OutWaveform, ESGHapticLocation Location); @@ -345,13 +345,13 @@ public: * * @remarks Devices that 'only' have on/off FFB will treat any value > 0.0 as 1.0. */ - UFUNCTION(BlueprintCallable, Category="NovaGlove | Core | Nova | Nova Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova Glove") static bool QueueForceFeedbackLevels(UPARAM(ref) USGNovaGlove* NovaGlove, const TArray& Levels01); /** * Set the Force-Feedback value of a particular finger to a specific level. */ - UFUNCTION(BlueprintCallable, Category="NovaGlove | Core | Nova | Nova Glove") + UFUNCTION(BlueprintCallable, Category="SenseGlove | Core | Nova | Nova Glove") static bool QueueForceFeedbackLevel(UPARAM(ref) USGNovaGlove* NovaGlove, int32 Finger, float Level01); /**