Static and dynamic positioning of large monster UI are now separated.

This commit is contained in:
GreenComfyTea
2022-02-05 18:45:47 +02:00
parent 2e5a2fdd36
commit 9298c94b1d
17 changed files with 5212 additions and 1624 deletions

View File

@@ -0,0 +1,60 @@
local body_part_UI_entity = {};
local config;
local table_helpers;
local drawing;
function body_part_UI_entity.new(bar, name_label, text_label, value_label, percentage_label)
local entity = {};
entity.bar = table_helpers.deep_copy(bar);
entity.name_label = table_helpers.deep_copy(name_label);
entity.text_label = table_helpers.deep_copy(text_label);
entity.value_label = table_helpers.deep_copy(value_label);
entity.percentage_label = table_helpers.deep_copy(percentage_label);
return entity;
end
function body_part_UI_entity.draw_dynamic(part, position_on_screen, opacity_scale)
local part_name = "";
if config.current_config.large_monster_UI.dynamic.parts.part_name_label.include.part_name then
part_name = part.name .. " ";
end
if config.current_config.large_monster_UI.dynamic.parts.part_name_label.include.break_count and part.break_count ~= 0 then
part_name = part_name .. "x" .. tostring(part.break_count);
end
drawing.draw_bar(part.body_part_dynamic_UI.bar, position_on_screen, opacity_scale, part.health_percentage);
drawing.draw_label(part.body_part_dynamic_UI.name_label, position_on_screen, opacity_scale, part_name);
drawing.draw_label(part.body_part_dynamic_UI.text_label, position_on_screen, opacity_scale);
drawing.draw_label(part.body_part_dynamic_UI.value_label, position_on_screen, opacity_scale, part.health, part.max_health);
drawing.draw_label(part.body_part_dynamic_UI.percentage_label, position_on_screen, opacity_scale, 100 * part.health_percentage);
end
function body_part_UI_entity.draw_static(part, position_on_screen, opacity_scale)
local part_name = "";
if config.current_config.large_monster_UI.static.parts.part_name_label.include.part_name then
part_name = part.name .. " ";
end
if config.current_config.large_monster_UI.static.parts.part_name_label.include.break_count and part.break_count ~= 0 then
part_name = part_name .. "x" .. tostring(part.break_count);
end
drawing.draw_bar(part.body_part_static_UI.bar, position_on_screen, opacity_scale, part.health_percentage);
drawing.draw_label(part.body_part_static_UI.name_label, position_on_screen, opacity_scale, part_name);
drawing.draw_label(part.body_part_static_UI.text_label, position_on_screen, opacity_scale);
drawing.draw_label(part.body_part_static_UI.value_label, position_on_screen, opacity_scale, part.health, part.max_health);
drawing.draw_label(part.body_part_static_UI.percentage_label, position_on_screen, opacity_scale, 100 * part.health_percentage);
end
function body_part_UI_entity.init_module()
table_helpers = require("MHR_Overlay.Misc.table_helpers");
drawing = require("MHR_Overlay.UI.drawing");
config = require("MHR_Overlay.Misc.config");
end
return body_part_UI_entity;