From 77964fffd57f5ee51bdf98d353d212a46394e136 Mon Sep 17 00:00:00 2001 From: millennIumAMbiguity <37588844+millennIumAMbiguity@users.noreply.github.com> Date: Mon, 28 Oct 2024 11:56:37 +0100 Subject: [PATCH] Restored feature broken in #414 Restored feature broken from https://github.com/ValkyrienSkies/Eureka/pull/414/commits/64ea85db60c966560e6c7d962a29fcc23da28f1b --- .../src/main/kotlin/org/valkyrienskies/eureka/EurekaConfig.kt | 4 ++-- .../main/kotlin/org/valkyrienskies/eureka/ship/Stabilize.kt | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/common/src/main/kotlin/org/valkyrienskies/eureka/EurekaConfig.kt b/common/src/main/kotlin/org/valkyrienskies/eureka/EurekaConfig.kt index c0dd49ff..a68548ee 100644 --- a/common/src/main/kotlin/org/valkyrienskies/eureka/EurekaConfig.kt +++ b/common/src/main/kotlin/org/valkyrienskies/eureka/EurekaConfig.kt @@ -122,11 +122,11 @@ object EurekaConfig { // Instability scaled with mass and squared speed @JsonSchema(description = "Stronger stabilization with higher mass, less at higher speeds.") - var scaledInstability = 1000.0 + var scaledInstability = 70.0 // Unscaled linear instability cased by speed @JsonSchema(description = "Less stabilization at higher speed.") - var unscaledInstability = 0.271828 + var unscaledInstability = 0.1 @JsonSchema(description = "How fast a ship will stop and accelerate.") var linearMassScaling = 0.0002 diff --git a/common/src/main/kotlin/org/valkyrienskies/eureka/ship/Stabilize.kt b/common/src/main/kotlin/org/valkyrienskies/eureka/ship/Stabilize.kt index a74a6045..3880a71c 100644 --- a/common/src/main/kotlin/org/valkyrienskies/eureka/ship/Stabilize.kt +++ b/common/src/main/kotlin/org/valkyrienskies/eureka/ship/Stabilize.kt @@ -46,7 +46,9 @@ fun stabilize( ) ) - stabilizationTorque.mul(EurekaConfig.SERVER.stabilizationTorqueConstant) + val speed = ship.velocity.length() + + stabilizationTorque.mul(EurekaConfig.SERVER.stabilizationTorqueConstant / max(1.0, speed * speed * EurekaConfig.SERVER.scaledInstability / ship.mass + speed * EurekaConfig.SERVER.unscaledInstability)) forces.applyInvariantTorque(stabilizationTorque) if (linear) {