package space.eptaproject.vmodaddon.mixins; import edn.stratodonut.trackwork.tracks.forces.PhysicsTrackController; import org.joml.Math; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; import space.eptaproject.vmodaddon.IPhysicsTrackController; @Mixin(PhysicsTrackController.class) public abstract class PhysicsTrackControllerMixin implements IPhysicsTrackController { @Shadow private volatile float suspensionStiffness; @Unique private volatile float damperCoefficient = 0; @Override public void SetRawDamperCoefficient(float delta) { this.damperCoefficient = delta; } @Override public float GetRawDamperCoefficient() { return damperCoefficient; } /** * @author * @reason */ @Overwrite(remap = false) public final float setDamperCoefficient(float delta) { this.suspensionStiffness = Math.clamp(1.0F, 50.0F, this.suspensionStiffness + delta); return this.suspensionStiffness; } }