|
12 | 12 | import org.rusherhack.client.api.utils.InventoryUtils; |
13 | 13 | import org.rusherhack.client.api.utils.WorldUtils; |
14 | 14 | import org.rusherhack.core.event.subscribe.Subscribe; |
| 15 | +import org.rusherhack.core.setting.BooleanSetting; |
15 | 16 | import org.rusherhack.core.setting.NumberSetting; |
16 | 17 |
|
17 | 18 | public class AutoFireworkModule extends ToggleableModule { |
18 | | - private final NumberSetting<Float> minSpeed = new NumberSetting<>("MinSpeed", "Fires a rocket when the player’s speed drops below this value", 20f, 1f, 34f).incremental(1f); |
| 19 | + private final BooleanSetting underSpeed = new BooleanSetting("UnderSpeed", "Deploy rockets when player speed drops below a value", true); |
| 20 | + private final NumberSetting<Float> minSpeed = new NumberSetting<>("MinSpeed", "Value to deploy rocket at", 20f, 1f, 34f).incremental(1f); |
| 21 | + private final BooleanSetting underHeight = new BooleanSetting("UnderHeight", "Deploy rockets when player height (y coord) drops below a value", false); |
| 22 | + private final NumberSetting<Float> minHeight = new NumberSetting<>("MinSpeed", "Y coordinate to deploy rocket when player drops below", 120f, 1f, 340f).incremental(1f); |
| 23 | + |
19 | 24 | private boolean waitingForFirework = false; |
20 | 25 |
|
21 | 26 | public AutoFireworkModule() { |
22 | | - super("AutoFirework", "Automatically redeploy fireworks when player drops below a certain speed", ModuleCategory.MOVEMENT); |
23 | | - this.registerSettings(minSpeed); |
| 27 | + super("AutoFirework", "Automatically redeploy fireworks when player drops below a certain speed or height", ModuleCategory.MOVEMENT); |
| 28 | + this.registerSettings(underSpeed, underHeight); |
| 29 | + underSpeed.addSubSettings(minSpeed); |
| 30 | + underHeight.addSubSettings(minHeight); |
24 | 31 | } |
25 | 32 |
|
26 | 33 | @Subscribe |
27 | 34 | private void onUpdate(EventUpdate event) { |
28 | 35 | if (mc.player == null || mc.gameMode == null) return; |
29 | 36 | double speed = mc.player.getDeltaMovement().length() * RusherHackAPI.getServerState().getTPS(); |
30 | 37 |
|
31 | | - if (mc.player.isFallFlying() && speed < minSpeed.getValue()) { |
| 38 | + if (mc.player.isFallFlying() && |
| 39 | + ((speed < minSpeed.getValue()) && underSpeed.getValue() || |
| 40 | + mc.player.getY() < minHeight.getValue() && underHeight.getValue())) { |
| 41 | + |
32 | 42 | if (waitingForFirework) { |
33 | 43 | if (hasActiveFirework()) waitingForFirework = false; |
34 | 44 | return; |
|
0 commit comments