feat(client): gun pipper with ground impact point and radar lead marker

Draws where the shells of the first light autocannon come down and, for the
selected radar target, a lead pipper. Uses the same ballistics as Warium's
LACFireScript (muzzle speed, barrels, drag 0.99, gravity 0.05).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YVREx3uo7nz1FEhzveWTUh
This commit is contained in:
Claude committed 2026-11-11 18:28:58 +01:00
1 parent 70eb237d70
commit da74c2950c
7 files changed
+693

No files matched your search

@@ -0,0 +1,44 @@
package dev.lumareth.improvedAerodynamics.client.pipper;
import net.minecraftforge.common.ForgeConfigSpec;
/** Client side settings of the gun pipper. Lives in improved_aerodynamics-client.toml. */
public final class PipperConfig {
public static final ForgeConfigSpec SPEC;
public static final ForgeConfigSpec.BooleanValue ENABLED;
public static final ForgeConfigSpec.BooleanValue SHOW_IMPACT;
public static final ForgeConfigSpec.BooleanValue SHOW_LEAD;
public static final ForgeConfigSpec.BooleanValue INHERIT_SHIP_VELOCITY;
public static final ForgeConfigSpec.DoubleValue MUZZLE_SPEED_OVERRIDE;
public static final ForgeConfigSpec.DoubleValue GRAVITY;
public static final ForgeConfigSpec.DoubleValue DRAG;
public static final ForgeConfigSpec.DoubleValue MARKER_SIZE;
static {
ForgeConfigSpec.Builder builder = new ForgeConfigSpec.Builder();
builder.comment("Gun pipper for Warium light autocannons, drawn while seated in a Warium seat").push("pipper");
ENABLED = builder.comment("Master switch")
.define("enabled", true);
SHOW_IMPACT = builder.comment("Show where the shells of the gun come down on the ground (orange ring)")
.define("showImpact", true);
SHOW_LEAD = builder.comment("Show the lead pipper for the radar target you selected (green ring)")
.define("showLead", true);
INHERIT_SHIP_VELOCITY = builder.comment("Add the speed of your aircraft to the shells. Warium does not do this itself, only turn it",
"on if a test shows your shells keep the speed of the jet (fire level at full speed, then hovering)")
.define("inheritShipVelocity", false);
MUZZLE_SPEED_OVERRIDE = builder.comment("Muzzle speed in blocks per tick, 0 works it out from the barrel length like Warium does")
.defineInRange("muzzleSpeedOverride", 0.0, 0.0, 100.0);
GRAVITY = builder.comment("Gravity of the shells in blocks per tick squared")
.defineInRange("gravity", 0.05, 0.0, 1.0);
DRAG = builder.comment("Speed the shells keep each tick, 0.99 is a vanilla arrow")
.defineInRange("drag", 0.99, 0.5, 1.0);
MARKER_SIZE = builder.comment("Radius of the markers on screen")
.defineInRange("markerSize", 0.03, 0.005, 0.2);
builder.pop();
SPEC = builder.build();
}
private PipperConfig() {
}
}