From 08399dbba15086b062fffb3acb5facdebd6fbc9f Mon Sep 17 00:00:00 2001 From: Spectrall <105946758+Spectrall368@users.noreply.github.com> Date: Mon, 25 Mar 2024 18:30:27 +0100 Subject: [PATCH 01/13] Particle Scaling --- .../forge-1.20.1/templates/particle.java.ftl | 12 ++++++++++-- .../neoforge-1.20.4/templates/particle.java.ftl | 12 ++++++++++-- .../java/net/mcreator/element/types/Particle.java | 4 ++-- .../java/net/mcreator/ui/modgui/ParticleGUI.java | 15 ++++++++++++--- .../integration/TestWorkspaceDataProvider.java | 2 +- 5 files changed, 35 insertions(+), 10 deletions(-) diff --git a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl index 4d73949c4d2..e6d02f79706 100644 --- a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl +++ b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl @@ -1,7 +1,7 @@ <#-- # MCreator (https://mcreator.net/) # Copyright (C) 2012-2020, Pylo - # Copyright (C) 2020-2023, Pylo, opensource contributors + # Copyright (C) 2020-2024, Pylo, opensource contributors # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -64,7 +64,7 @@ package ${package}.client.particle; this.spriteSet = spriteSet; this.setSize(${data.width}f, ${data.height}f); - <#if data.scale != 1>this.quadSize *= ${data.scale}f; + <#if !hasProcedure(data.scale)>this.quadSize *= ${data.scale}f; <#if (data.maxAgeDiff > 0)> this.lifetime = (int) Math.max(1, ${data.maxAge} + (this.random.nextInt(${data.maxAgeDiff * 2}) - ${data.maxAgeDiff})); @@ -101,6 +101,14 @@ package ${package}.client.particle; return ParticleRenderType.PARTICLE_SHEET_${data.renderType}; } + + <#if hasProcedure(data.scale)> + @Override public float getQuadSize(float scale) { + float age = this.age; + return (float) <@procedureOBJToConditionCode data.scale/>; + } + + @Override public void tick() { super.tick(); diff --git a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl index 9fa53e66ed4..9d1bd8149e6 100644 --- a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl +++ b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl @@ -53,7 +53,7 @@ package ${package}.client.particle; } private final SpriteSet spriteSet; - + <#if data.angularVelocity != 0 || data.angularAcceleration != 0> private float angularVelocity; private float angularAcceleration; @@ -64,7 +64,7 @@ package ${package}.client.particle; this.spriteSet = spriteSet; this.setSize(${data.width}f, ${data.height}f); - <#if data.scale != 1>this.quadSize *= ${data.scale}f; + <#if !hasProcedure(data.scale)>this.quadSize *= ${data.scale}f; <#if (data.maxAgeDiff > 0)> this.lifetime = (int) Math.max(1, ${data.maxAge} + (this.random.nextInt(${data.maxAgeDiff * 2}) - ${data.maxAgeDiff})); @@ -101,6 +101,14 @@ package ${package}.client.particle; return ParticleRenderType.PARTICLE_SHEET_${data.renderType}; } + + <#if hasProcedure(data.scale)> + @Override public float getQuadSize(float scale) { + float age = this.age; + return (float) <@procedureOBJToConditionCode data.scale/>; + } + + @Override public void tick() { super.tick(); diff --git a/src/main/java/net/mcreator/element/types/Particle.java b/src/main/java/net/mcreator/element/types/Particle.java index 63ac2214790..3a6822b3fb4 100644 --- a/src/main/java/net/mcreator/element/types/Particle.java +++ b/src/main/java/net/mcreator/element/types/Particle.java @@ -19,6 +19,7 @@ package net.mcreator.element.types; import net.mcreator.element.GeneratableElement; +import net.mcreator.element.parts.procedure.NumberProcedure; import net.mcreator.element.parts.procedure.Procedure; import net.mcreator.io.FileIO; import net.mcreator.minecraft.MinecraftImageGenerator; @@ -45,7 +46,6 @@ public class Particle extends GeneratableElement { public double width; public double height; - public double scale; public double speedFactor; public double gravity; public int maxAge; @@ -55,10 +55,10 @@ public class Particle extends GeneratableElement { public boolean canCollide; public boolean alwaysShow; - public String renderType; public Procedure additionalExpiryCondition; + public NumberProcedure scale; public Particle(ModElement element) { super(element); diff --git a/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java b/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java index ead5e4f5c1a..99f9f5cb9a5 100644 --- a/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java +++ b/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java @@ -29,6 +29,8 @@ import net.mcreator.ui.help.HelpUtils; import net.mcreator.ui.init.L10N; import net.mcreator.ui.minecraft.TextureHolder; +import net.mcreator.ui.procedure.AbstractProcedureSelector; +import net.mcreator.ui.procedure.NumberProcedureSelector; import net.mcreator.ui.procedure.ProcedureSelector; import net.mcreator.ui.validation.AggregatedValidationResult; import net.mcreator.ui.validation.validators.TileHolderValidator; @@ -49,7 +51,6 @@ public class ParticleGUI extends ModElementGUI { private final JSpinner width = new JSpinner(new SpinnerNumberModel(0.2, 0, 4096, 0.1)); private final JSpinner height = new JSpinner(new SpinnerNumberModel(0.2, 0, 4096, 0.1)); - private final JSpinner scale = new JSpinner(new SpinnerNumberModel(1, 0.1, 4096, 0.1)); private final JSpinner gravity = new JSpinner(new SpinnerNumberModel(0, -100, 100, 0.1)); private final JSpinner speedFactor = new JSpinner(new SpinnerNumberModel(1, -100, 100, 0.1)); private final JSpinner maxAge = new JSpinner(new SpinnerNumberModel(7, 0, 100000, 1)); @@ -66,6 +67,8 @@ public class ParticleGUI extends ModElementGUI { private ProcedureSelector additionalExpiryCondition; + private NumberProcedureSelector scale; + public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode) { super(mcreator, modElement, editingMode); this.initGUI(); @@ -73,6 +76,10 @@ public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode } @Override protected void initGUI() { + scale = new NumberProcedureSelector(this.withEntry("particle/scale"), mcreator, + L10N.t("elementgui.particle.visual_scale"), AbstractProcedureSelector.Side.CLIENT, + new JSpinner(new SpinnerNumberModel(1, 0.1, 4096, 0.1)), 0, + Dependency.fromString("world:world/z:number/y:number/x:number/age:number/scale:number")); additionalExpiryCondition = new ProcedureSelector(this.withEntry("particle/additional_expiry_condition"), mcreator, L10N.t("elementgui.particle.expiry_condition"), ProcedureSelector.Side.CLIENT, true, VariableTypeLoader.BuiltInTypes.LOGIC, Dependency.fromString( @@ -87,6 +94,7 @@ public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode canCollide.setOpaque(false); alwaysShow.setOpaque(false); animate.setOpaque(false); + scale.setOpaque(false); texture = new TextureHolder(new TypedTextureSelectorDialog(mcreator, TextureType.PARTICLE)); texture.setOpaque(false); @@ -160,6 +168,7 @@ public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode super.reloadDataLists(); additionalExpiryCondition.refreshListKeepSelected(); + scale.refreshListKeepSelected(); } @Override protected AggregatedValidationResult validatePage(int page) { @@ -173,7 +182,6 @@ public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode StringUtils.removeEnd(particle.texture, ".png")); // legacy, old workspaces stored name with extension width.setValue(particle.width); height.setValue(particle.height); - scale.setValue(particle.scale); gravity.setValue(particle.gravity); speedFactor.setValue(particle.speedFactor); frameDuration.setValue(particle.frameDuration); @@ -186,6 +194,7 @@ public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode animate.setSelected(particle.animate); renderType.setSelectedItem(particle.renderType); additionalExpiryCondition.setSelectedProcedure(particle.additionalExpiryCondition); + scale.setSelectedProcedure(particle.scale); } @Override public Particle getElementFromGUI() { @@ -193,7 +202,6 @@ public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode particle.texture = texture.getID() + ".png"; // legacy, old workspaces stored name with extension particle.width = (double) width.getValue(); particle.height = (double) height.getValue(); - particle.scale = (double) scale.getValue(); particle.gravity = (double) gravity.getValue(); particle.speedFactor = (double) speedFactor.getValue(); particle.maxAge = (int) maxAge.getValue(); @@ -206,6 +214,7 @@ public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode particle.alwaysShow = alwaysShow.isSelected(); particle.renderType = (String) renderType.getSelectedItem(); particle.additionalExpiryCondition = additionalExpiryCondition.getSelectedProcedure(); + particle.scale = scale.getSelectedProcedure(); return particle; } diff --git a/src/test/java/net/mcreator/integration/TestWorkspaceDataProvider.java b/src/test/java/net/mcreator/integration/TestWorkspaceDataProvider.java index a36fac086f3..7323087d70f 100644 --- a/src/test/java/net/mcreator/integration/TestWorkspaceDataProvider.java +++ b/src/test/java/net/mcreator/integration/TestWorkspaceDataProvider.java @@ -1425,7 +1425,6 @@ Color.white, new Procedure("condition4"), particle.width = 2.3; particle.frameDuration = 2; particle.height = 1.38; - particle.scale = 1.38; particle.gravity = 12.3; particle.speedFactor = 1.3; particle.canCollide = _true; @@ -1437,6 +1436,7 @@ Color.white, new Procedure("condition4"), particle.maxAgeDiff = emptyLists ? 0 : 15; particle.renderType = new String[] { "OPAQUE", "OPAQUE", "TRANSLUCENT", "LIT" }[valueIndex]; particle.additionalExpiryCondition = new Procedure("condition1"); + particle.scale = new NumberProcedure(emptyLists ? null : "number1", 1.38); return particle; } else if (ModElementType.GAMERULE.equals(modElement.getType())) { GameRule gamerule = new GameRule(modElement); From 78b8b5ba08cb3896cf280750137baa4856da296c Mon Sep 17 00:00:00 2001 From: Spectrall <105946758+Spectrall368@users.noreply.github.com> Date: Mon, 25 Mar 2024 21:35:54 +0100 Subject: [PATCH 02/13] Some Fixes --- .../generator-1.20.1/forge-1.20.1/templates/particle.java.ftl | 2 +- .../neoforge-1.20.4/templates/particle.java.ftl | 2 +- src/main/java/net/mcreator/ui/modgui/ParticleGUI.java | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl index e6d02f79706..498dc3519c7 100644 --- a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl +++ b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl @@ -104,7 +104,7 @@ package ${package}.client.particle; <#if hasProcedure(data.scale)> @Override public float getQuadSize(float scale) { - float age = this.age; + Level world = this.level; return (float) <@procedureOBJToConditionCode data.scale/>; } diff --git a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl index 9d1bd8149e6..28c28584d0b 100644 --- a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl +++ b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl @@ -104,7 +104,7 @@ package ${package}.client.particle; <#if hasProcedure(data.scale)> @Override public float getQuadSize(float scale) { - float age = this.age; + Level world = this.level; return (float) <@procedureOBJToConditionCode data.scale/>; } diff --git a/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java b/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java index 99f9f5cb9a5..55062ad1a93 100644 --- a/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java +++ b/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java @@ -79,7 +79,7 @@ public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode scale = new NumberProcedureSelector(this.withEntry("particle/scale"), mcreator, L10N.t("elementgui.particle.visual_scale"), AbstractProcedureSelector.Side.CLIENT, new JSpinner(new SpinnerNumberModel(1, 0.1, 4096, 0.1)), 0, - Dependency.fromString("world:world/z:number/y:number/x:number/age:number/scale:number")); + Dependency.fromString("x:number/y:number/z:number/world:world/age:number/scale:number")); additionalExpiryCondition = new ProcedureSelector(this.withEntry("particle/additional_expiry_condition"), mcreator, L10N.t("elementgui.particle.expiry_condition"), ProcedureSelector.Side.CLIENT, true, VariableTypeLoader.BuiltInTypes.LOGIC, Dependency.fromString( @@ -94,7 +94,6 @@ public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode canCollide.setOpaque(false); alwaysShow.setOpaque(false); animate.setOpaque(false); - scale.setOpaque(false); texture = new TextureHolder(new TypedTextureSelectorDialog(mcreator, TextureType.PARTICLE)); texture.setOpaque(false); From 8973a5aebbd9691d8e1039815b03f90d32664b01 Mon Sep 17 00:00:00 2001 From: Spectrall <105946758+Spectrall368@users.noreply.github.com> Date: Mon, 25 Mar 2024 22:09:34 +0100 Subject: [PATCH 03/13] Fix order --- src/main/java/net/mcreator/element/types/Particle.java | 2 +- src/main/java/net/mcreator/ui/modgui/ParticleGUI.java | 7 +++---- .../mcreator/integration/TestWorkspaceDataProvider.java | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/mcreator/element/types/Particle.java b/src/main/java/net/mcreator/element/types/Particle.java index 3a6822b3fb4..0a47c933857 100644 --- a/src/main/java/net/mcreator/element/types/Particle.java +++ b/src/main/java/net/mcreator/element/types/Particle.java @@ -46,6 +46,7 @@ public class Particle extends GeneratableElement { public double width; public double height; + public NumberProcedure scale; public double speedFactor; public double gravity; public int maxAge; @@ -58,7 +59,6 @@ public class Particle extends GeneratableElement { public String renderType; public Procedure additionalExpiryCondition; - public NumberProcedure scale; public Particle(ModElement element) { super(element); diff --git a/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java b/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java index 55062ad1a93..33d0981077f 100644 --- a/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java +++ b/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java @@ -51,6 +51,7 @@ public class ParticleGUI extends ModElementGUI { private final JSpinner width = new JSpinner(new SpinnerNumberModel(0.2, 0, 4096, 0.1)); private final JSpinner height = new JSpinner(new SpinnerNumberModel(0.2, 0, 4096, 0.1)); + private NumberProcedureSelector scale; private final JSpinner gravity = new JSpinner(new SpinnerNumberModel(0, -100, 100, 0.1)); private final JSpinner speedFactor = new JSpinner(new SpinnerNumberModel(1, -100, 100, 0.1)); private final JSpinner maxAge = new JSpinner(new SpinnerNumberModel(7, 0, 100000, 1)); @@ -67,8 +68,6 @@ public class ParticleGUI extends ModElementGUI { private ProcedureSelector additionalExpiryCondition; - private NumberProcedureSelector scale; - public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode) { super(mcreator, modElement, editingMode); this.initGUI(); @@ -181,6 +180,7 @@ public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode StringUtils.removeEnd(particle.texture, ".png")); // legacy, old workspaces stored name with extension width.setValue(particle.width); height.setValue(particle.height); + scale.setSelectedProcedure(particle.scale); gravity.setValue(particle.gravity); speedFactor.setValue(particle.speedFactor); frameDuration.setValue(particle.frameDuration); @@ -193,7 +193,6 @@ public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode animate.setSelected(particle.animate); renderType.setSelectedItem(particle.renderType); additionalExpiryCondition.setSelectedProcedure(particle.additionalExpiryCondition); - scale.setSelectedProcedure(particle.scale); } @Override public Particle getElementFromGUI() { @@ -201,6 +200,7 @@ public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode particle.texture = texture.getID() + ".png"; // legacy, old workspaces stored name with extension particle.width = (double) width.getValue(); particle.height = (double) height.getValue(); + particle.scale = scale.getSelectedProcedure(); particle.gravity = (double) gravity.getValue(); particle.speedFactor = (double) speedFactor.getValue(); particle.maxAge = (int) maxAge.getValue(); @@ -213,7 +213,6 @@ public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode particle.alwaysShow = alwaysShow.isSelected(); particle.renderType = (String) renderType.getSelectedItem(); particle.additionalExpiryCondition = additionalExpiryCondition.getSelectedProcedure(); - particle.scale = scale.getSelectedProcedure(); return particle; } diff --git a/src/test/java/net/mcreator/integration/TestWorkspaceDataProvider.java b/src/test/java/net/mcreator/integration/TestWorkspaceDataProvider.java index 7323087d70f..92fc3aed113 100644 --- a/src/test/java/net/mcreator/integration/TestWorkspaceDataProvider.java +++ b/src/test/java/net/mcreator/integration/TestWorkspaceDataProvider.java @@ -1425,6 +1425,7 @@ Color.white, new Procedure("condition4"), particle.width = 2.3; particle.frameDuration = 2; particle.height = 1.38; + particle.scale = new NumberProcedure(emptyLists ? null : "number1", 1.38); particle.gravity = 12.3; particle.speedFactor = 1.3; particle.canCollide = _true; @@ -1436,7 +1437,6 @@ Color.white, new Procedure("condition4"), particle.maxAgeDiff = emptyLists ? 0 : 15; particle.renderType = new String[] { "OPAQUE", "OPAQUE", "TRANSLUCENT", "LIT" }[valueIndex]; particle.additionalExpiryCondition = new Procedure("condition1"); - particle.scale = new NumberProcedure(emptyLists ? null : "number1", 1.38); return particle; } else if (ModElementType.GAMERULE.equals(modElement.getType())) { GameRule gamerule = new GameRule(modElement); From 7682e185577bbabc8949a6a24ba0b128022bb607 Mon Sep 17 00:00:00 2001 From: Spectrall <105946758+Spectrall368@users.noreply.github.com> Date: Mon, 25 Mar 2024 22:15:11 +0100 Subject: [PATCH 04/13] Revert this change --- src/main/java/net/mcreator/element/types/Particle.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/net/mcreator/element/types/Particle.java b/src/main/java/net/mcreator/element/types/Particle.java index 0a47c933857..4130f6acb5c 100644 --- a/src/main/java/net/mcreator/element/types/Particle.java +++ b/src/main/java/net/mcreator/element/types/Particle.java @@ -56,6 +56,7 @@ public class Particle extends GeneratableElement { public boolean canCollide; public boolean alwaysShow; + public String renderType; public Procedure additionalExpiryCondition; From c26526d5c898d99ea79b263c090bed1529243664 Mon Sep 17 00:00:00 2001 From: Spectrall <105946758+Spectrall368@users.noreply.github.com> Date: Mon, 25 Mar 2024 22:17:34 +0100 Subject: [PATCH 05/13] Fixed? --- src/main/java/net/mcreator/element/types/Particle.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/mcreator/element/types/Particle.java b/src/main/java/net/mcreator/element/types/Particle.java index 4130f6acb5c..070d0a2334f 100644 --- a/src/main/java/net/mcreator/element/types/Particle.java +++ b/src/main/java/net/mcreator/element/types/Particle.java @@ -56,7 +56,7 @@ public class Particle extends GeneratableElement { public boolean canCollide; public boolean alwaysShow; - + public String renderType; public Procedure additionalExpiryCondition; From 5de42bdf49548fd93c3addb2454a203f3dabd4ca Mon Sep 17 00:00:00 2001 From: Spectrall <105946758+Spectrall368@users.noreply.github.com> Date: Tue, 26 Mar 2024 16:42:40 +0100 Subject: [PATCH 06/13] Fix --- .../generator-1.20.1/forge-1.20.1/templates/particle.java.ftl | 2 +- .../neoforge-1.20.4/templates/particle.java.ftl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl index 498dc3519c7..d739711c8e5 100644 --- a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl +++ b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl @@ -64,7 +64,7 @@ package ${package}.client.particle; this.spriteSet = spriteSet; this.setSize(${data.width}f, ${data.height}f); - <#if !hasProcedure(data.scale)>this.quadSize *= ${data.scale}f; + <#if data.scale.getFixedValue() != 1 && !hasProcedure(data.scale)>this.quadSize *= ${data.scale}f; <#if (data.maxAgeDiff > 0)> this.lifetime = (int) Math.max(1, ${data.maxAge} + (this.random.nextInt(${data.maxAgeDiff * 2}) - ${data.maxAgeDiff})); diff --git a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl index 28c28584d0b..fc9e5e4ab47 100644 --- a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl +++ b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl @@ -64,7 +64,7 @@ package ${package}.client.particle; this.spriteSet = spriteSet; this.setSize(${data.width}f, ${data.height}f); - <#if !hasProcedure(data.scale)>this.quadSize *= ${data.scale}f; + <#if data.scale.getFixedValue() != 1 && !hasProcedure(data.scale)>this.quadSize *= ${data.scale}f; <#if (data.maxAgeDiff > 0)> this.lifetime = (int) Math.max(1, ${data.maxAge} + (this.random.nextInt(${data.maxAgeDiff * 2}) - ${data.maxAgeDiff})); From 04b61debe31b6295f28358781338b2b226d16cc8 Mon Sep 17 00:00:00 2001 From: Spectrall <105946758+Spectrall368@users.noreply.github.com> Date: Thu, 28 Mar 2024 18:35:28 +0100 Subject: [PATCH 07/13] Fixes --- .../generator-1.20.1/forge-1.20.1/templates/particle.java.ftl | 2 +- .../neoforge-1.20.4/templates/particle.java.ftl | 2 +- src/main/java/net/mcreator/ui/modgui/ParticleGUI.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl index d739711c8e5..c2d15d45f2a 100644 --- a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl +++ b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl @@ -105,7 +105,7 @@ package ${package}.client.particle; <#if hasProcedure(data.scale)> @Override public float getQuadSize(float scale) { Level world = this.level; - return (float) <@procedureOBJToConditionCode data.scale/>; + return this.quadSize * (float) <@procedureOBJToConditionCode data.scale/>; } diff --git a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl index fc9e5e4ab47..6d89868b492 100644 --- a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl +++ b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl @@ -105,7 +105,7 @@ package ${package}.client.particle; <#if hasProcedure(data.scale)> @Override public float getQuadSize(float scale) { Level world = this.level; - return (float) <@procedureOBJToConditionCode data.scale/>; + return this.quadSize * (float) <@procedureOBJToConditionCode data.scale/>; } diff --git a/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java b/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java index 33d0981077f..344268e6707 100644 --- a/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java +++ b/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java @@ -78,7 +78,7 @@ public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode scale = new NumberProcedureSelector(this.withEntry("particle/scale"), mcreator, L10N.t("elementgui.particle.visual_scale"), AbstractProcedureSelector.Side.CLIENT, new JSpinner(new SpinnerNumberModel(1, 0.1, 4096, 0.1)), 0, - Dependency.fromString("x:number/y:number/z:number/world:world/age:number/scale:number")); + Dependency.fromString("x:number/y:number/z:number/world:world/age:number/scale:number/lifetime:number")); additionalExpiryCondition = new ProcedureSelector(this.withEntry("particle/additional_expiry_condition"), mcreator, L10N.t("elementgui.particle.expiry_condition"), ProcedureSelector.Side.CLIENT, true, VariableTypeLoader.BuiltInTypes.LOGIC, Dependency.fromString( From e962a95d58841bfb0cf3a20056032e16331c909c Mon Sep 17 00:00:00 2001 From: Spectrall <105946758+Spectrall368@users.noreply.github.com> Date: Thu, 28 Mar 2024 18:42:20 +0100 Subject: [PATCH 08/13] Fix? --- .../generator-1.20.1/forge-1.20.1/templates/particle.java.ftl | 3 ++- .../neoforge-1.20.4/templates/particle.java.ftl | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl index c2d15d45f2a..4a8da10f326 100644 --- a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl +++ b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl @@ -104,8 +104,9 @@ package ${package}.client.particle; <#if hasProcedure(data.scale)> @Override public float getQuadSize(float scale) { + float k = ((float) this.age + scale) / (float) this.lifetime; Level world = this.level; - return this.quadSize * (float) <@procedureOBJToConditionCode data.scale/>; + return this.quadSize * (1.0f - k * k * (float) <@procedureOBJToConditionCode data.scale/>); } diff --git a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl index 6d89868b492..2f101480e7d 100644 --- a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl +++ b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl @@ -104,8 +104,9 @@ package ${package}.client.particle; <#if hasProcedure(data.scale)> @Override public float getQuadSize(float scale) { + float k = ((float) this.age + scale) / (float) this.lifetime; Level world = this.level; - return this.quadSize * (float) <@procedureOBJToConditionCode data.scale/>; + return this.quadSize * (1.0f - k * k * (float) <@procedureOBJToConditionCode data.scale/>); } From 793b0f3e9fdbba64421d50938b70496eb15db304 Mon Sep 17 00:00:00 2001 From: Spectrall <105946758+Spectrall368@users.noreply.github.com> Date: Thu, 28 Mar 2024 19:25:35 +0100 Subject: [PATCH 09/13] Fix --- .../generator-1.20.1/forge-1.20.1/templates/particle.java.ftl | 4 ++-- .../neoforge-1.20.4/templates/particle.java.ftl | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl index 4a8da10f326..7e61911fe69 100644 --- a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl +++ b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl @@ -104,9 +104,9 @@ package ${package}.client.particle; <#if hasProcedure(data.scale)> @Override public float getQuadSize(float scale) { - float k = ((float) this.age + scale) / (float) this.lifetime; + super.getQuadSize(scale); Level world = this.level; - return this.quadSize * (1.0f - k * k * (float) <@procedureOBJToConditionCode data.scale/>); + return this.quadSize * (float) <@procedureOBJToConditionCode data.scale/>; } diff --git a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl index 2f101480e7d..24083b48db4 100644 --- a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl +++ b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl @@ -104,9 +104,9 @@ package ${package}.client.particle; <#if hasProcedure(data.scale)> @Override public float getQuadSize(float scale) { - float k = ((float) this.age + scale) / (float) this.lifetime; + super.getQuadSize(scale); Level world = this.level; - return this.quadSize * (1.0f - k * k * (float) <@procedureOBJToConditionCode data.scale/>); + return this.quadSize * (float) <@procedureOBJToConditionCode data.scale/>; } From 5634705f7af20135d0c0f1f38564f2ed3c44e386 Mon Sep 17 00:00:00 2001 From: KlemenDEV <16374228+KlemenDEV@users.noreply.github.com> Date: Thu, 28 Mar 2024 20:40:11 +0100 Subject: [PATCH 10/13] Lifetime is known parameter as it is setting + it makes UI weird --- src/main/java/net/mcreator/ui/modgui/ParticleGUI.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java b/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java index 344268e6707..33d0981077f 100644 --- a/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java +++ b/src/main/java/net/mcreator/ui/modgui/ParticleGUI.java @@ -78,7 +78,7 @@ public ParticleGUI(MCreator mcreator, ModElement modElement, boolean editingMode scale = new NumberProcedureSelector(this.withEntry("particle/scale"), mcreator, L10N.t("elementgui.particle.visual_scale"), AbstractProcedureSelector.Side.CLIENT, new JSpinner(new SpinnerNumberModel(1, 0.1, 4096, 0.1)), 0, - Dependency.fromString("x:number/y:number/z:number/world:world/age:number/scale:number/lifetime:number")); + Dependency.fromString("x:number/y:number/z:number/world:world/age:number/scale:number")); additionalExpiryCondition = new ProcedureSelector(this.withEntry("particle/additional_expiry_condition"), mcreator, L10N.t("elementgui.particle.expiry_condition"), ProcedureSelector.Side.CLIENT, true, VariableTypeLoader.BuiltInTypes.LOGIC, Dependency.fromString( From 06bf85a3f5d7c20a9ef84ec775f42744b2918ea6 Mon Sep 17 00:00:00 2001 From: KlemenDEV <16374228+KlemenDEV@users.noreply.github.com> Date: Thu, 28 Mar 2024 21:27:56 +0100 Subject: [PATCH 11/13] Proper use of super method. --- .../generator-1.20.1/forge-1.20.1/templates/particle.java.ftl | 4 +--- .../neoforge-1.20.4/templates/particle.java.ftl | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl index 7e61911fe69..7d764a4e57b 100644 --- a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl +++ b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl @@ -101,12 +101,10 @@ package ${package}.client.particle; return ParticleRenderType.PARTICLE_SHEET_${data.renderType}; } - <#if hasProcedure(data.scale)> @Override public float getQuadSize(float scale) { - super.getQuadSize(scale); Level world = this.level; - return this.quadSize * (float) <@procedureOBJToConditionCode data.scale/>; + return super.getQuadSize(scale) * (float) <@procedureOBJToConditionCode data.scale/>; } diff --git a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl index 24083b48db4..cea0bb55148 100644 --- a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl +++ b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl @@ -101,12 +101,10 @@ package ${package}.client.particle; return ParticleRenderType.PARTICLE_SHEET_${data.renderType}; } - <#if hasProcedure(data.scale)> @Override public float getQuadSize(float scale) { - super.getQuadSize(scale); Level world = this.level; - return this.quadSize * (float) <@procedureOBJToConditionCode data.scale/>; + return super.getQuadSize(scale) * (float) <@procedureOBJToConditionCode data.scale/>; } From 84dda054eae0847d061a63d192bbe8349d354047 Mon Sep 17 00:00:00 2001 From: KlemenDEV <16374228+KlemenDEV@users.noreply.github.com> Date: Thu, 28 Mar 2024 22:06:02 +0100 Subject: [PATCH 12/13] More control over number formatting --- .../generator-1.20.1/forge-1.20.1/templates/particle.java.ftl | 2 +- .../neoforge-1.20.4/templates/particle.java.ftl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl index 7d764a4e57b..b86562f8c94 100644 --- a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl +++ b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl @@ -64,7 +64,7 @@ package ${package}.client.particle; this.spriteSet = spriteSet; this.setSize(${data.width}f, ${data.height}f); - <#if data.scale.getFixedValue() != 1 && !hasProcedure(data.scale)>this.quadSize *= ${data.scale}f; + <#if data.scale.getFixedValue() != 1 && !hasProcedure(data.scale)>this.quadSize *= ${data.scale.getFixedValue()}f; <#if (data.maxAgeDiff > 0)> this.lifetime = (int) Math.max(1, ${data.maxAge} + (this.random.nextInt(${data.maxAgeDiff * 2}) - ${data.maxAgeDiff})); diff --git a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl index cea0bb55148..268232bdaa5 100644 --- a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl +++ b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl @@ -64,7 +64,7 @@ package ${package}.client.particle; this.spriteSet = spriteSet; this.setSize(${data.width}f, ${data.height}f); - <#if data.scale.getFixedValue() != 1 && !hasProcedure(data.scale)>this.quadSize *= ${data.scale}f; + <#if data.scale.getFixedValue() != 1 && !hasProcedure(data.scale)>this.quadSize *= ${data.scale.getFixedValue()}f; <#if (data.maxAgeDiff > 0)> this.lifetime = (int) Math.max(1, ${data.maxAge} + (this.random.nextInt(${data.maxAgeDiff * 2}) - ${data.maxAgeDiff})); From 9a1e8264a0dfc827d4ed2ae9b31f61296cf2390b Mon Sep 17 00:00:00 2001 From: KlemenDEV <16374228+KlemenDEV@users.noreply.github.com> Date: Thu, 28 Mar 2024 22:07:03 +0100 Subject: [PATCH 13/13] Formatting --- .../forge-1.20.1/templates/particle.java.ftl | 5 ++++- .../neoforge-1.20.4/templates/particle.java.ftl | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl index b86562f8c94..c613677d9bf 100644 --- a/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl +++ b/plugins/generator-1.20.1/forge-1.20.1/templates/particle.java.ftl @@ -64,7 +64,10 @@ package ${package}.client.particle; this.spriteSet = spriteSet; this.setSize(${data.width}f, ${data.height}f); - <#if data.scale.getFixedValue() != 1 && !hasProcedure(data.scale)>this.quadSize *= ${data.scale.getFixedValue()}f; + + <#if data.scale.getFixedValue() != 1 && !hasProcedure(data.scale)> + this.quadSize *= ${data.scale.getFixedValue()}f; + <#if (data.maxAgeDiff > 0)> this.lifetime = (int) Math.max(1, ${data.maxAge} + (this.random.nextInt(${data.maxAgeDiff * 2}) - ${data.maxAgeDiff})); diff --git a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl index 268232bdaa5..a13bfc4133c 100644 --- a/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl +++ b/plugins/generator-1.20.4/neoforge-1.20.4/templates/particle.java.ftl @@ -64,7 +64,10 @@ package ${package}.client.particle; this.spriteSet = spriteSet; this.setSize(${data.width}f, ${data.height}f); - <#if data.scale.getFixedValue() != 1 && !hasProcedure(data.scale)>this.quadSize *= ${data.scale.getFixedValue()}f; + + <#if data.scale.getFixedValue() != 1 && !hasProcedure(data.scale)> + this.quadSize *= ${data.scale.getFixedValue()}f; + <#if (data.maxAgeDiff > 0)> this.lifetime = (int) Math.max(1, ${data.maxAge} + (this.random.nextInt(${data.maxAgeDiff * 2}) - ${data.maxAgeDiff}));