Skip to content

Dualsense Adaptive Triggers - #944

Merged
isXander merged 8 commits into
mainfrom
feat/adaptive-triggers
Jul 29, 2026
Merged

Dualsense Adaptive Triggers#944
isXander merged 8 commits into
mainfrom
feat/adaptive-triggers

Conversation

@isXander

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds DualSense adaptive trigger effects support to Controlify, including a new trigger-effect model/codec layer, an API for registering effects, and a user-facing profile toggle in the controller config UI.

Changes:

  • Introduces DualSense trigger-effect types/state, codecs, and runtime manager applied each tick.
  • Adds a profile setting + default config + DFU migration for dualsense.trigger_effects.
  • Exposes a small public API for mods to register item/component-based trigger effects and ships built-in defaults.

Reviewed changes

Copilot reviewed 27 out of 27 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/main/resources/controlify.mixins.json Registers the new Item mixin for trigger-effect storage on items.
src/main/resources/assets/controlify/lang/en_us.json Adds UI strings for the new Trigger Effects settings group.
src/main/resources/assets/controlify/controllers/default_config.json Adds default DualSense trigger effects profile setting.
src/main/java/dev/isxander/controlify/utils/codec/FuzzyMapCodec.java Tweaks decode error wording for fuzzy map codec failures.
src/main/java/dev/isxander/controlify/utils/codec/CExtraCodecs.java Adds byte range / byte-array codec helpers used by trigger effect codecs.
src/main/java/dev/isxander/controlify/mixins/feature/triggereffect/ItemMixin.java Implements TriggerEffectHolder on Item to store per-item trigger effects.
src/main/java/dev/isxander/controlify/gui/screen/ControllerConfigScreenFactory.java Adds a “Trigger Effects” option group and toggle to the advanced config UI.
src/main/java/dev/isxander/controlify/driver/sdl/SDLCommonDriver.java Wires DualSense effect state updates to SDL controller effects API.
src/main/java/dev/isxander/controlify/driver/dualsense/DualsenseTriggerEffectTypes.java Moves trigger effect type IDs into the non-SDL DualSense package.
src/main/java/dev/isxander/controlify/driver/dualsense/DualsenseTriggerEffect.java Refactors DualSense trigger effect model and state creation to new state type.
src/main/java/dev/isxander/controlify/driver/dualsense/DualsenseEffectsState.java Renames/relocates the DualSense effects state struct.
src/main/java/dev/isxander/controlify/controller/dualsense/TriggerEffectManager.java Adds per-tick logic to select/apply trigger effects based on bindings and held items.
src/main/java/dev/isxander/controlify/controller/dualsense/TriggerEffectHolder.java New interface for storing per-item trigger effects.
src/main/java/dev/isxander/controlify/controller/dualsense/TriggerEffectCodecs.java Adds codecs for serializing/deserializing trigger effects.
src/main/java/dev/isxander/controlify/controller/dualsense/DualsenseComponent.java Renames DualSense component and adds accessors for profile/default DualSense settings.
src/main/java/dev/isxander/controlify/controller/dualsense/BuiltinTriggerEffects.java Registers built-in trigger effects for common items/components.
src/main/java/dev/isxander/controlify/controller/ControllerEntity.java Updates DualSense component type reference after renaming.
src/main/java/dev/isxander/controlify/Controlify.java Initializes trigger effect manager + built-in registrations; applies effects each tick.
src/main/java/dev/isxander/controlify/config/settings/profile/ProfileSettings.java Adds DualSense settings to profile settings object and DTO conversions.
src/main/java/dev/isxander/controlify/config/settings/profile/DualsenseSettings.java New profile settings container for DualSense-specific options.
src/main/java/dev/isxander/controlify/config/dto/profile/ProfileConfig.java Extends profile config DTO schema with dualsense.
src/main/java/dev/isxander/controlify/config/dto/profile/DualsenseConfig.java New DTO + codec for dualsense.trigger_effects.
src/main/java/dev/isxander/controlify/config/dto/dfu/fixes/DualsenseConfigFix.java Adds DFU migration to backfill missing DualSense config fields.
src/main/java/dev/isxander/controlify/config/dto/dfu/ControlifySchemas.java Adds DFU schema V6 placeholder for the new fix.
src/main/java/dev/isxander/controlify/config/dto/dfu/ControlifyDataFixer.java Bumps DFU version and registers the new DualSense config fix.
src/main/java/dev/isxander/controlify/api/triggereffect/TriggerEffectApi.java New public API for registering item/component trigger effects.
src/main/java/dev/isxander/controlify/api/buttonguide/ButtonGuideApi.java Makes constructor private (utility class style fix).
Comments suppressed due to low confidence (2)

src/main/java/dev/isxander/controlify/Controlify.java:35

  • Remove unused import DualsenseTriggerEffect; it isn't referenced in this class and may fail builds that treat unused imports as errors.
import dev.isxander.controlify.driver.dualsense.DualsenseTriggerEffect;

src/main/java/dev/isxander/controlify/Controlify.java:69

  • Remove unused import Items; it isn't referenced in this class and may fail builds that treat unused imports as errors.
import net.minecraft.world.item.Items;

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/main/java/dev/isxander/controlify/Controlify.java Outdated
Comment thread src/main/resources/assets/controlify/lang/en_us.json Outdated
isXander and others added 3 commits July 29, 2026 18:59
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@isXander
isXander merged commit 81ad20e into main Jul 29, 2026
6 checks passed
@isXander
isXander deleted the feat/adaptive-triggers branch July 29, 2026 18:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants