58 lines
2.5 KiB
Java
58 lines
2.5 KiB
Java
package com.projectsacrifice.game;
|
|
|
|
/** Immutable release-tuned physics constants shared by realtime and deterministic automation. */
|
|
public final class PhysicsConfig {
|
|
private static final PhysicsConfig RELEASE = new PhysicsConfig(
|
|
1, 1f / 60f, 1_800f, 370f, 880f,
|
|
0.13f, 0.14f, 0.78f, 0.10f, 0.12f, 0.24f, 0.32f, 16);
|
|
|
|
private final int version;
|
|
private final float fixedStepSeconds;
|
|
private final float gravity;
|
|
private final float runSpeed;
|
|
private final float jumpSpeed;
|
|
private final float coyoteSeconds;
|
|
private final float jumpBufferSeconds;
|
|
private final float respawnSeconds;
|
|
private final float turnSeconds;
|
|
private final float landSeconds;
|
|
private final float interactSeconds;
|
|
private final float stunnedSeconds;
|
|
private final int maximumBodies;
|
|
|
|
private PhysicsConfig(int version, float fixedStepSeconds, float gravity,
|
|
float runSpeed, float jumpSpeed, float coyoteSeconds,
|
|
float jumpBufferSeconds, float respawnSeconds,
|
|
float turnSeconds, float landSeconds, float interactSeconds,
|
|
float stunnedSeconds, int maximumBodies) {
|
|
this.version = version;
|
|
this.fixedStepSeconds = fixedStepSeconds;
|
|
this.gravity = gravity;
|
|
this.runSpeed = runSpeed;
|
|
this.jumpSpeed = jumpSpeed;
|
|
this.coyoteSeconds = coyoteSeconds;
|
|
this.jumpBufferSeconds = jumpBufferSeconds;
|
|
this.respawnSeconds = respawnSeconds;
|
|
this.turnSeconds = turnSeconds;
|
|
this.landSeconds = landSeconds;
|
|
this.interactSeconds = interactSeconds;
|
|
this.stunnedSeconds = stunnedSeconds;
|
|
this.maximumBodies = maximumBodies;
|
|
}
|
|
|
|
public static PhysicsConfig release() { return RELEASE; }
|
|
public int version() { return version; }
|
|
public float fixedStepSeconds() { return fixedStepSeconds; }
|
|
public float gravity() { return gravity; }
|
|
public float runSpeed() { return runSpeed; }
|
|
public float jumpSpeed() { return jumpSpeed; }
|
|
public float coyoteSeconds() { return coyoteSeconds; }
|
|
public float jumpBufferSeconds() { return jumpBufferSeconds; }
|
|
public float respawnSeconds() { return respawnSeconds; }
|
|
public float turnSeconds() { return turnSeconds; }
|
|
public float landSeconds() { return landSeconds; }
|
|
public float interactSeconds() { return interactSeconds; }
|
|
public float stunnedSeconds() { return stunnedSeconds; }
|
|
public int maximumBodies() { return maximumBodies; }
|
|
}
|