浏览代码

Minor code tweaks

chylex 4 年之前
父节点
当前提交
a2c9fd3c4b

+ 8 - 9
src/main/java/chylex/bettercontrols/config/ConfigSerializer.java

@@ -11,7 +11,6 @@ import com.google.gson.JsonSerializationContext;
 import com.google.gson.JsonSerializer;
 import com.google.gson.stream.JsonReader;
 import com.google.gson.stream.JsonWriter;
-import net.minecraft.util.math.MathHelper;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import java.io.FileNotFoundException;
@@ -82,14 +81,14 @@ final class ConfigSerializer implements JsonSerializer<BetterControlsConfig>, Js
 		cfg.sprintModeWhileFlying = Json.getEnum(obj, "Flight.SprintMode", cfg.sprintModeWhileFlying, SprintMode.class);
 		cfg.disableChangingFovWhileFlying = Json.getBool(obj, "Flight.DisableChangingFOV", cfg.disableChangingFovWhileFlying);
 		cfg.flyOnGroundInCreative = Json.getBool(obj, "Flight.FlyOnGround.Creative", cfg.flyOnGroundInCreative);
-		cfg.flightSpeedMpCreativeDefault = MathHelper.clamp(Json.getFloat(obj, "Flight.SpeedMp.Creative.Default", cfg.flightSpeedMpCreativeDefault), 0.25F, 8F);
-		cfg.flightSpeedMpCreativeSprinting = MathHelper.clamp(Json.getFloat(obj, "Flight.SpeedMp.Creative.Sprinting", cfg.flightSpeedMpCreativeSprinting), 0.25F, 8F);
-		cfg.flightSpeedMpSpectatorDefault = MathHelper.clamp(Json.getFloat(obj, "Flight.SpeedMp.Spectator.Default", cfg.flightSpeedMpSpectatorDefault), 0.25F, 8F);
-		cfg.flightSpeedMpSpectatorSprinting = MathHelper.clamp(Json.getFloat(obj, "Flight.SpeedMp.Spectator.Sprinting", cfg.flightSpeedMpSpectatorSprinting), 0.25F, 8F);
-		cfg.flightVerticalBoostCreativeDefault = MathHelper.clamp(Json.getFloat(obj, "Flight.VerticalBoost.Creative.Default", cfg.flightVerticalBoostCreativeDefault), 0F, 3F);
-		cfg.flightVerticalBoostCreativeSprinting = MathHelper.clamp(Json.getFloat(obj, "Flight.VerticalBoost.Creative.Sprinting", cfg.flightVerticalBoostCreativeSprinting), 0F, 3F);
-		cfg.flightVerticalBoostSpectatorDefault = MathHelper.clamp(Json.getFloat(obj, "Flight.VerticalBoost.Spectator.Default", cfg.flightVerticalBoostSpectatorDefault), 0F, 3F);
-		cfg.flightVerticalBoostSpectatorSprinting = MathHelper.clamp(Json.getFloat(obj, "Flight.VerticalBoost.Spectator.Sprinting", cfg.flightVerticalBoostSpectatorSprinting), 0F, 3F);
+		cfg.flightSpeedMpCreativeDefault = Json.getFloat(obj, "Flight.SpeedMp.Creative.Default", cfg.flightSpeedMpCreativeDefault, 0.25F, 8F);
+		cfg.flightSpeedMpCreativeSprinting = Json.getFloat(obj, "Flight.SpeedMp.Creative.Sprinting", cfg.flightSpeedMpCreativeSprinting, 0.25F, 8F);
+		cfg.flightSpeedMpSpectatorDefault = Json.getFloat(obj, "Flight.SpeedMp.Spectator.Default", cfg.flightSpeedMpSpectatorDefault, 0.25F, 8F);
+		cfg.flightSpeedMpSpectatorSprinting = Json.getFloat(obj, "Flight.SpeedMp.Spectator.Sprinting", cfg.flightSpeedMpSpectatorSprinting, 0.25F, 8F);
+		cfg.flightVerticalBoostCreativeDefault = Json.getFloat(obj, "Flight.VerticalBoost.Creative.Default", cfg.flightVerticalBoostCreativeDefault, 0F, 3F);
+		cfg.flightVerticalBoostCreativeSprinting = Json.getFloat(obj, "Flight.VerticalBoost.Creative.Sprinting", cfg.flightVerticalBoostCreativeSprinting, 0F, 3F);
+		cfg.flightVerticalBoostSpectatorDefault = Json.getFloat(obj, "Flight.VerticalBoost.Spectator.Default", cfg.flightVerticalBoostSpectatorDefault, 0F, 3F);
+		cfg.flightVerticalBoostSpectatorSprinting = Json.getFloat(obj, "Flight.VerticalBoost.Spectator.Sprinting", cfg.flightVerticalBoostSpectatorSprinting, 0F, 3F);
 		
 		Json.readKeyBinding(obj, "Misc.KeyToggleWalkForward", cfg.keyToggleWalkForward);
 		Json.readKeyBinding(obj, "Misc.KeyToggleJump", cfg.keyToggleJump);

+ 3 - 2
src/main/java/chylex/bettercontrols/config/Json.java

@@ -11,8 +11,9 @@ final class Json{
 		obj.addProperty(key, Float.valueOf(value));
 	}
 	
-	static float getFloat(final JsonObject obj, final String key, final float defaultValue){
-		return obj.has(key) ? obj.get(key).getAsFloat() : defaultValue;
+	static float getFloat(final JsonObject obj, final String key, final float defaultValue, final float minValue, final float maxValue){
+		final float value = obj.has(key) ? obj.get(key).getAsFloat() : defaultValue;
+		return Math.max(minValue, Math.min(maxValue, value));
 	}
 	
 	static void setBool(final JsonObject obj, final String key, final boolean value){

+ 4 - 4
src/main/java/chylex/bettercontrols/gui/BetterControlsScreen.java

@@ -10,6 +10,7 @@ import chylex.bettercontrols.gui.elements.TextWidget;
 import chylex.bettercontrols.input.KeyBindingWithModifier;
 import chylex.bettercontrols.input.ModifierKey;
 import chylex.bettercontrols.input.SprintMode;
+import chylex.bettercontrols.util.Key;
 import chylex.bettercontrols.util.LiteralText;
 import net.minecraft.client.gui.Element;
 import net.minecraft.client.gui.screen.Screen;
@@ -17,7 +18,6 @@ import net.minecraft.client.gui.screen.ScreenTexts;
 import net.minecraft.client.gui.screen.options.GameOptionsScreen;
 import net.minecraft.client.gui.widget.ButtonWidget;
 import net.minecraft.client.options.KeyBinding;
-import net.minecraft.client.util.InputUtil;
 import net.minecraft.client.util.math.MatrixStack;
 import org.lwjgl.glfw.GLFW;
 import java.util.ArrayList;
@@ -269,7 +269,7 @@ public class BetterControlsScreen extends GameOptionsScreen{
 	@Override
 	public boolean mouseClicked(final double mouseX, final double mouseY, final int button){
 		if (editingKeyBinding != null){
-			editingKeyBinding.bindAndStopEditing(InputUtil.Type.MOUSE.createFromCode(button));
+			editingKeyBinding.bindAndStopEditing(Key.inputFromMouse(button));
 			onKeyBindingEditingFinished();
 			return true;
 		}
@@ -282,10 +282,10 @@ public class BetterControlsScreen extends GameOptionsScreen{
 	public boolean keyPressed(final int keyCode, final int scanCode, final int modifiers){
 		if (editingKeyBinding != null){
 			if (keyCode == GLFW.GLFW_KEY_ESCAPE){
-				editingKeyBinding.bindAndStopEditing(InputUtil.UNKNOWN_KEY);
+				editingKeyBinding.bindAndStopEditing(Key.INVALID);
 			}
 			else{
-				editingKeyBinding.bindAndStopEditing(InputUtil.fromKeyCode(keyCode, scanCode));
+				editingKeyBinding.bindAndStopEditing(Key.inputFromKeyboard(keyCode, scanCode));
 			}
 			
 			onKeyBindingEditingFinished();

+ 2 - 4
src/main/java/chylex/bettercontrols/player/PlayerTicker.java

@@ -12,7 +12,6 @@ import chylex.bettercontrols.mixin.AccessStickyKeyBindingStateGetter;
 import chylex.bettercontrols.util.Key;
 import net.minecraft.client.input.KeyboardInput;
 import net.minecraft.client.network.ClientPlayerEntity;
-import net.minecraft.util.math.MathHelper;
 import java.lang.ref.WeakReference;
 import java.util.function.BooleanSupplier;
 import static chylex.bettercontrols.util.Statics.KEY_FORWARD;
@@ -160,14 +159,13 @@ public final class PlayerTicker{
 		
 		if (FlightHelper.isFlyingCreativeOrSpectator(player)){
 			final float flightSpeed = FlightHelper.getFlightSpeed(player);
+			final float verticalVelocity = FlightHelper.getExtraVerticalVelocity(player);
 			
 			if (flightSpeed > 0F){
 				player.abilities.setFlySpeed(flightSpeed);
 			}
 			
-			final float verticalVelocity = FlightHelper.getExtraVerticalVelocity(player);
-			
-			if (!MathHelper.approximatelyEquals(verticalVelocity, 0F) && player == MINECRAFT.getCameraEntity()){
+			if (Math.abs(verticalVelocity) > 1E-5F && player == MINECRAFT.getCameraEntity()){
 				int direction = 0;
 				
 				if (player.input.sneaking){