Update customization_menu.lua

This commit is contained in:
GreenComfyTea
2022-07-26 19:34:36 +03:00
parent 2f9a8ac6a3
commit b36df1ba80

View File

@@ -1,4 +1,5 @@
local customization_menu = {}; local customization_menu = {};
local table_helpers; local table_helpers;
local config; local config;
local screen; local screen;
@@ -12,43 +13,52 @@ local time_UI;
local keyboard; local keyboard;
local label_customization; local label_customization;
local bar_customization; local bar_customization;
customization_menu.font = nil; customization_menu.font = nil;
customization_menu.font_range = { 0x1, 0xFFFF, 0 }; customization_menu.font_range = { 0x1, 0xFFFF, 0 };
customization_menu.is_opened = false; customization_menu.is_opened = false;
customization_menu.status = "OK"; customization_menu.status = "OK";
customization_menu.window_position = Vector2f.new(480, 200); customization_menu.window_position = Vector2f.new(480, 200);
customization_menu.window_pivot = Vector2f.new(0, 0); customization_menu.window_pivot = Vector2f.new(0, 0);
customization_menu.window_size = Vector2f.new(720, 720); customization_menu.window_size = Vector2f.new(720, 720);
customization_menu.window_flags = 0x10120; customization_menu.window_flags = 0x10120;
customization_menu.color_picker_flags = 327680; customization_menu.color_picker_flags = 327680;
customization_menu.decimal_input_flags = 33; customization_menu.decimal_input_flags = 33;
customization_menu.displayed_orientation_types = {}; customization_menu.displayed_orientation_types = {};
customization_menu.displayed_anchor_types = {}; customization_menu.displayed_anchor_types = {};
customization_menu.displayed_outline_styles = {}; customization_menu.displayed_outline_styles = {};
customization_menu.displayed_monster_UI_sorting_types = {}; customization_menu.displayed_monster_UI_sorting_types = {};
customization_menu.displayed_monster_UI_parts_sorting_types = {}; customization_menu.displayed_monster_UI_parts_sorting_types = {};
customization_menu.displayed_ailments_sorting_types = {}; customization_menu.displayed_ailments_sorting_types = {};
customization_menu.displayed_ailment_buildups_sorting_types = {}; customization_menu.displayed_ailment_buildups_sorting_types = {};
customization_menu.displayed_highlighted_buildup_bar_types = {}; customization_menu.displayed_highlighted_buildup_bar_types = {};
customization_menu.displayed_buildup_bar_relative_types = {}; customization_menu.displayed_buildup_bar_relative_types = {};
customization_menu.displayed_damage_meter_UI_highlighted_bar_types = {}; customization_menu.displayed_damage_meter_UI_highlighted_bar_types = {};
customization_menu.displayed_damage_meter_UI_damage_bar_relative_types = {}; customization_menu.displayed_damage_meter_UI_damage_bar_relative_types = {};
customization_menu.displayed_damage_meter_UI_my_damage_bar_location_types = {}; customization_menu.displayed_damage_meter_UI_my_damage_bar_location_types = {};
customization_menu.displayed_damage_meter_UI_sorting_types = {}; customization_menu.displayed_damage_meter_UI_sorting_types = {};
customization_menu.displayed_damage_meter_UI_dps_modes = {}; customization_menu.displayed_damage_meter_UI_dps_modes = {};
customization_menu.orientation_types = {}; customization_menu.orientation_types = {};
customization_menu.anchor_types = {}; customization_menu.anchor_types = {};
customization_menu.outline_styles = {}; customization_menu.outline_styles = {};
customization_menu.monster_UI_sorting_types = {}; customization_menu.monster_UI_sorting_types = {};
customization_menu.ailments_sorting_types = {}; customization_menu.ailments_sorting_types = {};
customization_menu.ailment_buildups_sorting_types = {}; customization_menu.ailment_buildups_sorting_types = {};
customization_menu.highlighted_buildup_bar_types = {}; customization_menu.highlighted_buildup_bar_types = {};
customization_menu.buildup_bar_relative_types = {}; customization_menu.buildup_bar_relative_types = {};
customization_menu.damage_meter_UI_highlighted_bar_types = {}; customization_menu.damage_meter_UI_highlighted_bar_types = {};
customization_menu.damage_meter_UI_damage_bar_relative_types = {}; customization_menu.damage_meter_UI_damage_bar_relative_types = {};
customization_menu.damage_meter_UI_my_damage_bar_location_types = {}; customization_menu.damage_meter_UI_my_damage_bar_location_types = {};
customization_menu.damage_meter_UI_sorting_types = {}; customization_menu.damage_meter_UI_sorting_types = {};
customization_menu.damage_meter_UI_dps_modes = {}; customization_menu.damage_meter_UI_dps_modes = {};
customization_menu.fonts = { "Arial", "Arial Black", "Bahnschrift", "Calibri", "Cambria", "Cambria Math", "Candara", customization_menu.fonts = { "Arial", "Arial Black", "Bahnschrift", "Calibri", "Cambria", "Cambria Math", "Candara",
"Comic Sans MS", "Consolas", "Constantia", "Corbel", "Courier New", "Ebrima", "Franklin Gothic Medium", "Gabriola", "Comic Sans MS", "Consolas", "Constantia", "Corbel", "Courier New", "Ebrima", "Franklin Gothic Medium", "Gabriola",
"Gadugi", "Georgia", "HoloLens MDL2 Assets", "Impact", "Ink Free", "Javanese Text", "Leelawadee UI", "Lucida Console", "Gadugi", "Georgia", "HoloLens MDL2 Assets", "Impact", "Ink Free", "Javanese Text", "Leelawadee UI", "Lucida Console",
@@ -57,6 +67,7 @@ customization_menu.fonts = { "Arial", "Arial Black", "Bahnschrift", "Calibri", "
"Mongolian Baiti", "MS Gothic", "MV Boli", "Myanmar Text", "Nirmala UI", "Palatino Linotype", "Segoe MDL2 Assets", "Mongolian Baiti", "MS Gothic", "MV Boli", "Myanmar Text", "Nirmala UI", "Palatino Linotype", "Segoe MDL2 Assets",
"Segoe Print", "Segoe Script", "Segoe UI", "Segoe UI Historic", "Segoe UI Emoji", "Segoe UI Symbol", "SimSun", "Sitka", "Segoe Print", "Segoe Script", "Segoe UI", "Segoe UI Historic", "Segoe UI Emoji", "Segoe UI Symbol", "SimSun", "Sitka",
"Sylfaen", "Symbol", "Tahoma", "Times New Roman", "Trebuchet MS", "Verdana", "Webdings", "Wingdings", "Yu Gothic" }; "Sylfaen", "Symbol", "Tahoma", "Times New Roman", "Trebuchet MS", "Verdana", "Webdings", "Wingdings", "Yu Gothic" };
customization_menu.all_UI_waiting_for_key = false; customization_menu.all_UI_waiting_for_key = false;
customization_menu.small_monster_UI_waiting_for_key = false; customization_menu.small_monster_UI_waiting_for_key = false;
customization_menu.large_monster_UI_waiting_for_key = false; customization_menu.large_monster_UI_waiting_for_key = false;
@@ -67,6 +78,7 @@ customization_menu.time_UI_waiting_for_key = false;
customization_menu.damage_meter_UI_waiting_for_key = false; customization_menu.damage_meter_UI_waiting_for_key = false;
customization_menu.endemic_life_UI_waiting_for_key = false; customization_menu.endemic_life_UI_waiting_for_key = false;
customization_menu.menu_font_changed = false; customization_menu.menu_font_changed = false;
function customization_menu.reload_font(pop_push) function customization_menu.reload_font(pop_push)
customization_menu.font = imgui.load_font(language.current_language.font_name, customization_menu.font = imgui.load_font(language.current_language.font_name,
config.current_config.global_settings.menu_font.size, customization_menu.font_range); config.current_config.global_settings.menu_font.size, customization_menu.font_range);
@@ -82,17 +94,20 @@ function customization_menu.init()
customization_menu.displayed_anchor_types = { language.current_language.customization_menu.top_left, customization_menu.displayed_anchor_types = { language.current_language.customization_menu.top_left,
language.current_language.customization_menu.top_right, language.current_language.customization_menu.bottom_left, language.current_language.customization_menu.top_right, language.current_language.customization_menu.bottom_left,
language.current_language.customization_menu.bottom_right }; language.current_language.customization_menu.bottom_right };
customization_menu.displayed_outline_styles = { language.current_language.customization_menu.inside, customization_menu.displayed_outline_styles = { language.current_language.customization_menu.inside,
language.current_language.customization_menu.center, language.current_language.customization_menu.outside }; language.current_language.customization_menu.center, language.current_language.customization_menu.outside };
customization_menu.displayed_monster_UI_sorting_types = { language.current_language.customization_menu.normal, customization_menu.displayed_monster_UI_sorting_types = { language.current_language.customization_menu.normal,
language.current_language.customization_menu.health, language.current_language.customization_menu.health_percentage, language.current_language.customization_menu.health, language.current_language.customization_menu.health_percentage,
language.current_language.customization_menu.distance }; language.current_language.customization_menu.distance };
customization_menu.displayed_monster_UI_parts_sorting_types = { language.current_language.customization_menu.normal, customization_menu.displayed_monster_UI_parts_sorting_types = { language.current_language.customization_menu.normal,
language.current_language.customization_menu.health, language.current_language.customization_menu.health_percentage, language.current_language.customization_menu.health, language.current_language.customization_menu.health_percentage,
language.current_language.customization_menu.flinch_count, language.current_language.customization_menu.break_health, language.current_language.customization_menu.flinch_count, language.current_language.customization_menu.break_health,
language.current_language.customization_menu.break_health_percentage, language.current_language.customization_menu.break_health_percentage,
language.current_language.customization_menu.break_count, language.current_language.customization_menu.loss_health, language.current_language.customization_menu.break_count, language.current_language.customization_menu.loss_health,
language.current_language.customization_menu.loss_health_percentage }; language.current_language.customization_menu.loss_health_percentage };
customization_menu.displayed_ailments_sorting_types = { language.current_language.customization_menu.normal, customization_menu.displayed_ailments_sorting_types = { language.current_language.customization_menu.normal,
language.current_language.customization_menu.buildup, language.current_language.customization_menu.buildup_percentage }; language.current_language.customization_menu.buildup, language.current_language.customization_menu.buildup_percentage };
customization_menu.displayed_ailment_buildups_sorting_types = { language.current_language.customization_menu.normal, customization_menu.displayed_ailment_buildups_sorting_types = { language.current_language.customization_menu.normal,
@@ -104,6 +119,7 @@ function customization_menu.init()
customization_menu.displayed_damage_meter_UI_highlighted_bar_types = { language.current_language.customization_menu.me, customization_menu.displayed_damage_meter_UI_highlighted_bar_types = { language.current_language.customization_menu.me,
language.current_language.customization_menu.top_damage, language.current_language.customization_menu.top_dps, language.current_language.customization_menu.top_damage, language.current_language.customization_menu.top_dps,
language.current_language.customization_menu.none }; language.current_language.customization_menu.none };
customization_menu.displayed_damage_meter_UI_damage_bar_relative_types = { language.current_language.customization_menu customization_menu.displayed_damage_meter_UI_damage_bar_relative_types = { language.current_language.customization_menu
.total_damage, language.current_language.customization_menu.top_damage }; .total_damage, language.current_language.customization_menu.top_damage };
customization_menu.displayed_damage_meter_UI_my_damage_bar_location_types = { language.current_language.customization_menu customization_menu.displayed_damage_meter_UI_my_damage_bar_location_types = { language.current_language.customization_menu
@@ -112,22 +128,26 @@ function customization_menu.init()
language.current_language.customization_menu.damage, language.current_language.customization_menu.dps }; language.current_language.customization_menu.damage, language.current_language.customization_menu.dps };
customization_menu.displayed_damage_meter_UI_dps_modes = { language.current_language.customization_menu.first_hit, customization_menu.displayed_damage_meter_UI_dps_modes = { language.current_language.customization_menu.first_hit,
language.current_language.customization_menu.quest_time, language.current_language.customization_menu.join_time }; language.current_language.customization_menu.quest_time, language.current_language.customization_menu.join_time };
customization_menu.orientation_types = { language.default_language.customization_menu.horizontal, customization_menu.orientation_types = { language.default_language.customization_menu.horizontal,
language.default_language.customization_menu.vertical }; language.default_language.customization_menu.vertical };
customization_menu.anchor_types = { language.default_language.customization_menu.top_left, customization_menu.anchor_types = { language.default_language.customization_menu.top_left,
language.default_language.customization_menu.top_right, language.default_language.customization_menu.bottom_left, language.default_language.customization_menu.top_right, language.default_language.customization_menu.bottom_left,
language.default_language.customization_menu.bottom_right }; language.default_language.customization_menu.bottom_right };
customization_menu.outline_styles = { language.default_language.customization_menu.inside, customization_menu.outline_styles = { language.default_language.customization_menu.inside,
language.default_language.customization_menu.center, language.default_language.customization_menu.outside }; language.default_language.customization_menu.center, language.default_language.customization_menu.outside };
customization_menu.monster_UI_sorting_types = { language.default_language.customization_menu.normal, customization_menu.monster_UI_sorting_types = { language.default_language.customization_menu.normal,
language.default_language.customization_menu.health, language.default_language.customization_menu.health_percentage, language.default_language.customization_menu.health, language.default_language.customization_menu.health_percentage,
language.default_language.customization_menu.distance }; language.default_language.customization_menu.distance };
customization_menu.large_monster_UI_parts_sorting_types = { language.default_language.customization_menu.normal, customization_menu.large_monster_UI_parts_sorting_types = { language.default_language.customization_menu.normal,
language.default_language.customization_menu.health, language.default_language.customization_menu.health_percentage, language.default_language.customization_menu.health, language.default_language.customization_menu.health_percentage,
language.default_language.customization_menu.flinch_count, language.default_language.customization_menu.break_health, language.default_language.customization_menu.flinch_count, language.default_language.customization_menu.break_health,
language.default_language.customization_menu.break_health_percentage, language.default_language.customization_menu.break_health_percentage,
language.default_language.customization_menu.break_count, language.default_language.customization_menu.loss_health, language.default_language.customization_menu.break_count, language.default_language.customization_menu.loss_health,
language.default_language.customization_menu.loss_health_percentage }; language.default_language.customization_menu.loss_health_percentage };
customization_menu.ailments_sorting_types = { language.default_language.customization_menu.normal, customization_menu.ailments_sorting_types = { language.default_language.customization_menu.normal,
language.default_language.customization_menu.buildup, language.default_language.customization_menu.buildup_percentage }; language.default_language.customization_menu.buildup, language.default_language.customization_menu.buildup_percentage };
customization_menu.ailment_buildups_sorting_types = { language.default_language.customization_menu.normal, customization_menu.ailment_buildups_sorting_types = { language.default_language.customization_menu.normal,
@@ -136,11 +156,13 @@ function customization_menu.init()
language.default_language.customization_menu.top_buildup, language.default_language.customization_menu.none }; language.default_language.customization_menu.top_buildup, language.default_language.customization_menu.none };
customization_menu.buildup_bar_relative_types = { language.default_language.customization_menu.total_buildup, customization_menu.buildup_bar_relative_types = { language.default_language.customization_menu.total_buildup,
language.default_language.customization_menu.top_buildup }; language.default_language.customization_menu.top_buildup };
customization_menu.damage_meter_UI_highlighted_bar_types = { language.default_language.customization_menu.me, customization_menu.damage_meter_UI_highlighted_bar_types = { language.default_language.customization_menu.me,
language.default_language.customization_menu.top_damage, language.default_language.customization_menu.top_dps, language.default_language.customization_menu.top_damage, language.default_language.customization_menu.top_dps,
language.default_language.customization_menu.none }; language.default_language.customization_menu.none };
customization_menu.damage_meter_UI_damage_bar_relative_types = { language.default_language.customization_menu.total_damage, customization_menu.damage_meter_UI_damage_bar_relative_types = { language.default_language.customization_menu.total_damage,
language.default_language.customization_menu.top_damage }; language.default_language.customization_menu.top_damage };
customization_menu.damage_meter_UI_my_damage_bar_location_types = { language.default_language.customization_menu.normal, customization_menu.damage_meter_UI_my_damage_bar_location_types = { language.default_language.customization_menu.normal,
language.default_language.customization_menu.first, language.default_language.customization_menu.last }; language.default_language.customization_menu.first, language.default_language.customization_menu.last };
customization_menu.damage_meter_UI_sorting_types = { language.default_language.customization_menu.normal, customization_menu.damage_meter_UI_sorting_types = { language.default_language.customization_menu.normal,
@@ -153,16 +175,16 @@ function customization_menu.draw()
imgui.set_next_window_pos(customization_menu.window_position, 1 << 3, customization_menu.window_pivot); imgui.set_next_window_pos(customization_menu.window_position, 1 << 3, customization_menu.window_pivot);
imgui.set_next_window_size(customization_menu.window_size, 1 << 3); imgui.set_next_window_size(customization_menu.window_size, 1 << 3);
imgui.push_font(customization_menu.font); imgui.push_font(customization_menu.font);
customization_menu.is_opened = imgui.begin_window(language.current_language.customization_menu.mod_name .. customization_menu.is_opened = imgui.begin_window(language.current_language.customization_menu.mod_name ..
" " .. config.current_config.version, customization_menu.is_opened, customization_menu.window_flags); " " .. config.current_config.version, customization_menu.is_opened, customization_menu.window_flags);
if not customization_menu.is_opened then if not customization_menu.is_opened then
imgui.end_window(); imgui.end_window();
imgui.pop_font(); imgui.pop_font();
return; return;
end end
local index = 1;
local config_changed = false;
local changed = false;
local modifiers_changed = false; local modifiers_changed = false;
local modules_changed = false; local modules_changed = false;
local global_settings_changed = false; local global_settings_changed = false;
@@ -174,10 +196,13 @@ function customization_menu.draw()
local damage_meter_UI_changed = false; local damage_meter_UI_changed = false;
local endemic_life_UI_changed = false; local endemic_life_UI_changed = false;
local apply_font_requested = false; local apply_font_requested = false;
local cached_config = nil;
local status_string = tostring(customization_menu.status); local status_string = tostring(customization_menu.status);
imgui.text(language.current_language.customization_menu.status .. ": " .. status_string); imgui.text(language.current_language.customization_menu.status .. ": " .. status_string);
modules_changed = customization_menu.draw_modules(); modules_changed = customization_menu.draw_modules();
if imgui.tree_node(language.current_language.customization_menu.hotkeys) then if imgui.tree_node(language.current_language.customization_menu.hotkeys) then
if customization_menu.all_UI_waiting_for_key then if customization_menu.all_UI_waiting_for_key then
if imgui.button(language.current_language.customization_menu.press_any_key) then if imgui.button(language.current_language.customization_menu.press_any_key) then
@@ -187,6 +212,7 @@ function customization_menu.draw()
config.current_config.global_settings.hotkeys_with_modifiers.all_UI.alt = false; config.current_config.global_settings.hotkeys_with_modifiers.all_UI.alt = false;
customization_menu.all_UI_waiting_for_key = false; customization_menu.all_UI_waiting_for_key = false;
end end
elseif imgui.button(language.current_language.customization_menu.all_UI) then elseif imgui.button(language.current_language.customization_menu.all_UI) then
local is_any_other_waiting = customization_menu.small_monster_UI_waiting_for_key or local is_any_other_waiting = customization_menu.small_monster_UI_waiting_for_key or
customization_menu.large_monster_UI_waiting_for_key or customization_menu.large_monster_dynamic_UI_waiting_for_key or customization_menu.large_monster_UI_waiting_for_key or customization_menu.large_monster_dynamic_UI_waiting_for_key or
@@ -364,19 +390,24 @@ function customization_menu.draw()
imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.endemic_life_UI)); imgui.text(keyboard.get_hotkey_name(config.current_config.global_settings.hotkeys_with_modifiers.endemic_life_UI));
imgui.tree_pop(); imgui.tree_pop();
end end
global_settings_changed, modifiers_changed, apply_font_requested = customization_menu.draw_global_settings(); global_settings_changed, modifiers_changed, apply_font_requested = customization_menu.draw_global_settings();
small_monster_UI_changed = customization_menu.draw_small_monster_UI(); small_monster_UI_changed = customization_menu.draw_small_monster_UI();
if imgui.tree_node(language.current_language.customization_menu.large_monster_UI) then if imgui.tree_node(language.current_language.customization_menu.large_monster_UI) then
large_monster_dynamic_UI_changed = customization_menu.draw_large_monster_dynamic_UI() large_monster_dynamic_UI_changed = customization_menu.draw_large_monster_dynamic_UI()
large_monster_static_UI_changed = customization_menu.draw_large_monster_static_UI() large_monster_static_UI_changed = customization_menu.draw_large_monster_static_UI()
large_monster_highlighted_UI_changed = customization_menu.draw_large_monster_highlighted_UI() large_monster_highlighted_UI_changed = customization_menu.draw_large_monster_highlighted_UI()
imgui.tree_pop(); imgui.tree_pop();
end end
time_UI_changed = customization_menu.draw_time_UI(); time_UI_changed = customization_menu.draw_time_UI();
damage_meter_UI_changed = customization_menu.draw_damage_meter_UI(); damage_meter_UI_changed = customization_menu.draw_damage_meter_UI();
endemic_life_UI_changed = customization_menu.draw_endemic_life_UI() endemic_life_UI_changed = customization_menu.draw_endemic_life_UI()
imgui.end_window(); imgui.end_window();
imgui.pop_font(); imgui.pop_font();
if small_monster_UI_changed or modifiers_changed then if small_monster_UI_changed or modifiers_changed then
for _, monster in pairs(small_monster.list) do for _, monster in pairs(small_monster.list) do
small_monster.init_UI(monster); small_monster.init_UI(monster);
@@ -1050,6 +1081,8 @@ function customization_menu.draw_small_monster_UI()
config_changed = config_changed or changed; config_changed = config_changed or changed;
imgui.tree_pop(); imgui.tree_pop();
end end
if imgui.tree_node(language.current_language.customization_menu.shadow) then if imgui.tree_node(language.current_language.customization_menu.shadow) then
changed, cached_config.ailment_buildups.ailment_name_label.shadow.visibility = imgui.checkbox(language.current_language changed, cached_config.ailment_buildups.ailment_name_label.shadow.visibility = imgui.checkbox(language.current_language
.customization_menu.visible, cached_config.ailment_buildups.ailment_name_label.shadow.visibility); .customization_menu.visible, cached_config.ailment_buildups.ailment_name_label.shadow.visibility);