mirror of
https://github.com/chylex/Better-Controls.git
synced 2025-05-02 20:34:02 +02:00
55 lines
1.9 KiB
Java
55 lines
1.9 KiB
Java
package chylex.bettercontrols.config;
|
|
import chylex.bettercontrols.input.KeyBindingWithModifier;
|
|
import chylex.bettercontrols.input.ModifierKey;
|
|
import com.google.gson.JsonObject;
|
|
import net.minecraft.client.util.InputUtil;
|
|
|
|
final class Json{
|
|
private Json(){}
|
|
|
|
static void setInt(final JsonObject obj, final String key, final int value){
|
|
obj.addProperty(key, Integer.valueOf(value));
|
|
}
|
|
|
|
static int getInt(final JsonObject obj, final String key, final int defaultValue){
|
|
return obj.has(key) ? obj.get(key).getAsInt() : defaultValue;
|
|
}
|
|
|
|
static void setFloat(final JsonObject obj, final String key, final float value){
|
|
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 void setBool(final JsonObject obj, final String key, final boolean value){
|
|
obj.addProperty(key, Boolean.valueOf(value));
|
|
}
|
|
|
|
static boolean getBool(final JsonObject obj, final String key, final boolean defaultValue){
|
|
return obj.has(key) ? obj.get(key).getAsBoolean() : defaultValue;
|
|
}
|
|
|
|
private static final String KEY_SUFFIX = ".Key";
|
|
private static final String MOD_SUFFIX = ".Mod";
|
|
|
|
static void writeKeyBinding(final JsonObject obj, final String key, final KeyBindingWithModifier keyBinding){
|
|
obj.addProperty(key + KEY_SUFFIX, keyBinding.getBoundKeyTranslationKey());
|
|
|
|
if (keyBinding.getModifier() != null){
|
|
obj.addProperty(key + MOD_SUFFIX, Integer.valueOf(keyBinding.getModifier().id));
|
|
}
|
|
}
|
|
|
|
static void readKeyBinding(final JsonObject obj, final String key, final KeyBindingWithModifier keyBinding){
|
|
if (obj.has(key + KEY_SUFFIX)){
|
|
keyBinding.setBoundKey(InputUtil.fromTranslationKey(obj.get(key + KEY_SUFFIX).getAsString()));
|
|
}
|
|
|
|
if (obj.has(key + MOD_SUFFIX)){
|
|
keyBinding.setModifier(ModifierKey.getById(obj.get(key + MOD_SUFFIX).getAsInt()));
|
|
}
|
|
}
|
|
}
|