Files
common/src/main/java/org/saturnclient/mod/mods/FullbrightFeature.java
T
2026-03-24 11:48:04 +01:00

66 lines
2.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package org.saturnclient.mod.mods;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.IntProperty;
import org.saturnclient.config.property.Property;
import org.saturnclient.mod.Mod;
import org.saturnclient.mod.ModSpec;
/**
* FullbrightFeature overrides the game's gamma/brightness to let the
* player see in complete darkness.
*
* Actual brightness injection happens in a mixin; this class owns only
* the configuration and the two static query methods the mixin calls.
*
* No ModuleProvider is needed — this feature has no per-tick engine
* interaction; the mixin polls the static helpers directly.
*/
public class FullbrightFeature extends Mod {
private static final BoolProperty enabled = Property.bool(false);
private static final IntProperty brightness = Property.integer(100);
public FullbrightFeature() {
super(
new ModSpec("Fullbright", "fullbright")
.description("Allows you to see in the dark")
.tags("Camera")
.version("v0.2.0"),
enabled.named("Enabled"),
brightness.named("Brightness %"));
}
// ---------------------------------------------------------------
// Mixin query API (static so the mixin can call without an instance)
// ---------------------------------------------------------------
/** Returns {@code true} when the brightness override should be applied. */
public static boolean shouldOverrideBrightness() {
return enabled.value;
}
/**
* Returns the brightness multiplier to apply.
* The property stores a percentage (0–100+); the mixin expects a
* normalised float where 1.0 ≈ 100 %.
*/
public static float getBrightnessValue() {
return brightness.value / 10.0f;
}
// ---------------------------------------------------------------
// Feature contract
// ---------------------------------------------------------------
@Override
public boolean isEnabled() {
return enabled.value;
}
@Override
public void onEnabled(boolean e) {
enabled.value = e;
}
}