mirror of
https://github.com/chylex/Better-Controls.git
synced 2025-04-11 21:15:43 +02:00
Do not reset Toggle Sprint/Sneak after switching worlds to maintain consistency with vanilla toggles
Closes #30
This commit is contained in:
parent
9da758937e
commit
ee3db91f0c
src/main/java/chylex/bettercontrols
@ -6,15 +6,19 @@ public class ToggleTracker {
|
||||
protected final KeyMapping bindingToggle;
|
||||
protected final KeyMapping bindingReset;
|
||||
|
||||
protected boolean isToggled;
|
||||
|
||||
private boolean isToggled;
|
||||
private boolean waitForRelease;
|
||||
private boolean hasToggledWhileHoldingReset;
|
||||
private boolean skipNextToggle;
|
||||
|
||||
public ToggleTracker(KeyMapping bindingToggle, KeyMapping bindingReset) {
|
||||
protected ToggleTracker(KeyMapping bindingToggle, KeyMapping bindingReset, boolean initialState) {
|
||||
this.bindingToggle = bindingToggle;
|
||||
this.bindingReset = bindingReset;
|
||||
this.isToggled = initialState;
|
||||
}
|
||||
|
||||
public ToggleTracker(KeyMapping bindingToggle, KeyMapping bindingReset) {
|
||||
this(bindingToggle, bindingReset, false);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,31 +1,31 @@
|
||||
package chylex.bettercontrols.input;
|
||||
|
||||
import chylex.bettercontrols.Mixins;
|
||||
import it.unimi.dsi.fastutil.booleans.BooleanConsumer;
|
||||
import net.minecraft.client.KeyMapping;
|
||||
import net.minecraft.client.OptionInstance;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public final class ToggleTrackerForStickyKey extends ToggleTracker {
|
||||
private static final Set<KeyMapping> enabledOverrides = new HashSet<>();
|
||||
|
||||
@SuppressWarnings("StaticMethodOnlyUsedInOneClass")
|
||||
public static boolean isOverrideEnabled(KeyMapping binding) {
|
||||
return enabledOverrides.contains(binding);
|
||||
}
|
||||
|
||||
private final BooleanConsumer setToggleState;
|
||||
private final OptionInstance<Boolean> toggleOption;
|
||||
|
||||
public ToggleTrackerForStickyKey(KeyMapping bindingToggle, KeyMapping bindingStickyReset, BooleanConsumer setToggleState) {
|
||||
super(bindingToggle, bindingStickyReset);
|
||||
this.setToggleState = setToggleState;
|
||||
this.setToggleState.accept(false);
|
||||
public ToggleTrackerForStickyKey(KeyMapping bindingToggle, KeyMapping bindingStickyReset, OptionInstance<Boolean> toggleOption) {
|
||||
super(bindingToggle, bindingStickyReset, toggleOption.get().booleanValue());
|
||||
this.toggleOption = toggleOption;
|
||||
enabledOverrides.add(bindingStickyReset);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean tick() {
|
||||
boolean isToggled = super.tick();
|
||||
setToggleState.accept(isToggled);
|
||||
toggleOption.set(Boolean.valueOf(isToggled));
|
||||
return isToggled;
|
||||
}
|
||||
|
||||
|
@ -46,8 +46,8 @@ public final class PlayerTicker {
|
||||
|
||||
// Logic
|
||||
|
||||
private final ToggleTracker toggleSprint = new ToggleTrackerForStickyKey(getConfig().keyToggleSprint, KEY_SPRINT, OPTIONS.toggleSprint()::set);
|
||||
private final ToggleTracker toggleSneak = new ToggleTrackerForStickyKey(getConfig().keyToggleSneak, KEY_SNEAK, OPTIONS.toggleCrouch()::set);
|
||||
private final ToggleTracker toggleSprint = new ToggleTrackerForStickyKey(getConfig().keyToggleSprint, KEY_SPRINT, OPTIONS.toggleSprint());
|
||||
private final ToggleTracker toggleSneak = new ToggleTrackerForStickyKey(getConfig().keyToggleSneak, KEY_SNEAK, OPTIONS.toggleCrouch());
|
||||
private final ToggleTracker toggleWalkForward = new ToggleTracker(getConfig().keyToggleWalkForward, KEY_FORWARD);
|
||||
private final ToggleTracker toggleJump = new ToggleTracker(getConfig().keyToggleJump, KEY_JUMP);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user