From 4e323f94eb095919d254aacdda4c3fee9e18ef57 Mon Sep 17 00:00:00 2001 From: Jeff Ginger Date: Fri, 9 Aug 2024 00:11:38 -0600 Subject: [PATCH 1/5] Adjusting how precision works with conversions --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 975f002..500a52a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 edu.whimc WHIMC-ScienceTools - 2.4.10 + 2.4.11 WHIMC Science Tools Simulate values for scientific tools From d1a5eb8a19cd89d4a9bb01355023d3894dd1c94c Mon Sep 17 00:00:00 2001 From: Jeff Ginger Date: Fri, 9 Aug 2024 00:40:12 -0600 Subject: [PATCH 2/5] Adjusting how precision works with conversions --- .../sciencetools/models/sciencetool/NumericScienceTool.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/edu/whimc/sciencetools/models/sciencetool/NumericScienceTool.java b/src/main/java/edu/whimc/sciencetools/models/sciencetool/NumericScienceTool.java index 157bf58..ac9d6c0 100644 --- a/src/main/java/edu/whimc/sciencetools/models/sciencetool/NumericScienceTool.java +++ b/src/main/java/edu/whimc/sciencetools/models/sciencetool/NumericScienceTool.java @@ -73,7 +73,10 @@ public NumericScienceTool(String toolKey, // display converted values for (Conversion conversion : conversions) { - String converted = Utils.trimDecimals(conversion.convert(data), precision); + //fixing precision to always be a certain number of decimals so regular measures can be set to precision 0 + //Jack the reason for this is that kids would read 1.000 as one-thousand too easily due to the MC font + //So for instance on gravity I've made it an integer percent + String converted = Utils.trimDecimals(conversion.convert(data), 3); message += " (" + converted + conversion.getUnit() + ")"; } From 24fc7779f71fb42e88b8867525ce190833e9d887 Mon Sep 17 00:00:00 2001 From: Jeff Ginger Date: Fri, 9 Aug 2024 01:21:02 -0600 Subject: [PATCH 3/5] Okay I tried to do it the "right" way by adding a precision variable for each conversion? I am but a todler trying to operate a spaceship. --- .../models/conversion/Conversion.java | 13 +++++++++++-- .../models/conversion/ConversionManager.java | 15 +++++++++------ .../models/sciencetool/NumericScienceTool.java | 2 +- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/main/java/edu/whimc/sciencetools/models/conversion/Conversion.java b/src/main/java/edu/whimc/sciencetools/models/conversion/Conversion.java index 495bf3b..df65ad9 100644 --- a/src/main/java/edu/whimc/sciencetools/models/conversion/Conversion.java +++ b/src/main/java/edu/whimc/sciencetools/models/conversion/Conversion.java @@ -20,6 +20,8 @@ public class Conversion { private String unit; /* The expression to calculate the passed value in the new unit*/ private JSNumericExpression expression; + /* The decimal precision of the tool. */ + private final int precision; /** * Constructs a Conversion. @@ -27,11 +29,13 @@ public class Conversion { * @param name The name of the Conversion. * @param unit The unit being converted to. * @param expression The Conversion equation. + * @param precision The number of places after the decimal place to include */ - protected Conversion(String name, String unit, JSNumericExpression expression) { + protected Conversion(String name, String unit, JSNumericExpression expression, int precision) { this.name = name; this.unit = unit; this.expression = expression; + this.precision = precision; } /** @@ -52,6 +56,10 @@ public String getUnit() { return this.unit; } + public int getPrecision() { + return this.precision; + } + /** * Sets a new unit and saves it to the config. * @@ -86,7 +94,8 @@ public void sendInfo(CommandSender sender) { Utils.msg(sender, getName() + ":", " Expression: " + getExpression(), - " Unit: " + getUnit()); + " Unit: " + getUnit(), + " Precision: " + getPrecision()); } } diff --git a/src/main/java/edu/whimc/sciencetools/models/conversion/ConversionManager.java b/src/main/java/edu/whimc/sciencetools/models/conversion/ConversionManager.java index 9092b24..8e457b2 100644 --- a/src/main/java/edu/whimc/sciencetools/models/conversion/ConversionManager.java +++ b/src/main/java/edu/whimc/sciencetools/models/conversion/ConversionManager.java @@ -3,11 +3,11 @@ import edu.whimc.sciencetools.ScienceTools; import edu.whimc.sciencetools.javascript.JSNumericExpression; import edu.whimc.sciencetools.utils.Utils; -import java.util.Collection; import java.util.HashMap; import java.util.Map; import org.bukkit.configuration.file.FileConfiguration; import org.jetbrains.annotations.NotNull; +import scala.Int; /** * Handles operations regarding Conversions (adding, removing, saving, loading). @@ -36,9 +36,11 @@ public void loadConversions() { Utils.log("&b - &f" + conversion); String expr = config.getString("conversions." + conversion + ".expression"); String unit = config.getString("conversions." + conversion + ".unit"); + int precision = config.getInt("conversions." + conversion + ".precision"); //no idea if this needs to go in the log Utils.log("&b\t- Expression: \"&f" + expr + "&b\""); Utils.log("&b\t- Unit: \"&f" + unit + "&b\""); + Utils.log("&b\t- Precision: \"&f" + precision + "&b\""); // ensure conversion's expression is valid, skip if not JSNumericExpression jsExpr = new JSNumericExpression(expr); @@ -47,7 +49,7 @@ public void loadConversions() { continue; } - loadConversion(conversion, unit, jsExpr); + loadConversion(conversion, unit, jsExpr, precision); } Utils.log("&eConversions loaded!"); @@ -59,10 +61,11 @@ public void loadConversions() { * @param name The name of the Conversion. * @param unit The unit being converted to. * @param expr The Conversion equation. + * @param precision The number of places after the decimal place to include. * @return The Conversion. */ - private @NotNull Conversion loadConversion(String name, String unit, JSNumericExpression expr) { - Conversion conversion = new Conversion(name, unit, expr); + private @NotNull Conversion loadConversion(String name, String unit, JSNumericExpression expr, int precision) { + Conversion conversion = new Conversion(name, unit, expr, precision); conversions.put(name, conversion); return conversion; } @@ -75,8 +78,8 @@ public void loadConversions() { * @param expr The Conversion equation. * @return The Conversion. */ - public Conversion createConversion(String name, String unit, JSNumericExpression expr) { - Conversion conversion = loadConversion(name, unit, expr); + public Conversion createConversion(String name, String unit, JSNumericExpression expr, int precision) { + Conversion conversion = loadConversion(name, unit, expr, precision); saveToConfig(conversion); return conversion; } diff --git a/src/main/java/edu/whimc/sciencetools/models/sciencetool/NumericScienceTool.java b/src/main/java/edu/whimc/sciencetools/models/sciencetool/NumericScienceTool.java index ac9d6c0..9f31cdd 100644 --- a/src/main/java/edu/whimc/sciencetools/models/sciencetool/NumericScienceTool.java +++ b/src/main/java/edu/whimc/sciencetools/models/sciencetool/NumericScienceTool.java @@ -76,7 +76,7 @@ public NumericScienceTool(String toolKey, //fixing precision to always be a certain number of decimals so regular measures can be set to precision 0 //Jack the reason for this is that kids would read 1.000 as one-thousand too easily due to the MC font //So for instance on gravity I've made it an integer percent - String converted = Utils.trimDecimals(conversion.convert(data), 3); + String converted = Utils.trimDecimals(conversion.convert(data), conversion.getPrecision()); message += " (" + converted + conversion.getUnit() + ")"; } From 4f3879b1bbaddc74339ecf714c2186254390514a Mon Sep 17 00:00:00 2001 From: Jeff Ginger Date: Fri, 9 Aug 2024 01:29:08 -0600 Subject: [PATCH 4/5] Okay I tried to do it the "right" way by adding a precision variable for each conversion? I am but a todler trying to operate a spaceship. --- .../sciencetools/models/conversion/ConversionManager.java | 3 ++- .../sciencetools/models/sciencetool/NumericScienceTool.java | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/edu/whimc/sciencetools/models/conversion/ConversionManager.java b/src/main/java/edu/whimc/sciencetools/models/conversion/ConversionManager.java index 8e457b2..a071fc3 100644 --- a/src/main/java/edu/whimc/sciencetools/models/conversion/ConversionManager.java +++ b/src/main/java/edu/whimc/sciencetools/models/conversion/ConversionManager.java @@ -36,7 +36,8 @@ public void loadConversions() { Utils.log("&b - &f" + conversion); String expr = config.getString("conversions." + conversion + ".expression"); String unit = config.getString("conversions." + conversion + ".unit"); - int precision = config.getInt("conversions." + conversion + ".precision"); //no idea if this needs to go in the log + int precision = config.getInt("conversions." + conversion + ".precision"); + //no idea if this needs to go in the log ^ Utils.log("&b\t- Expression: \"&f" + expr + "&b\""); Utils.log("&b\t- Unit: \"&f" + unit + "&b\""); diff --git a/src/main/java/edu/whimc/sciencetools/models/sciencetool/NumericScienceTool.java b/src/main/java/edu/whimc/sciencetools/models/sciencetool/NumericScienceTool.java index 9f31cdd..8ea50b1 100644 --- a/src/main/java/edu/whimc/sciencetools/models/sciencetool/NumericScienceTool.java +++ b/src/main/java/edu/whimc/sciencetools/models/sciencetool/NumericScienceTool.java @@ -73,9 +73,8 @@ public NumericScienceTool(String toolKey, // display converted values for (Conversion conversion : conversions) { - //fixing precision to always be a certain number of decimals so regular measures can be set to precision 0 - //Jack the reason for this is that kids would read 1.000 as one-thousand too easily due to the MC font - //So for instance on gravity I've made it an integer percent + //conversions now have their own separate precision; not sure what happens if it's left out of the config? + //does an unassigned int in Java have a value of 0? Or is it null and does null == 0 in this case? String converted = Utils.trimDecimals(conversion.convert(data), conversion.getPrecision()); message += " (" + converted + conversion.getUnit() + ")"; } From ecef2f12176abdd61a5722f7c8268eeee00f548f Mon Sep 17 00:00:00 2001 From: Jeff Ginger Date: Fri, 9 Aug 2024 01:30:25 -0600 Subject: [PATCH 5/5] Okay I tried to do it the "right" way by adding a precision variable for each conversion? I am but a todler trying to operate a spaceship. --- .../models/sciencetool/QuestsScienceToolObjective.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/edu/whimc/sciencetools/models/sciencetool/QuestsScienceToolObjective.java b/src/main/java/edu/whimc/sciencetools/models/sciencetool/QuestsScienceToolObjective.java index becf0c2..9178a85 100644 --- a/src/main/java/edu/whimc/sciencetools/models/sciencetool/QuestsScienceToolObjective.java +++ b/src/main/java/edu/whimc/sciencetools/models/sciencetool/QuestsScienceToolObjective.java @@ -3,11 +3,11 @@ import edu.whimc.sciencetools.models.Measurement; import edu.whimc.sciencetools.utils.Utils; import java.util.Map; +import org.bukkit.Bukkit; +import org.bukkit.event.EventHandler; import me.pikamug.quests.quests.Quest; import me.pikamug.quests.module.BukkitCustomObjective; import me.pikamug.quests.Quests; -import org.bukkit.Bukkit; -import org.bukkit.event.EventHandler; /** * A custom objective for the Quests plugin.