From a7e78cc3fba7c956ed9d9c6aae08cc954087dc2b Mon Sep 17 00:00:00 2001 From: cyberpwn Date: Mon, 16 Aug 2021 16:01:01 -0400 Subject: [PATCH] Num util --- .../util/decree/DecreeParameterHandler.java | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java b/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java index 9d7d437eb..e52d54fd4 100644 --- a/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java @@ -23,6 +23,8 @@ import com.volmit.iris.util.decree.exceptions.DecreeParsingException; import com.volmit.iris.util.decree.exceptions.DecreeWhichException; import org.jetbrains.annotations.NotNull; +import java.util.concurrent.atomic.AtomicReference; + public interface DecreeParameterHandler { /** * Should return the possible values for this type @@ -111,4 +113,55 @@ public interface DecreeParameterHandler { { return "NOEXAMPLE"; } + + default double getMultiplier(AtomicReference g) + { + double multiplier = 1; + String in = g.get(); + boolean valid = true; + while(valid) { + boolean trim = false; + if (in.toLowerCase().endsWith("k")) + { + multiplier *= 1000; + trim = true; + } + + else if(in.toLowerCase().endsWith("m")) + { + multiplier *= 1000000; + trim = true; + } + + else if(in.toLowerCase().endsWith("h")) + { + multiplier *= 100; + trim = true; + } + + else if(in.toLowerCase().endsWith("c")) + { + multiplier *= 16; + trim = true; + } + + else if(in.toLowerCase().endsWith("r")) + { + multiplier *= (16 * 32); + trim = true; + } + + else { + valid = false; + } + + if(trim) + { + in = in.substring(0, in.length() - 1); + } + } + + g.set(in); + return multiplier; + } }