mirror of
https://github.com/chylex/Better-Controls.git
synced 2025-05-01 08:34:05 +02:00
parent
76387252c0
commit
b23d1ebca5
src/main
java/chylex/bettercontrols
config
gui
mixin
player
resources
@ -19,6 +19,7 @@ public final class BetterControlsConfig{
|
||||
public boolean sneakingMovesCameraSmoothly = true;
|
||||
|
||||
public final KeyBindingWithModifier keyToggleFlight = new KeyBindingWithModifier("key.bettercontrols.toggle_flight");
|
||||
public boolean doubleTapJumpToToggleFlight = true;
|
||||
public boolean disableFlightInertia = false;
|
||||
public boolean disableChangingFovWhileFlying = false;
|
||||
public boolean flyOnGroundInCreative = false;
|
||||
|
@ -40,6 +40,7 @@ final class ConfigSerializer implements JsonSerializer<BetterControlsConfig>, Js
|
||||
Json.setBool(obj, "Sneak.SmoothCamera", cfg.sneakingMovesCameraSmoothly);
|
||||
|
||||
Json.writeKeyBinding(obj, "Flight.KeyToggle.Creative", cfg.keyToggleFlight);
|
||||
Json.setBool(obj, "Flight.DoubleTapJump", cfg.doubleTapJumpToToggleFlight);
|
||||
Json.setBool(obj, "Flight.DisableInertia", cfg.disableFlightInertia);
|
||||
Json.setBool(obj, "Flight.DisableChangingFOV", cfg.disableChangingFovWhileFlying);
|
||||
Json.setBool(obj, "Flight.FlyOnGround.Creative", cfg.flyOnGroundInCreative);
|
||||
@ -78,6 +79,7 @@ final class ConfigSerializer implements JsonSerializer<BetterControlsConfig>, Js
|
||||
cfg.sneakingMovesCameraSmoothly = Json.getBool(obj, "Sneak.SmoothCamera", cfg.sneakingMovesCameraSmoothly);
|
||||
|
||||
Json.readKeyBinding(obj, "Flight.KeyToggle.Creative", cfg.keyToggleFlight);
|
||||
cfg.doubleTapJumpToToggleFlight = Json.getBool(obj, "Flight.DoubleTapJump", cfg.doubleTapJumpToToggleFlight);
|
||||
cfg.disableFlightInertia = Json.getBool(obj, "Flight.DisableInertia", cfg.disableFlightInertia);
|
||||
cfg.disableChangingFovWhileFlying = Json.getBool(obj, "Flight.DisableChangingFOV", cfg.disableChangingFovWhileFlying);
|
||||
cfg.flyOnGroundInCreative = Json.getBool(obj, "Flight.FlyOnGround.Creative", cfg.flyOnGroundInCreative);
|
||||
|
@ -121,6 +121,11 @@ public class BetterControlsScreen extends GameOptionsScreen{
|
||||
|
||||
y += ROW_HEIGHT;
|
||||
|
||||
generateLeftSideText(y, elements, text("Double Tap 'Jump' To Fly (Creative)"));
|
||||
elements.add(new BooleanValueWidget(col2(1), y, COL2_W, cfg.doubleTapJumpToToggleFlight, value -> cfg.doubleTapJumpToToggleFlight = value));
|
||||
|
||||
y += ROW_HEIGHT;
|
||||
|
||||
generateLeftSideText(y, elements, text("Disable Flight Inertia"));
|
||||
elements.add(new BooleanValueWidget(col2(1), y, COL2_W, cfg.disableFlightInertia, value -> cfg.disableFlightInertia = value));
|
||||
|
||||
|
@ -0,0 +1,10 @@
|
||||
package chylex.bettercontrols.mixin;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
@Mixin(PlayerEntity.class)
|
||||
public interface AccessPlayerFields{
|
||||
@Accessor("abilityResyncCountdown")
|
||||
void setTicksLeftToDoubleTapFlight(int value);
|
||||
}
|
@ -8,6 +8,7 @@ import chylex.bettercontrols.input.ToggleTrackerForStickyKey;
|
||||
import chylex.bettercontrols.mixin.AccessCameraFields;
|
||||
import chylex.bettercontrols.mixin.AccessClientPlayerFields;
|
||||
import chylex.bettercontrols.mixin.AccessGameRendererFields;
|
||||
import chylex.bettercontrols.mixin.AccessPlayerFields;
|
||||
import chylex.bettercontrols.mixin.AccessStickyKeyBindingStateGetter;
|
||||
import chylex.bettercontrols.util.Key;
|
||||
import net.minecraft.client.input.Input;
|
||||
@ -82,6 +83,10 @@ public final class PlayerTicker{
|
||||
((AccessClientPlayerFields)player).setTicksLeftToDoubleTapSprint(0);
|
||||
}
|
||||
|
||||
if (!cfg().doubleTapJumpToToggleFlight){
|
||||
((AccessPlayerFields)player).setTicksLeftToDoubleTapFlight(0);
|
||||
}
|
||||
|
||||
final SprintMode sprintMode = cfg().sprintMode;
|
||||
final boolean wasSprintToggled = OPTIONS.sprintToggled;
|
||||
final boolean isSprintToggled = toggleSprint.tick();
|
||||
|
@ -10,6 +10,7 @@
|
||||
"AccessControlsListKeyBinding",
|
||||
"AccessGameRendererFields",
|
||||
"AccessKeyBindingFields",
|
||||
"AccessPlayerFields",
|
||||
"AccessScreenButtons",
|
||||
"AccessStickyKeyBindingStateGetter",
|
||||
"HookClientPlayerInputTick",
|
||||
|
Loading…
Reference in New Issue
Block a user