added keystrokes

This commit is contained in:
2025-06-18 13:47:50 -05:00
parent 089cf4778c
commit 9e64b2332e
5 changed files with 86 additions and 3 deletions
@@ -13,6 +13,7 @@ public class ModDimensions {
public Property<Integer> fgColor = Property.color(0xFFffffff); public Property<Integer> fgColor = Property.color(0xFFffffff);
public Property<Integer> radius = Property.integer(0); public Property<Integer> radius = Property.integer(0);
public Property<Integer> font = Property.font(0); public Property<Integer> font = Property.font(0);
public boolean renderBackground = true;
public int width = 0; public int width = 0;
public int height = 0; public int height = 0;
@@ -29,6 +30,8 @@ public class ModDimensions {
)).named("In-Game Display"); )).named("In-Game Display");
} }
public ModDimensions() {}
public ModDimensions(int width, int height) { public ModDimensions(int width, int height) {
this.width = width; this.width = width;
this.height = height; this.height = height;
@@ -19,7 +19,8 @@ public class ModManager {
new Fps(), new Fps(),
new PotionDisplay(), new PotionDisplay(),
new Coordinates(), new Coordinates(),
new Freelook() new Freelook(),
new Keystrokes()
}; };
public static void init() { public static void init() {
@@ -49,7 +50,9 @@ public class ModManager {
renderScope.matrices.scale(dim.scale.value, dim.scale.value, 1.0f); renderScope.matrices.scale(dim.scale.value, dim.scale.value, 1.0f);
renderScope.drawRoundedRectangle(0, 0, dim.width, dim.height, dim.radius.value, dim.bgColor.value); if (dim.renderBackground) {
renderScope.drawRoundedRectangle(0, 0, dim.width, dim.height, dim.radius.value, dim.bgColor.value);
}
renderScope.setRenderLayer(RenderLayer::getGuiTextured); renderScope.setRenderLayer(RenderLayer::getGuiTextured);
@@ -0,0 +1,77 @@
package org.saturnclient.modules.mods;
import org.saturnclient.modules.Module;
import org.saturnclient.modules.HudMod;
import org.saturnclient.modules.ModDimensions;
import org.saturnclient.saturnclient.SaturnClient;
import org.saturnclient.saturnclient.config.Property;
import org.saturnclient.ui2.RenderScope;
import org.saturnclient.modules.ModuleDetails;
public class Keystrokes extends Module implements HudMod {
public static Property<Boolean> enabled = Property.bool(false);
public static ModDimensions dimensions = new ModDimensions(78, 52);
private boolean w = false;
private boolean a = false;
private boolean s = false;
private boolean d = false;
private static Property<Integer> clickBg = Property.color(0xFFCCCCCC);
private static Property<Integer> clickFg = Property.color(0xFFFFFFFF);
public Keystrokes() {
super(new ModuleDetails("Keystrokes", "keystrokes")
.description("Displays the keystrokes for movement")
.version("v0.1.0")
.tags("Utility"),
enabled.named("Enabled"),
dimensions.prop());
dimensions.renderBackground = false;
}
@Override
public void tick() {
w = SaturnClient.client.options.forwardKey.isPressed();
a = SaturnClient.client.options.leftKey.isPressed();
s = SaturnClient.client.options.backKey.isPressed();
d = SaturnClient.client.options.rightKey.isPressed();
}
@Override
public void renderHud(RenderScope scope) {
renderKey(scope, w, 'W', (dimensions.width - 24) / 2, 0);
renderKey(scope, a, 'A', 0, dimensions.height - 24);
renderKey(scope, s, 'S', (dimensions.width - 24) / 2, dimensions.height - 24);
renderKey(scope, d, 'D', dimensions.width - 24, dimensions.height - 24);
}
@Override
public void renderDummy(RenderScope scope) {
renderKey(scope, false, 'W', (dimensions.width - 24) / 2, 0);
renderKey(scope, false, 'A', 0, dimensions.height - 24);
renderKey(scope, false, 'S', (dimensions.width - 24) / 2, dimensions.height - 24);
renderKey(scope, false, 'D', dimensions.width - 24, dimensions.height - 24);
}
private void renderKey(RenderScope scope, boolean isPressed, char c, int x, int y) {
scope.drawRoundedRectangle(x, y, 24, 24, dimensions.radius.value, isPressed ? clickBg.value : dimensions.bgColor.value);
scope.drawText(0.6f, String.valueOf(c), x + 9, y + 7, dimensions.font.value, isPressed ? clickFg.value : dimensions.fgColor.value);
}
@Override
public boolean isEnabled() {
return enabled.value;
}
@Override
public ModDimensions getDimensions() {
return dimensions;
}
@Override
public void setEnabled(boolean e) {
enabled.value = e;
}
}
@@ -50,7 +50,7 @@ public class PotionDisplay extends Module implements HudMod {
RegistryEntry<StatusEffect> registryEntry = effect.getEffectType(); RegistryEntry<StatusEffect> registryEntry = effect.getEffectType();
Sprite sprite = statusEffectSpriteManager.getSprite(registryEntry); Sprite sprite = statusEffectSpriteManager.getSprite(registryEntry);
scope.drawSpriteStretched(sprite, 0, 18 * row, 16, 16); scope.drawSpriteStretched(sprite, 0, 18 * row, 16, 16);
scope.drawText(0.5f, getDurationAsString(effect), 20, 18 * row + 3, dimensions.font.value, -1); scope.drawText(0.5f, getDurationAsString(effect), 18, 18 * row + 3, dimensions.font.value, -1);
row++; row++;
} }
} }
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB