Fixed features

This commit is contained in:
2026-03-20 21:03:53 +01:00
parent c185cea305
commit 5532a7cb4f
18 changed files with 79 additions and 48 deletions
@@ -3,6 +3,7 @@ package org.saturnclient.feature.features;
import org.saturnclient.common.provider.Providers; import org.saturnclient.common.provider.Providers;
import org.saturnclient.common.module.PlayerModule; import org.saturnclient.common.module.PlayerModule;
import org.saturnclient.common.ref.game.ItemStackRef; import org.saturnclient.common.ref.game.ItemStackRef;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.feature.Feature; import org.saturnclient.feature.Feature;
import org.saturnclient.feature.FeatureDetails; import org.saturnclient.feature.FeatureDetails;
@@ -18,8 +19,8 @@ import org.saturnclient.ui.RenderScope;
*/ */
public class ArmorDisplayFeature extends Feature implements HudFeature { public class ArmorDisplayFeature extends Feature implements HudFeature {
private static final Property<Boolean> enabled = Property.bool(false); private static final BoolProperty enabled = Property.bool(false);
private static final Property<Boolean> useMainHand = Property.bool(true); private static final BoolProperty useMainHand = Property.bool(true);
private static final FeatureLayout layout = new FeatureLayout(40, 75); private static final FeatureLayout layout = new FeatureLayout(40, 75);
public ArmorDisplayFeature() { public ArmorDisplayFeature() {
@@ -1,6 +1,7 @@
package org.saturnclient.feature.features; package org.saturnclient.feature.features;
import org.saturnclient.common.provider.Providers; import org.saturnclient.common.provider.Providers;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.common.module.NetworkModule; import org.saturnclient.common.module.NetworkModule;
import org.saturnclient.common.module.PlayerModule; import org.saturnclient.common.module.PlayerModule;
@@ -13,7 +14,7 @@ import org.saturnclient.feature.FeatureDetails;
*/ */
public class AutoSprintFeature extends Feature { public class AutoSprintFeature extends Feature {
private static final Property<Boolean> enabled = Property.bool(false); private static final BoolProperty enabled = Property.bool(false);
public AutoSprintFeature() { public AutoSprintFeature() {
super( super(
@@ -5,7 +5,9 @@ import java.time.format.DateTimeFormatter;
import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.RenderScope;
import org.saturnclient.ui.resources.Fonts; import org.saturnclient.ui.resources.Fonts;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.config.property.SelectProperty;
import org.saturnclient.feature.Feature; import org.saturnclient.feature.Feature;
import org.saturnclient.feature.FeatureDetails; import org.saturnclient.feature.FeatureDetails;
import org.saturnclient.feature.FeatureLayout; import org.saturnclient.feature.FeatureLayout;
@@ -17,9 +19,9 @@ import org.saturnclient.feature.HudFeature;
*/ */
public class ClockFeature extends Feature implements HudFeature { public class ClockFeature extends Feature implements HudFeature {
private static final Property<Boolean> enabled = Property.bool(false); private static final BoolProperty enabled = Property.bool(false);
private static final Property<Integer> format = Property.select(0, "24 hour", "12 hour"); private static final SelectProperty format = Property.select(0, "24 hour", "12 hour");
private static final Property<Boolean> showSeconds = Property.bool(false); private static final BoolProperty showSeconds = Property.bool(false);
private static final FeatureLayout layout = new FeatureLayout(60, Fonts.getHeight()); private static final FeatureLayout layout = new FeatureLayout(60, Fonts.getHeight());
public ClockFeature() { public ClockFeature() {
@@ -1,7 +1,9 @@
package org.saturnclient.feature.features; package org.saturnclient.feature.features;
import org.saturnclient.common.provider.Providers; import org.saturnclient.common.provider.Providers;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.config.property.SelectProperty;
import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.RenderScope;
import org.saturnclient.ui.resources.Fonts; import org.saturnclient.ui.resources.Fonts;
import org.saturnclient.feature.Feature; import org.saturnclient.feature.Feature;
@@ -15,8 +17,8 @@ import org.saturnclient.feature.HudFeature;
*/ */
public class CoordinatesFeature extends Feature implements HudFeature { public class CoordinatesFeature extends Feature implements HudFeature {
private static final Property<Boolean> enabled = Property.bool(false); private static final BoolProperty enabled = Property.bool(false);
private static final Property<Integer> displayMethod = Property.select(0, private static final SelectProperty displayMethod = Property.select(0,
"Flat", "Flat",
"Flat annotated", "Flat annotated",
"Newline", "Newline",
@@ -1,6 +1,7 @@
package org.saturnclient.feature.features; package org.saturnclient.feature.features;
import org.saturnclient.common.provider.Providers; import org.saturnclient.common.provider.Providers;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.common.module.RenderModule; import org.saturnclient.common.module.RenderModule;
import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.RenderScope;
@@ -14,7 +15,7 @@ import org.saturnclient.feature.FeatureDetails;
*/ */
public class CrosshairFeature extends Feature { public class CrosshairFeature extends Feature {
public static final Property<Boolean> enabled = Property.bool(false); public static final BoolProperty enabled = Property.bool(false);
private static final int CROSSHAIR_SIZE = 15; private static final int CROSSHAIR_SIZE = 15;
@@ -1,6 +1,8 @@
package org.saturnclient.feature.features; package org.saturnclient.feature.features;
import org.saturnclient.common.module.WorldModule;
import org.saturnclient.common.provider.Providers; import org.saturnclient.common.provider.Providers;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.RenderScope;
import org.saturnclient.ui.resources.Fonts; import org.saturnclient.ui.resources.Fonts;
@@ -15,7 +17,7 @@ import org.saturnclient.feature.HudFeature;
*/ */
public class DayCounterFeature extends Feature implements HudFeature { public class DayCounterFeature extends Feature implements HudFeature {
private static final Property<Boolean> enabled = Property.bool(false); private static final BoolProperty enabled = Property.bool(false);
private static final FeatureLayout layout = new FeatureLayout(40, 18); private static final FeatureLayout layout = new FeatureLayout(40, 18);
public DayCounterFeature() { public DayCounterFeature() {
@@ -1,6 +1,8 @@
package org.saturnclient.feature.features; package org.saturnclient.feature.features;
import org.saturnclient.common.module.RenderModule;
import org.saturnclient.common.provider.Providers; import org.saturnclient.common.provider.Providers;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.RenderScope;
import org.saturnclient.ui.resources.Fonts; import org.saturnclient.ui.resources.Fonts;
@@ -15,7 +17,7 @@ import org.saturnclient.feature.HudFeature;
*/ */
public class FpsFeature extends Feature implements HudFeature { public class FpsFeature extends Feature implements HudFeature {
private static final Property<Boolean> enabled = Property.bool(false); private static final BoolProperty enabled = Property.bool(false);
private static final FeatureLayout layout = new FeatureLayout(60, Fonts.getHeight()); private static final FeatureLayout layout = new FeatureLayout(60, Fonts.getHeight());
public FpsFeature() { public FpsFeature() {
@@ -1,6 +1,8 @@
package org.saturnclient.feature.features; package org.saturnclient.feature.features;
import org.saturnclient.common.provider.Providers; import org.saturnclient.common.provider.Providers;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.KeybindingProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.common.module.RenderModule; import org.saturnclient.common.module.RenderModule;
import org.saturnclient.common.provider.GLFWProvider; import org.saturnclient.common.provider.GLFWProvider;
@@ -16,9 +18,9 @@ import org.saturnclient.feature.FeatureDetails;
*/ */
public class FreelookFeature extends Feature { public class FreelookFeature extends Feature {
private static final Property<Boolean> enabled = Property.bool(false); private static final BoolProperty enabled = Property.bool(false);
private static final Property<Boolean> toggle = Property.bool(true); private static final BoolProperty toggle = Property.bool(true);
public static final Property<Integer> freelookKey = Property.keybinding(GLFWProvider.GLFW_KEY_H); public static final KeybindingProperty freelookKey = Property.keybinding(GLFWProvider.GLFW_KEY_H);
/** Whether freelook is currently active (read by the camera mixin). */ /** Whether freelook is currently active (read by the camera mixin). */
public static boolean isFreeLooking = false; public static boolean isFreeLooking = false;
@@ -1,5 +1,7 @@
package org.saturnclient.feature.features; package org.saturnclient.feature.features;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.IntProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.feature.Feature; import org.saturnclient.feature.Feature;
import org.saturnclient.feature.FeatureDetails; import org.saturnclient.feature.FeatureDetails;
@@ -16,8 +18,8 @@ import org.saturnclient.feature.FeatureDetails;
*/ */
public class FullbrightFeature extends Feature { public class FullbrightFeature extends Feature {
private static final Property<Boolean> enabled = Property.bool(false); private static final BoolProperty enabled = Property.bool(false);
private static final Property<Integer> brightness = Property.integer(100); private static final IntProperty brightness = Property.integer(100);
public FullbrightFeature() { public FullbrightFeature() {
super( super(
@@ -1,7 +1,9 @@
package org.saturnclient.feature.features; package org.saturnclient.feature.features;
import org.saturnclient.common.provider.Providers; import org.saturnclient.common.provider.Providers;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.config.property.SelectProperty;
import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.RenderScope;
import org.saturnclient.ui.resources.Fonts; import org.saturnclient.ui.resources.Fonts;
import org.saturnclient.feature.Feature; import org.saturnclient.feature.Feature;
@@ -16,9 +18,9 @@ import org.saturnclient.feature.HudFeature;
*/ */
public class HealthDisplayFeature extends Feature implements HudFeature { public class HealthDisplayFeature extends Feature implements HudFeature {
private static final Property<Boolean> enabled = Property.bool(false); private static final BoolProperty enabled = Property.bool(false);
private static final Property<Integer> displayMode = Property.select(0, "Health", "Hearts"); private static final SelectProperty displayMode = Property.select(0, "Health", "Hearts");
private static final Property<Integer> decimals = Property.select(0, "0", "1", "2"); private static final SelectProperty decimals = Property.select(0, "0", "1", "2");
private static final FeatureLayout layout = new FeatureLayout(40, 18); private static final FeatureLayout layout = new FeatureLayout(40, 18);
public HealthDisplayFeature() { public HealthDisplayFeature() {
@@ -1,6 +1,8 @@
package org.saturnclient.feature.features; package org.saturnclient.feature.features;
import org.saturnclient.common.provider.Providers; import org.saturnclient.common.provider.Providers;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.ColorProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.common.module.PlayerModule; import org.saturnclient.common.module.PlayerModule;
import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.RenderScope;
@@ -19,12 +21,12 @@ public class KeystrokesFeature extends Feature implements HudFeature {
// Configuration // Configuration
// --------------------------------------------------------------- // ---------------------------------------------------------------
private static final Property<Boolean> enabled = Property.bool(false); private static final BoolProperty enabled = Property.bool(false);
private static final Property<Boolean> showMouse = Property.bool(true); private static final BoolProperty showMouse = Property.bool(true);
private static final Property<Boolean> showSpace = Property.bool(false); private static final BoolProperty showSpace = Property.bool(false);
private static final Property<Integer> clickBg = Property.color(0xFFCCCCCC); private static final ColorProperty clickBg = Property.color(0xFFCCCCCC);
private static final Property<Integer> clickFg = Property.color(0xFFFFFFFF); private static final ColorProperty clickFg = Property.color(0xFFFFFFFF);
private static final FeatureLayout layout = new FeatureLayout(78, 54); private static final FeatureLayout layout = new FeatureLayout(78, 54);
@@ -1,7 +1,9 @@
package org.saturnclient.feature.features; package org.saturnclient.feature.features;
import org.saturnclient.common.module.EntityModule; import org.saturnclient.common.module.EntityModule;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.config.property.SelectProperty;
import org.saturnclient.feature.Feature; import org.saturnclient.feature.Feature;
import org.saturnclient.feature.FeatureDetails; import org.saturnclient.feature.FeatureDetails;
@@ -22,21 +24,21 @@ public class NametagsFeature extends Feature {
// Configuration // Configuration
// --------------------------------------------------------------- // ---------------------------------------------------------------
private static final Property<Boolean> enabled = Property.bool(false); private static final BoolProperty enabled = Property.bool(false);
private static final Property<Boolean> healthDisplay = Property.bool(false); private static final BoolProperty healthDisplay = Property.bool(false);
private static final Property<Boolean> players = Property.bool(true); private static final BoolProperty players = Property.bool(true);
private static final Property<Boolean> hostile = Property.bool(false); private static final BoolProperty hostile = Property.bool(false);
private static final Property<Boolean> passive = Property.bool(false); private static final BoolProperty passive = Property.bool(false);
private static final Property<Boolean> heartEmoji = Property.bool(true); private static final BoolProperty heartEmoji = Property.bool(true);
private static final Property<Boolean> obfuscate = Property.bool(false); private static final BoolProperty obfuscate = Property.bool(false);
private static final Property<Integer> unit = Property.select(0, "Health", "Hearts"); private static final SelectProperty unit = Property.select(0, "Health", "Hearts");
private static final Property<Integer> format = Property.select(0, "Value", "Value / Total", "%"); private static final SelectProperty format = Property.select(0, "Value", "Value / Total", "%");
private static final Property<Integer> nameColor = Property.select(15, private static final SelectProperty nameColor = Property.select(15,
"Black", "Dark Blue", "Dark Green", "Dark Aqua", "Dark Red", "Dark Purple", "Black", "Dark Blue", "Dark Green", "Dark Aqua", "Dark Red", "Dark Purple",
"Gold", "Gray", "Dark Gray", "Blue", "Green", "Aqua", "Red", "Light Purple", "Yellow", "White"); "Gold", "Gray", "Dark Gray", "Blue", "Green", "Aqua", "Red", "Light Purple", "Yellow", "White");
private static final Property<Integer> healthColor = Property.select(12, private static final SelectProperty healthColor = Property.select(12,
"Black", "Dark Blue", "Dark Green", "Dark Aqua", "Dark Red", "Dark Purple", "Black", "Dark Blue", "Dark Green", "Dark Aqua", "Dark Red", "Dark Purple",
"Gold", "Gray", "Dark Gray", "Blue", "Green", "Aqua", "Red", "Light Purple", "Yellow", "White"); "Gold", "Gray", "Dark Gray", "Blue", "Green", "Aqua", "Red", "Light Purple", "Yellow", "White");
@@ -1,5 +1,6 @@
package org.saturnclient.feature.features; package org.saturnclient.feature.features;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.feature.Feature; import org.saturnclient.feature.Feature;
import org.saturnclient.feature.FeatureDetails; import org.saturnclient.feature.FeatureDetails;
@@ -13,8 +14,8 @@ import org.saturnclient.feature.FeatureDetails;
*/ */
public class NoFogFeature extends Feature { public class NoFogFeature extends Feature {
private static final Property<Boolean> enabled = Property.bool(false); private static final BoolProperty enabled = Property.bool(false);
private static final Property<Boolean> liquids = Property.bool(false); private static final BoolProperty liquids = Property.bool(false);
public NoFogFeature() { public NoFogFeature() {
super( super(
@@ -1,6 +1,7 @@
package org.saturnclient.feature.features; package org.saturnclient.feature.features;
import org.saturnclient.common.provider.Providers; import org.saturnclient.common.provider.Providers;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.RenderScope;
import org.saturnclient.ui.resources.Fonts; import org.saturnclient.ui.resources.Fonts;
@@ -15,7 +16,7 @@ import org.saturnclient.feature.HudFeature;
*/ */
public class PingFeature extends Feature implements HudFeature { public class PingFeature extends Feature implements HudFeature {
private static final Property<Boolean> enabled = Property.bool(false); private static final BoolProperty enabled = Property.bool(false);
private static final FeatureLayout layout = new FeatureLayout(60, Fonts.getHeight()); private static final FeatureLayout layout = new FeatureLayout(60, Fonts.getHeight());
public PingFeature() { public PingFeature() {
@@ -1,7 +1,9 @@
package org.saturnclient.feature.features; package org.saturnclient.feature.features;
import org.saturnclient.common.provider.Providers; import org.saturnclient.common.provider.Providers;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.config.property.SelectProperty;
import org.saturnclient.common.module.PlayerModule; import org.saturnclient.common.module.PlayerModule;
import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.RenderScope;
import org.saturnclient.ui.resources.Fonts; import org.saturnclient.ui.resources.Fonts;
@@ -16,10 +18,10 @@ import org.saturnclient.feature.HudFeature;
*/ */
public class SpeedometerFeature extends Feature implements HudFeature { public class SpeedometerFeature extends Feature implements HudFeature {
private static final Property<Boolean> enabled = Property.bool(false); private static final BoolProperty enabled = Property.bool(false);
private static final Property<Integer> axis = Property.select(1, "Absolute", "Horizontal", "Vertical"); private static final SelectProperty axis = Property.select(1, "Absolute", "Horizontal", "Vertical");
private static final Property<Integer> unitText = Property.select(0, "None", "Blocks/s", "blocks/s", "b/s"); private static final SelectProperty unitText = Property.select(0, "None", "Blocks/s", "blocks/s", "b/s");
private static final Property<Boolean> showLabel = Property.bool(true); private static final BoolProperty showLabel = Property.bool(true);
private static final FeatureLayout layout = new FeatureLayout(40, 18); private static final FeatureLayout layout = new FeatureLayout(40, 18);
private double cachedSpeed = 0.0; private double cachedSpeed = 0.0;
@@ -2,8 +2,10 @@ package org.saturnclient.feature.features;
import java.util.List; import java.util.List;
import org.saturnclient.common.provider.ModuleProvider;
import org.saturnclient.common.provider.Providers; import org.saturnclient.common.provider.Providers;
import org.saturnclient.common.ref.asset.SpriteRef; import org.saturnclient.common.ref.asset.SpriteRef;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.RenderScope;
import org.saturnclient.feature.Feature; import org.saturnclient.feature.Feature;
@@ -22,7 +24,7 @@ import org.saturnclient.feature.HudFeature;
*/ */
public class StatusEffectsFeature extends Feature implements HudFeature { public class StatusEffectsFeature extends Feature implements HudFeature {
public static final Property<Boolean> enabled = Property.bool(false); public static final BoolProperty enabled = Property.bool(false);
private static final FeatureLayout layout = new FeatureLayout(60, 0); private static final FeatureLayout layout = new FeatureLayout(60, 0);
public StatusEffectsFeature() { public StatusEffectsFeature() {
@@ -2,6 +2,7 @@ package org.saturnclient.feature.features;
import org.saturnclient.ui.RenderScope; import org.saturnclient.ui.RenderScope;
import org.saturnclient.ui.resources.Fonts; import org.saturnclient.ui.resources.Fonts;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.feature.Feature; import org.saturnclient.feature.Feature;
import org.saturnclient.feature.FeatureDetails; import org.saturnclient.feature.FeatureDetails;
@@ -19,7 +20,7 @@ import org.saturnclient.feature.HudFeature;
*/ */
public class TpsFeature extends Feature implements HudFeature { public class TpsFeature extends Feature implements HudFeature {
private static final Property<Boolean> enabled = Property.bool(false); private static final BoolProperty enabled = Property.bool(false);
private static final FeatureLayout layout = new FeatureLayout(60, Fonts.getHeight()); private static final FeatureLayout layout = new FeatureLayout(60, Fonts.getHeight());
// --------------------------------------------------------------- // ---------------------------------------------------------------
@@ -1,6 +1,9 @@
package org.saturnclient.feature.features; package org.saturnclient.feature.features;
import org.saturnclient.common.provider.GLFWProvider; import org.saturnclient.common.provider.GLFWProvider;
import org.saturnclient.config.property.BoolProperty;
import org.saturnclient.config.property.FloatProperty;
import org.saturnclient.config.property.KeybindingProperty;
import org.saturnclient.config.property.Property; import org.saturnclient.config.property.Property;
import org.saturnclient.feature.Feature; import org.saturnclient.feature.Feature;
import org.saturnclient.feature.FeatureDetails; import org.saturnclient.feature.FeatureDetails;
@@ -15,10 +18,10 @@ import org.saturnclient.feature.FeatureDetails;
*/ */
public class ZoomFeature extends Feature { public class ZoomFeature extends Feature {
private static final Property<Boolean> enabled = Property.bool(false); private static final BoolProperty enabled = Property.bool(false);
private static final Property<Boolean> toggle = Property.bool(false); private static final BoolProperty toggle = Property.bool(false);
public static final Property<Integer> zoomKey = Property.keybinding(GLFWProvider.GLFW_KEY_C); public static final KeybindingProperty zoomKey = Property.keybinding(GLFWProvider.GLFW_KEY_C);
public static final Property<Float> zoomLevel = Property.floatProp(3.0f); public static final FloatProperty zoomLevel = Property.floatProp(3.0f);
/** Whether zoom is currently active (read by the FOV mixin). */ /** Whether zoom is currently active (read by the FOV mixin). */
public static boolean isZooming = false; public static boolean isZooming = false;