1717
1818package com.lambda.module.modules.player
1919
20- import com.lambda.event.events.MovementEvent
20+ import com.lambda.Lambda.mc
21+ import com.lambda.config.groups.RotationSettings
2122import com.lambda.event.events.UpdateManagerEvent
2223import com.lambda.event.listener.SafeListener.Companion.listen
2324import com.lambda.gui.LambdaScreen
@@ -28,68 +29,49 @@ import com.lambda.interaction.request.rotating.visibilty.lookAt
2829import com.lambda.module.Module
2930import com.lambda.module.tag.ModuleTag
3031import com.lambda.util.KeyboardUtils.isKeyPressed
31- import com.lambda.util.math.MathUtils.toDouble
32+ import com.lambda.util.NamedEnum
3233import com.lambda.util.math.MathUtils.toFloatSign
33- import com.lambda.util.player.MovementUtils.update
3434import net.minecraft.client.gui.screen.ChatScreen
3535import net.minecraft.client.gui.screen.Screen
36+ import net.minecraft.client.gui.screen.ingame.AbstractCommandBlockScreen
37+ import net.minecraft.client.gui.screen.ingame.AbstractSignEditScreen
3638import net.minecraft.client.gui.screen.ingame.AnvilScreen
37- import net.minecraft.client.gui.screen.ingame.CommandBlockScreen
38- import net.minecraft.client.gui.screen.ingame.SignEditScreen
39- import org.lwjgl.glfw.GLFW.GLFW_KEY_A
40- import org.lwjgl.glfw.GLFW.GLFW_KEY_D
4139import org.lwjgl.glfw.GLFW.GLFW_KEY_DOWN
4240import org.lwjgl.glfw.GLFW.GLFW_KEY_KP_2
4341import org.lwjgl.glfw.GLFW.GLFW_KEY_KP_4
4442import org.lwjgl.glfw.GLFW.GLFW_KEY_KP_6
4543import org.lwjgl.glfw.GLFW.GLFW_KEY_KP_8
4644import org.lwjgl.glfw.GLFW.GLFW_KEY_LEFT
47- import org.lwjgl.glfw.GLFW.GLFW_KEY_LEFT_CONTROL
48- import org.lwjgl.glfw.GLFW.GLFW_KEY_LEFT_SHIFT
4945import org.lwjgl.glfw.GLFW.GLFW_KEY_RIGHT
50- import org.lwjgl.glfw.GLFW.GLFW_KEY_S
51- import org.lwjgl.glfw.GLFW.GLFW_KEY_SPACE
5246import org.lwjgl.glfw.GLFW.GLFW_KEY_UP
53- import org.lwjgl.glfw.GLFW.GLFW_KEY_W
5447
5548object InventoryMove : Module(
5649 name = " InventoryMove" ,
5750 description = " Allows you to move with GUIs opened" ,
5851 tag = ModuleTag .PLAYER ,
5952) {
60- private val speed by setting(" Rotation Speed" , 5 , 1 .. 20 , 1 , unit = " °/tick" )
53+ private val arrowKeys by setting(" Arrow Keys" , false , " Allows rotating the players camera using the arrow keys" )
54+ private val speed by setting(" Rotation Speed" , 5 , 1 .. 20 , 1 , unit = " °/tick" ) { arrowKeys }
6155 private val rotationConfig = RotationConfig .Instant (RotationMode .Lock )
6256
57+ @JvmStatic
58+ val shouldMove get() = isEnabled && ! mc.currentScreen.hasInputOrNull
59+
6360 /* *
6461 * Whether the current screen has text inputs or is null
6562 */
63+ @JvmStatic
6664 val Screen ?.hasInputOrNull: Boolean
6765 get() = this is ChatScreen ||
68- this is SignEditScreen ||
66+ this is AbstractSignEditScreen ||
6967 this is AnvilScreen ||
70- this is CommandBlockScreen ||
68+ this is AbstractCommandBlockScreen ||
7169 this is LambdaScreen ||
7270 this == null
7371
7472 init {
75- listen<MovementEvent .InputUpdate >(20250415 ) { event ->
76- if (mc.currentScreen.hasInputOrNull) return @listen
77-
78- val forward = isKeyPressed(GLFW_KEY_W ).toDouble() -
79- isKeyPressed(GLFW_KEY_S ).toDouble()
80-
81- val strafe = isKeyPressed(GLFW_KEY_A ).toDouble() -
82- isKeyPressed(GLFW_KEY_D ).toDouble()
83-
84- val jump = isKeyPressed(GLFW_KEY_SPACE )
85- val sneak = isKeyPressed(GLFW_KEY_LEFT_SHIFT )
86- val sprint = isKeyPressed(GLFW_KEY_LEFT_CONTROL )
87-
88- event.input.update(forward, strafe, jump, sneak, sprint)
89- }
90-
9173 listen<UpdateManagerEvent .Rotation > {
92- if (mc.currentScreen.hasInputOrNull) return @listen
74+ if (! arrowKeys || mc.currentScreen.hasInputOrNull) return @listen
9375
9476 val pitch = (isKeyPressed(GLFW_KEY_DOWN , GLFW_KEY_KP_2 ).toFloatSign() -
9577 isKeyPressed(GLFW_KEY_UP , GLFW_KEY_KP_8 ).toFloatSign()) * speed
@@ -101,4 +83,19 @@ object InventoryMove : Module(
10183 ).requestBy(rotationConfig)
10284 }
10385 }
86+
87+ @JvmStatic
88+ fun isKeyMovementRelated (key : Int ): Boolean {
89+ val options = mc.options
90+ return when (key) {
91+ options.forwardKey.boundKey.code,
92+ options.backKey.boundKey.code,
93+ options.leftKey.boundKey.code,
94+ options.rightKey.boundKey.code,
95+ options.jumpKey.boundKey.code,
96+ options.sprintKey.boundKey.code,
97+ options.sneakKey.boundKey.code -> true
98+ else -> false
99+ }
100+ }
104101}
0 commit comments