From b1dba01312968644543a76b8ffb94b795448b632 Mon Sep 17 00:00:00 2001 From: RedCommand-dev <58099979+RedCommand-dev@users.noreply.github.com> Date: Tue, 30 Aug 2022 19:08:28 +0300 Subject: [PATCH 1/5] \n for newline instead of array MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Only 3 actions use this so its really just annoying (also makes it easier to add actions to dfscript online 😁😁😁) --- .../dfscript/script/action/ScriptActionType.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/main/java/io/github/techstreet/dfscript/script/action/ScriptActionType.java b/src/main/java/io/github/techstreet/dfscript/script/action/ScriptActionType.java index 6555433..4d6286b 100644 --- a/src/main/java/io/github/techstreet/dfscript/script/action/ScriptActionType.java +++ b/src/main/java/io/github/techstreet/dfscript/script/action/ScriptActionType.java @@ -1624,7 +1624,7 @@ public enum ScriptActionType { })), REPEAT_FOREVER(builder -> builder.name("RepeatForever") - .description(new String[]{"Repeats for eternity.", "Make sure to have a Stop Repetition, Stop Codeline or Wait somewhere in the code!", "There's a lagslayer for the repetition actions.", "It activates after 100000 iterations with no Wait."}) + .description("Repeats for eternity.\nMake sure to have a Stop Repetition, Stop Codeline or Wait somewhere in the code!\nThere's a lagslayer for the repetition actions.\nIt activates after 100000 iterations with no Wait.") .icon(Items.GOLD_INGOT) .category(ScriptActionCategory.MISC) .hasChildren(true) @@ -1633,7 +1633,7 @@ public enum ScriptActionType { ctx.scheduleInner(null, context -> context.setLastIfResult(true)); })), ELSE(builder -> builder.name("Else") - .description(new String[]{"Executes if the last IF condition failed.","And ELSE also works as a valid IF condition for ELSE."}) + .description("Executes if the last IF condition failed.\nAnd ELSE also works as a valid IF condition for ELSE.") .icon(Items.END_STONE) .category(ScriptActionCategory.MISC) .group(ScriptGroup.CONDITION) @@ -1682,7 +1682,7 @@ public enum ScriptActionType { })), REGEX_REPLACE_TEXT(builder -> builder.name("Replace Text using Regex") - .description(new String[]{"Searches for part of a text", "using a regex and replaces it."}) + .description("Searches for part of a text\nusing a regex and replaces it.") .icon(Items.LEAD, true) .arg("Result", ScriptActionArgumentType.VARIABLE) .arg("Text to change", ScriptActionArgumentType.TEXT) @@ -1869,17 +1869,11 @@ private ScriptActionType category(ScriptActionCategory category) { private ScriptActionType description(String description) { this.description.clear(); - this.description.add(description); + this.description.addAll(Arrays.asList(description.split("\n", -1))); + return this; } - private ScriptActionType description(String[] description) { - this.description.clear(); - - this.description.addAll(Arrays.asList(description)); - - return this; - } private ScriptActionType group(ScriptGroup group) { this.group = group; return this; From 56093f51b98d14f406160b52e56b678af29a19eb Mon Sep 17 00:00:00 2001 From: RedCommand-dev <58099979+RedCommand-dev@users.noreply.github.com> Date: Wed, 31 Aug 2022 09:49:58 +0300 Subject: [PATCH 2/5] Generate random int & double --- .../script/action/ScriptActionType.java | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/github/techstreet/dfscript/script/action/ScriptActionType.java b/src/main/java/io/github/techstreet/dfscript/script/action/ScriptActionType.java index 4d6286b..c476ec5 100644 --- a/src/main/java/io/github/techstreet/dfscript/script/action/ScriptActionType.java +++ b/src/main/java/io/github/techstreet/dfscript/script/action/ScriptActionType.java @@ -1606,8 +1606,26 @@ public enum ScriptActionType { } })), - RANDOM_NUMBER(builder -> builder.name("Random Number") - .description("Generates a random number between two other numbers.") + RANDOM_INT(builder -> builder.name("Random Int") + .description("Generates a random whole number between two other numbers.") + .icon(Items.HOPPER) + .category(ScriptActionCategory.NUMBERS) + .arg("Result", ScriptActionArgumentType.VARIABLE) + .arg("Min", ScriptActionArgumentType.NUMBER) + .arg("Max", ScriptActionArgumentType.NUMBER) + .action(ctx -> { + int min = ctx.value("Min").asNumber(); + int max = ctx.value("Max").asNumber(); + Random random = new Random(); + int result = random.nextInt((int) max + 1 - (int) min) + (int) min; + ctx.context().setVariable( + ctx.variable("Result").name(), + new ScriptNumberValue(result) + ); + })), + + RANDOM_DOUBLE(builder -> builder.name("Random Double") + .description("Generates a random floating point number between two other numbers.") .icon(Items.HOPPER) .category(ScriptActionCategory.NUMBERS) .arg("Result", ScriptActionArgumentType.VARIABLE) From c14e823413b6fc178d99db5caa7ae1aa753b08f4 Mon Sep 17 00:00:00 2001 From: RedCommand-dev <58099979+RedCommand-dev@users.noreply.github.com> Date: Wed, 31 Aug 2022 09:57:42 +0300 Subject: [PATCH 3/5] Generate random int & double --- .../techstreet/dfscript/script/action/ScriptActionType.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/github/techstreet/dfscript/script/action/ScriptActionType.java b/src/main/java/io/github/techstreet/dfscript/script/action/ScriptActionType.java index c476ec5..70d927a 100644 --- a/src/main/java/io/github/techstreet/dfscript/script/action/ScriptActionType.java +++ b/src/main/java/io/github/techstreet/dfscript/script/action/ScriptActionType.java @@ -1614,10 +1614,10 @@ public enum ScriptActionType { .arg("Min", ScriptActionArgumentType.NUMBER) .arg("Max", ScriptActionArgumentType.NUMBER) .action(ctx -> { - int min = ctx.value("Min").asNumber(); - int max = ctx.value("Max").asNumber(); + int min = (int) ctx.value("Min").asNumber(); + int max = (int) ctx.value("Max").asNumber(); Random random = new Random(); - int result = random.nextInt((int) max + 1 - (int) min) + (int) min; + int result = random.nextInt(max + 1 - min) + min; ctx.context().setVariable( ctx.variable("Result").name(), new ScriptNumberValue(result) From 2434666168cab87223ed68463c42940cf5121380 Mon Sep 17 00:00:00 2001 From: RedCommand-dev <58099979+RedCommand-dev@users.noreply.github.com> Date: Wed, 31 Aug 2022 10:13:03 +0300 Subject: [PATCH 4/5] vscode and bin ignore --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 3c37caf..d5768c5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # User-specific stuff .idea/ +.vscode/ *.iml *.ipr @@ -116,3 +117,6 @@ run/ # Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) !gradle-wrapper.jar + +# Bin folder +bin/ \ No newline at end of file From e4e5860bb21ababfc46c2df85f46acdd27ea1a3f Mon Sep 17 00:00:00 2001 From: RedCommand-dev <58099979+RedCommand-dev@users.noreply.github.com> Date: Wed, 31 Aug 2022 10:21:11 +0300 Subject: [PATCH 5/5] Generate random int & double add old random number and deprecate it to random double --- .../script/action/ScriptActionType.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/java/io/github/techstreet/dfscript/script/action/ScriptActionType.java b/src/main/java/io/github/techstreet/dfscript/script/action/ScriptActionType.java index 70d927a..64027d5 100644 --- a/src/main/java/io/github/techstreet/dfscript/script/action/ScriptActionType.java +++ b/src/main/java/io/github/techstreet/dfscript/script/action/ScriptActionType.java @@ -1641,6 +1641,24 @@ public enum ScriptActionType { ); })), + RANDOM_NUMBER(builder -> builder.name("Random Number") + .description("Generates a random number between two other numbers.") + .icon(Items.HOPPER) + .category(ScriptActionCategory.NUMBERS) + .deprecate(RANDOM_DOUBLE) + .arg("Result", ScriptActionArgumentType.VARIABLE) + .arg("Min", ScriptActionArgumentType.NUMBER) + .arg("Max", ScriptActionArgumentType.NUMBER) + .action(ctx -> { + double min = ctx.value("Min").asNumber(); + double max = ctx.value("Max").asNumber(); + double result = Math.random() * (max - min) + min; + ctx.context().setVariable( + ctx.variable("Result").name(), + new ScriptNumberValue(result) + ); + })), + REPEAT_FOREVER(builder -> builder.name("RepeatForever") .description("Repeats for eternity.\nMake sure to have a Stop Repetition, Stop Codeline or Wait somewhere in the code!\nThere's a lagslayer for the repetition actions.\nIt activates after 100000 iterations with no Wait.") .icon(Items.GOLD_INGOT)