Skip to content

Per-dimension settings - #4

Open
FrCynda wants to merge 4 commits into
MarioS271:mainfrom
FrCynda:per-dimension
Open

FrCynda wants to merge 4 commits into
MarioS271:mainfrom
FrCynda:per-dimension

Conversation

@FrCynda

@FrCynda FrCynda commented Aug 24, 2026

Copy link
Copy Markdown

Adds per-dimension night vision settings, so different dimensions can have different settings.

No override means it uses the global settings, so existing configs are unaffected.

Based on the curve PR.

FrCynda added 4 commits August 24, 2026 03:32
Night vision is all-or-nothing today: the toggle drops you straight into the
full potion effect. This makes it a curve instead - a lit strength, a dark
strength, the light level counted as lit, an exponent for the shape, and a
fade speed. VisionHandler recomputes the target every client tick and eases
towards it; a GameRenderer mixin returns that value from the night vision
scale so the vignette follows it.

Off by default (nv_curve = false), so nothing changes unless you turn it on.

The Forge mixin block in build.forge.gradle.kts was commented out because
there were no mixins to build a refmap from - there is one now, so it goes
back in.

scripts/NightVisionCurveCheck.java is a plain javac/java -ea check for the
curve maths, including the hand-edited-config values the sliders cannot reach.
Sliders for the five curve values plus the toggle, with English, German and
Austrian strings.
…categories

Adds an optional per-dimension override on top of the global settings. Each
dimension gets a subcategory in the config screen with its own auto-enable
toggle and curve sliders; the override only starts existing once you tick
"Use own settings here", so an untouched config file is unchanged.

VisionHandler now owns the join/dimension-change logic that JoinListener had
inline, so entering a dimension re-evaluates night vision the same way joining
a world does. It also leaves a real night vision potion alone - the curve backs
off while one is active instead of fighting it.

auto_nv moves from ConfigData up to VisionSettings so an override can carry
its own value. Same field name, so existing config files still load.
@MarioS271 MarioS271 self-assigned this Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants