1
+ package com.lambda.client.module.modules.movement
2
+
3
+ import com.lambda.client.event.events.RenderWorldEvent
4
+ import com.lambda.client.event.listener.listener
5
+ import com.lambda.client.module.Category
6
+ import com.lambda.client.module.Module
7
+ import com.lambda.client.module.modules.client.GuiColors
8
+ import com.lambda.client.module.modules.render.Search.setting
9
+ import com.lambda.client.util.Wrapper
10
+ import com.lambda.client.util.graphics.ESPRenderer
11
+ import com.lambda.client.util.graphics.GeometryMasks
12
+ import com.lambda.client.util.threads.safeListener
13
+ import net.minecraft.util.math.AxisAlignedBB
14
+ import net.minecraft.util.math.BlockPos
15
+ import net.minecraftforge.client.event.InputUpdateEvent
16
+
17
+ object Parkour: Module(
18
+ name = " Parkour" ,
19
+ category = Category .MOVEMENT ,
20
+ description = " Jumps when you are at the edge of a block"
21
+ ) {
22
+ private val autoJump by setting(" Auto Jump" , true )
23
+ private val onlyOnForwardKey by setting(" Only on Forward" , true , { autoJump })
24
+ private val onSneak by setting(" On Sneak" , false )
25
+ private val distanceToEdge by setting(" Distance to edge" , 0.001 , 0.001 .. 1.0 , 0.001 , { autoJump }, unit = " blocks" )
26
+ private val distanceToFloor by setting(" Distance to floor" , 0.07 , 0.01 .. 0.6 , 0.01 , { autoJump }, unit = " blocks" )
27
+ private val esp by setting(" FeetESP" , true )
28
+ private val espFilledAlpha by setting(" ESP Filled Alpha" , 47 , 0 .. 255 , 1 , { esp })
29
+ private val espOutlineAlpha by setting(" ESP Outline Alpha" , 0 , 0 .. 255 , 1 , { esp })
30
+ private val thickness by setting(" Line Thickness" , 2.0f , 0.25f .. 5.0f , 0.25f , { esp })
31
+ private val espColor by setting(" ESP Color" , GuiColors .primary, false , { esp })
32
+
33
+ private val renderer = ESPRenderer ()
34
+ private var currentCheckAABB = AxisAlignedBB (BlockPos .ORIGIN )
35
+
36
+ init {
37
+ safeListener<InputUpdateEvent > {
38
+ currentCheckAABB = player.entityBoundingBox
39
+ .offset(0.0 , - distanceToFloor, 0.0 )
40
+ .grow(- distanceToEdge, 0.0 , - distanceToEdge)
41
+
42
+ if (autoJump
43
+ && player.onGround
44
+ && world.getCollisionBoxes(player, currentCheckAABB).isEmpty()
45
+ && (! player.isSneaking || ! onSneak)
46
+ && (it.movementInput.forwardKeyDown || ! onlyOnForwardKey)
47
+ ) it.movementInput.jump = true
48
+ }
49
+
50
+ listener<RenderWorldEvent > {
51
+ if (! esp) return @listener
52
+
53
+ renderer.aFilled = espFilledAlpha
54
+ renderer.aOutline = espOutlineAlpha
55
+ renderer.thickness = thickness
56
+
57
+ renderer.clear()
58
+ Wrapper .player?.let {
59
+ renderer.add(it, espColor, GeometryMasks .Quad .DOWN )
60
+ }
61
+
62
+ renderer.render(false )
63
+ }
64
+ }
65
+ }
0 commit comments