1
0
forked from Clones/Controlify
Files
Controlify/src/main/java/dev/isxander/controlify/controller/ControllerConfig.java
2023-04-16 16:38:44 +01:00

47 lines
1.4 KiB
Java

package dev.isxander.controlify.controller;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import dev.isxander.controlify.rumble.RumbleSource;
import net.minecraft.resources.ResourceLocation;
import java.util.Map;
public abstract class ControllerConfig {
public float horizontalLookSensitivity = 1f;
public float verticalLookSensitivity = 0.9f;
public float buttonActivationThreshold = 0.5f;
public float virtualMouseSensitivity = 1f;
public boolean autoJump = false;
public boolean toggleSprint = true;
public boolean toggleSneak = true;
public String customName = null;
public boolean showIngameGuide = true;
public boolean showScreenGuide = true;
public float chatKeyboardHeight = 0f;
public boolean reduceAimingSensitivity = true;
public boolean allowVibrations = true;
public JsonObject vibrationStrengths = RumbleSource.getDefaultJson();
public boolean calibrated = false;
public abstract void setDeadzone(int axis, float deadzone);
public abstract float getDeadzone(int axis);
public float getRumbleStrength(RumbleSource source) {
return vibrationStrengths.asMap().getOrDefault(source.id().toString(), new JsonPrimitive(1f)).getAsFloat();
}
public void setRumbleStrength(RumbleSource source, float strength) {
vibrationStrengths.addProperty(source.id().toString(), strength);
}
}