Skip to content

Commit

Permalink
Separate sensitivity for 1.9-1.12 and 1.13+
Browse files Browse the repository at this point in the history
  • Loading branch information
ExeRSolver committed Apr 17, 2024
1 parent 71f1a5f commit 1515927
Show file tree
Hide file tree
Showing 17 changed files with 51 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
public class BoatMeasurementOptionsPanel extends JPanel {

private final RadioButtonPanel boatTypeRadioButtonPanel;
private final DoublePreferencePanel sensitivity;
private final DoublePreferencePanel sensitivityAutomatic;
private final FloatPreferencePanel sensitivityManual;
private final FloatPreferencePanel boatErrorLimit;
private final FloatPreferencePanel sigmaBoat;
private HotkeyPanel enterBoatHotkey;
Expand All @@ -34,10 +35,20 @@ public BoatMeasurementOptionsPanel(StyleManager styleManager, NinjabrainBotPrefe
CheckboxPanel enableBoatMeasurementsCheckbox = new CheckboxPanel(styleManager, I18n.get("settings.use_precise_angle"), preferences.usePreciseAngle);
column1.add(enableBoatMeasurementsCheckbox);

sensitivity = new DoublePreferencePanel(styleManager, I18n.get("settings.sensitivity"), preferences.sensitivity);
sensitivity.setWidth(150);
sensitivity.setDecimals(10);
column1.add(sensitivity);
sensitivityManual = new FloatPreferencePanel(styleManager, I18n.get("settings.sensitivityManual"), preferences.sensitivityManual);
sensitivityManual.setWidth(130);
sensitivityManual.setDecimals(10);

sensitivityAutomatic = new DoublePreferencePanel(styleManager, I18n.get("settings.sensitivityAutomatic"), preferences.sensitivityAutomatic);
sensitivityAutomatic.setWidth(130);
sensitivityAutomatic.setDecimals(10);

JPanel sensitivityRow = new JPanel(new GridLayout(1, 2, 2 * OptionsFrame.PADDING, 0));
sensitivityRow.setOpaque(false);
sensitivityRow.add(sensitivityManual);
sensitivityRow.add(sensitivityAutomatic);
column1.add(sensitivityRow);

if (KeyboardListener.registered) {
enterBoatHotkey = new HotkeyPanel(styleManager, I18n.get("settings.enter_boat"), preferences.hotkeyBoat);
column1.add(enterBoatHotkey);
Expand All @@ -61,7 +72,8 @@ public BoatMeasurementOptionsPanel(StyleManager styleManager, NinjabrainBotPrefe
}

private void setPreciseAngleEnabled(boolean b) {
sensitivity.setEnabled(b);
sensitivityManual.setEnabled(b);
sensitivityAutomatic.setEnabled(b);
boatTypeRadioButtonPanel.setEnabled(b);
boatErrorLimit.setEnabled(b);
sigmaBoat.setEnabled(b);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,15 @@ public class NinjabrainBotPreferences {
public final HotkeyPreference hotkeyAltStd;
public final HotkeyPreference hotkeyLock;
public final HotkeyPreference hotkeyToggleAllAdvancementsMode;
public final FloatPreference sensitivityManual;
public final FloatPreference sigma;
public final FloatPreference sigmaAlt;
public final FloatPreference sigmaManual;
public final FloatPreference sigmaBoat;
public final FloatPreference resolutionHeight;
public final FloatPreference boatErrorLimit;
public final FloatPreference overlayHideDelay;
public final DoublePreference sensitivity;
public final DoublePreference sensitivityAutomatic;
public final DoublePreference customAdjustment;
public final DoublePreference crosshairCorrection;
public final BooleanPreference checkForUpdates;
Expand Down Expand Up @@ -86,6 +87,7 @@ public NinjabrainBotPreferences(IPreferenceSource source) {
hotkeyMod360 = new HotkeyPreference("hotkey_mod_360", source);
hotkeyToggleAllAdvancementsMode = new HotkeyPreference("hotkey_toggle_aa_mode", source);
// Float
sensitivityManual = new FloatPreference("sensitivity_manual", 0.4341732f, 0f, 1f, source);
sigma = new FloatPreference("sigma", 0.1f, 0.001f, 1f, source);
sigmaAlt = new FloatPreference("sigma_alt", 0.1f, 0.001f, 1f, source);
sigmaManual = new FloatPreference("sigma_manual", 0.03f, 0.001f, 1f, source);
Expand All @@ -94,7 +96,7 @@ public NinjabrainBotPreferences(IPreferenceSource source) {
boatErrorLimit = new FloatPreference("boat_error", 0.03f, 0f, 0.7f, source);
overlayHideDelay = new FloatPreference("overlay_hide_delay", 30f, 1f, 3600f, source);
// Double
sensitivity = new DoublePreference("sensitivity", 0.012727597f, 0f, 1f, source);
sensitivityAutomatic = new DoublePreference("sensitivity", 0.012727597f, 0f, 1f, source);
customAdjustment = new DoublePreference("custom_adjustment", 0.01, 0f, 1f, source);
crosshairCorrection = new DoublePreference("crosshair_correction", 0, -1f, 1f, source);
// Boolean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ public class ReduceBoatAngleMod360Action implements IAction {
private final double angle;
private final double sensitivity;

public ReduceBoatAngleMod360Action(IBoatDataState boatDataState, double playerAngle, NinjabrainBotPreferences preferences) {
public ReduceBoatAngleMod360Action(IBoatDataState boatDataState, double playerAngle, double sensitivity) {
this.boatDataState = boatDataState;
this.angle = playerAngle;
this.sensitivity = preferences.sensitivity.get();
this.sensitivity = sensitivity;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ private void add(IEnderEyeThrow t) throws InterruptedException {
// Face in the general direction of the stronghold
double nextAlpha = getAlpha(prediction, nextX, nextZ) + (Math.random() - 0.5) * 10.0;
if (isBoatThrowCalibrator) {
double preMultiplier = preferences.sensitivity.get() * (double) 0.6f + (double) 0.2f;
double preMultiplier = preferences.sensitivityAutomatic.get() * (double) 0.6f + (double) 0.2f;
preMultiplier = preMultiplier * preMultiplier * preMultiplier * 8.0D;
double minInc = preMultiplier * 0.15D;
nextAlpha = (float) (Math.round(nextAlpha / minInc) * minInc);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@
public class BoatEnderEyeThrow extends EnderEyeThrow {

public BoatEnderEyeThrow(IPlayerPosition playerPosition, NinjabrainBotPreferences preferences, float boatAngle) {
this(playerPosition.xInOverworld(), playerPosition.zInPlayerDimension(), getPreciseBoatHorizontalAngle(playerPosition.horizontalAngle(), preferences, boatAngle),
this(playerPosition.xInOverworld(), playerPosition.zInPlayerDimension(), getPreciseBoatHorizontalAngle(playerPosition.horizontalAngle(), preferences.sensitivityManual.get(), preferences.crosshairCorrection.get(), boatAngle),
-31.6, 0);
}

public BoatEnderEyeThrow(IDetailedPlayerPosition detailedPlayerPosition, NinjabrainBotPreferences preferences, float boatAngle) {
this(detailedPlayerPosition.xInOverworld(), detailedPlayerPosition.zInPlayerDimension(), getPreciseBoatHorizontalAngle(detailedPlayerPosition.horizontalAngle(), preferences, boatAngle),
this(detailedPlayerPosition.xInOverworld(), detailedPlayerPosition.zInPlayerDimension(), getPreciseBoatHorizontalAngle(detailedPlayerPosition.horizontalAngle(), preferences.sensitivityAutomatic.get(), preferences.crosshairCorrection.get(), boatAngle),
detailedPlayerPosition.verticalAngle(), 0);
}

Expand Down Expand Up @@ -52,13 +52,12 @@ public EnderEyeThrowType getType() {
return EnderEyeThrowType.Boat;
}

private static double getPreciseBoatHorizontalAngle(double alpha, NinjabrainBotPreferences preferences, float boatAngle) {
double sensitivity = preferences.sensitivity.get();
private static double getPreciseBoatHorizontalAngle(double alpha, double sensitivity, double crosshairCorrection, float boatAngle) {
double preMultiplier = sensitivity * (double) 0.6f + (double) 0.2f;
preMultiplier = preMultiplier * preMultiplier * preMultiplier * 8.0D;
double minInc = preMultiplier * 0.15D;
alpha = (float) (boatAngle + Math.round((alpha - boatAngle) / minInc) * minInc);
return getCorrectedHorizontalAngle(alpha, preferences.crosshairCorrection.get());
return getCorrectedHorizontalAngle(alpha, crosshairCorrection);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ private IAction getActionForInputtedPlayerPosition(IDetailedPlayerPosition playe
return new SetBoatAngleAction(dataState.boatDataState(), playerPosition.horizontalAngle(), preferences);

if (preferences.usePreciseAngle.get() && dataState.boatDataState().reducingModulo360().get())
return new ReduceBoatAngleMod360Action(dataState.boatDataState(), playerPosition.horizontalAngle(), preferences);
return new ReduceBoatAngleMod360Action(dataState.boatDataState(), playerPosition.horizontalAngle(), preferences.sensitivityAutomatic.get());

if (!playerPosition.isInOverworld())
return null;
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/lang/I18n.properties
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ settings.use_alternative_clipboard_reader=Use alternative clipboard reader
settings.tall_resolution_explanation=Makes subpixel adjustment hotkeys work with tall resolution. Instead of adding or subtracting 0.01 from the angle, the angle will be changed by 1 pixel for each adjustment. E.g. if your crosshair is off by 4 pixels, you can correct the angle by pressing the corresponding subpixel adjustment hotkey 4 times. If your crosshair is too far left use the + adjustment, and vice versa.
settings.resolution_height=Resolution height:
settings.use_precise_angle=Enable boat measurements
settings.sensitivity=Sensitivity (from options.txt):
settings.sensitivityManual=Sensitivity (1.9-1.12):
settings.sensitivityAutomatic=Sensitivity (1.13+):
settings.boat_error=Allowable boat angle error:
settings.boat_standard_deviation=Standard deviation for boat throws:
settings.keyboard_shortcuts=Hotkeys
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/lang/I18n_cs_CZ.properties
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ settings.use_alternative_clipboard_reader=Používat alternativní čtečku schr
settings.tall_resolution_explanation=Díky tomu fungují klávesy pro úpravu subpixelů s vysokým rozlišením. Místo pričítání nebo odčítání 0.01 z daného úhlu, daný úhel bude změněn o 1 pixel pro každou úpravu. Např. pokud je tvůj zaměřovač vedle o 4 pixely, můžeš úhel opravit tím, že čtyřikrát stiskneš odpovídající klávesu pro úpravu subpixelů. Pokud je tvůj zaměřovač moc vlevo, použij + úpravu a naopak.
settings.resolution_height=Výška rozlišení
settings.use_precise_angle=Povolit měření v lodi
settings.sensitivity=Citlivost (ze souboru options.txt)
settings.sensitivityManual=Citlivost (1.9-1.12)
settings.sensitivityAutomatic=Citlivost (1.13+)
settings.boat_error=Povolitelná chyba úhlu v loďce
settings.boat_standard_deviation=Standardní odchylka pro hody z lodi:
settings.keyboard_shortcuts=Klávesové zkratky
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/lang/I18n_es_ES.properties
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ settings.use_advanced_stronghold_statistics=Usar estadísticas avanzadas del str
settings.use_alternative_clipboard_reader=Usar un lector de portapapeles alternativo
settings.resolution_height=Altura de resolución:
settings.use_precise_angle=Usar ángulo preciso
settings.sensitivity=Sensibilidad:
settings.sensitivityManual=Sensibilidad (1.9-1.12):
settings.sensitivityAutomatic=Sensibilidad (1.13+):
settings.boat_error=Error de ángulo de bote aceptable:
settings.boat_standard_deviation=Desviación estándar para lanzamientos de bote
settings.keyboard_shortcuts=Atajos de teclado
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/lang/I18n_fr_FR.properties
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ settings.use_alternative_clipboard_reader=Utiliser un lecteur de presse-papier a
settings.tall_resolution_explanation=Fait en sorte que les raccourcis permettant d'ajuster les sous-pixels marchent avec la haute résolution (écran étiré). Au lieu d'ajouter ou soustraire 0.01 à l'angle, l'angle sera changé de 1 pixel pour chaque ajustement. Par exemple si votre curseur est décalé de 4 pixels, vous pouvez corriger l'angle en appuyant sur le raccourci d'ajustement du sub-pixel 4 fois. Si votre curseur est trop à gauche, utiliser l'ajustement +, et inversement.
settings.resolution_height=Hauteur de la résolution :
settings.use_precise_angle=Activer la mesure en bateau
settings.sensitivity=Sensibilité (depuis options.txt):
settings.sensitivityManual=Sensibilité (1.9-1.12):
settings.sensitivityAutomatic=Sensibilité (1.13+):
settings.boat_error=Erreur acceptable pour l'angle du bateau
settings.boat_standard_deviation=Déviation standard pour les lancers en bateau
settings.keyboard_shortcuts=Raccourcis
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/lang/I18n_ko_KR.properties
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ settings.use_alternative_clipboard_reader=대체 클립보드 리더 사용
settings.tall_resolution_explanation=하위 픽셀 조정 단축키가 긴 해상도에서 작동하도록 합니다. 각도에서 0.01을 더하거나 빼는 대신 1픽셀씩 변경됩니다. 예를 들어 십자선이 4픽셀 벗어난 경우 해당 하위 픽셀 조정 단축키를 4번 눌러 각도를 수정할 수 있습니다. 십자선이 너무 왼쪽에 있으면 + 조정을 사용하고 그 반대도 마찬가지입니다.
settings.resolution_height=해상도 높이:
settings.use_precise_angle=보트 측정 활성화
settings.sensitivity=Sensitivity (options.txt 참고):
settings.sensitivityManual=Sensitivity (1.9-1.12):
settings.sensitivityAutomatic=Sensitivity (1.13+):
settings.boat_error=허용 보트 각도 오차:
settings.boat_standard_deviation=보트에서의 표준 편차
settings.keyboard_shortcuts=키보드 단축키
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/lang/I18n_ru_RU.properties
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ settings.use_alternative_clipboard_reader=Альтернативный ввод
settings.tall_resolution_explanation=Добавление угла будет работать с растянутым разрешением. Вместо изменения угла на 0.01\u00B0, угол будет изменен на 1 пиксель при каждом нажатии. Например, если ваш прицел отличается от цели на 4 пикселя, вы можете скорректировать угол, нажав соответствующую клавишу 4 раза. Если ваш прицел находится левее цели, прибавляйте угол и наоборот.
settings.resolution_height=Высота разрешения:
settings.use_precise_angle=Разрешить измерять броски при помощи лодки
settings.sensitivity=Чувствительность (из options.txt):
settings.sensitivityManual=Чувствительность (1.9-1.12):
settings.sensitivityAutomatic=Чувствительность (1.13+):
settings.boat_error=Допустимая погрешность градуса при использовании лодки:
settings.boat_standard_deviation=Погрешность по умолчанию при использовании лодки
settings.keyboard_shortcuts=Горячие клавиши
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/lang/I18n_tr_TR.properties
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ settings.use_alternative_clipboard_reader=Alternatif pano okuyucu kullan
settings.tall_resolution_explanation=Alt piksel ayarı kısayol tuşlarının Uzun çözünürlükte çalışmasını sağlar. 0,01 açıya ekleme veya çıkarma yapmak yerine, her ayarlama için açı 1 piksel değiştirilecektir. Örneğin, nişangahınız 4 piksel yanlış ise, ilgili alt piksel ayarlama tuşuna 4 kez basarak açıyı düzeltebilirsiniz. Eğer nişangahınız çok sola kaymışsa, + ayarlama tuşunu kullanın, aksi halde - ayarlama tuşunu kullanın.
settings.resolution_height=Çözünürlük yüksekliği:
settings.use_precise_angle=Tekne ölçümlerini etkinleştir
settings.sensitivity=Hassasiyet (options.txt'den):
settings.sensitivityManual=Hassasiyet (1.9-1.12):
settings.sensitivityAutomatic=Hassasiyet (1.13+):
settings.boat_error=Kabul edilebilir tekne açısı hatası:
settings.boat_standard_deviation=Tekne atışları için standart sapma
settings.keyboard_shortcuts=Kısayol tuşları
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/lang/I18n_uk_UA.properties
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ settings.use_alternative_clipboard_reader=Альтернативний ввід
settings.tall_resolution_explanation=Додавання кута буде працювати з розтягнутим розширенням. Замість зміни кута на 0.01°, кут буде змінюватися на 1 піксель при кожному натисканні. Наприклад, якщо ваш приціл відхиляється від цілі на 4 пікселі, ви можете виправити кут, натискаючи відповідну клавішу 4 рази. Якщо ваш приціл розташований лівіше цілі, додаєте кут, і навпаки.
settings.resolution_height=Висота роздільної здатності:
settings.use_precise_angle=Дозволити вимірювати кидки за допомогою човна
settings.sensitivity=Чутливість (з options.txt):
settings.sensitivityManual=Чутливість (1.9-1.12):
settings.sensitivityAutomatic=Чутливість (1.13+):
settings.boat_error=Допустима похибка градуса при використанні човна:
settings.boat_standard_deviation=Похибка за замовчуванням при використанні човна
settings.keyboard_shortcuts=Гарячі клавіші
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/lang/I18n_zh_CN.properties
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ settings.use_alternative_clipboard_reader=代理剪贴板
settings.tall_resolution_explanation=使角度调整快捷键适用于高分辨率。每调整一次,角度将改变 1 个像素,而不是从角度中增加或减少 0.01。例如,如果您的十字准心偏离了 4 个像素,您可以按相应的角度调整快捷键 4 次来修正角度。如果您的十字准心偏左,则使用 + 调整,反之亦然。
settings.resolution_height=分辨率高度
settings.use_precise_angle=启用船测
settings.sensitivity=灵敏度(来自 options.txt):
settings.sensitivityManual=灵敏度(1.9 - 1.12):
settings.sensitivityAutomatic=灵敏度(1.13+):
settings.boat_error=允许的船体角度误差:
settings.boat_standard_deviation=船测的标准偏差:
settings.keyboard_shortcuts=快捷键
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/lang/I18n_zh_TW.properties
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ settings.use_alternative_clipboard_reader=使用替代的剪貼簿閱讀器
settings.tall_resolution_explanation=使調整角度快捷鍵適用於高解析度模式。不再每次將角度增加或減少 0.01,而是每次調整會改變 1 個像素的角度。例如,如果你的準心偏移了 4 個像素,你可以通過按下對應的調整快捷鍵 4 次來校正角度。如果你的十字瞄準器偏向左邊太多,使用「+」調整,反之使用「-」。
settings.resolution_height=視窗高度:
settings.use_precise_angle=啟用船測
settings.sensitivity=靈敏度(來自 options.txt):
settings.sensitivityManual=靈敏度(1.9-1.12):
settings.sensitivityAutomatic=靈敏度(1.13+):
settings.boat_error=可接受的船測誤差:
settings.boat_standard_deviation=船測的標準差:
settings.keyboard_shortcuts=鍵盤快捷鍵
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ public IntegrationTestBuilder withObsOverlaySettings() {

public IntegrationTestBuilder withBoatSettings() {
preferences.sigmaBoat.set(0.001f);
preferences.sensitivity.set(0.065292805);
preferences.sensitivityAutomatic.set(0.065292805);
preferences.resolutionHeight.set(16384);
preferences.angleAdjustmentType.set(AngleAdjustmentType.TALL);
preferences.usePreciseAngle.set(true);
Expand Down

0 comments on commit 1515927

Please sign in to comment.