diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/client/MixinKeyboardInput.java b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/client/MixinKeyboardInput.java index 2f51380e9a7..37156a2ee43 100644 --- a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/client/MixinKeyboardInput.java +++ b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/client/MixinKeyboardInput.java @@ -25,8 +25,8 @@ import net.ccbluex.liquidbounce.event.events.MovementInputEvent; import net.ccbluex.liquidbounce.event.events.SprintEvent; import net.ccbluex.liquidbounce.features.module.modules.movement.ModuleInventoryMove; -import net.ccbluex.liquidbounce.utils.aiming.MovementCorrection; import net.ccbluex.liquidbounce.utils.aiming.RotationManager; +import net.ccbluex.liquidbounce.utils.aiming.features.MovementCorrection; import net.ccbluex.liquidbounce.utils.input.InputTracker; import net.ccbluex.liquidbounce.utils.movement.DirectionalInput; import net.minecraft.client.MinecraftClient; @@ -109,7 +109,7 @@ private PlayerInput modifyInput(PlayerInput original) { private DirectionalInput transformDirection(DirectionalInput input) { var player = MinecraftClient.getInstance().player; var rotation = RotationManager.INSTANCE.getCurrentRotation(); - var configurable = RotationManager.INSTANCE.getWorkingAimPlan(); + var configurable = RotationManager.INSTANCE.getWorkingRotationTarget(); float z = KeyboardInput.getMovementMultiplier(input.getForwards(), input.getBackwards()); float x = KeyboardInput.getMovementMultiplier(input.getLeft(), input.getRight()); diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/entity/MixinClientPlayerEntity.java b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/entity/MixinClientPlayerEntity.java index 405b2b19ff7..b4a3eb16223 100644 --- a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/entity/MixinClientPlayerEntity.java +++ b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/entity/MixinClientPlayerEntity.java @@ -36,8 +36,8 @@ import net.ccbluex.liquidbounce.integration.VrScreen; import net.ccbluex.liquidbounce.integration.interop.protocol.rest.v1.game.PlayerData; import net.ccbluex.liquidbounce.interfaces.ClientPlayerEntityAddition; -import net.ccbluex.liquidbounce.utils.aiming.Rotation; import net.ccbluex.liquidbounce.utils.aiming.RotationManager; +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation; import net.ccbluex.liquidbounce.utils.movement.DirectionalInput; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/entity/MixinLivingEntity.java b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/entity/MixinLivingEntity.java index fdc7560981d..0e8aa03f177 100644 --- a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/entity/MixinLivingEntity.java +++ b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/entity/MixinLivingEntity.java @@ -26,8 +26,8 @@ import net.ccbluex.liquidbounce.features.module.modules.movement.*; import net.ccbluex.liquidbounce.features.module.modules.render.ModuleAntiBlind; import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.ModuleScaffold; -import net.ccbluex.liquidbounce.utils.aiming.MovementCorrection; import net.ccbluex.liquidbounce.utils.aiming.RotationManager; +import net.ccbluex.liquidbounce.utils.aiming.features.MovementCorrection; import net.minecraft.client.MinecraftClient; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.effect.StatusEffect; @@ -171,7 +171,7 @@ private void hookAfterJumpEvent(CallbackInfo ci) { private Vec3d hookFixRotation(Vec3d original) { var rotationManager = RotationManager.INSTANCE; var rotation = rotationManager.getCurrentRotation(); - var configurable = rotationManager.getWorkingAimPlan(); + var configurable = rotationManager.getWorkingRotationTarget(); if ((Object) this != MinecraftClient.getInstance().player) { return original; @@ -247,7 +247,7 @@ private float hookModifyFallFlyingPitch(float original) { var rotationManager = RotationManager.INSTANCE; var rotation = rotationManager.getCurrentRotation(); - var configurable = rotationManager.getWorkingAimPlan(); + var configurable = rotationManager.getWorkingRotationTarget(); if (rotation == null || configurable == null || configurable.getMovementCorrection() == MovementCorrection.OFF) { return original; @@ -267,7 +267,7 @@ private Vec3d hookModifyFallFlyingRotationVector(Vec3d original) { var rotationManager = RotationManager.INSTANCE; var rotation = rotationManager.getCurrentRotation(); - var configurable = rotationManager.getWorkingAimPlan(); + var configurable = rotationManager.getWorkingRotationTarget(); if (rotation == null || configurable == null || configurable.getMovementCorrection() == MovementCorrection.OFF) { return original; diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/entity/MixinPlayerEntity.java b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/entity/MixinPlayerEntity.java index 0806acb85d4..9d97babb914 100644 --- a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/entity/MixinPlayerEntity.java +++ b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/entity/MixinPlayerEntity.java @@ -34,10 +34,10 @@ import net.ccbluex.liquidbounce.features.module.modules.player.ModuleReach; import net.ccbluex.liquidbounce.features.module.modules.player.nofall.modes.NoFallNoGround; import net.ccbluex.liquidbounce.features.module.modules.world.ModuleNoSlowBreak; -import net.ccbluex.liquidbounce.utils.aiming.AimPlan; -import net.ccbluex.liquidbounce.utils.aiming.MovementCorrection; -import net.ccbluex.liquidbounce.utils.aiming.Rotation; import net.ccbluex.liquidbounce.utils.aiming.RotationManager; +import net.ccbluex.liquidbounce.utils.aiming.RotationTarget; +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation; +import net.ccbluex.liquidbounce.utils.aiming.features.MovementCorrection; import net.minecraft.client.MinecraftClient; import net.minecraft.entity.Entity; import net.minecraft.entity.EquipmentSlot; @@ -95,7 +95,7 @@ private float hookFixRotation(float original) { RotationManager rotationManager = RotationManager.INSTANCE; Rotation rotation = rotationManager.getCurrentRotation(); - AimPlan configurable = rotationManager.getWorkingAimPlan(); + RotationTarget configurable = rotationManager.getWorkingRotationTarget(); if (configurable == null || configurable.getMovementCorrection() == MovementCorrection.OFF || rotation == null) { return original; diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/network/MixinClientPlayNetworkHandler.java b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/network/MixinClientPlayNetworkHandler.java index 6f01cd46568..f0a61a670a1 100644 --- a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/network/MixinClientPlayNetworkHandler.java +++ b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/network/MixinClientPlayNetworkHandler.java @@ -28,8 +28,8 @@ import net.ccbluex.liquidbounce.features.module.modules.misc.betterchat.ModuleBetterChat; import net.ccbluex.liquidbounce.features.module.modules.player.ModuleAntiExploit; import net.ccbluex.liquidbounce.features.module.modules.player.ModuleNoRotateSet; -import net.ccbluex.liquidbounce.utils.aiming.Rotation; import net.ccbluex.liquidbounce.utils.aiming.RotationManager; +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation; import net.ccbluex.liquidbounce.utils.kotlin.Priority; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.DownloadingTerrainScreen; @@ -200,7 +200,7 @@ private void injectNoRotateSet(PlayerPositionLookS2CPacket packet, CallbackInfo true, null ); - RotationManager.INSTANCE.aimAt(aimPlan, Priority.NOT_IMPORTANT, ModuleNoRotateSet.INSTANCE); + RotationManager.INSTANCE.setRotationTarget(aimPlan, Priority.NOT_IMPORTANT, ModuleNoRotateSet.INSTANCE); } // Increase yaw and pitch by a value so small that the difference cannot be seen, diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/network/MixinPlayerInteractItemC2SPacket.java b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/network/MixinPlayerInteractItemC2SPacket.java index ac410fdb8a6..e29b91722e1 100644 --- a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/network/MixinPlayerInteractItemC2SPacket.java +++ b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/network/MixinPlayerInteractItemC2SPacket.java @@ -1,7 +1,7 @@ package net.ccbluex.liquidbounce.injection.mixins.minecraft.network; -import net.ccbluex.liquidbounce.utils.aiming.Rotation; import net.ccbluex.liquidbounce.utils.aiming.RotationManager; +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation; import net.minecraft.network.packet.c2s.play.PlayerInteractItemC2SPacket; import net.minecraft.util.Hand; import org.spongepowered.asm.mixin.Final; diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/render/MixinCamera.java b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/render/MixinCamera.java index 63252b4147b..bfa00bdd872 100644 --- a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/render/MixinCamera.java +++ b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/render/MixinCamera.java @@ -21,9 +21,9 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import net.ccbluex.liquidbounce.features.module.modules.combat.aimbot.ModuleDroneControl; import net.ccbluex.liquidbounce.features.module.modules.render.*; -import net.ccbluex.liquidbounce.utils.aiming.AimPlan; -import net.ccbluex.liquidbounce.utils.aiming.MovementCorrection; import net.ccbluex.liquidbounce.utils.aiming.RotationManager; +import net.ccbluex.liquidbounce.utils.aiming.RotationTarget; +import net.ccbluex.liquidbounce.utils.aiming.features.MovementCorrection; import net.minecraft.client.render.Camera; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; @@ -102,13 +102,13 @@ private void modifyCameraOrientation(BlockView area, Entity focusedEntity, boole this.setRotation(screen.getCameraRotation().x, screen.getCameraRotation().y); } - AimPlan aimPlan = RotationManager.INSTANCE.getWorkingAimPlan(); + RotationTarget rotationTarget = RotationManager.INSTANCE.getWorkingRotationTarget(); var previousRotation = RotationManager.INSTANCE.getPreviousRotation(); var currentRotation = RotationManager.INSTANCE.getCurrentRotation(); boolean shouldModifyRotation = ModuleRotations.INSTANCE.getRunning() && ModuleRotations.INSTANCE.getCamera() - || aimPlan != null && aimPlan.getMovementCorrection() == MovementCorrection.CHANGE_LOOK; + || rotationTarget != null && rotationTarget.getMovementCorrection() == MovementCorrection.CHANGE_LOOK; if (currentRotation == null || previousRotation == null || !shouldModifyRotation) { return; diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/render/MixinGameRenderer.java b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/render/MixinGameRenderer.java index 9cf2d9c0dea..c46f6f9a8f2 100644 --- a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/render/MixinGameRenderer.java +++ b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/render/MixinGameRenderer.java @@ -33,9 +33,9 @@ import net.ccbluex.liquidbounce.interfaces.LightmapTextureManagerAddition; import net.ccbluex.liquidbounce.render.engine.UiRenderer; import net.ccbluex.liquidbounce.render.shader.shaders.OutlineEffectShader; -import net.ccbluex.liquidbounce.utils.aiming.RaytracingExtensionsKt; -import net.ccbluex.liquidbounce.utils.aiming.Rotation; import net.ccbluex.liquidbounce.utils.aiming.RotationManager; +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation; +import net.ccbluex.liquidbounce.utils.aiming.utils.RaytracingKt; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ChatScreen; @@ -111,7 +111,7 @@ private HitResult hookRaycast(HitResult original, Entity camera, double blockInt rotation = cameraRotation; } - return RaytracingExtensionsKt.raycast(rotation, Math.max(blockInteractionRange, entityInteractionRange), + return RaytracingKt.raycast(rotation, Math.max(blockInteractionRange, entityInteractionRange), ModuleLiquidPlace.INSTANCE.getRunning(), tickDelta); } diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/render/MixinLivingEntityRenderer.java b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/render/MixinLivingEntityRenderer.java index 4d5276743cb..ab342c7650d 100644 --- a/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/render/MixinLivingEntityRenderer.java +++ b/src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/render/MixinLivingEntityRenderer.java @@ -29,8 +29,8 @@ import net.ccbluex.liquidbounce.features.module.modules.render.ModuleTrueSight; import net.ccbluex.liquidbounce.features.module.modules.render.esp.ModuleESP; import net.ccbluex.liquidbounce.interfaces.EntityRenderStateAddition; -import net.ccbluex.liquidbounce.utils.aiming.Rotation; import net.ccbluex.liquidbounce.utils.aiming.RotationManager; +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.render.entity.LivingEntityRenderer; diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/config/types/Configurable.kt b/src/main/kotlin/net/ccbluex/liquidbounce/config/types/Configurable.kt index ab70d18bffb..6f3cc9267b7 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/config/types/Configurable.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/config/types/Configurable.kt @@ -33,10 +33,6 @@ import org.lwjgl.glfw.GLFW @Suppress("TooManyFunctions") open class Configurable( name: String, - /** - * Used for backwards compatibility when renaming. - */ - aliases: Array = emptyArray(), value: MutableList> = mutableListOf(), valueType: ValueType = ValueType.CONFIGURABLE, @@ -48,7 +44,11 @@ open class Configurable( * The options should be used in common options, so that * descriptions don't have to be written twice. */ - independentDescription: Boolean = false + independentDescription: Boolean = false, + /** + * Used for backwards compatibility when renaming. + */ + aliases: Array = emptyArray(), ) : Value>>( name, aliases, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/config/types/ToggleableConfigurable.kt b/src/main/kotlin/net/ccbluex/liquidbounce/config/types/ToggleableConfigurable.kt index cb1b121c9ad..210a217119b 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/config/types/ToggleableConfigurable.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/config/types/ToggleableConfigurable.kt @@ -33,8 +33,9 @@ import net.ccbluex.liquidbounce.script.ScriptApiRequired abstract class ToggleableConfigurable( @Exclude @ProtocolExclude val parent: EventListener? = null, name: String, - enabled: Boolean -) : EventListener, Configurable(name, valueType = ValueType.TOGGLEABLE), MinecraftShortcuts { + enabled: Boolean, + aliases: Array = emptyArray(), +) : EventListener, Configurable(name, valueType = ValueType.TOGGLEABLE, aliases = aliases), MinecraftShortcuts { // TODO: Make enabled change also call newState internal var enabled by boolean("Enabled", enabled) diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/ClientModule.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/ClientModule.kt index d576e954e20..8a8f996e3fa 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/ClientModule.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/ClientModule.kt @@ -55,7 +55,7 @@ open class ClientModule( hide: Boolean = false, // default hide @Exclude val disableOnQuit: Boolean = false, // disables module when player leaves the world, aliases: Array = emptyArray() // additional names under which the module is known -) : EventListener, Configurable(name, aliases), MinecraftShortcuts { +) : EventListener, Configurable(name, aliases = aliases), MinecraftShortcuts { /** * Option to enable or disable the module, this DOES NOT mean the module is running. This diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/ModuleAimbot.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/ModuleAimbot.kt index f1681eec01e..b9584220557 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/ModuleAimbot.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/ModuleAimbot.kt @@ -26,9 +26,15 @@ import net.ccbluex.liquidbounce.event.handler import net.ccbluex.liquidbounce.features.module.Category import net.ccbluex.liquidbounce.features.module.ClientModule import net.ccbluex.liquidbounce.render.renderEnvironmentForWorld -import net.ccbluex.liquidbounce.utils.aiming.* -import net.ccbluex.liquidbounce.utils.aiming.anglesmooth.LinearAngleSmoothMode -import net.ccbluex.liquidbounce.utils.aiming.anglesmooth.SigmoidAngleSmoothMode +import net.ccbluex.liquidbounce.utils.aiming.PointTracker +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.data.VecRotation +import net.ccbluex.liquidbounce.utils.aiming.features.UpRamp +import net.ccbluex.liquidbounce.utils.aiming.features.anglesmooth.LinearAngleSmoothMode +import net.ccbluex.liquidbounce.utils.aiming.features.anglesmooth.SigmoidAngleSmoothMode +import net.ccbluex.liquidbounce.utils.aiming.preference.LeastDifferencePreference +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceBox +import net.ccbluex.liquidbounce.utils.aiming.utils.setRotation import net.ccbluex.liquidbounce.utils.client.Chronometer import net.ccbluex.liquidbounce.utils.client.Timer import net.ccbluex.liquidbounce.utils.combat.TargetPriority @@ -69,7 +75,7 @@ object ModuleAimbot : ClientModule("Aimbot", Category.COMBAT, aliases = arrayOf( ) } - private val slowStart = tree(SlowStart(this)) + private val upRamp = tree(UpRamp(this)) private val ignoreOpenScreen by boolean("IgnoreOpenScreen", false) private val ignoreOpenContainer by boolean("IgnoreOpenContainer", false) @@ -92,7 +98,7 @@ object ModuleAimbot : ClientModule("Aimbot", Category.COMBAT, aliases = arrayOf( targetRotation = findNextTargetRotation()?.let { (target, rotation) -> angleSmooth.activeChoice.limitAngleChange( - slowStart.rotationFactor, + upRamp.rotationFactor, player.rotation, rotation.rotation, rotation.vec, @@ -173,7 +179,7 @@ object ModuleAimbot : ClientModule("Aimbot", Category.COMBAT, aliases = arrayOf( ) ?: continue if (target != targetTracker.target) { - slowStart.onTrigger() + upRamp.onTrigger() } targetTracker.target = target return target to spot diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/ModuleAutoShoot.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/ModuleAutoShoot.kt index 4bc4d907d3f..8198a00bcff 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/ModuleAutoShoot.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/ModuleAutoShoot.kt @@ -31,9 +31,9 @@ import net.ccbluex.liquidbounce.features.module.ClientModule import net.ccbluex.liquidbounce.features.module.modules.combat.killaura.ModuleKillAura import net.ccbluex.liquidbounce.render.renderEnvironmentForWorld import net.ccbluex.liquidbounce.utils.aiming.PointTracker -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.aiming.projectiles.SituationalProjectileAngleCalculator import net.ccbluex.liquidbounce.utils.clicking.Clicker import net.ccbluex.liquidbounce.utils.client.SilentHotbar @@ -137,7 +137,7 @@ object ModuleAutoShoot : ClientModule("AutoShoot", Category.COMBAT) { val rotation = generateRotation(target, GravityType.fromHand(hand)) // Set the rotation with the usage priority of 2. - RotationManager.aimAt( + RotationManager.setRotationTarget( rotationConfigurable.toAimPlan(rotation ?: return@handler, considerInventory = considerInventory), Priority.IMPORTANT_FOR_USAGE_2, this ) diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/DroneControlScreen.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/DroneControlScreen.kt index f371bad1944..c25ab03f28f 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/DroneControlScreen.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/DroneControlScreen.kt @@ -2,8 +2,7 @@ package net.ccbluex.liquidbounce.features.module.modules.combat.aimbot import net.ccbluex.liquidbounce.features.module.modules.render.ModuleDebug import net.ccbluex.liquidbounce.render.engine.Color4b -import net.ccbluex.liquidbounce.utils.aiming.Rotation -import net.ccbluex.liquidbounce.utils.aiming.RotationManager +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.client.asText import net.ccbluex.liquidbounce.utils.client.mc import net.ccbluex.liquidbounce.utils.client.player diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/ModuleDroneControl.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/ModuleDroneControl.kt index f417b6b4ecc..bc0d08f6fbd 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/ModuleDroneControl.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/ModuleDroneControl.kt @@ -9,11 +9,9 @@ import net.ccbluex.liquidbounce.utils.aiming.projectiles.SituationalProjectileAn import net.ccbluex.liquidbounce.utils.entity.ConstantPositionExtrapolation import net.ccbluex.liquidbounce.utils.kotlin.Priority import net.ccbluex.liquidbounce.utils.render.trajectory.TrajectoryInfo -import net.minecraft.client.option.KeyBinding import net.minecraft.entity.Entity import net.minecraft.util.Hand import net.minecraft.util.math.Vec3d -import org.lwjgl.glfw.GLFW object ModuleDroneControl : ClientModule("DroneControl", Category.COMBAT) { @@ -49,7 +47,7 @@ object ModuleDroneControl : ClientModule("DroneControl", Category.COMBAT) { } if (currentRotation != null) { - RotationManager.aimAt( + RotationManager.setRotationTarget( rotation = currentRotation, configurable = rotationsConfigurable, priority = Priority.NORMAL, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/ModuleProjectileAimbot.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/ModuleProjectileAimbot.kt index ed3db33e218..2a6d9bd1dbd 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/ModuleProjectileAimbot.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/ModuleProjectileAimbot.kt @@ -38,7 +38,7 @@ object ModuleProjectileAimbot : ClientModule("ProjectileAimbot", Category.COMBAT SituationalProjectileAngleCalculator.calculateAngleForEntity(trajectory, target) } ?: return@tickHandler - RotationManager.aimAt( + RotationManager.setRotationTarget( rotation, considerInventory = false, rotations, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/autobow/AutoBowAimbotFeature.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/autobow/AutoBowAimbotFeature.kt index c33fc807332..f8850b81d93 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/autobow/AutoBowAimbotFeature.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/autobow/AutoBowAimbotFeature.kt @@ -6,9 +6,9 @@ import net.ccbluex.liquidbounce.event.handler import net.ccbluex.liquidbounce.event.tickHandler import net.ccbluex.liquidbounce.features.module.modules.combat.aimbot.ModuleAutoBow import net.ccbluex.liquidbounce.render.renderEnvironmentForGUI -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.aiming.projectiles.SituationalProjectileAngleCalculator import net.ccbluex.liquidbounce.utils.combat.TargetPriority import net.ccbluex.liquidbounce.utils.combat.TargetTracker @@ -58,7 +58,7 @@ object AutoBowAimbotFeature : ToggleableConfigurable(ModuleAutoBow, "BowAimbot", rotation != null } ?: return@tickHandler - RotationManager.aimAt( + RotationManager.setRotationTarget( rotation!!, priority = Priority.IMPORTANT_FOR_USAGE_1, provider = ModuleAutoBow, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/autobow/AutoBowAutoShootFeature.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/autobow/AutoBowAutoShootFeature.kt index 623d3ac0c4e..cb018370805 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/autobow/AutoBowAutoShootFeature.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/aimbot/autobow/AutoBowAutoShootFeature.kt @@ -8,13 +8,17 @@ import net.ccbluex.liquidbounce.features.module.modules.combat.aimbot.ModuleAuto import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.client.toRadians import net.ccbluex.liquidbounce.utils.combat.shouldBeAttacked -import net.ccbluex.liquidbounce.utils.entity.* +import net.ccbluex.liquidbounce.utils.entity.PlayerSimulationCache +import net.ccbluex.liquidbounce.utils.entity.SimulatedArrow +import net.ccbluex.liquidbounce.utils.entity.SimulatedPlayerCache import net.ccbluex.liquidbounce.utils.math.geometry.Line import net.ccbluex.liquidbounce.utils.render.trajectory.TrajectoryInfo import net.minecraft.client.network.AbstractClientPlayerEntity import net.minecraft.item.BowItem import net.minecraft.item.TridentItem -import net.minecraft.util.math.* +import net.minecraft.util.math.Box +import net.minecraft.util.math.MathHelper +import net.minecraft.util.math.Vec3d object AutoBowAutoShootFeature : ToggleableConfigurable(ModuleAutoBow, "AutoShoot", true) { @@ -81,7 +85,7 @@ object AutoBowAutoShootFeature : ToggleableConfigurable(ModuleAutoBow, "AutoShoo return@handler } - val targetRotation = RotationManager.workingAimPlan ?: return@handler + val targetRotation = RotationManager.workingRotationTarget ?: return@handler val aimDifference = RotationManager.serverRotation.angleTo(targetRotation.rotation) diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/modes/CriticalsJump.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/modes/CriticalsJump.kt index a6ebf51bdd9..b53f952e291 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/modes/CriticalsJump.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/modes/CriticalsJump.kt @@ -30,8 +30,7 @@ import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.ModuleC import net.ccbluex.liquidbounce.features.module.modules.combat.killaura.ModuleKillAura import net.ccbluex.liquidbounce.features.module.modules.misc.debugrecorder.modes.GenericDebugRecorder import net.ccbluex.liquidbounce.features.module.modules.render.ModuleDebug -import net.ccbluex.liquidbounce.utils.aiming.Rotation -import net.ccbluex.liquidbounce.utils.aiming.RotationManager +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.combat.findEnemies import net.ccbluex.liquidbounce.utils.entity.FallingPlayer import net.ccbluex.liquidbounce.utils.entity.SimulatedPlayer diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/SubmoduleIdPredict.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/SubmoduleIdPredict.kt index dc451bfbb78..6f39624e72d 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/SubmoduleIdPredict.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/SubmoduleIdPredict.kt @@ -24,9 +24,9 @@ import net.ccbluex.liquidbounce.event.events.WorldChangeEvent import net.ccbluex.liquidbounce.event.handler import net.ccbluex.liquidbounce.features.module.modules.combat.crystalaura.destroy.SubmoduleCrystalDestroyer import net.ccbluex.liquidbounce.features.module.modules.render.ModuleDebug -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager -import net.ccbluex.liquidbounce.utils.aiming.raytraceBox +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceBox import net.minecraft.entity.decoration.EndCrystalEntity import net.minecraft.network.packet.c2s.play.PlayerInteractEntityC2SPacket import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/destroy/CrystalAuraDestroyTargetFactory.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/destroy/CrystalAuraDestroyTargetFactory.kt index 6e8d4693540..0f89cbed0d9 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/destroy/CrystalAuraDestroyTargetFactory.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/destroy/CrystalAuraDestroyTargetFactory.kt @@ -23,7 +23,7 @@ import net.ccbluex.liquidbounce.features.module.modules.combat.crystalaura.Cryst import net.ccbluex.liquidbounce.features.module.modules.combat.crystalaura.destroy.SubmoduleCrystalDestroyer.getMaxRange import net.ccbluex.liquidbounce.features.module.modules.combat.crystalaura.destroy.SubmoduleCrystalDestroyer.range import net.ccbluex.liquidbounce.features.module.modules.combat.crystalaura.destroy.SubmoduleCrystalDestroyer.wallsRange -import net.ccbluex.liquidbounce.utils.aiming.canSeeBox +import net.ccbluex.liquidbounce.utils.aiming.utils.canSeeBox import net.ccbluex.liquidbounce.utils.combat.getEntitiesBoxInRange import net.ccbluex.liquidbounce.utils.math.sq import net.minecraft.entity.Entity diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/destroy/SubmoduleCrystalDestroyer.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/destroy/SubmoduleCrystalDestroyer.kt index bb93703239d..49e8b83f222 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/destroy/SubmoduleCrystalDestroyer.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/destroy/SubmoduleCrystalDestroyer.kt @@ -25,10 +25,10 @@ import net.ccbluex.liquidbounce.features.module.modules.combat.crystalaura.post. import net.ccbluex.liquidbounce.features.module.modules.render.ModuleDebug import net.ccbluex.liquidbounce.render.FULL_BOX import net.ccbluex.liquidbounce.render.engine.Color4b -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager -import net.ccbluex.liquidbounce.utils.aiming.facingEnemy -import net.ccbluex.liquidbounce.utils.aiming.raytraceBox +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.utils.facingEnemy +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceBox import net.ccbluex.liquidbounce.utils.block.SwingMode import net.ccbluex.liquidbounce.utils.client.Chronometer import net.ccbluex.liquidbounce.utils.combat.attack diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/place/SubmoduleCrystalPlacer.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/place/SubmoduleCrystalPlacer.kt index 6fd3b39a0a9..d8954bd3deb 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/place/SubmoduleCrystalPlacer.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/place/SubmoduleCrystalPlacer.kt @@ -23,7 +23,13 @@ import net.ccbluex.liquidbounce.features.module.modules.combat.crystalaura.Modul import net.ccbluex.liquidbounce.features.module.modules.combat.crystalaura.SubmoduleIdPredict import net.ccbluex.liquidbounce.features.module.modules.combat.crystalaura.SwitchMode import net.ccbluex.liquidbounce.render.engine.Color4b -import net.ccbluex.liquidbounce.utils.aiming.* +import net.ccbluex.liquidbounce.utils.aiming.NoRotationMode +import net.ccbluex.liquidbounce.utils.aiming.RotationManager +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.data.VecRotation +import net.ccbluex.liquidbounce.utils.aiming.utils.findClosestPointOnBlockInLineWithCrystal +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceBlock +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceUpperBlockSide import net.ccbluex.liquidbounce.utils.block.SwingMode import net.ccbluex.liquidbounce.utils.block.getState import net.ccbluex.liquidbounce.utils.client.Chronometer diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/place/conditions/OnlyAboveCondition.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/place/conditions/OnlyAboveCondition.kt index f17189e8e97..c5fba1b57e4 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/place/conditions/OnlyAboveCondition.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/crystalaura/place/conditions/OnlyAboveCondition.kt @@ -22,7 +22,7 @@ import net.ccbluex.liquidbounce.features.module.modules.combat.crystalaura.place import net.ccbluex.liquidbounce.features.module.modules.combat.crystalaura.place.PlacementCondition import net.ccbluex.liquidbounce.features.module.modules.combat.crystalaura.place.PlacementContext import net.ccbluex.liquidbounce.features.module.modules.combat.crystalaura.place.SubmoduleCrystalPlacer -import net.ccbluex.liquidbounce.utils.aiming.canSeeUpperBlockSide +import net.ccbluex.liquidbounce.utils.aiming.utils.canSeeUpperBlockSide import net.minecraft.util.math.BlockPos /** diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/killaura/ModuleKillAura.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/killaura/ModuleKillAura.kt index 22f20ac95ba..6523d114fb0 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/killaura/ModuleKillAura.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/killaura/ModuleKillAura.kt @@ -48,7 +48,16 @@ import net.ccbluex.liquidbounce.features.module.modules.misc.debugrecorder.modes import net.ccbluex.liquidbounce.features.module.modules.render.ModuleDebug import net.ccbluex.liquidbounce.render.engine.Color4b import net.ccbluex.liquidbounce.render.renderEnvironmentForWorld -import net.ccbluex.liquidbounce.utils.aiming.* +import net.ccbluex.liquidbounce.utils.aiming.PointTracker +import net.ccbluex.liquidbounce.utils.aiming.RotationManager +import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.data.VecRotation +import net.ccbluex.liquidbounce.utils.aiming.preference.LeastDifferencePreference +import net.ccbluex.liquidbounce.utils.aiming.utils.facingEnemy +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceBox +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceEntity +import net.ccbluex.liquidbounce.utils.aiming.utils.withFixedYaw import net.ccbluex.liquidbounce.utils.clicking.Clicker import net.ccbluex.liquidbounce.utils.combat.CombatManager import net.ccbluex.liquidbounce.utils.combat.TargetTracker @@ -365,15 +374,15 @@ object ModuleKillAura : ClientModule("KillAura", Category.COMBAT) { val ticks = rotations.howLongToReach(spot.rotation) if (rotations.rotationTimingMode == SNAP && !clickScheduler.isClickOnNextTick(ticks.coerceAtLeast(1)) - // On Tick can only be used if the distance is not too far compared to the turn speed - || rotations.rotationTimingMode == ON_TICK && ticks <= 1) { + // On Tick can only be used if the distance is not too far compared to the turn speed + || rotations.rotationTimingMode == ON_TICK && ticks <= 1) { continue } val (rotation, vec) = spot targetTracker.target = target - RotationManager.aimAt( + RotationManager.setRotationTarget( rotations.toAimPlan( rotation, vec, @@ -391,7 +400,7 @@ object ModuleKillAura : ClientModule("KillAura", Category.COMBAT) { if (KillAuraFightBot.enabled) { targetTracker.selectFirst() - RotationManager.aimAt( + RotationManager.setRotationTarget( rotations.toAimPlan( KillAuraFightBot.getMovementRotation(), considerInventory = !ignoreOpenInventory diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/killaura/features/KillAuraAutoBlock.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/killaura/features/KillAuraAutoBlock.kt index aec38553f02..61f10b01cad 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/killaura/features/KillAuraAutoBlock.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/killaura/features/KillAuraAutoBlock.kt @@ -33,9 +33,9 @@ import net.ccbluex.liquidbounce.features.module.modules.combat.killaura.ModuleKi import net.ccbluex.liquidbounce.features.module.modules.combat.killaura.ModuleKillAura.wallRange import net.ccbluex.liquidbounce.features.module.modules.render.ModuleDebug import net.ccbluex.liquidbounce.utils.aiming.RotationManager -import net.ccbluex.liquidbounce.utils.aiming.facingEnemy -import net.ccbluex.liquidbounce.utils.aiming.raycast -import net.ccbluex.liquidbounce.utils.aiming.raytraceEntity +import net.ccbluex.liquidbounce.utils.aiming.utils.facingEnemy +import net.ccbluex.liquidbounce.utils.aiming.utils.raycast +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceEntity import net.ccbluex.liquidbounce.utils.client.PacketQueueManager import net.ccbluex.liquidbounce.utils.client.isOlderThanOrEquals1_7_10 import net.ccbluex.liquidbounce.utils.combat.shouldBeAttacked diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/killaura/features/KillAuraFightBot.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/killaura/features/KillAuraFightBot.kt index 0d346cc122e..f6b23cbef24 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/killaura/features/KillAuraFightBot.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/killaura/features/KillAuraFightBot.kt @@ -25,7 +25,7 @@ import net.ccbluex.liquidbounce.features.module.modules.combat.killaura.ModuleKi import net.ccbluex.liquidbounce.features.module.modules.combat.killaura.ModuleKillAura.targetTracker import net.ccbluex.liquidbounce.features.module.modules.render.ModuleDebug import net.ccbluex.liquidbounce.render.engine.Color4b -import net.ccbluex.liquidbounce.utils.aiming.Rotation +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.entity.box import net.ccbluex.liquidbounce.utils.entity.rotation import net.ccbluex.liquidbounce.utils.math.times diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/killaura/features/KillAuraNotifyWhenFail.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/killaura/features/KillAuraNotifyWhenFail.kt index d70d071ffbc..e48b3cb3c93 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/killaura/features/KillAuraNotifyWhenFail.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/killaura/features/KillAuraNotifyWhenFail.kt @@ -26,7 +26,7 @@ import net.ccbluex.liquidbounce.features.module.modules.combat.killaura.features import net.ccbluex.liquidbounce.render.* import net.ccbluex.liquidbounce.render.engine.Color4b import net.ccbluex.liquidbounce.render.utils.rainbow -import net.ccbluex.liquidbounce.utils.aiming.Rotation +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.client.player import net.ccbluex.liquidbounce.utils.client.world import net.ccbluex.liquidbounce.utils.entity.box diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/velocity/mode/VelocityStrafe.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/velocity/mode/VelocityStrafe.kt index b3943f25a94..4edbedf482c 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/velocity/mode/VelocityStrafe.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/combat/velocity/mode/VelocityStrafe.kt @@ -25,7 +25,7 @@ import net.ccbluex.liquidbounce.event.events.PlayerMoveEvent import net.ccbluex.liquidbounce.event.handler import net.ccbluex.liquidbounce.event.sequenceHandler import net.ccbluex.liquidbounce.utils.aiming.RotationManager -import net.ccbluex.liquidbounce.utils.aiming.facingEnemy +import net.ccbluex.liquidbounce.utils.aiming.utils.facingEnemy import net.ccbluex.liquidbounce.utils.combat.findEnemy import net.ccbluex.liquidbounce.utils.entity.rotation import net.ccbluex.liquidbounce.utils.entity.sqrtSpeed diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/exploit/ModuleClickTp.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/exploit/ModuleClickTp.kt index 48bd8b0e39f..44b414c09ab 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/exploit/ModuleClickTp.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/exploit/ModuleClickTp.kt @@ -29,7 +29,7 @@ import net.ccbluex.liquidbounce.features.module.Category import net.ccbluex.liquidbounce.features.module.ClientModule import net.ccbluex.liquidbounce.render.* import net.ccbluex.liquidbounce.render.engine.Color4b -import net.ccbluex.liquidbounce.utils.aiming.raycast +import net.ccbluex.liquidbounce.utils.aiming.utils.raycast import net.ccbluex.liquidbounce.utils.block.canStandOn import net.ccbluex.liquidbounce.utils.block.getState import net.ccbluex.liquidbounce.utils.client.PacketQueueManager diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/fun/ModuleDerp.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/fun/ModuleDerp.kt index f161801210e..bc380888b0a 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/fun/ModuleDerp.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/fun/ModuleDerp.kt @@ -23,9 +23,9 @@ import net.ccbluex.liquidbounce.config.types.ChoiceConfigurable import net.ccbluex.liquidbounce.event.tickHandler import net.ccbluex.liquidbounce.features.module.Category import net.ccbluex.liquidbounce.features.module.ClientModule -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.kotlin.Priority import net.ccbluex.liquidbounce.utils.kotlin.random @@ -60,7 +60,7 @@ object ModuleDerp : ClientModule("Derp", Category.FUN) { } } - RotationManager.aimAt(rotationsConfigurable.toAimPlan(Rotation(yaw, pitch)), Priority.NOT_IMPORTANT, + RotationManager.setRotationTarget(rotationsConfigurable.toAimPlan(Rotation(yaw, pitch)), Priority.NOT_IMPORTANT, this@ModuleDerp) } diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/misc/ModuleAutoPearl.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/misc/ModuleAutoPearl.kt index b0ca65c2f23..f46d94dacd6 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/misc/ModuleAutoPearl.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/misc/ModuleAutoPearl.kt @@ -21,21 +21,32 @@ package net.ccbluex.liquidbounce.features.module.modules.misc import com.oracle.truffle.runtime.collection.ArrayQueue import net.ccbluex.liquidbounce.config.types.NamedChoice import net.ccbluex.liquidbounce.config.types.ToggleableConfigurable -import net.ccbluex.liquidbounce.event.* import net.ccbluex.liquidbounce.event.events.PacketEvent import net.ccbluex.liquidbounce.event.events.RotationUpdateEvent +import net.ccbluex.liquidbounce.event.handler +import net.ccbluex.liquidbounce.event.sequenceHandler +import net.ccbluex.liquidbounce.event.tickHandler import net.ccbluex.liquidbounce.features.module.Category import net.ccbluex.liquidbounce.features.module.ClientModule import net.ccbluex.liquidbounce.features.module.modules.combat.killaura.ModuleKillAura -import net.ccbluex.liquidbounce.utils.aiming.* +import net.ccbluex.liquidbounce.utils.aiming.RotationManager +import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.aiming.projectiles.SituationalProjectileAngleCalculator +import net.ccbluex.liquidbounce.utils.aiming.utils.RotationUtil import net.ccbluex.liquidbounce.utils.combat.CombatManager import net.ccbluex.liquidbounce.utils.combat.shouldBeAttacked -import net.ccbluex.liquidbounce.utils.inventory.* +import net.ccbluex.liquidbounce.utils.inventory.HotbarItemSlot +import net.ccbluex.liquidbounce.utils.inventory.OffHandSlot +import net.ccbluex.liquidbounce.utils.inventory.Slots +import net.ccbluex.liquidbounce.utils.inventory.useHotbarSlotOrOffhand import net.ccbluex.liquidbounce.utils.kotlin.Priority import net.ccbluex.liquidbounce.utils.render.trajectory.TrajectoryInfo import net.ccbluex.liquidbounce.utils.render.trajectory.TrajectoryInfoRenderer -import net.minecraft.entity.* +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityDimensions +import net.minecraft.entity.EntityType +import net.minecraft.entity.SpawnReason import net.minecraft.entity.projectile.thrown.EnderPearlEntity import net.minecraft.item.Items import net.minecraft.network.packet.s2c.play.EntitySpawnS2CPacket @@ -107,7 +118,7 @@ object ModuleAutoPearl : ClientModule("AutoPearl", Category.MISC, aliases = arra CombatManager.pauseCombatForAtLeast(combatPauseTime) if (Rotate.enabled) { - RotationManager.aimAt( + RotationManager.setRotationTarget( Rotate.rotations.toAimPlan(rotation), Priority.IMPORTANT_FOR_USAGE_3, this@ModuleAutoPearl @@ -126,7 +137,7 @@ object ModuleAutoPearl : ClientModule("AutoPearl", Category.MISC, aliases = arra } waitConditional(20) { - RotationManager.aimAt( + RotationManager.setRotationTarget( Rotate.rotations.toAimPlan(rotation), Priority.IMPORTANT_FOR_USAGE_3, this@ModuleAutoPearl diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/misc/ModuleMiddleClickAction.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/misc/ModuleMiddleClickAction.kt index 57adefc2f09..f7c0be40641 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/misc/ModuleMiddleClickAction.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/misc/ModuleMiddleClickAction.kt @@ -27,8 +27,8 @@ import net.ccbluex.liquidbounce.event.tickHandler import net.ccbluex.liquidbounce.features.misc.FriendManager import net.ccbluex.liquidbounce.features.module.Category import net.ccbluex.liquidbounce.features.module.ClientModule -import net.ccbluex.liquidbounce.utils.aiming.facingEnemy -import net.ccbluex.liquidbounce.utils.aiming.raytraceEntity +import net.ccbluex.liquidbounce.utils.aiming.utils.facingEnemy +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceEntity import net.ccbluex.liquidbounce.utils.client.SilentHotbar import net.ccbluex.liquidbounce.utils.client.notification import net.ccbluex.liquidbounce.utils.entity.rotation diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/misc/debugrecorder/modes/AimDebugRecorder.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/misc/debugrecorder/modes/AimDebugRecorder.kt index 57cb0c1a5dd..5e2a2d5457a 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/misc/debugrecorder/modes/AimDebugRecorder.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/misc/debugrecorder/modes/AimDebugRecorder.kt @@ -24,7 +24,7 @@ package net.ccbluex.liquidbounce.features.module.modules.misc.debugrecorder.mode import com.google.gson.JsonObject import net.ccbluex.liquidbounce.event.tickHandler import net.ccbluex.liquidbounce.features.module.modules.misc.debugrecorder.ModuleDebugRecorder -import net.ccbluex.liquidbounce.utils.aiming.Rotation +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.combat.shouldBeAttacked import net.ccbluex.liquidbounce.utils.entity.box import net.ccbluex.liquidbounce.utils.entity.lastRotation diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/ModuleSprint.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/ModuleSprint.kt index f3c0628ba5f..0446ca2fa0c 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/ModuleSprint.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/ModuleSprint.kt @@ -25,10 +25,10 @@ import net.ccbluex.liquidbounce.event.handler import net.ccbluex.liquidbounce.features.module.Category import net.ccbluex.liquidbounce.features.module.ClientModule import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.features.ScaffoldSprintControlFeature -import net.ccbluex.liquidbounce.utils.aiming.MovementCorrection -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.features.MovementCorrection import net.ccbluex.liquidbounce.utils.entity.getMovementDirectionOfInput import net.ccbluex.liquidbounce.utils.kotlin.EventPriorityConvention.CRITICAL_MODIFICATION import net.ccbluex.liquidbounce.utils.kotlin.Priority @@ -110,7 +110,7 @@ object ModuleSprint : ClientModule("Sprint", Category.MOVEMENT) { // todo: unhook pitch - AimPlan needs support for only yaw or pitch operation val rotation = Rotation(yaw, player.pitch) - RotationManager.aimAt(rotationsConfigurable.toAimPlan(rotation), Priority.NOT_IMPORTANT, + RotationManager.setRotationTarget(rotationsConfigurable.toAimPlan(rotation), Priority.NOT_IMPORTANT, this@ModuleSprint) } @@ -122,7 +122,7 @@ object ModuleSprint : ClientModule("Sprint", Category.MOVEMENT) { MathHelper.sin(deltaYaw * 0.017453292f) > 1.0E-5 val preventSprint = (if (player.isOnGround) stopOnGround else stopOnAir) && !shouldSprintOmnidirectional - && RotationManager.workingAimPlan?.movementCorrection == MovementCorrection.OFF && !hasForwardMovement + && RotationManager.workingRotationTarget?.movementCorrection == MovementCorrection.OFF && !hasForwardMovement return running && preventSprint } diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/autododge/DodgePlanner.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/autododge/DodgePlanner.kt index 14694cd1a6b..0c1bf99d257 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/autododge/DodgePlanner.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/autododge/DodgePlanner.kt @@ -19,8 +19,8 @@ package net.ccbluex.liquidbounce.features.module.modules.movement.autododge import net.ccbluex.liquidbounce.features.module.MinecraftShortcuts -import net.ccbluex.liquidbounce.utils.aiming.Rotation -import net.ccbluex.liquidbounce.utils.aiming.rayTraceCollidingBlocks +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.utils.rayTraceCollidingBlocks import net.ccbluex.liquidbounce.utils.client.mc import net.ccbluex.liquidbounce.utils.client.toRadians import net.ccbluex.liquidbounce.utils.entity.getMovementDirectionOfInput diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/fly/modes/FlyEnderpearl.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/fly/modes/FlyEnderpearl.kt index cd7fbe6d894..771805ed22d 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/fly/modes/FlyEnderpearl.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/fly/modes/FlyEnderpearl.kt @@ -29,9 +29,9 @@ import net.ccbluex.liquidbounce.event.handler import net.ccbluex.liquidbounce.event.tickHandler import net.ccbluex.liquidbounce.features.module.modules.movement.fly.ModuleFly import net.ccbluex.liquidbounce.features.module.modules.player.ModuleFastUse -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.block.isBlockAtPosition import net.ccbluex.liquidbounce.utils.entity.box import net.ccbluex.liquidbounce.utils.entity.withStrafe @@ -76,7 +76,7 @@ internal object FlyEnderpearl : Choice("Enderpearl") { } if (player.pitch <= 80) { - RotationManager.aimAt( + RotationManager.setRotationTarget( Rotation(player.yaw, (80f..90f).random().toFloat()), configurable = rotations, provider = ModuleFastUse, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/fly/modes/fireball/techniques/FlyFireballCustomTechnique.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/fly/modes/fireball/techniques/FlyFireballCustomTechnique.kt index 2a3f5768af7..896ad25b513 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/fly/modes/fireball/techniques/FlyFireballCustomTechnique.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/fly/modes/fireball/techniques/FlyFireballCustomTechnique.kt @@ -30,9 +30,9 @@ import net.ccbluex.liquidbounce.event.handler import net.ccbluex.liquidbounce.event.sequenceHandler import net.ccbluex.liquidbounce.features.module.modules.movement.fly.ModuleFly import net.ccbluex.liquidbounce.features.module.modules.movement.fly.modes.fireball.FlyFireball -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.kotlin.Priority import net.ccbluex.liquidbounce.utils.movement.DirectionalInput import net.minecraft.entity.MovementType @@ -72,7 +72,7 @@ object FlyFireballCustomTechnique : Choice("Custom") { @Suppress("unused") private val rotationUpdateHandler = handler { - RotationManager.aimAt( + RotationManager.setRotationTarget( Rotation(player.yaw, Rotations.pitch), configurable = Rotations, priority = Priority.IMPORTANT_FOR_PLAYER_LIFE, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/fly/modes/fireball/techniques/FlyFireballLegitTechnique.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/fly/modes/fireball/techniques/FlyFireballLegitTechnique.kt index 67537fa4c91..4b9269e31b1 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/fly/modes/fireball/techniques/FlyFireballLegitTechnique.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/fly/modes/fireball/techniques/FlyFireballLegitTechnique.kt @@ -30,9 +30,9 @@ import net.ccbluex.liquidbounce.event.sequenceHandler import net.ccbluex.liquidbounce.event.tickHandler import net.ccbluex.liquidbounce.features.module.modules.movement.fly.ModuleFly import net.ccbluex.liquidbounce.features.module.modules.movement.fly.modes.fireball.FlyFireball -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.kotlin.Priority import net.ccbluex.liquidbounce.utils.movement.DirectionalInput import net.minecraft.util.math.MathHelper @@ -65,7 +65,7 @@ object FlyFireballLegitTechnique : Choice("Legit") { @Suppress("unused") private val rotationUpdateHandler = handler { - RotationManager.aimAt( + RotationManager.setRotationTarget( Rotation(if (Rotations.backwards) this.invertYaw(player.yaw) else player.yaw, Rotations.pitch), configurable = Rotations, priority = Priority.IMPORTANT_FOR_PLAYER_LIFE, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/longjump/modes/nocheatplus/NoCheatPlusBow.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/longjump/modes/nocheatplus/NoCheatPlusBow.kt index d30e172c057..9a18ac5a7c2 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/longjump/modes/nocheatplus/NoCheatPlusBow.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/longjump/modes/nocheatplus/NoCheatPlusBow.kt @@ -29,9 +29,9 @@ import net.ccbluex.liquidbounce.event.events.PacketEvent import net.ccbluex.liquidbounce.event.handler import net.ccbluex.liquidbounce.event.tickHandler import net.ccbluex.liquidbounce.features.module.modules.movement.longjump.ModuleLongJump -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.entity.withStrafe import net.ccbluex.liquidbounce.utils.kotlin.Priority import net.ccbluex.liquidbounce.utils.movement.DirectionalInput @@ -78,7 +78,7 @@ internal object NoCheatPlusBow : Choice("NoCheatPlusBow") { private val tickJumpHandler = tickHandler { if (arrowBoost <= arrowsToShoot) { forceUseKey = true - RotationManager.aimAt( + RotationManager.setRotationTarget( Rotation(player.yaw, -90f), configurable = rotations, priority = Priority.IMPORTANT_FOR_USAGE_2, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/speed/SpeedYawOffset.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/speed/SpeedYawOffset.kt index 981c3202775..b705a40ac59 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/speed/SpeedYawOffset.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/movement/speed/SpeedYawOffset.kt @@ -22,9 +22,9 @@ import net.ccbluex.liquidbounce.config.types.NamedChoice import net.ccbluex.liquidbounce.config.types.ToggleableConfigurable import net.ccbluex.liquidbounce.event.events.RotationUpdateEvent import net.ccbluex.liquidbounce.event.handler -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.kotlin.Priority /** @@ -47,7 +47,7 @@ object SpeedYawOffset : ToggleableConfigurable(ModuleSpeed, "YawOffset", false) val rotation = Rotation(player.yaw - yaw, player.pitch) - RotationManager.aimAt( + RotationManager.setRotationTarget( rotationsConfigurable.toAimPlan(rotation), Priority.NOT_IMPORTANT, ModuleSpeed diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/ModuleAntiAFK.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/ModuleAntiAFK.kt index 72b5ea24d0c..6aa4a8948e1 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/ModuleAntiAFK.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/ModuleAntiAFK.kt @@ -30,9 +30,9 @@ import net.ccbluex.liquidbounce.features.module.ClientModule import net.ccbluex.liquidbounce.features.module.modules.player.ModuleAntiAFK.CustomMode.Rotate.angle import net.ccbluex.liquidbounce.features.module.modules.player.ModuleAntiAFK.CustomMode.Rotate.ignoreOpenInventory import net.ccbluex.liquidbounce.features.module.modules.player.ModuleAntiAFK.CustomMode.Rotate.rotationsConfigurable -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.kotlin.Priority import net.ccbluex.liquidbounce.utils.kotlin.random import net.ccbluex.liquidbounce.utils.movement.DirectionalInput @@ -177,7 +177,7 @@ object ModuleAntiAFK : ClientModule("AntiAFK", Category.PLAYER) { waitTicks(Rotate.delay) val currentRotation = RotationManager.serverRotation val pitchRandomization = Random.nextDouble(-5.0, 5.0).toFloat() - RotationManager.aimAt( + RotationManager.setRotationTarget( Rotation( currentRotation.yaw + angle, (currentRotation.pitch + pitchRandomization).coerceIn(-90f, 90f) ), ignoreOpenInventory, rotationsConfigurable, Priority.IMPORTANT_FOR_USAGE_1, ModuleAntiAFK diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/ModuleFastExp.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/ModuleFastExp.kt index d12a0a804da..58af28a45ad 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/ModuleFastExp.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/ModuleFastExp.kt @@ -22,9 +22,9 @@ import net.ccbluex.liquidbounce.config.types.ToggleableConfigurable import net.ccbluex.liquidbounce.event.tickHandler import net.ccbluex.liquidbounce.features.module.Category import net.ccbluex.liquidbounce.features.module.ClientModule -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.combat.CombatManager import net.ccbluex.liquidbounce.utils.input.InputBind import net.ccbluex.liquidbounce.utils.inventory.* @@ -71,7 +71,7 @@ object ModuleFastExp : ClientModule( if (Rotate.enabled) { waitUntil { val rotation = Rotation(player.yaw, 90f) - RotationManager.aimAt( + RotationManager.setRotationTarget( Rotate.rotations.toAimPlan(rotation), Priority.IMPORTANT_FOR_USAGE_3, this@ModuleFastExp diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/autobuff/features/Pot.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/autobuff/features/Pot.kt index 5c8b9e5e18d..b33f25f1c65 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/autobuff/features/Pot.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/autobuff/features/Pot.kt @@ -27,15 +27,15 @@ import net.ccbluex.liquidbounce.features.module.modules.player.autobuff.Buff import net.ccbluex.liquidbounce.features.module.modules.player.autobuff.ModuleAutoBuff import net.ccbluex.liquidbounce.features.module.modules.player.autobuff.ModuleAutoBuff.AutoBuffRotationsConfigurable.RotationTimingMode.* import net.ccbluex.liquidbounce.features.module.modules.player.autobuff.features.Pot.isPotion -import net.ccbluex.liquidbounce.utils.inventory.HotbarItemSlot -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationManager.currentRotation -import net.ccbluex.liquidbounce.utils.aiming.withFixedYaw +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.utils.withFixedYaw import net.ccbluex.liquidbounce.utils.client.MovePacketType import net.ccbluex.liquidbounce.utils.combat.shouldBeAttacked import net.ccbluex.liquidbounce.utils.entity.FallingPlayer import net.ccbluex.liquidbounce.utils.entity.rotation +import net.ccbluex.liquidbounce.utils.inventory.HotbarItemSlot import net.ccbluex.liquidbounce.utils.inventory.useHotbarSlotOrOffhand import net.ccbluex.liquidbounce.utils.item.getPotionEffects import net.ccbluex.liquidbounce.utils.item.isNothing @@ -118,7 +118,7 @@ object Pot : Buff("Pot", isValidItem = { stack, forUse -> isPotion(stack, forUse when (ModuleAutoBuff.rotations.rotationTiming) { NORMAL -> { - RotationManager.aimAt( + RotationManager.setRotationTarget( rotation, configurable = ModuleAutoBuff.rotations, provider = ModuleAutoBuff, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/cheststealer/features/FeatureChestAura.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/cheststealer/features/FeatureChestAura.kt index a1a67698907..786fb1c2e02 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/cheststealer/features/FeatureChestAura.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/cheststealer/features/FeatureChestAura.kt @@ -27,7 +27,7 @@ import net.ccbluex.liquidbounce.event.tickHandler import net.ccbluex.liquidbounce.features.module.modules.player.cheststealer.ModuleChestStealer import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable -import net.ccbluex.liquidbounce.utils.aiming.raytraceBlock +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceBlock import net.ccbluex.liquidbounce.utils.block.getCenterDistanceSquared import net.ccbluex.liquidbounce.utils.block.getState import net.ccbluex.liquidbounce.utils.block.searchBlocksInCuboid @@ -122,7 +122,7 @@ object FeatureChestAura : ToggleableConfigurable(ModuleChestStealer, "Aura", tru ) ?: continue // Update the player rotation to aim at the new target - RotationManager.aimAt( + RotationManager.setRotationTarget( rotation, considerInventory = true, configurable = rotationConfigurable, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/nofall/modes/NoFallMLG.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/nofall/modes/NoFallMLG.kt index 744892de0a4..2eb0342d1dc 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/nofall/modes/NoFallMLG.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/player/nofall/modes/NoFallMLG.kt @@ -27,7 +27,7 @@ import net.ccbluex.liquidbounce.event.tickHandler import net.ccbluex.liquidbounce.features.module.modules.player.nofall.ModuleNoFall import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable -import net.ccbluex.liquidbounce.utils.aiming.raycast +import net.ccbluex.liquidbounce.utils.aiming.utils.raycast import net.ccbluex.liquidbounce.utils.block.doPlacement import net.ccbluex.liquidbounce.utils.block.getState import net.ccbluex.liquidbounce.utils.block.isFallDamageBlocking @@ -81,7 +81,7 @@ internal object NoFallMLG : Choice("MLG") { return@handler } - RotationManager.aimAt( + RotationManager.setRotationTarget( currentGoal.placementTarget.rotation, configurable = rotationsConfigurable, priority = Priority.IMPORTANT_FOR_PLAYER_LIFE, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/render/ModuleFreeCam.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/render/ModuleFreeCam.kt index 4a712c57722..b287e59ba99 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/render/ModuleFreeCam.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/render/ModuleFreeCam.kt @@ -27,10 +27,10 @@ import net.ccbluex.liquidbounce.event.events.RotationUpdateEvent import net.ccbluex.liquidbounce.event.handler import net.ccbluex.liquidbounce.features.module.Category import net.ccbluex.liquidbounce.features.module.ClientModule -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable -import net.ccbluex.liquidbounce.utils.aiming.raycast +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.utils.raycast import net.ccbluex.liquidbounce.utils.entity.rotation import net.ccbluex.liquidbounce.utils.entity.withStrafe import net.ccbluex.liquidbounce.utils.kotlin.EventPriorityConvention.FIRST_PRIORITY @@ -179,7 +179,7 @@ object ModuleFreeCam : ClientModule("FreeCam", Category.RENDER, disableOnQuit = return@handler } - RotationManager.aimAt(rotationsConfigurable.toAimPlan(lookAt), Priority.NOT_IMPORTANT, ModuleFreeCam) + RotationManager.setRotationTarget(rotationsConfigurable.toAimPlan(lookAt), Priority.NOT_IMPORTANT, ModuleFreeCam) } fun applyCameraPosition(entity: Entity, tickDelta: Float) { diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/render/ModuleRotations.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/render/ModuleRotations.kt index 475c97b3bc4..b3a612dfec2 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/render/ModuleRotations.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/render/ModuleRotations.kt @@ -31,8 +31,8 @@ import net.ccbluex.liquidbounce.render.engine.Color4b import net.ccbluex.liquidbounce.render.engine.Vec3 import net.ccbluex.liquidbounce.render.renderEnvironmentForWorld import net.ccbluex.liquidbounce.render.withColor -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.entity.lastRotation import net.ccbluex.liquidbounce.utils.kotlin.EventPriorityConvention import net.ccbluex.liquidbounce.utils.math.times diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/render/trajectories/ModuleTrajectories.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/render/trajectories/ModuleTrajectories.kt index 620a795350c..bbe6554a393 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/render/trajectories/ModuleTrajectories.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/render/trajectories/ModuleTrajectories.kt @@ -95,7 +95,7 @@ object ModuleTrajectories : ClientModule("Trajectories", Category.RENDER) { if (ModuleFreeCam.running) { RotationManager.serverRotation } else { - RotationManager.workingAimPlan?.rotation + RotationManager.workingRotationTarget?.rotation ?: RotationManager.currentRotation ?: otherPlayer.rotation } } else { diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/ModuleExtinguish.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/ModuleExtinguish.kt index b1cd04180b1..acead9d1351 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/ModuleExtinguish.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/ModuleExtinguish.kt @@ -28,7 +28,7 @@ import net.ccbluex.liquidbounce.features.module.ClientModule import net.ccbluex.liquidbounce.features.module.modules.player.nofall.ModuleNoFall import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable -import net.ccbluex.liquidbounce.utils.aiming.raycast +import net.ccbluex.liquidbounce.utils.aiming.utils.raycast import net.ccbluex.liquidbounce.utils.block.doPlacement import net.ccbluex.liquidbounce.utils.block.targetfinding.* import net.ccbluex.liquidbounce.utils.client.Chronometer @@ -87,7 +87,7 @@ object ModuleExtinguish: ClientModule("Extinguish", Category.WORLD) { this.currentTarget = target - RotationManager.aimAt( + RotationManager.setRotationTarget( target.placementTarget.rotation, configurable = rotationsConfigurable, priority = Priority.IMPORTANT_FOR_PLAYER_LIFE, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/ModuleProjectilePuncher.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/ModuleProjectilePuncher.kt index 103b67492b9..a7bc2ddbb07 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/ModuleProjectilePuncher.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/ModuleProjectilePuncher.kt @@ -25,8 +25,8 @@ import net.ccbluex.liquidbounce.features.module.Category import net.ccbluex.liquidbounce.features.module.ClientModule import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable -import net.ccbluex.liquidbounce.utils.aiming.facingEnemy -import net.ccbluex.liquidbounce.utils.aiming.raytraceBox +import net.ccbluex.liquidbounce.utils.aiming.utils.facingEnemy +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceBox import net.ccbluex.liquidbounce.utils.clicking.Clicker import net.ccbluex.liquidbounce.utils.combat.attack import net.ccbluex.liquidbounce.utils.entity.box @@ -118,7 +118,7 @@ object ModuleProjectilePuncher : ClientModule("ProjectilePuncher", Category.WORL target = entity // aim at target - RotationManager.aimAt( + RotationManager.setRotationTarget( spot.rotation, considerInventory = !ignoreOpenInventory, configurable = rotations, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/autofarm/AutoFarmAutoWalk.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/autofarm/AutoFarmAutoWalk.kt index 73a6e0d99fd..01d62a967ba 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/autofarm/AutoFarmAutoWalk.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/autofarm/AutoFarmAutoWalk.kt @@ -22,8 +22,8 @@ import net.ccbluex.liquidbounce.config.types.ToggleableConfigurable import net.ccbluex.liquidbounce.event.events.MovementInputEvent import net.ccbluex.liquidbounce.event.events.NotificationEvent import net.ccbluex.liquidbounce.event.handler -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.client.notification import net.ccbluex.liquidbounce.utils.inventory.Slots import net.ccbluex.liquidbounce.utils.inventory.hasInventorySpace @@ -79,7 +79,7 @@ object AutoFarmAutoWalk : ToggleableConfigurable(ModuleAutoFarm, "AutoWalk", fal val target = walkTarget ?: return false - RotationManager.aimAt( + RotationManager.setRotationTarget( Rotation.lookingAt(point = target, from = player.eyePos), configurable = ModuleAutoFarm.rotations, priority = Priority.IMPORTANT_FOR_USAGE_1, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/autofarm/ModuleAutoFarm.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/autofarm/ModuleAutoFarm.kt index 913902b7b31..48175fc350b 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/autofarm/ModuleAutoFarm.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/autofarm/ModuleAutoFarm.kt @@ -26,8 +26,8 @@ import net.ccbluex.liquidbounce.features.module.ClientModule import net.ccbluex.liquidbounce.features.module.modules.player.ModuleBlink import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable -import net.ccbluex.liquidbounce.utils.aiming.raytraceBlock -import net.ccbluex.liquidbounce.utils.aiming.raytraceUpperBlockSide +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceBlock +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceUpperBlockSide import net.ccbluex.liquidbounce.utils.block.* import net.ccbluex.liquidbounce.utils.client.SilentHotbar import net.ccbluex.liquidbounce.utils.client.notification @@ -200,7 +200,7 @@ object ModuleAutoFarm : ClientModule("AutoFarm", Category.WORLD) { // set currentTarget to the new target currentTarget = pos // aim at target - RotationManager.aimAt( + RotationManager.setRotationTarget( rotation, configurable = rotations, priority = Priority.IMPORTANT_FOR_USAGE_1, @@ -240,7 +240,7 @@ object ModuleAutoFarm : ClientModule("AutoFarm", Category.WORLD) { // set currentTarget to the new target currentTarget = pos // aim at target - RotationManager.aimAt( + RotationManager.setRotationTarget( rotation, configurable = rotations, priority = Priority.IMPORTANT_FOR_USAGE_1, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/fucker/ModuleFucker.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/fucker/ModuleFucker.kt index 3a1c138ad41..42c9729ed09 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/fucker/ModuleFucker.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/fucker/ModuleFucker.kt @@ -31,7 +31,7 @@ import net.ccbluex.liquidbounce.features.module.modules.world.packetmine.ModuleP import net.ccbluex.liquidbounce.render.engine.Color4b import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable -import net.ccbluex.liquidbounce.utils.aiming.raytraceBlock +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceBlock import net.ccbluex.liquidbounce.utils.block.* import net.ccbluex.liquidbounce.utils.entity.getNearestPoint import net.ccbluex.liquidbounce.utils.inventory.Slots @@ -334,7 +334,7 @@ object ModuleFucker : ClientModule("Fucker", Category.WORLD, aliases = arrayOf(" if (!ModulePacketMine.running) { val (rotation, _) = raytrace - RotationManager.aimAt( + RotationManager.setRotationTarget( rotation, considerInventory = !ignoreOpenInventory, configurable = rotations, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/nuker/mode/LegitNukerMode.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/nuker/mode/LegitNukerMode.kt index 5ec3590908f..540b32644d3 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/nuker/mode/LegitNukerMode.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/nuker/mode/LegitNukerMode.kt @@ -32,7 +32,7 @@ import net.ccbluex.liquidbounce.features.module.modules.world.nuker.ModuleNuker. import net.ccbluex.liquidbounce.features.module.modules.world.packetmine.ModulePacketMine import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable -import net.ccbluex.liquidbounce.utils.aiming.raytraceBlock +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceBlock import net.ccbluex.liquidbounce.utils.block.doBreak import net.ccbluex.liquidbounce.utils.block.getState import net.ccbluex.liquidbounce.utils.block.isNotBreakable @@ -135,7 +135,7 @@ object LegitNukerMode : Choice("Legit") { ) ?: return@let if (!packetMine) { - RotationManager.aimAt( + RotationManager.setRotationTarget( raytraceResult.rotation, considerInventory = !ignoreOpenInventory, configurable = rotations, @@ -158,7 +158,7 @@ object LegitNukerMode : Choice("Legit") { ) ?: continue if (!packetMine) { - RotationManager.aimAt( + RotationManager.setRotationTarget( raytraceResult.rotation, considerInventory = !ignoreOpenInventory, configurable = rotations, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/packetmine/ModulePacketMine.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/packetmine/ModulePacketMine.kt index a8fb406e8fc..4d64cc751b1 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/packetmine/ModulePacketMine.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/packetmine/ModulePacketMine.kt @@ -32,10 +32,10 @@ import net.ccbluex.liquidbounce.features.module.modules.world.packetmine.tool.Ne import net.ccbluex.liquidbounce.features.module.modules.world.packetmine.tool.OnStopToolMode import net.ccbluex.liquidbounce.features.module.modules.world.packetmine.tool.PostStartToolMode import net.ccbluex.liquidbounce.render.engine.Color4b -import net.ccbluex.liquidbounce.utils.aiming.Rotation import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable -import net.ccbluex.liquidbounce.utils.aiming.raytraceBlock +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceBlock import net.ccbluex.liquidbounce.utils.block.SwingMode import net.ccbluex.liquidbounce.utils.block.getState import net.ccbluex.liquidbounce.utils.block.outlineBox @@ -175,7 +175,7 @@ object ModulePacketMine : ClientModule("PacketMine", Category.WORLD) { } if (rotate) { - RotationManager.aimAt( + RotationManager.setRotationTarget( raytrace.rotation, considerInventory = !ignoreOpenInventory, configurable = rotationsConfigurable, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/ModuleScaffold.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/ModuleScaffold.kt index 2e32b7f04bc..e0f8df9e3f1 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/ModuleScaffold.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/ModuleScaffold.kt @@ -48,7 +48,7 @@ import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.tower.* import net.ccbluex.liquidbounce.render.engine.Color4b import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable -import net.ccbluex.liquidbounce.utils.aiming.withFixedYaw +import net.ccbluex.liquidbounce.utils.aiming.utils.withFixedYaw import net.ccbluex.liquidbounce.utils.block.SwingMode import net.ccbluex.liquidbounce.utils.block.doPlacement import net.ccbluex.liquidbounce.utils.block.getCenterDistanceSquared @@ -355,7 +355,7 @@ object ModuleScaffold : ClientModule("Scaffold", Category.WORLD) { if (rotationTiming == NORMAL) { val rotation = technique.getRotations(target) - RotationManager.aimAt( + RotationManager.setRotationTarget( rotation ?: return@handler, considerInventory = considerInventory, configurable = ScaffoldRotationConfigurable, @@ -519,7 +519,7 @@ object ModuleScaffold : ClientModule("Scaffold", Category.WORLD) { } if (rotationTiming == ON_TICK_SNAP) { - RotationManager.aimAt( + RotationManager.setRotationTarget( currentRotation, considerInventory = considerInventory, configurable = ScaffoldRotationConfigurable, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/features/ScaffoldLedgeFeature.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/features/ScaffoldLedgeFeature.kt index cf15c579b6f..26fde7446f4 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/features/ScaffoldLedgeFeature.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/features/ScaffoldLedgeFeature.kt @@ -19,7 +19,7 @@ package net.ccbluex.liquidbounce.features.module.modules.world.scaffold.features import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.ModuleScaffold -import net.ccbluex.liquidbounce.utils.aiming.Rotation +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.block.targetfinding.BlockPlacementTarget import net.ccbluex.liquidbounce.utils.client.player import net.ccbluex.liquidbounce.utils.entity.isCloseToEdge diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldBreezilyTechnique.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldBreezilyTechnique.kt index 9f790123340..d2dca216c14 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldBreezilyTechnique.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldBreezilyTechnique.kt @@ -23,7 +23,7 @@ import net.ccbluex.liquidbounce.event.handler import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.ModuleScaffold.getTargetedPosition import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.ModuleScaffold.rawInput import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.techniques.ScaffoldNormalTechnique.NORMAL_INVESTIGATION_OFFSETS -import net.ccbluex.liquidbounce.utils.aiming.Rotation +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.block.getState import net.ccbluex.liquidbounce.utils.block.targetfinding.* import net.ccbluex.liquidbounce.utils.entity.getMovementDirectionOfInput diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldExpandTechnique.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldExpandTechnique.kt index 46a7c2e76b2..7fa25ab4812 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldExpandTechnique.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldExpandTechnique.kt @@ -19,7 +19,7 @@ package net.ccbluex.liquidbounce.features.module.modules.world.scaffold.techniques import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.ModuleScaffold.getTargetedPosition -import net.ccbluex.liquidbounce.utils.aiming.Rotation +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.block.targetfinding.* import net.ccbluex.liquidbounce.utils.client.toRadians import net.ccbluex.liquidbounce.utils.math.geometry.Line diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldGodBridgeTechnique.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldGodBridgeTechnique.kt index 091f2d9fcc2..16a6c72d68f 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldGodBridgeTechnique.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldGodBridgeTechnique.kt @@ -26,8 +26,8 @@ import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.ModuleSca import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.features.LedgeAction import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.features.ScaffoldLedgeExtension import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.techniques.ScaffoldNormalTechnique.NORMAL_INVESTIGATION_OFFSETS -import net.ccbluex.liquidbounce.utils.aiming.Rotation -import net.ccbluex.liquidbounce.utils.aiming.raycast +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.utils.raycast import net.ccbluex.liquidbounce.utils.block.getState import net.ccbluex.liquidbounce.utils.block.targetfinding.* import net.ccbluex.liquidbounce.utils.client.toRadians diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldNormalTechnique.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldNormalTechnique.kt index d6b22209b7f..12f0ff043aa 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldNormalTechnique.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldNormalTechnique.kt @@ -28,8 +28,8 @@ import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.technique import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.techniques.normal.ScaffoldStabilizeMovementFeature import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.techniques.normal.ScaffoldTellyFeature import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.techniques.normal.ScaffoldTellyFeature.Mode -import net.ccbluex.liquidbounce.utils.aiming.Rotation -import net.ccbluex.liquidbounce.utils.aiming.raycast +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.utils.raycast import net.ccbluex.liquidbounce.utils.block.targetfinding.* import net.ccbluex.liquidbounce.utils.entity.rotation import net.ccbluex.liquidbounce.utils.kotlin.EventPriorityConvention diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldTechnique.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldTechnique.kt index f77703d4578..3640c5bfb25 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldTechnique.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/techniques/ScaffoldTechnique.kt @@ -21,8 +21,8 @@ package net.ccbluex.liquidbounce.features.module.modules.world.scaffold.techniqu import net.ccbluex.liquidbounce.config.types.Choice import net.ccbluex.liquidbounce.config.types.ChoiceConfigurable import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.ModuleScaffold -import net.ccbluex.liquidbounce.utils.aiming.Rotation -import net.ccbluex.liquidbounce.utils.aiming.raycast +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.utils.raycast import net.ccbluex.liquidbounce.utils.block.targetfinding.BlockPlacementTarget import net.ccbluex.liquidbounce.utils.math.geometry.Line import net.minecraft.entity.EntityPose diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/traps/ModuleAutoTrap.kt b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/traps/ModuleAutoTrap.kt index d33cc15296c..c64ced3669f 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/traps/ModuleAutoTrap.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/world/traps/ModuleAutoTrap.kt @@ -28,7 +28,7 @@ import net.ccbluex.liquidbounce.features.module.modules.world.traps.traps.TrapPl import net.ccbluex.liquidbounce.features.module.modules.world.traps.traps.WebTrapPlanner import net.ccbluex.liquidbounce.utils.aiming.RotationManager import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable -import net.ccbluex.liquidbounce.utils.aiming.raycast +import net.ccbluex.liquidbounce.utils.aiming.utils.raycast import net.ccbluex.liquidbounce.utils.block.doPlacement import net.ccbluex.liquidbounce.utils.client.SilentHotbar import net.ccbluex.liquidbounce.utils.combat.CombatManager @@ -76,7 +76,7 @@ object ModuleAutoTrap : ClientModule("AutoTrap", Category.WORLD, aliases = array currentPlan = webTrapPlanner.plan(enemies) ?: ignitionTrapPlanner.plan(enemies) currentPlan?.let { intent -> - RotationManager.aimAt( + RotationManager.setRotationTarget( (intent.blockChangeInfo as BlockChangeInfo.PlaceBlock).blockPlacementTarget.rotation, considerInventory = !ignoreOpenInventory, configurable = rotationsConfigurable, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/script/bindings/api/ScriptInteractionUtil.kt b/src/main/kotlin/net/ccbluex/liquidbounce/script/bindings/api/ScriptInteractionUtil.kt index 2138c6f78b8..f82d96f9589 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/script/bindings/api/ScriptInteractionUtil.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/script/bindings/api/ScriptInteractionUtil.kt @@ -18,8 +18,7 @@ */ package net.ccbluex.liquidbounce.script.bindings.api -import net.ccbluex.liquidbounce.features.module.modules.world.ModuleExtinguish.item -import net.ccbluex.liquidbounce.utils.aiming.raycast +import net.ccbluex.liquidbounce.utils.aiming.utils.raycast import net.ccbluex.liquidbounce.utils.block.doPlacement import net.ccbluex.liquidbounce.utils.block.targetfinding.* import net.ccbluex.liquidbounce.utils.client.mc diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/script/bindings/api/ScriptRotationUtil.kt b/src/main/kotlin/net/ccbluex/liquidbounce/script/bindings/api/ScriptRotationUtil.kt index aa839903e29..40157ab562e 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/script/bindings/api/ScriptRotationUtil.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/script/bindings/api/ScriptRotationUtil.kt @@ -22,7 +22,11 @@ import net.ccbluex.liquidbounce.event.EventListener import net.ccbluex.liquidbounce.features.module.Category import net.ccbluex.liquidbounce.features.module.ClientModule import net.ccbluex.liquidbounce.script.bindings.api.ScriptRotationUtil.newRotationEntity -import net.ccbluex.liquidbounce.utils.aiming.* +import net.ccbluex.liquidbounce.utils.aiming.RotationManager +import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.features.MovementCorrection +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceBox import net.ccbluex.liquidbounce.utils.client.mc import net.ccbluex.liquidbounce.utils.kotlin.Priority import net.minecraft.entity.Entity @@ -43,7 +47,7 @@ import kotlin.math.sqrt object ScriptRotationUtil { /** - * Creates a new [Rotation] from [entity]'s bounding box. + * Creates a new [net.ccbluex.liquidbounce.utils.aiming.data.Rotation] from [entity]'s bounding box. * This uses raytracing, so it's guaranteed to be the best spot. * * It has a performance impact, so it's recommended to use [newRotationEntity] if you don't need the best spot. @@ -85,7 +89,7 @@ object ScriptRotationUtil { */ @JvmName("aimAtRotation") fun aimAtRotation(rotation: Rotation, fixVelocity: Boolean) { - RotationManager.aimAt( + RotationManager.setRotationTarget( rotation, configurable = RotationsConfigurable( object : EventListener { }, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/PointTracker.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/PointTracker.kt index 75d84d62ebf..d311d63b356 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/PointTracker.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/PointTracker.kt @@ -38,7 +38,6 @@ import kotlin.math.abs import kotlin.math.max import kotlin.math.min - class PointTracker( highestPointDefault: PreferredBoxPart = PreferredBoxPart.HEAD, lowestPointDefault: PreferredBoxPart = PreferredBoxPart.BODY, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationManager.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationManager.kt index b4ba50695b9..e66ea03b3e6 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationManager.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationManager.kt @@ -27,6 +27,10 @@ import net.ccbluex.liquidbounce.event.events.RotationUpdateEvent import net.ccbluex.liquidbounce.event.handler import net.ccbluex.liquidbounce.features.module.ClientModule import net.ccbluex.liquidbounce.features.module.modules.combat.ModuleBacktrack +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.features.MovementCorrection +import net.ccbluex.liquidbounce.utils.aiming.utils.setRotation +import net.ccbluex.liquidbounce.utils.aiming.utils.withFixedYaw import net.ccbluex.liquidbounce.utils.client.* import net.ccbluex.liquidbounce.utils.combat.CombatManager import net.ccbluex.liquidbounce.utils.entity.lastRotation @@ -51,14 +55,13 @@ object RotationManager : EventListener { /** * Our final target rotation. This rotation is only used to define our current rotation. */ - private val aimPlan - get() = aimPlanHandler.getActiveRequestValue() - private var aimPlanHandler = RequestHandler() - - val workingAimPlan: AimPlan? - get() = aimPlan ?: previousAimPlan - private var previousAimPlan: AimPlan? = null + private val rotationTarget + get() = rotationTargetHandler.getActiveRequestValue() + private var rotationTargetHandler = RequestHandler() + val workingRotationTarget: RotationTarget? + get() = rotationTarget ?: previousRotationTarget + private var previousRotationTarget: RotationTarget? = null /** * The rotation we want to aim at. This DOES NOT mean that the server already received this rotation. @@ -96,7 +99,7 @@ object RotationManager : EventListener { private var triggerNoDifference = false @Suppress("LongParameterList") - fun aimAt( + fun setRotationTarget( rotation: Rotation, considerInventory: Boolean = true, configurable: RotationsConfigurable, @@ -104,17 +107,17 @@ object RotationManager : EventListener { provider: ClientModule, whenReached: RestrictedSingleUseAction? = null ) { - aimAt(configurable.toAimPlan( + setRotationTarget(configurable.toAimPlan( rotation, considerInventory = considerInventory, whenReached = whenReached ), priority, provider) } - fun aimAt(plan: AimPlan, priority: Priority, provider: ClientModule) { + fun setRotationTarget(plan: RotationTarget, priority: Priority, provider: ClientModule) { if (!allowedToUpdate()) { return } - aimPlanHandler.request( + rotationTargetHandler.request( RequestHandler.Request( if (plan.movementCorrection == MovementCorrection.CHANGE_LOOK) 1 else plan.ticksUntilReset, priority.priority, @@ -124,23 +127,22 @@ object RotationManager : EventListener { ) } - /** * Update current rotation to a new rotation step */ @Suppress("CognitiveComplexMethod", "NestedBlockDepth") fun update() { - val workingAimPlan = this.workingAimPlan ?: return + val workingAimPlan = this.workingRotationTarget ?: return val playerRotation = player.rotation - val aimPlan = this.aimPlan + val aimPlan = this.rotationTarget if (aimPlan != null) { - val enemyChange = aimPlan.entity != null && aimPlan.entity != previousAimPlan?.entity && - aimPlan.slowStart?.onEnemyChange == true - val triggerNoChange = triggerNoDifference && aimPlan.slowStart?.onZeroRotationDifference == true + val enemyChange = aimPlan.entity != null && aimPlan.entity != previousRotationTarget?.entity && + aimPlan.upRamp?.onEnemyChange == true + val triggerNoChange = triggerNoDifference && aimPlan.upRamp?.onZeroRotationDifference == true if (triggerNoChange || enemyChange) { - aimPlan.slowStart?.onTrigger() + aimPlan.upRamp?.onTrigger() } } @@ -165,21 +167,21 @@ object RotationManager : EventListener { } currentRotation = null - previousAimPlan = null + previousRotationTarget = null } else { if (workingAimPlan.movementCorrection == MovementCorrection.CHANGE_LOOK) { player.setRotation(rotation) } currentRotation = rotation - previousAimPlan = workingAimPlan + previousRotationTarget = workingAimPlan aimPlan?.whenReached?.invoke() } } // Update reset ticks - aimPlanHandler.tick() + rotationTargetHandler.tick() } /** @@ -199,7 +201,7 @@ object RotationManager : EventListener { @Suppress("unused") private val velocityHandler = handler { event -> - if (workingAimPlan?.movementCorrection != MovementCorrection.OFF) { + if (workingRotationTarget?.movementCorrection != MovementCorrection.OFF) { val rotation = currentRotation ?: return@handler event.velocity = Entity.movementInputToVelocity( diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationModes.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationModes.kt index 53d2b875cf4..ad183f3fca3 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationModes.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationModes.kt @@ -22,6 +22,7 @@ import net.ccbluex.liquidbounce.config.types.Choice import net.ccbluex.liquidbounce.config.types.ChoiceConfigurable import net.ccbluex.liquidbounce.features.module.ClientModule import net.ccbluex.liquidbounce.features.module.MinecraftShortcuts +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.client.RestrictedSingleUseAction import net.ccbluex.liquidbounce.utils.kotlin.Priority import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket @@ -46,7 +47,7 @@ abstract class RotationMode( * * PostMove might be irrelevant if this is enabled. */ - val instant by boolean("instant", false) + val instant by boolean("Instant", false) abstract fun rotate(rotation: Rotation, isFinished: () -> Boolean, onFinished: () -> Unit) @@ -73,7 +74,7 @@ class NormalRotationMode( onFinished() if (aimAfterInstantAction) { mc.execute { - RotationManager.aimAt(rotation, !ignoreOpenInventory, rotations, priority, module) + RotationManager.setRotationTarget(rotation, !ignoreOpenInventory, rotations, priority, module) } } @@ -81,7 +82,7 @@ class NormalRotationMode( } mc.execute { - RotationManager.aimAt( + RotationManager.setRotationTarget( rotation, considerInventory = !ignoreOpenInventory, configurable = rotations, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/AimPlan.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationTarget.kt similarity index 87% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/AimPlan.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationTarget.kt index a0a3bf127bd..bd84516e281 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/AimPlan.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationTarget.kt @@ -18,7 +18,12 @@ */ package net.ccbluex.liquidbounce.utils.aiming -import net.ccbluex.liquidbounce.utils.aiming.anglesmooth.AngleSmoothMode +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.features.FailFocus +import net.ccbluex.liquidbounce.utils.aiming.features.MovementCorrection +import net.ccbluex.liquidbounce.utils.aiming.features.ShortStop +import net.ccbluex.liquidbounce.utils.aiming.features.UpRamp +import net.ccbluex.liquidbounce.utils.aiming.features.anglesmooth.AngleSmoothMode import net.ccbluex.liquidbounce.utils.client.RestrictedSingleUseAction import net.ccbluex.liquidbounce.utils.client.player import net.ccbluex.liquidbounce.utils.entity.rotation @@ -33,7 +38,7 @@ import net.minecraft.util.math.Vec3d * @param angleSmooth The mode of the smoother. */ @Suppress("LongParameterList") -class AimPlan( +class RotationTarget( val rotation: Rotation, val vec3d: Vec3d? = null, val entity: Entity? = null, @@ -41,7 +46,7 @@ class AimPlan( * If we do not want to smooth the angle, we can set this to null. */ val angleSmooth: AngleSmoothMode?, - val slowStart: SlowStart?, + val upRamp: UpRamp?, val failFocus: FailFocus?, val shortStop: ShortStop?, val ticksUntilReset: Int, @@ -77,7 +82,7 @@ class AimPlan( val factorModifier = if (failFocus?.isInFailState == true) { failFocus.failFactor } else { - slowStart?.rotationFactor ?: 1f + upRamp?.rotationFactor ?: 1f } if (isResetting) { diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationUtil.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationUtil.kt deleted file mode 100644 index 5ccaa51c860..00000000000 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationUtil.kt +++ /dev/null @@ -1,35 +0,0 @@ -package net.ccbluex.liquidbounce.utils.aiming - -import net.ccbluex.liquidbounce.utils.client.mc -import net.ccbluex.liquidbounce.utils.entity.box -import net.ccbluex.liquidbounce.utils.entity.rotation -import net.minecraft.entity.Entity -import net.minecraft.util.math.MathHelper - -object RotationUtil { - - val gcd: Double - get() { - val f = mc.options.mouseSensitivity.value * 0.6F.toDouble() + 0.2F.toDouble() - return f * f * f * 8.0 * 0.15F - } - - /** - * Calculates the angle between the cross-hair and the entity. - * - * Useful for deciding if the player is looking at something or not. - */ - fun crosshairAngleToEntity(entity: Entity): Float { - val player = mc.player ?: return 0.0F - val eyes = player.eyePos - - val rotationToEntity = Rotation.lookingAt(point = entity.box.center, from = eyes) - - return player.rotation.angleTo(rotationToEntity) - } - - /** - * Calculate difference between two angle points - */ - fun angleDifference(a: Float, b: Float) = MathHelper.wrapDegrees(a - b) -} diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationsConfigurable.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationsConfigurable.kt index 350a514d965..bdbcf19236f 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationsConfigurable.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationsConfigurable.kt @@ -2,7 +2,12 @@ package net.ccbluex.liquidbounce.utils.aiming import net.ccbluex.liquidbounce.config.types.Configurable import net.ccbluex.liquidbounce.event.EventListener -import net.ccbluex.liquidbounce.utils.aiming.anglesmooth.* +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.features.FailFocus +import net.ccbluex.liquidbounce.utils.aiming.features.MovementCorrection +import net.ccbluex.liquidbounce.utils.aiming.features.ShortStop +import net.ccbluex.liquidbounce.utils.aiming.features.UpRamp +import net.ccbluex.liquidbounce.utils.aiming.features.anglesmooth.* import net.ccbluex.liquidbounce.utils.client.RestrictedSingleUseAction import net.minecraft.entity.Entity import net.minecraft.util.math.Vec3d @@ -26,7 +31,7 @@ open class RotationsConfigurable( ) } - private var slowStart = SlowStart(owner).takeIf { combatSpecific }?.also { tree(it) } + private var upRamp = UpRamp(owner).takeIf { combatSpecific }?.also { tree(it) } private var shortStop = ShortStop(owner).takeIf { combatSpecific }?.also { tree(it) } private val failFocus = FailFocus(owner).takeIf { combatSpecific }?.also { tree(it) } @@ -40,12 +45,12 @@ open class RotationsConfigurable( entity: Entity? = null, considerInventory: Boolean = false, whenReached: RestrictedSingleUseAction? = null - ) = AimPlan( + ) = RotationTarget( rotation, vec, entity, angleSmooth.activeChoice, - slowStart, + upRamp, failFocus, shortStop, ticksUntilReset, diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationData.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/data/Rotation.kt similarity index 90% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationData.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/data/Rotation.kt index 8e5220b0db3..7041ba000a8 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationData.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/data/Rotation.kt @@ -16,15 +16,16 @@ * You should have received a copy of the GNU General Public License * along with LiquidBounce. If not, see . */ -package net.ccbluex.liquidbounce.utils.aiming +package net.ccbluex.liquidbounce.utils.aiming.data -import net.ccbluex.liquidbounce.utils.aiming.RotationUtil.angleDifference +import net.ccbluex.liquidbounce.utils.aiming.RotationManager +import net.ccbluex.liquidbounce.utils.aiming.utils.RotationUtil +import net.ccbluex.liquidbounce.utils.aiming.utils.RotationUtil.angleDifference import net.ccbluex.liquidbounce.utils.client.player import net.ccbluex.liquidbounce.utils.entity.rotation import net.minecraft.util.math.MathHelper import net.minecraft.util.math.Vec3d import kotlin.math.atan2 -import kotlin.math.hypot import kotlin.math.roundToInt import kotlin.math.sqrt @@ -107,7 +108,4 @@ data class Rotation( } -data class RotationDelta(val deltaYaw: Float, val deltaPitch: Float) { - fun length() = hypot(deltaYaw, deltaPitch) -} -data class VecRotation(val rotation: Rotation, val vec: Vec3d) + diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationExtensions.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/data/RotationDelta.kt similarity index 57% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationExtensions.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/data/RotationDelta.kt index ab5bfe4bf0d..ec768c6cc05 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationExtensions.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/data/RotationDelta.kt @@ -16,21 +16,10 @@ * You should have received a copy of the GNU General Public License * along with LiquidBounce. If not, see . */ -package net.ccbluex.liquidbounce.utils.aiming +package net.ccbluex.liquidbounce.utils.aiming.data -import net.ccbluex.liquidbounce.utils.aiming.RotationUtil.angleDifference -import net.minecraft.client.network.ClientPlayerEntity +import kotlin.math.hypot -fun ClientPlayerEntity.setRotation(rotation: Rotation) { - rotation.normalize().let { normalizedRotation -> - prevPitch = pitch - prevYaw = yaw - renderYaw = yaw - lastRenderYaw = yaw - - yaw = normalizedRotation.yaw - pitch = normalizedRotation.pitch - } +data class RotationDelta(val deltaYaw: Float, val deltaPitch: Float) { + fun length() = hypot(deltaYaw, deltaPitch) } - -fun ClientPlayerEntity.withFixedYaw(rotation: Rotation) = rotation.yaw + angleDifference(yaw, rotation.yaw) diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/data/VecRotation.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/data/VecRotation.kt new file mode 100644 index 00000000000..7d1c69515e5 --- /dev/null +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/data/VecRotation.kt @@ -0,0 +1,23 @@ +/* + * This file is part of LiquidBounce (https://github.com/CCBlueX/LiquidBounce) + * + * Copyright (c) 2015 - 2025 CCBlueX + * + * LiquidBounce is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * LiquidBounce is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with LiquidBounce. If not, see . + */ +package net.ccbluex.liquidbounce.utils.aiming.data + +import net.minecraft.util.math.Vec3d + +data class VecRotation(val rotation: Rotation, val vec: Vec3d) diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/FailFocus.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/FailFocus.kt similarity index 88% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/FailFocus.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/FailFocus.kt index 5e35638406b..2f1ec1db98e 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/FailFocus.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/FailFocus.kt @@ -1,11 +1,13 @@ -package net.ccbluex.liquidbounce.utils.aiming +package net.ccbluex.liquidbounce.utils.aiming.features import net.ccbluex.liquidbounce.config.types.ToggleableConfigurable import net.ccbluex.liquidbounce.event.EventListener import net.ccbluex.liquidbounce.event.events.GameTickEvent import net.ccbluex.liquidbounce.event.handler import net.ccbluex.liquidbounce.features.module.modules.render.ModuleDebug -import net.ccbluex.liquidbounce.utils.kotlin.EventPriorityConvention.FIRST_PRIORITY +import net.ccbluex.liquidbounce.utils.aiming.RotationManager +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.kotlin.EventPriorityConvention import net.ccbluex.liquidbounce.utils.kotlin.random import kotlin.random.Random @@ -43,18 +45,18 @@ class FailFocus(owner: EventListener? = null) get() = enabled && ticksElapsed < currentTransitionInDuration @Suppress("unused") - private val gameTick = handler(priority = FIRST_PRIORITY) { + private val gameTick = handler(priority = EventPriorityConvention.FIRST_PRIORITY) { // Fail rate val chance = (0f..100f).random() if (failRate > chance) { currentTransitionInDuration = transitionInDuration.random() - val yawShift = if (Random.nextBoolean()) { + val yawShift = if (Random.Default.nextBoolean()) { strengthHorizontal.random().toFloat() } else { -strengthHorizontal.random().toFloat() } - val pitchShift = if (Random.nextBoolean()) { + val pitchShift = if (Random.Default.nextBoolean()) { strengthVertical.random().toFloat() } else { -strengthVertical.random().toFloat() diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/MovementCorrection.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/MovementCorrection.kt similarity index 96% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/MovementCorrection.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/MovementCorrection.kt index b4141ddcc0e..8ab3805f805 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/MovementCorrection.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/MovementCorrection.kt @@ -16,7 +16,7 @@ * You should have received a copy of the GNU General Public License * along with LiquidBounce. If not, see . */ -package net.ccbluex.liquidbounce.utils.aiming +package net.ccbluex.liquidbounce.utils.aiming.features import net.ccbluex.liquidbounce.config.types.NamedChoice diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/ShortStop.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/ShortStop.kt similarity index 96% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/ShortStop.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/ShortStop.kt index abab7f107ec..824259bb063 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/ShortStop.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/ShortStop.kt @@ -1,4 +1,4 @@ -package net.ccbluex.liquidbounce.utils.aiming +package net.ccbluex.liquidbounce.utils.aiming.features import net.ccbluex.liquidbounce.config.types.ToggleableConfigurable import net.ccbluex.liquidbounce.event.EventListener diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/SlowStart.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/UpRamp.kt similarity index 89% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/SlowStart.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/UpRamp.kt index e2a5fa82168..99264451b84 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/SlowStart.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/UpRamp.kt @@ -1,4 +1,4 @@ -package net.ccbluex.liquidbounce.utils.aiming +package net.ccbluex.liquidbounce.utils.aiming.features import net.ccbluex.liquidbounce.config.types.ToggleableConfigurable import net.ccbluex.liquidbounce.event.EventListener @@ -7,14 +7,14 @@ import net.ccbluex.liquidbounce.event.handler import net.ccbluex.liquidbounce.utils.kotlin.EventPriorityConvention.FIRST_PRIORITY /** - * The slow start modulates the rotation speed based on the time duration + * The up ramp modulates the rotation speed based on the time duration * a target has been focused on. Initially, the rotation speed is reduced to smoothly * transition to a new target and gradually increases to normal speed. This method * enhances aiming by providing smooth adjustments, particularly for fast-moving targets, * avoiding abrupt or unnatural flicks. */ -class SlowStart(owner: EventListener? = null) - : ToggleableConfigurable(owner, "SlowStart", false) { +class UpRamp(owner: EventListener? = null) + : ToggleableConfigurable(owner, "UpRamp", false, aliases = arrayOf("SlowStart")) { // Configuration properties private val slowStartFactor by float("SlowStartFactor", 0.6f, 0.01f..0.99f) diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/AccelerationSmoothMode.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/AccelerationSmoothMode.kt similarity index 95% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/AccelerationSmoothMode.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/AccelerationSmoothMode.kt index faa05a6311d..c470d1d2793 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/AccelerationSmoothMode.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/AccelerationSmoothMode.kt @@ -1,9 +1,13 @@ -package net.ccbluex.liquidbounce.utils.aiming.anglesmooth +package net.ccbluex.liquidbounce.utils.aiming.features.anglesmooth import it.unimi.dsi.fastutil.floats.FloatFloatPair import net.ccbluex.liquidbounce.config.types.ChoiceConfigurable import net.ccbluex.liquidbounce.config.types.ToggleableConfigurable -import net.ccbluex.liquidbounce.utils.aiming.* +import net.ccbluex.liquidbounce.utils.aiming.RotationManager +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.data.RotationDelta +import net.ccbluex.liquidbounce.utils.aiming.utils.RotationUtil +import net.ccbluex.liquidbounce.utils.aiming.utils.facingEnemy import net.ccbluex.liquidbounce.utils.entity.lastRotation import net.ccbluex.liquidbounce.utils.kotlin.component1 import net.ccbluex.liquidbounce.utils.kotlin.component2 diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/AngleSmoothMode.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/AngleSmoothMode.kt similarity index 91% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/AngleSmoothMode.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/AngleSmoothMode.kt index fc0e6af862d..e7ade0b09b2 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/AngleSmoothMode.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/AngleSmoothMode.kt @@ -19,10 +19,10 @@ * */ -package net.ccbluex.liquidbounce.utils.aiming.anglesmooth +package net.ccbluex.liquidbounce.utils.aiming.features.anglesmooth import net.ccbluex.liquidbounce.config.types.Choice -import net.ccbluex.liquidbounce.utils.aiming.Rotation +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.minecraft.entity.Entity import net.minecraft.util.math.Vec3d diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/BezierAngleSmoothMode.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/BezierAngleSmoothMode.kt similarity index 94% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/BezierAngleSmoothMode.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/BezierAngleSmoothMode.kt index 4888825e145..2306e704d5c 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/BezierAngleSmoothMode.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/BezierAngleSmoothMode.kt @@ -17,16 +17,14 @@ * along with LiquidBounce. If not, see . * */ -package net.ccbluex.liquidbounce.utils.aiming.anglesmooth +package net.ccbluex.liquidbounce.utils.aiming.features.anglesmooth import net.ccbluex.liquidbounce.config.types.ChoiceConfigurable -import net.ccbluex.liquidbounce.utils.aiming.Rotation -import net.ccbluex.liquidbounce.utils.aiming.RotationManager +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.kotlin.random import net.minecraft.entity.Entity import net.minecraft.util.math.Vec3d import kotlin.math.abs -import kotlin.math.hypot import kotlin.math.min class BezierAngleSmoothMode(override val parent: ChoiceConfigurable<*>) : AngleSmoothMode("Bezier") { diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/ConditionalLinearAngleSmoothMode.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/ConditionalLinearAngleSmoothMode.kt similarity index 93% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/ConditionalLinearAngleSmoothMode.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/ConditionalLinearAngleSmoothMode.kt index 30bd282886e..7a5f0640425 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/ConditionalLinearAngleSmoothMode.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/ConditionalLinearAngleSmoothMode.kt @@ -17,16 +17,18 @@ * along with LiquidBounce. If not, see . */ -package net.ccbluex.liquidbounce.utils.aiming.anglesmooth +package net.ccbluex.liquidbounce.utils.aiming.features.anglesmooth import net.ccbluex.liquidbounce.config.types.ChoiceConfigurable import net.ccbluex.liquidbounce.features.module.modules.combat.killaura.features.KillAuraNotifyWhenFail.failedHitsIncrement -import net.ccbluex.liquidbounce.utils.aiming.Rotation -import net.ccbluex.liquidbounce.utils.aiming.RotationManager -import net.ccbluex.liquidbounce.utils.aiming.facingEnemy +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.utils.facingEnemy import net.minecraft.entity.Entity import net.minecraft.util.math.Vec3d -import kotlin.math.* +import kotlin.math.abs +import kotlin.math.max +import kotlin.math.min +import kotlin.math.roundToInt class ConditionalLinearAngleSmoothMode(override val parent: ChoiceConfigurable<*>) : AngleSmoothMode("Conditional") { diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/LinearAngleSmoothMode.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/LinearAngleSmoothMode.kt similarity index 91% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/LinearAngleSmoothMode.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/LinearAngleSmoothMode.kt index 26d6af13efb..88c578ace17 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/LinearAngleSmoothMode.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/LinearAngleSmoothMode.kt @@ -19,17 +19,14 @@ * */ -package net.ccbluex.liquidbounce.utils.aiming.anglesmooth +package net.ccbluex.liquidbounce.utils.aiming.features.anglesmooth import net.ccbluex.liquidbounce.config.types.ChoiceConfigurable -import net.ccbluex.liquidbounce.utils.aiming.Rotation -import net.ccbluex.liquidbounce.utils.aiming.RotationManager -import net.ccbluex.liquidbounce.utils.aiming.RotationUtil +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.kotlin.random import net.minecraft.entity.Entity import net.minecraft.util.math.Vec3d import kotlin.math.abs -import kotlin.math.hypot import kotlin.math.min import kotlin.math.roundToInt diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/SigmoidAngleSmoothMode.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/SigmoidAngleSmoothMode.kt similarity index 93% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/SigmoidAngleSmoothMode.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/SigmoidAngleSmoothMode.kt index 4e9d2319e2f..a3384b88b1b 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/anglesmooth/SigmoidAngleSmoothMode.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/features/anglesmooth/SigmoidAngleSmoothMode.kt @@ -19,18 +19,15 @@ * */ -package net.ccbluex.liquidbounce.utils.aiming.anglesmooth +package net.ccbluex.liquidbounce.utils.aiming.features.anglesmooth import net.ccbluex.liquidbounce.config.types.ChoiceConfigurable -import net.ccbluex.liquidbounce.utils.aiming.Rotation -import net.ccbluex.liquidbounce.utils.aiming.RotationManager -import net.ccbluex.liquidbounce.utils.aiming.RotationUtil +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.kotlin.random import net.minecraft.entity.Entity import net.minecraft.util.math.Vec3d import kotlin.math.abs import kotlin.math.exp -import kotlin.math.hypot import kotlin.math.min class SigmoidAngleSmoothMode(override val parent: ChoiceConfigurable<*>) : AngleSmoothMode("Sigmoid") { diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationPreference.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/preference/LeastDifferencePreference.kt similarity index 91% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationPreference.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/preference/LeastDifferencePreference.kt index 28d4f0528f0..91397f40b7b 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationPreference.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/preference/LeastDifferencePreference.kt @@ -16,26 +16,21 @@ * You should have received a copy of the GNU General Public License * along with LiquidBounce. If not, see . */ -package net.ccbluex.liquidbounce.utils.aiming +package net.ccbluex.liquidbounce.utils.aiming.preference +import net.ccbluex.liquidbounce.utils.aiming.RotationManager +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.client.player import net.ccbluex.liquidbounce.utils.entity.rotation import net.ccbluex.liquidbounce.utils.math.plus import net.ccbluex.liquidbounce.utils.math.times import net.minecraft.util.math.Vec3d - -interface RotationPreference : Comparator { - fun getPreferredSpot( - eyesPos: Vec3d, - range: Double, - ): Vec3d -} - class LeastDifferencePreference( private val baseRotation: Rotation, private val basePoint: Vec3d? = null, ) : RotationPreference { + override fun getPreferredSpot(eyesPos: Vec3d, range: Double): Vec3d { if (this.basePoint != null) { return this.basePoint diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/preference/RotationPreference.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/preference/RotationPreference.kt new file mode 100644 index 00000000000..6db8938e488 --- /dev/null +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/preference/RotationPreference.kt @@ -0,0 +1,30 @@ +/* + * This file is part of LiquidBounce (https://github.com/CCBlueX/LiquidBounce) + * + * Copyright (c) 2015 - 2024 CCBlueX + * + * LiquidBounce is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * LiquidBounce is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with LiquidBounce. If not, see . + */ +package net.ccbluex.liquidbounce.utils.aiming.preference + +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.minecraft.util.math.Vec3d + +interface RotationPreference : Comparator { + fun getPreferredSpot( + eyesPos: Vec3d, + range: Double, + ): Vec3d +} + diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/CydhranianProjectileAngleCalculator.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/CydhranianProjectileAngleCalculator.kt index 4d19a6932fe..b5c8d0d48ef 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/CydhranianProjectileAngleCalculator.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/CydhranianProjectileAngleCalculator.kt @@ -3,7 +3,7 @@ package net.ccbluex.liquidbounce.utils.aiming.projectiles import net.ccbluex.liquidbounce.features.module.modules.combat.aimbot.ModuleProjectileAimbot import net.ccbluex.liquidbounce.features.module.modules.render.ModuleDebug import net.ccbluex.liquidbounce.render.engine.Color4b -import net.ccbluex.liquidbounce.utils.aiming.Rotation +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.entity.PositionExtrapolation import net.ccbluex.liquidbounce.utils.kotlin.component1 import net.ccbluex.liquidbounce.utils.kotlin.component2 @@ -11,7 +11,10 @@ import net.ccbluex.liquidbounce.utils.math.findFunctionMinimumByBisect import net.ccbluex.liquidbounce.utils.render.trajectory.TrajectoryInfo import net.minecraft.entity.EntityDimensions import net.minecraft.util.math.Vec3d -import kotlin.math.* +import kotlin.math.abs +import kotlin.math.ln +import kotlin.math.pow +import kotlin.math.round /** * Implements the angle calculator described by Cydhra diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/PolynomialProjectileAngleCalculator.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/PolynomialProjectileAngleCalculator.kt index 6d90393fd7f..c505961ed52 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/PolynomialProjectileAngleCalculator.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/PolynomialProjectileAngleCalculator.kt @@ -1,6 +1,6 @@ package net.ccbluex.liquidbounce.utils.aiming.projectiles -import net.ccbluex.liquidbounce.utils.aiming.Rotation +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.entity.PositionExtrapolation import net.ccbluex.liquidbounce.utils.render.trajectory.TrajectoryInfo import net.minecraft.entity.EntityDimensions diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/ProjectileAngleCalculator.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/ProjectileAngleCalculator.kt index b85e74bd254..2e9d883aaed 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/ProjectileAngleCalculator.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/ProjectileAngleCalculator.kt @@ -1,6 +1,6 @@ package net.ccbluex.liquidbounce.utils.aiming.projectiles -import net.ccbluex.liquidbounce.utils.aiming.Rotation +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.client.player import net.ccbluex.liquidbounce.utils.entity.ConstantPositionExtrapolation import net.ccbluex.liquidbounce.utils.entity.PositionExtrapolation diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/ProjectileTargetPointFinder.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/ProjectileTargetPointFinder.kt index 7e11579ea13..82ec751fced 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/ProjectileTargetPointFinder.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/ProjectileTargetPointFinder.kt @@ -2,7 +2,7 @@ package net.ccbluex.liquidbounce.utils.aiming.projectiles import net.ccbluex.liquidbounce.features.module.modules.combat.aimbot.ModuleProjectileAimbot import net.ccbluex.liquidbounce.features.module.modules.render.ModuleDebug -import net.ccbluex.liquidbounce.utils.aiming.findVisiblePointFromVirtualEye +import net.ccbluex.liquidbounce.utils.aiming.utils.findVisiblePointFromVirtualEye import net.minecraft.util.math.Box import net.minecraft.util.math.Vec3d import java.text.DecimalFormat diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/SituationalProjectileAngleCalculator.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/SituationalProjectileAngleCalculator.kt index 435a90b88c8..62fc1af7107 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/SituationalProjectileAngleCalculator.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/projectiles/SituationalProjectileAngleCalculator.kt @@ -1,6 +1,6 @@ package net.ccbluex.liquidbounce.utils.aiming.projectiles -import net.ccbluex.liquidbounce.utils.aiming.Rotation +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.entity.PositionExtrapolation import net.ccbluex.liquidbounce.utils.render.trajectory.TrajectoryInfo import net.minecraft.entity.EntityDimensions diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/PointFinding.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/utils/PointFinding.kt similarity index 98% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/PointFinding.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/utils/PointFinding.kt index 3737ad95909..729ca33aa53 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/PointFinding.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/utils/PointFinding.kt @@ -1,4 +1,4 @@ -package net.ccbluex.liquidbounce.utils.aiming +package net.ccbluex.liquidbounce.utils.aiming.utils import net.ccbluex.liquidbounce.features.module.modules.combat.aimbot.ModuleProjectileAimbot import net.ccbluex.liquidbounce.features.module.modules.render.ModuleDebug @@ -20,7 +20,10 @@ import net.minecraft.world.RaycastContext import org.joml.Matrix3f import org.joml.Vector3f import kotlin.jvm.optionals.getOrNull -import kotlin.math.* +import kotlin.math.atan2 +import kotlin.math.hypot +import kotlin.math.max +import kotlin.math.min val Box.edgePoints: Array get() = arrayOf( diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RaytracingExtensions.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/utils/Raytracing.kt similarity index 97% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RaytracingExtensions.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/utils/Raytracing.kt index ae9da5fbaf7..e6331656f93 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RaytracingExtensions.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/utils/Raytracing.kt @@ -16,8 +16,10 @@ * You should have received a copy of the GNU General Public License * along with LiquidBounce. If not, see . */ -package net.ccbluex.liquidbounce.utils.aiming +package net.ccbluex.liquidbounce.utils.aiming.utils +import net.ccbluex.liquidbounce.utils.aiming.RotationManager +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation import net.ccbluex.liquidbounce.utils.client.mc import net.ccbluex.liquidbounce.utils.client.player import net.ccbluex.liquidbounce.utils.client.world diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationFinding.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/utils/RotationFinding.kt similarity index 98% rename from src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationFinding.kt rename to src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/utils/RotationFinding.kt index 5923daae680..4e5165399ef 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/RotationFinding.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/utils/RotationFinding.kt @@ -18,7 +18,7 @@ */ @file:Suppress("Detekt.TooManyFunctions") -package net.ccbluex.liquidbounce.utils.aiming +package net.ccbluex.liquidbounce.utils.aiming.utils import com.nimbusds.oauth2.sdk.util.CollectionUtils import net.ccbluex.liquidbounce.features.module.modules.combat.crystalaura.ModuleCrystalAura @@ -26,6 +26,11 @@ import net.ccbluex.liquidbounce.features.module.modules.render.ModuleDebug import net.ccbluex.liquidbounce.features.module.modules.world.autofarm.ModuleAutoFarm import net.ccbluex.liquidbounce.render.FULL_BOX import net.ccbluex.liquidbounce.render.engine.Color4b +import net.ccbluex.liquidbounce.utils.aiming.RotationManager +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.data.VecRotation +import net.ccbluex.liquidbounce.utils.aiming.preference.LeastDifferencePreference +import net.ccbluex.liquidbounce.utils.aiming.preference.RotationPreference import net.ccbluex.liquidbounce.utils.block.getState import net.ccbluex.liquidbounce.utils.client.mc import net.ccbluex.liquidbounce.utils.client.player diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/utils/RotationUtil.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/utils/RotationUtil.kt new file mode 100644 index 00000000000..8c7502279b2 --- /dev/null +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/aiming/utils/RotationUtil.kt @@ -0,0 +1,70 @@ +/* + * This file is part of LiquidBounce (https://github.com/CCBlueX/LiquidBounce) + * + * Copyright (c) 2015 - 2025 CCBlueX + * + * LiquidBounce is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * LiquidBounce is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with LiquidBounce. If not, see . + */ +package net.ccbluex.liquidbounce.utils.aiming.utils + +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.utils.RotationUtil.angleDifference +import net.ccbluex.liquidbounce.utils.client.mc +import net.ccbluex.liquidbounce.utils.entity.box +import net.ccbluex.liquidbounce.utils.entity.rotation +import net.minecraft.client.network.ClientPlayerEntity +import net.minecraft.entity.Entity +import net.minecraft.util.math.MathHelper + +fun ClientPlayerEntity.setRotation(rotation: Rotation) { + rotation.normalize().let { normalizedRotation -> + prevPitch = pitch + prevYaw = yaw + renderYaw = yaw + lastRenderYaw = yaw + + yaw = normalizedRotation.yaw + pitch = normalizedRotation.pitch + } +} + +fun ClientPlayerEntity.withFixedYaw(rotation: Rotation) = rotation.yaw + angleDifference(yaw, rotation.yaw) + +object RotationUtil { + + val gcd: Double + get() { + val f = mc.options.mouseSensitivity.value * 0.6F.toDouble() + 0.2F.toDouble() + return f * f * f * 8.0 * 0.15F + } + + /** + * Calculates the angle between the cross-hair and the entity. + * + * Useful for deciding if the player is looking at something or not. + */ + fun crosshairAngleToEntity(entity: Entity): Float { + val player = mc.player ?: return 0.0F + val eyes = player.eyePos + + val rotationToEntity = Rotation.Companion.lookingAt(point = entity.box.center, from = eyes) + + return player.rotation.angleTo(rotationToEntity) + } + + /** + * Calculate difference between two angle points + */ + fun angleDifference(a: Float, b: Float) = MathHelper.wrapDegrees(a - b) +} diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/block/placer/BlockPlacer.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/block/placer/BlockPlacer.kt index c44f23f062d..9a3f1cdc451 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/block/placer/BlockPlacer.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/block/placer/BlockPlacer.kt @@ -26,19 +26,19 @@ import net.ccbluex.liquidbounce.event.events.RotationUpdateEvent import net.ccbluex.liquidbounce.event.events.WorldChangeEvent import net.ccbluex.liquidbounce.event.handler import net.ccbluex.liquidbounce.features.module.ClientModule -import net.ccbluex.liquidbounce.utils.inventory.HotbarItemSlot import net.ccbluex.liquidbounce.features.module.modules.render.ModuleDebug import net.ccbluex.liquidbounce.render.FULL_BOX import net.ccbluex.liquidbounce.render.engine.Color4b -import net.ccbluex.liquidbounce.utils.aiming.Rotation -import net.ccbluex.liquidbounce.utils.aiming.raycast -import net.ccbluex.liquidbounce.utils.aiming.raytraceBlock +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.utils.raycast +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceBlock import net.ccbluex.liquidbounce.utils.block.* import net.ccbluex.liquidbounce.utils.block.targetfinding.* import net.ccbluex.liquidbounce.utils.client.SilentHotbar import net.ccbluex.liquidbounce.utils.client.mc import net.ccbluex.liquidbounce.utils.client.player import net.ccbluex.liquidbounce.utils.collection.getSlot +import net.ccbluex.liquidbounce.utils.inventory.HotbarItemSlot import net.ccbluex.liquidbounce.utils.kotlin.Priority import net.ccbluex.liquidbounce.utils.math.sq import net.ccbluex.liquidbounce.utils.render.placement.PlacementRenderer diff --git a/src/main/kotlin/net/ccbluex/liquidbounce/utils/block/placer/BlockPlacerRotationModes.kt b/src/main/kotlin/net/ccbluex/liquidbounce/utils/block/placer/BlockPlacerRotationModes.kt index 916e116133d..9c0e63f674a 100644 --- a/src/main/kotlin/net/ccbluex/liquidbounce/utils/block/placer/BlockPlacerRotationModes.kt +++ b/src/main/kotlin/net/ccbluex/liquidbounce/utils/block/placer/BlockPlacerRotationModes.kt @@ -21,7 +21,11 @@ package net.ccbluex.liquidbounce.utils.block.placer import net.ccbluex.liquidbounce.config.types.Choice import net.ccbluex.liquidbounce.config.types.ChoiceConfigurable import net.ccbluex.liquidbounce.features.module.MinecraftShortcuts -import net.ccbluex.liquidbounce.utils.aiming.* +import net.ccbluex.liquidbounce.utils.aiming.PostRotationExecutor +import net.ccbluex.liquidbounce.utils.aiming.RotationManager +import net.ccbluex.liquidbounce.utils.aiming.RotationsConfigurable +import net.ccbluex.liquidbounce.utils.aiming.data.Rotation +import net.ccbluex.liquidbounce.utils.aiming.utils.raytraceBlock import net.ccbluex.liquidbounce.utils.block.getState import net.ccbluex.liquidbounce.utils.block.targetfinding.BlockPlacementTarget import net.ccbluex.liquidbounce.utils.client.RestrictedSingleUseAction @@ -60,7 +64,7 @@ class NormalRotationMode(configurable: ChoiceConfigurable