Files
goon-game/app/src/main/java/com/projectsacrifice/game/PhysicsConfig.java
T

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; }
}