File tree 1 file changed +7
-1
lines changed
common/src/main/kotlin/org/valkyrienskies/eureka/ship
1 file changed +7
-1
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ import org.valkyrienskies.core.api.ships.PhysShip
6
6
import org.valkyrienskies.core.impl.game.ships.PhysShipImpl
7
7
import org.valkyrienskies.eureka.EurekaConfig
8
8
import kotlin.math.atan
9
+ import kotlin.math.max
9
10
10
11
fun stabilize (
11
12
ship : PhysShipImpl ,
@@ -46,7 +47,12 @@ fun stabilize(
46
47
)
47
48
)
48
49
49
- stabilizationTorque.mul(EurekaConfig .SERVER .stabilizationTorqueConstant)
50
+ val speed = ship.poseVel.vel.length()
51
+
52
+ val multiplierA = 1000f ; // 1 kilo
53
+ val multiplierB = 0.271828 ; // e / 10
54
+
55
+ stabilizationTorque.mul(EurekaConfig .SERVER .stabilizationTorqueConstant / max(1.0 , speed * speed * multiplierA / ship.inertia.shipMass + speed * multiplierB))
50
56
forces.applyInvariantTorque(stabilizationTorque)
51
57
52
58
if (linear) {
You can’t perform that action at this time.
0 commit comments