mirror of
https://github.com/chylex/Better-Controls.git
synced 2025-05-18 10:34:05 +02:00
parent
6e2625c737
commit
9d67cf5505
src/main
java/chylex/bettercontrols
config
gui
mixin
player
resources
@ -19,6 +19,7 @@ public final class BetterControlsConfig{
|
|||||||
public boolean sneakingMovesCameraSmoothly = true;
|
public boolean sneakingMovesCameraSmoothly = true;
|
||||||
|
|
||||||
public final KeyBindingWithModifier keyToggleFlight = new KeyBindingWithModifier("key.bettercontrols.toggle_flight");
|
public final KeyBindingWithModifier keyToggleFlight = new KeyBindingWithModifier("key.bettercontrols.toggle_flight");
|
||||||
|
public boolean doubleTapJumpToToggleFlight = true;
|
||||||
public boolean disableFlightInertia = false;
|
public boolean disableFlightInertia = false;
|
||||||
public boolean disableChangingFovWhileFlying = false;
|
public boolean disableChangingFovWhileFlying = false;
|
||||||
public boolean flyOnGroundInCreative = false;
|
public boolean flyOnGroundInCreative = false;
|
||||||
|
@ -40,6 +40,7 @@ final class ConfigSerializer implements JsonSerializer<BetterControlsConfig>, Js
|
|||||||
Json.setBool(obj, "Sneak.SmoothCamera", cfg.sneakingMovesCameraSmoothly);
|
Json.setBool(obj, "Sneak.SmoothCamera", cfg.sneakingMovesCameraSmoothly);
|
||||||
|
|
||||||
Json.writeKeyBinding(obj, "Flight.KeyToggle.Creative", cfg.keyToggleFlight);
|
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.DisableInertia", cfg.disableFlightInertia);
|
||||||
Json.setBool(obj, "Flight.DisableChangingFOV", cfg.disableChangingFovWhileFlying);
|
Json.setBool(obj, "Flight.DisableChangingFOV", cfg.disableChangingFovWhileFlying);
|
||||||
Json.setBool(obj, "Flight.FlyOnGround.Creative", cfg.flyOnGroundInCreative);
|
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);
|
cfg.sneakingMovesCameraSmoothly = Json.getBool(obj, "Sneak.SmoothCamera", cfg.sneakingMovesCameraSmoothly);
|
||||||
|
|
||||||
Json.readKeyBinding(obj, "Flight.KeyToggle.Creative", cfg.keyToggleFlight);
|
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.disableFlightInertia = Json.getBool(obj, "Flight.DisableInertia", cfg.disableFlightInertia);
|
||||||
cfg.disableChangingFovWhileFlying = Json.getBool(obj, "Flight.DisableChangingFOV", cfg.disableChangingFovWhileFlying);
|
cfg.disableChangingFovWhileFlying = Json.getBool(obj, "Flight.DisableChangingFOV", cfg.disableChangingFovWhileFlying);
|
||||||
cfg.flyOnGroundInCreative = Json.getBool(obj, "Flight.FlyOnGround.Creative", cfg.flyOnGroundInCreative);
|
cfg.flyOnGroundInCreative = Json.getBool(obj, "Flight.FlyOnGround.Creative", cfg.flyOnGroundInCreative);
|
||||||
|
@ -121,6 +121,11 @@ public class BetterControlsScreen extends SettingsScreen{
|
|||||||
|
|
||||||
y += ROW_HEIGHT;
|
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"));
|
generateLeftSideText(y, elements, text("Disable Flight Inertia"));
|
||||||
elements.add(new BooleanValueWidget(col2(1), y, COL2_W, cfg.disableFlightInertia, value -> cfg.disableFlightInertia = value));
|
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.AccessCameraFields;
|
||||||
import chylex.bettercontrols.mixin.AccessClientPlayerFields;
|
import chylex.bettercontrols.mixin.AccessClientPlayerFields;
|
||||||
import chylex.bettercontrols.mixin.AccessGameRendererFields;
|
import chylex.bettercontrols.mixin.AccessGameRendererFields;
|
||||||
|
import chylex.bettercontrols.mixin.AccessPlayerFields;
|
||||||
import chylex.bettercontrols.mixin.AccessStickyKeyBindingStateGetter;
|
import chylex.bettercontrols.mixin.AccessStickyKeyBindingStateGetter;
|
||||||
import chylex.bettercontrols.util.Key;
|
import chylex.bettercontrols.util.Key;
|
||||||
import net.minecraft.client.entity.player.ClientPlayerEntity;
|
import net.minecraft.client.entity.player.ClientPlayerEntity;
|
||||||
@ -81,6 +82,10 @@ public final class PlayerTicker{
|
|||||||
((AccessClientPlayerFields)player).setTicksLeftToDoubleTapSprint(0);
|
((AccessClientPlayerFields)player).setTicksLeftToDoubleTapSprint(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!cfg().doubleTapJumpToToggleFlight){
|
||||||
|
((AccessPlayerFields)player).setTicksLeftToDoubleTapFlight(0);
|
||||||
|
}
|
||||||
|
|
||||||
final SprintMode sprintMode = cfg().sprintMode;
|
final SprintMode sprintMode = cfg().sprintMode;
|
||||||
final boolean wasSprintToggled = OPTIONS.toggleSprint;
|
final boolean wasSprintToggled = OPTIONS.toggleSprint;
|
||||||
final boolean isSprintToggled = toggleSprint.tick();
|
final boolean isSprintToggled = toggleSprint.tick();
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
"AccessGameRendererFields",
|
"AccessGameRendererFields",
|
||||||
"AccessKeyBindingFields",
|
"AccessKeyBindingFields",
|
||||||
"AccessOptionButtonWidgetOption",
|
"AccessOptionButtonWidgetOption",
|
||||||
|
"AccessPlayerFields",
|
||||||
"AccessScreenButtons",
|
"AccessScreenButtons",
|
||||||
"AccessStickyKeyBindingStateGetter",
|
"AccessStickyKeyBindingStateGetter",
|
||||||
"HookClientPlayerInputTick",
|
"HookClientPlayerInputTick",
|
||||||
|
Loading…
Reference in New Issue
Block a user