From 2fba3eba9ca30486648baac20e6ff289052fdc16 Mon Sep 17 00:00:00 2001 From: Xertis <118364459+Xertis@users.noreply.github.com> Date: Mon, 4 Aug 2025 20:44:04 +0300 Subject: [PATCH 1/3] Update settings_controls.xml.lua --- res/layouts/pages/settings_controls.xml.lua | 55 +++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/res/layouts/pages/settings_controls.xml.lua b/res/layouts/pages/settings_controls.xml.lua index ad8491ad..df6fe20b 100644 --- a/res/layouts/pages/settings_controls.xml.lua +++ b/res/layouts/pages/settings_controls.xml.lua @@ -1,3 +1,12 @@ +local WARNING_COLORS = { + {252, 200, 149, 255}, + {246, 233, 44, 255}, + {250, 151, 75, 255}, + {250, 75, 139, 255}, + {208, 104, 107, 255} +} + +local GENERAL_WARNING_COLOR = {208, 138, 0, 255} function refresh_search() local search_text = document.search_textbox.text @@ -40,6 +49,48 @@ function change_sensitivity(val) refresh_sensitivity() end +function refresh_binding_labels() + local prev_bindings = {} + local conflicts_colors = {} + local available_colors = table.copy(WARNING_COLORS) + + local bindings = input.get_bindings() + table.sort(bindings, function(a, b) return a > b end) + + for _, bind_name in pairs(bindings) do + local key = input.get_binding_text(bind_name) + local prev = prev_bindings[key] + if prev then + local color = GENERAL_WARNING_COLOR + local conflict_color = conflicts_colors[key] + if conflict_color then + color = conflict_color + elseif #available_colors > 0 then + color = available_colors[1] + conflicts_colors[key] = color + table.remove(available_colors, 1) + end + + local tooltip = gui.str("settings.Conflict", "settings") + + local prev_bindmark = "bindmark_" .. prev + local cur_bindmark = "bindmark_" .. bind_name + document[prev_bindmark].visible = true + document[cur_bindmark].visible = true + + document[prev_bindmark].color = color + document[cur_bindmark].color = color + + document["bind_" .. prev].tooltip = tooltip + document["bind_" .. bind_name].tooltip = tooltip + else + document["bindmark_" .. bind_name].visible = false + document["bind_" .. bind_name].tooltip = '' + prev_bindings[key] = bind_name + end + end +end + function on_open() document.sensitivity_track.value = core.get_setting("camera.sensitivity") refresh_sensitivity() @@ -52,4 +103,8 @@ function on_open() id=name, name=gui.str(name) })) end + + document.bindings_panel:setInterval(100, function () + refresh_binding_labels() + end) end From 1f0b6f0d9d665f6222c1959f6550847a7da05517 Mon Sep 17 00:00:00 2001 From: Xertis <118364459+Xertis@users.noreply.github.com> Date: Mon, 4 Aug 2025 20:50:27 +0300 Subject: [PATCH 2/3] Qol settings.controls update --- res/layouts/templates/binding.xml | 5 +++-- res/preload.json | 3 ++- res/texts/en_US.txt | 1 + res/texts/ru_RU.txt | 1 + res/textures/gui/half_block.png | Bin 0 -> 531 bytes 5 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 res/textures/gui/half_block.png diff --git a/res/layouts/templates/binding.xml b/res/layouts/templates/binding.xml index 643bd5aa..92843749 100644 --- a/res/layouts/templates/binding.xml +++ b/res/layouts/templates/binding.xml @@ -1,4 +1,5 @@ - + - + + diff --git a/res/preload.json b/res/preload.json index 887b0e26..0cd11b5b 100644 --- a/res/preload.json +++ b/res/preload.json @@ -47,7 +47,8 @@ "gui/info", "gui/world", "gui/hud", - "gui/entity" + "gui/entity", + "gui/half_block" ], "fonts": [ { diff --git a/res/texts/en_US.txt b/res/texts/en_US.txt index 57a6cb6b..b3be4c92 100644 --- a/res/texts/en_US.txt +++ b/res/texts/en_US.txt @@ -22,6 +22,7 @@ graphics.dense-render.tooltip=Enables transparency in blocks like leaves # settings settings.Controls Search Mode=Search by attached button name +settings.Conflict=Possible conflicts found # Bindings chunks.reload=Reload Chunks diff --git a/res/texts/ru_RU.txt b/res/texts/ru_RU.txt index d2d7c63e..5d8d22ca 100644 --- a/res/texts/ru_RU.txt +++ b/res/texts/ru_RU.txt @@ -100,6 +100,7 @@ settings.Controls Search Mode=Поиск по привязанной кнопк settings.Limit Background FPS=Ограничить фоновую частоту кадров settings.Advanced render=Продвинутый рендер settings.Shadows quality=Качество теней +settings.Conflict=Найдены возможные конфликты # Управление chunks.reload=Перезагрузить Чанки diff --git a/res/textures/gui/half_block.png b/res/textures/gui/half_block.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6b699ed06e5d85ec26040170976688d5a5f1db GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^EI`b`!3HGn8ON~#DaPU;cPEB*=VV@jWYZme9T^xl z_H+M91W9rhctjR6Fz_7&Va6R3v)=+Wv}cAyltlRYSS9D@>LsS+C#C9D^BXQ!4ZB&DWj=Gm&h-@RX5Av48RJ>1mSz_-9TH6zobswg$M$}c3jDm&RSMcv+x zm&>NY3TQ%ZYDuC(MQ%=Bu~mhw64+oXAR8pCuViOal#*r@k>g7FXt#Bv$C=6)Qsxa7isrF3Kz@$;{7F02!E= zlwVq6t5jN=nPQcem}Z)kl47cxlxUoyYiO8~sGFE#Y^a-JY@A|lYG`4UW|*V|wZ0@X z4Pk#?F*F!}0iq9*(KpmH067`Nw(>8^Oa;0EWTl;<4OkvU%tjyN5G04$K}3Ll1+w5F z0}3X1=%(fYgR~qNb~;mLa0A0#)YHW=L?S%-&;S4b>)BKew47NupMgQ*0t?THlb7{C OG2`j#=d#Wzp$P!L;;2mk literal 0 HcmV?d00001 From 23837418f1d4d1fe77728bc37d44054cf85cc994 Mon Sep 17 00:00:00 2001 From: Xertis <118364459+Xertis@users.noreply.github.com> Date: Mon, 4 Aug 2025 21:11:44 +0300 Subject: [PATCH 3/3] minor optimization --- res/layouts/pages/settings_controls.xml.lua | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/res/layouts/pages/settings_controls.xml.lua b/res/layouts/pages/settings_controls.xml.lua index df6fe20b..34631929 100644 --- a/res/layouts/pages/settings_controls.xml.lua +++ b/res/layouts/pages/settings_controls.xml.lua @@ -1,9 +1,9 @@ local WARNING_COLORS = { - {252, 200, 149, 255}, - {246, 233, 44, 255}, - {250, 151, 75, 255}, + {208, 104, 107, 255}, {250, 75, 139, 255}, - {208, 104, 107, 255} + {250, 151, 75, 255}, + {246, 233, 44, 255}, + {252, 200, 149, 255} } local GENERAL_WARNING_COLOR = {208, 138, 0, 255} @@ -49,7 +49,7 @@ function change_sensitivity(val) refresh_sensitivity() end -function refresh_binding_labels() +function refresh_binding_marks() local prev_bindings = {} local conflicts_colors = {} local available_colors = table.copy(WARNING_COLORS) @@ -57,18 +57,19 @@ function refresh_binding_labels() local bindings = input.get_bindings() table.sort(bindings, function(a, b) return a > b end) - for _, bind_name in pairs(bindings) do + for _, bind_name in ipairs(bindings) do local key = input.get_binding_text(bind_name) local prev = prev_bindings[key] if prev then local color = GENERAL_WARNING_COLOR local conflict_color = conflicts_colors[key] + local available_colors_len = #available_colors if conflict_color then color = conflict_color - elseif #available_colors > 0 then - color = available_colors[1] + elseif available_colors_len > 0 then + color = available_colors[available_colors_len] conflicts_colors[key] = color - table.remove(available_colors, 1) + table.remove(available_colors, available_colors_len) end local tooltip = gui.str("settings.Conflict", "settings") @@ -105,6 +106,6 @@ function on_open() end document.bindings_panel:setInterval(100, function () - refresh_binding_labels() + refresh_binding_marks() end) end