Skip to content

Commit 2b1c1e8

Browse files
More improvements
- Define KeyDimensions for standard sizes - Add LayoutContext to simplify key positioning and sizing
1 parent 2f05653 commit 2b1c1e8

File tree

5 files changed

+258
-140
lines changed

5 files changed

+258
-140
lines changed

src/main/java/meteordevelopment/meteorclient/gui/DefaultSettingsWidgetFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import meteordevelopment.meteorclient.gui.widgets.pressable.WPlus;
2323
import meteordevelopment.meteorclient.renderer.Fonts;
2424
import meteordevelopment.meteorclient.settings.*;
25-
import meteordevelopment.meteorclient.systems.hud.elements.KeyboardHud;
25+
import meteordevelopment.meteorclient.systems.hud.elements.keyboard.KeyboardHud;
2626
import meteordevelopment.meteorclient.utils.Utils;
2727
import meteordevelopment.meteorclient.utils.render.color.SettingColor;
2828
import net.minecraft.client.resource.language.I18n;
@@ -72,7 +72,7 @@ public DefaultSettingsWidgetFactory(GuiTheme theme) {
7272
factories.put(ColorListSetting.class, (table, setting) -> colorListW(table, (ColorListSetting) setting));
7373
factories.put(FontFaceSetting.class, (table, setting) -> fontW(table, (FontFaceSetting) setting));
7474
factories.put(Vector3dSetting.class, (table, setting) -> vector3dW(table, (Vector3dSetting) setting));
75-
factories.put(KeyboardHud.CustomKeyListSetting.class, (table,setting) -> customKeyListW(table, (KeyboardHud.CustomKeyListSetting) setting));
75+
factories.put(KeyboardHud.CustomKeyListSetting.class, (table, setting) -> customKeyListW(table, (KeyboardHud.CustomKeyListSetting) setting));
7676
}
7777

7878
@Override

src/main/java/meteordevelopment/meteorclient/systems/hud/Hud.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import meteordevelopment.meteorclient.systems.System;
1414
import meteordevelopment.meteorclient.systems.Systems;
1515
import meteordevelopment.meteorclient.systems.hud.elements.*;
16+
import meteordevelopment.meteorclient.systems.hud.elements.keyboard.KeyboardHud;
1617
import meteordevelopment.meteorclient.systems.hud.screens.HudEditorScreen;
1718
import meteordevelopment.meteorclient.utils.Utils;
1819
import meteordevelopment.meteorclient.utils.misc.Keybind;
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
/*
2+
* This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client).
3+
* Copyright (c) Meteor Development.
4+
*/
5+
6+
package meteordevelopment.meteorclient.systems.hud.elements.keyboard;
7+
8+
enum KeyDimensions {
9+
// Standard sizes
10+
UNIT_1U(1.0),
11+
UNIT_1_25U(1.25),
12+
UNIT_1_5U(1.5),
13+
UNIT_1_75U(1.75),
14+
UNIT_2U(2.0),
15+
UNIT_2_25U(2.25),
16+
UNIT_2_75U(2.75),
17+
UNIT_6_25U(6.25);
18+
19+
public final double units;
20+
21+
KeyDimensions(double units) {
22+
this.units = units;
23+
}
24+
25+
/**
26+
* Converts this dimension to pixels, accounting for gaps.
27+
* Multi-unit keys span gaps: 2u key = 2*baseUnit + 1*gap
28+
*/
29+
public double toPixels(double baseUnit, double gap) {
30+
return units * baseUnit + (units - 1.0) * gap;
31+
}
32+
33+
public double toPixels(double baseUnit) {
34+
return units * baseUnit;
35+
}
36+
37+
// Aliases for common keys
38+
public static final KeyDimensions STANDARD = UNIT_1U;
39+
public static final KeyDimensions TAB = UNIT_1_5U;
40+
public static final KeyDimensions CAPS_LOCK = UNIT_1_75U;
41+
public static final KeyDimensions ENTER_ANSI = UNIT_2_25U;
42+
public static final KeyDimensions LEFT_SHIFT_ANSI = UNIT_2_25U;
43+
public static final KeyDimensions RIGHT_SHIFT = UNIT_2_75U;
44+
public static final KeyDimensions BACKSPACE = UNIT_2U;
45+
public static final KeyDimensions LEFT_SHIFT_ISO = UNIT_1_25U;
46+
public static final KeyDimensions ENTER_ISO_WIDTH = UNIT_1_25U;
47+
public static final KeyDimensions ENTER_ISO_HEIGHT = UNIT_2U;
48+
public static final KeyDimensions CTRL = UNIT_1_25U;
49+
public static final KeyDimensions ALT = UNIT_1_25U;
50+
public static final KeyDimensions GUI = UNIT_1_25U;
51+
public static final KeyDimensions MENU = UNIT_1_25U;
52+
public static final KeyDimensions SPACEBAR = UNIT_6_25U;
53+
}

0 commit comments

Comments
 (0)