Updated to version 4

Removed the Size part from position string
Combined the Visual and Text position strings (This might be reversed)
Fixed bug with Text overflowing out of the screen
Updated forge update checker to include version 4

TO-DO
Remove old parts of the old system, pending for the next version
This commit is contained in:
2023-07-17 00:06:51 +02:00
parent 6cac07cd0f
commit c04963cbe6
6 changed files with 92 additions and 21 deletions

View File

@@ -115,7 +115,7 @@ public class Client {
}
speed = speed / speeds.size();
double speedTypeSpeed = 0D;
double speedTypeSpeed;
SpeedTypes speedType = Config.getSpeedType();
if (speedType == SpeedTypes.KNOT || (entity instanceof Boat && Config.getUseKnot())) {
@@ -170,8 +170,8 @@ public class Client {
g2d.drawLine(x3,y3,img.getWidth()/2,img.getHeight()/2);
int xPos = getPos(graphics, Config.getXPositionVisual(), 0, false, img.getWidth());
int yPos = getPos(graphics, Config.getYPositionVisual(), 1, true, img.getHeight());
int xPos = getPos(graphics, Config.getXPosition(), 0, false);
int yPos = getPos(graphics, Config.getYPosition(), 1, true);
for(int x1 = 0; x1 < img.getWidth(); x1++){
for(int y1 = 0; y1 < img.getHeight(); y1++){
@@ -202,11 +202,13 @@ public class Client {
// j -> y
// k -> color RGB int
String speedString = format + " " + SpeedTypes.getName(speedType).getString();
int width = Minecraft.getInstance().font.width(speedString);
int lineHeight = Minecraft.getInstance().font.lineHeight;
graphics.drawString(
Minecraft.getInstance().font,
speedString,
getPos(graphics, Config.getXPositionText(), 0, false, Minecraft.getInstance().font.width(speedString)),
getPos(graphics, Config.getYPositionText(), 1, true, Minecraft.getInstance().font.lineHeight),
getPos(graphics, Config.getXPosition(), 0, false) - width,
getPos(graphics, Config.getYPosition(), 1, true) - lineHeight,
Config.getColor().getColor()
);
}
@@ -253,7 +255,7 @@ public class Client {
static boolean flag = true;
private static int getPos(GuiGraphics event, String input, int type, boolean changeFlag, int Size) {
private static int getPos(GuiGraphics event, String input, int type, boolean changeFlag) {
ArrayList<String> passerPose = new ArrayList<>();
final char[] s = input.toCharArray();
try{
@@ -279,8 +281,6 @@ public class Client {
}catch (NumberFormatException e){
passerPose.add(Character.toString(s[i]));
}
}else if(s[i] == 'S' || s[i] == 's'){
passerPose.add(String.valueOf(Size));
}else{
throw new Exception();
}

View File

@@ -11,7 +11,7 @@ import static me.zacharias.speedometer.Speedometer.MOD_ID;
public class Config {
private static JSONObject Config;
public static final float configVersion = 2.1f;
public static final float configVersion = 3f;
public static void initialize(){
if(Config != null) throw new RuntimeException("Already Initialized");
@@ -76,17 +76,25 @@ public class Config {
if(!Config.has("visualSpeedometer")) {
Config.put("visualSpeedometer", false);
}
if(!Config.has("xPositionVisual")) {
/*if(!Config.has("xPositionVisual")) {
Config.put("xPositionVisual", "W-3");
}
if(!Config.has("yPositionVisual")) {
Config.put("yPositionVisual", "H-3");
}
if(!Config.has("xPositionText")) {
Config.put("xPositionText", "W-70");
Config.put("xPositionText", "W-3");
}
if(!Config.has("yPositionText")) {
Config.put("yPositionText", "H-15");
Config.put("yPositionText", "H-3");
}*/
if(!Config.has("xPosition")) {
Config.put("xPosition", "W-3");
}
if(!Config.has("yPosition")) {
Config.put("yPosition", "H-3");
}
if(!Config.has("debug")) {
@@ -167,7 +175,7 @@ public class Config {
}
}
public static String getXPositionVisual(){
/*public static String getXPositionVisual(){
if(Config.has("xPositionVisual")) {
return Config.getString("xPositionVisual");
}else{
@@ -196,6 +204,22 @@ public class Config {
}else{
return "H-15";
}
}*/
public static String getYPosition(){
if(Config.has("yPosition")) {
return Config.getString("yPosition");
}else{
return "H-15";
}
}
public static String getXPosition(){
if(Config.has("xPosition")) {
return Config.getString("xPosition");
}else{
return "W-70";
}
}
public static int getImageSize(){
@@ -226,6 +250,7 @@ public class Config {
Config.put("visualSpeedometer", visualSpeedometer);
}
/*
public static void setXPositionVisual(String xPositionVisual){
Config.put("xPositionVisual", xPositionVisual);
}
@@ -240,6 +265,14 @@ public class Config {
public static void setYPositionText(String yPositionText){
Config.put("yPositionText", yPositionText);
}*/
public static void setXPosition(String xPosition){
Config.put("xPosition", xPosition);
}
public static void setYPosition(String yPosition){
Config.put("yPosition", yPosition);
}
public static void setDebug(boolean debug){

View File

@@ -47,7 +47,7 @@ public class ConfigMenu {
String yRegex = "H*h*S*s*\\+*-*\\**/*[0-9]*";
// Text Placement
/*
category.addEntry(entryBuilder.startStringDropdownMenu(Component.translatable("speedometer.config.xPosition.text"), Config.getXPositionText())
.setSaveConsumer(Config::setXPositionText)
.setErrorSupplier(xPosition -> {
@@ -101,6 +101,7 @@ public class ConfigMenu {
.build()
);
category.addEntry(entryBuilder.startStringDropdownMenu(Component.translatable("speedometer.config.yPosition.visual"), Config.getYPositionVisual())
.setSaveConsumer(Config::setYPositionVisual)
.setErrorSupplier(yPosition -> {
@@ -116,6 +117,39 @@ public class ConfigMenu {
Component.translatable("speedometer.config.tooltip.yPosition.line3")
)
.build()
);*/
category.addEntry(entryBuilder.startStringDropdownMenu(Component.translatable("speedometer.config.xPosition"), Config.getXPosition())
.setSaveConsumer(Config::setXPosition)
.setErrorSupplier(xPosition -> {
if(xPosition.matches(xRegex)){
return Optional.empty();
}else{
return Optional.of(Component.translatable("speedometer.invalid"));
}
})
.setTooltip(
Component.translatable("speedometer.config.tooltip.xPosition.line1"),
Component.translatable("speedometer.config.tooltip.xPosition.line2")
)
.build()
);
category.addEntry(entryBuilder.startStringDropdownMenu(Component.translatable("speedometer.config.yPosition"), Config.getYPosition())
.setSaveConsumer(Config::setYPosition)
.setErrorSupplier(yPosition -> {
if(yPosition.matches(yRegex)){
return Optional.empty();
}else{
return Optional.of(Component.translatable("speedometer.invalid"));
}
})
.setTooltip(
Component.translatable("speedometer.config.tooltip.yPosition.line1"),
Component.translatable("speedometer.config.tooltip.yPosition.line2")
)
.build()
);
// Size of visual image