forked from Clones/Controlify
47 lines
1.4 KiB
Java
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);
|
|
}
|
|
}
|