mirror of
https://github.com/GreenComfyTea/MHR-Overlay.git
synced 2026-01-24 12:28:03 -08:00
Static and dynamic positioning of large monster UI are now separated.
This commit is contained in:
60
MHR_Overlay/UI/UI_Entities/body_part_UI_entity.lua
Normal file
60
MHR_Overlay/UI/UI_Entities/body_part_UI_entity.lua
Normal 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;
|
||||
78
MHR_Overlay/UI/UI_Entities/damage_UI_entity.lua
Normal file
78
MHR_Overlay/UI/UI_Entities/damage_UI_entity.lua
Normal file
@@ -0,0 +1,78 @@
|
||||
local damage_UI_entity = {};
|
||||
local table_helpers;
|
||||
local drawing;
|
||||
local config;
|
||||
local player;
|
||||
|
||||
function damage_UI_entity.new(bar, highlighted_bar, player_name_label, value_label, percentage_label)
|
||||
local entity = {};
|
||||
|
||||
entity.bar = table_helpers.deep_copy(bar);
|
||||
entity.highlighted_bar = table_helpers.deep_copy(highlighted_bar);
|
||||
entity.player_name_label = table_helpers.deep_copy(player_name_label);
|
||||
entity.value_label = table_helpers.deep_copy(value_label);
|
||||
entity.percentage_label = table_helpers.deep_copy(percentage_label);
|
||||
|
||||
return entity;
|
||||
end
|
||||
|
||||
function damage_UI_entity.draw(_player, position_on_screen, opacity_scale, top_damage)
|
||||
local player_include = config.current_config.damage_meter_UI.player_name_label.include.others;
|
||||
if _player.id == _player.myself_id then
|
||||
player_include = config.current_config.damage_meter_UI.player_name_label.include.myself;
|
||||
end
|
||||
|
||||
local player_name_text = "";
|
||||
if player_include.hunter_rank then
|
||||
player_name_text = string.format("[%d] ", _player.hunter_rank);
|
||||
end
|
||||
|
||||
if player_include.word_player then
|
||||
player_name_text = player_name_text .. "Player ";
|
||||
end
|
||||
|
||||
if player_include.player_id then
|
||||
player_name_text = player_name_text .. string.format("%d ", _player.id);
|
||||
end
|
||||
|
||||
if player_include.player_name then
|
||||
player_name_text = player_name_text .. _player.name;
|
||||
end
|
||||
|
||||
local player_damage_percentage = 0;
|
||||
if player.total.display.total_damage ~= 0 then
|
||||
player_damage_percentage = _player.display.total_damage / player.total.display.total_damage;
|
||||
end
|
||||
|
||||
local player_damage_bar_percentage = 0;
|
||||
if config.current_config.damage_meter_UI.settings.damage_bar_relative_to == "Total Damage" then
|
||||
if _player.total.display.total_damage ~= 0 then
|
||||
player_damage_bar_percentage = _player.display.total_damage / player.total.display.total_damage;
|
||||
end
|
||||
else
|
||||
if top_damage ~= 0 then
|
||||
player_damage_bar_percentage = _player.display.total_damage / top_damage;
|
||||
end
|
||||
end
|
||||
|
||||
if _player.id == player.myself_id and config.current_config.damage_meter_UI.settings.highlighted_bar == "Me" then
|
||||
drawing.draw_bar(_player.damage_UI.highlighted_bar, position_on_screen, opacity_scale, player_damage_bar_percentage);
|
||||
elseif config.current_config.damage_meter_UI.settings.highlighted_bar == "Top Damage" and _player.display.total_damage == top_damage then
|
||||
drawing.draw_bar(_player.damage_UI.highlighted_bar, position_on_screen, opacity_scale, player_damage_bar_percentage);
|
||||
else
|
||||
drawing.draw_bar(_player.damage_UI.bar, position_on_screen, opacity_scale, player_damage_bar_percentage);
|
||||
end
|
||||
|
||||
drawing.draw_label(_player.damage_UI.player_name_label, position_on_screen, opacity_scale, player_name_text);
|
||||
drawing.draw_label(_player.damage_UI.value_label, position_on_screen, opacity_scale, _player.display.total_damage);
|
||||
drawing.draw_label(_player.damage_UI.percentage_label, position_on_screen, opacity_scale, 100 * player_damage_percentage);
|
||||
end
|
||||
|
||||
function damage_UI_entity.init_module()
|
||||
table_helpers = require("MHR_Overlay.Misc.table_helpers");
|
||||
drawing = require("MHR_Overlay.UI.drawing");
|
||||
config = require("MHR_Overlay.Misc.config");
|
||||
player = require("MHR_Overlay.Damage_Meter.player");
|
||||
end
|
||||
|
||||
return damage_UI_entity;
|
||||
30
MHR_Overlay/UI/UI_Entities/health_UI_entity.lua
Normal file
30
MHR_Overlay/UI/UI_Entities/health_UI_entity.lua
Normal file
@@ -0,0 +1,30 @@
|
||||
local health_UI_entity = {};
|
||||
local table_helpers;
|
||||
local drawing;
|
||||
|
||||
function health_UI_entity.new(bar, text_label, value_label, percentage_label)
|
||||
local entity = {};
|
||||
|
||||
entity.bar = table_helpers.deep_copy(bar);
|
||||
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 health_UI_entity.draw(monster, health_UI, position_on_screen, opacity_scale)
|
||||
|
||||
drawing.draw_bar(health_UI.bar, position_on_screen, opacity_scale, monster.health_percentage);
|
||||
|
||||
drawing.draw_label(health_UI.text_label, position_on_screen, opacity_scale);
|
||||
drawing.draw_label(health_UI.value_label, position_on_screen, opacity_scale, monster.health, monster.max_health);
|
||||
drawing.draw_label(health_UI.percentage_label, position_on_screen, opacity_scale, 100 * monster.health_percentage);
|
||||
end
|
||||
|
||||
function health_UI_entity.init_module()
|
||||
table_helpers = require("MHR_Overlay.Misc.table_helpers");
|
||||
drawing = require("MHR_Overlay.UI.drawing");
|
||||
end
|
||||
|
||||
return health_UI_entity;
|
||||
39
MHR_Overlay/UI/UI_Entities/rage_UI_entity.lua
Normal file
39
MHR_Overlay/UI/UI_Entities/rage_UI_entity.lua
Normal file
@@ -0,0 +1,39 @@
|
||||
local rage_UI_entity = {};
|
||||
local table_helpers;
|
||||
local drawing;
|
||||
|
||||
function rage_UI_entity.new(bar, text_label, value_label, percentage_label)
|
||||
local entity = {};
|
||||
|
||||
entity.bar = table_helpers.deep_copy(bar);
|
||||
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);
|
||||
entity.timer_label = table_helpers.deep_copy(percentage_label);
|
||||
|
||||
entity.timer_label.text = "%.0f:%04.1f";
|
||||
return entity;
|
||||
end
|
||||
|
||||
function rage_UI_entity.draw(monster, rage_UI, position_on_screen, opacity_scale)
|
||||
if monster.is_in_rage then
|
||||
drawing.draw_bar(rage_UI.bar, position_on_screen, opacity_scale, monster.rage_timer_percentage);
|
||||
|
||||
drawing.draw_label(rage_UI.text_label, position_on_screen, opacity_scale);
|
||||
drawing.draw_label(rage_UI.value_label, position_on_screen, opacity_scale, monster.rage_point, monster.rage_limit);
|
||||
drawing.draw_label(rage_UI.timer_label, position_on_screen, opacity_scale, monster.rage_minutes_left, monster.rage_seconds_left);
|
||||
else
|
||||
drawing.draw_bar(rage_UI.bar, position_on_screen, opacity_scale, monster.rage_percentage);
|
||||
|
||||
drawing.draw_label(rage_UI.text_label, position_on_screen, opacity_scale);
|
||||
drawing.draw_label(rage_UI.value_label, position_on_screen, opacity_scale, monster.rage_point, monster.rage_limit);
|
||||
drawing.draw_label(rage_UI.percentage_label, position_on_screen, opacity_scale, 100 * monster.rage_percentage);
|
||||
end
|
||||
end
|
||||
|
||||
function rage_UI_entity.init_module()
|
||||
table_helpers = require("MHR_Overlay.Misc.table_helpers");
|
||||
drawing = require("MHR_Overlay.UI.drawing");
|
||||
end
|
||||
|
||||
return rage_UI_entity;
|
||||
29
MHR_Overlay/UI/UI_Entities/stamina_UI_entity.lua
Normal file
29
MHR_Overlay/UI/UI_Entities/stamina_UI_entity.lua
Normal file
@@ -0,0 +1,29 @@
|
||||
local stamina_UI_entity = {};
|
||||
local table_helpers;
|
||||
local drawing;
|
||||
|
||||
function stamina_UI_entity.new(bar, text_label, value_label, percentage_label)
|
||||
local entity = {};
|
||||
|
||||
entity.bar = table_helpers.deep_copy(bar);
|
||||
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 stamina_UI_entity.draw(monster, stamina_UI, position_on_screen, opacity_scale)
|
||||
drawing.draw_bar(stamina_UI.bar, position_on_screen, opacity_scale, monster.stamina_percentage);
|
||||
|
||||
drawing.draw_label(stamina_UI.text_label, position_on_screen, opacity_scale);
|
||||
drawing.draw_label(stamina_UI.value_label, position_on_screen, opacity_scale, monster.stamina, monster.max_stamina);
|
||||
drawing.draw_label(stamina_UI.percentage_label, position_on_screen, opacity_scale, 100 * monster.stamina_percentage);
|
||||
end
|
||||
|
||||
function stamina_UI_entity.init_module()
|
||||
table_helpers = require("MHR_Overlay.Misc.table_helpers");
|
||||
drawing = require("MHR_Overlay.UI.drawing");
|
||||
end
|
||||
|
||||
return stamina_UI_entity;
|
||||
Reference in New Issue
Block a user