Skip to content

Commit 9a68185

Browse files
committed
ElytraAttitudeControl: Replace System.currentTimeMillis()
Change default settings
1 parent 808e30d commit 9a68185

File tree

1 file changed

+16
-15
lines changed

1 file changed

+16
-15
lines changed

src/main/kotlin/com/lambda/module/modules/movement/ElytraAttitudeControl.kt

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,11 @@ import com.lambda.module.tag.ModuleTag
2525
import com.lambda.threading.runSafe
2626
import com.lambda.util.NamedEnum
2727
import com.lambda.util.SpeedUnit
28+
import com.lambda.util.Timer
2829
import net.minecraft.client.network.ClientPlayerEntity
2930
import net.minecraft.entity.EntityType
3031
import net.minecraft.util.math.Vec3d
32+
import kotlin.time.Duration.Companion.seconds
3133

3234
object ElytraAttitudeControl : Module(
3335
name = "ElytraAttitudeControl",
@@ -51,15 +53,17 @@ object ElytraAttitudeControl : Module(
5153
val speedControllerD by setting("Speed Control D", 4.5, 0.0..5.0, 0.05).group(Group.SpeedControl)
5254
val speedControllerI by setting("Speed Control I", 0.3, 0.0..1.0, 0.05).group(Group.SpeedControl)
5355

54-
val useFirework by setting("Use Firework", false, "Automatically use fireworks to maintain speed or height")
55-
val minHeight by setting("Min Height", 50, 0..256, 10, unit = " blocks", description = "Minimum height to use fireworks") { useFirework }
56-
val minSpeed by setting("Min Speed", 15.0, 0.1..50.0, 0.1, unit = " m/s", description = "Minimum speed to use fireworks") { useFirework }
56+
val useFireworkOnHeight by setting("Use Firework On Height", false, "Use fireworks when below a certain height")
57+
val minHeight by setting("Min Height", 50, 0..256, 10, unit = " blocks", description = "Minimum height to use firework") { useFireworkOnHeight }
58+
59+
val useFireworkOnSpeed by setting("Use Firework On Speed", false, "Use fireworks based on speed")
60+
val minSpeed by setting("Min Speed", 20.0, 0.1..50.0, 0.1, unit = " m/s", description = "Minimum speed to use fireworks") { useFireworkOnSpeed }
5761

5862
var lastPos : Vec3d = Vec3d.ZERO
5963
val speedController: PIController = PIController({ speedControllerP }, { speedControllerD }, { speedControllerI }, { 0.0 })
6064
val altitudeController: PIController = PIController({ altitudeControllerP }, { altitudeControllerD }, { altitudeControllerI }, { altitudeControllerConst })
6165

62-
var lastUsedFirework = 0L
66+
val usageDelay = Timer()
6367

6468
init {
6569
listen<TickEvent.Pre> {
@@ -86,18 +90,15 @@ object ElytraAttitudeControl : Module(
8690

8791
lastPos = player.pos
8892

89-
if (useFirework) {
90-
val currentTime = System.currentTimeMillis()
91-
if (lastUsedFirework + 2000 > currentTime) {
92-
return@listen
93-
}
94-
95-
if (player.hasFirework) {
96-
return@listen
93+
if (usageDelay.timePassed(2.seconds) && !player.hasFirework) {
94+
if (useFireworkOnHeight && minHeight > player.y) {
95+
usageDelay.reset()
96+
runSafe {
97+
startFirework(true)
98+
}
9799
}
98-
99-
if (minHeight >= player.y || SpeedUnit.MetersPerSecond.convertFromMinecraft(player.velocity.length()) < minSpeed) {
100-
lastUsedFirework = currentTime
100+
if (useFireworkOnSpeed && minSpeed > SpeedUnit.MetersPerSecond.convertFromMinecraft(player.velocity.length())) {
101+
usageDelay.reset()
101102
runSafe {
102103
startFirework(true)
103104
}

0 commit comments

Comments
 (0)