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