initial commit

This commit is contained in:
2023-06-13 20:02:17 +02:00
commit 25ef1988ea
24 changed files with 1011 additions and 0 deletions

View File

@@ -0,0 +1,126 @@
package me.zacharias.speedometer;
import dev.architectury.platform.Platform;
import net.minecraft.world.phys.Vec3;
import org.joml.Vector3i;
import org.json.JSONObject;
import javax.swing.plaf.ColorUIResource;
import java.io.*;
import me.shedaniel.math.Color;
import static me.zacharias.speedometer.Speedometer.MOD_ID;
public class Config {
private static JSONObject Config;
public static void initialize(){
if(Config != null) throw new RuntimeException("Already Initialized");
File config = new File(Platform.getConfigFolder().toString()+"/"+MOD_ID+"/config.json");
if(!config.exists()){
try {
config.getParentFile().mkdir();
config.createNewFile();
} catch (IOException e) {
throw new RuntimeException(e);
}
Config = new JSONObject();
Config.put("speed", SpeedTypes.BlockPS);
Config.put("useKnot", false);
Config.put("color", new JSONObject()
.put("r", 16)
.put("g", 146)
.put("b", 158)
);
Config.put("debug", false);
}else {
try {
BufferedReader in = new BufferedReader(new FileReader(config));
String tmp = "";
StringBuilder builder = new StringBuilder();
while((tmp = in.readLine()) != null){
builder.append(tmp);
}
Config = new JSONObject(builder.toString());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
public static void save(){
File config = new File(Platform.getConfigFolder().toString()+"/"+MOD_ID+"/config.json");
if(!config.exists()){
try {
config.getParentFile().mkdir();
config.createNewFile();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
try {
BufferedWriter out = new BufferedWriter(new FileWriter(config));
out.write(Config.toString(4));
out.flush();
out.close();
}catch (Exception e){
throw new RuntimeException(e);
}
}
public static SpeedTypes getSpeedType(){
if(Config.has("speed")){
return Config.getEnum(SpeedTypes.class, "speed");
}else{
return SpeedTypes.BlockPS;
}
}
public static boolean getUseKnot() {
if(Config.has("useKnot")){
return Config.getBoolean("useKnot");
}else{
return false;
}
}
public static Color getColor(){
if(Config.has("color")){
JSONObject color = Config.getJSONObject("color");
return Color.ofRGB(
color.getInt("r"),
color.getInt("g"),
color.getInt("b")
);
}else{
return Color.ofRGB(16, 146, 158);
}
}
public static boolean getIsDebug() {
if(Config.has("debug")){
return Config.getBoolean("debug");
}else{
return false;
}
}
public static void setColor(Color color){
Config.put("color", new JSONObject()
.put("r", color.getRed())
.put("g", color.getGreen())
.put("b", color.getBlue())
);
}
public static void setUseKnot(boolean useKnot){
Config.put("useKnot", useKnot);
}
public static void setSpeedType(SpeedTypes speedType) {
Config.put("speed", speedType);
}
}