mirror of
https://github.com/GreenComfyTea/MHR-Overlay.git
synced 2026-01-24 12:28:03 -08:00
Reorganization
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
local quest_status = {};
|
||||
local singletons;
|
||||
local customization_menu;
|
||||
local player;
|
||||
local small_monster;
|
||||
local large_monster;
|
||||
local damage_meter_UI;
|
||||
|
||||
quest_status.index = 0;
|
||||
quest_status.is_online = false;
|
||||
quest_status.is_training_area = false;
|
||||
|
||||
local quest_manager_type_definition = sdk.find_type_definition("snow.QuestManager");
|
||||
local on_changed_game_status = quest_manager_type_definition:get_method("onChangedGameStatus");
|
||||
|
||||
local village_area_manager_type_def = sdk.find_type_definition("snow.VillageAreaManager");
|
||||
local check_current_area_training_area_method = village_area_manager_type_def:get_method("checkCurrentArea_TrainingArea");
|
||||
|
||||
sdk.hook(on_changed_game_status, function(args)
|
||||
local new_quest_status = sdk.to_int64(args[3]);
|
||||
if new_quest_status ~= nil then
|
||||
if (quest_status.index < 2 and new_quest_status == 2) or
|
||||
new_quest_status < 2 then
|
||||
|
||||
player.list = {};
|
||||
player.total = player.new(0, "Total", 0);
|
||||
small_monster.list = {};
|
||||
large_monster.list = {};
|
||||
damage_meter_UI.freeze_displayed_players = false;
|
||||
end
|
||||
|
||||
quest_status.index = new_quest_status;
|
||||
end
|
||||
|
||||
end, function(retval)
|
||||
return retval;
|
||||
end);
|
||||
|
||||
function quest_status.init()
|
||||
if singletons.quest_manager == nil then
|
||||
return;
|
||||
end
|
||||
|
||||
local new_quest_status = singletons.quest_manager:call("getStatus");
|
||||
if new_quest_status == nil then
|
||||
customization_menu.status = "No quest status";
|
||||
return;
|
||||
end
|
||||
|
||||
quest_status.index = new_quest_status;
|
||||
quest_status.update_is_online();
|
||||
quest_status.update_is_training_area();
|
||||
end
|
||||
|
||||
function quest_status.update_is_online()
|
||||
if singletons.lobby_manager == nil then
|
||||
return;
|
||||
end
|
||||
|
||||
local is_quest_online = singletons.lobby_manager:call("IsQuestOnline");
|
||||
if is_quest_online == nil then
|
||||
return;
|
||||
end
|
||||
|
||||
if quest_status.is_online and not is_quest_online then
|
||||
damage_meter_UI.freeze_displayed_players = true;
|
||||
end
|
||||
|
||||
quest_status.is_online = is_quest_online;
|
||||
end
|
||||
|
||||
function quest_status.update_is_training_area()
|
||||
if singletons.village_area_manager == nil then
|
||||
customization_menu.status = "No village area manager";
|
||||
return;
|
||||
end
|
||||
|
||||
local _is_training_area = check_current_area_training_area_method:call(singletons.village_area_manager);
|
||||
if _is_training_area == nil then
|
||||
return;
|
||||
end
|
||||
|
||||
quest_status.is_training_area = _is_training_area;
|
||||
end
|
||||
|
||||
function quest_status.init_module()
|
||||
singletons = require("MHR_Overlay.Game_Handler.singletons");
|
||||
customization_menu = require("MHR_Overlay.UI.customization_menu");
|
||||
player = require("MHR_Overlay.Damage_Meter.player");
|
||||
small_monster = require("MHR_Overlay.Monsters.small_monster");
|
||||
large_monster = require("MHR_Overlay.Monsters.large_monster");
|
||||
damage_meter_UI = require("MHR_Overlay.UI.Modules.damage_meter_UI");
|
||||
|
||||
quest_status.init();
|
||||
end
|
||||
|
||||
return quest_status;
|
||||
50
reframework/autorun/MHR_Overlay/Game_Handler/screen.lua
Normal file
50
reframework/autorun/MHR_Overlay/Game_Handler/screen.lua
Normal file
@@ -0,0 +1,50 @@
|
||||
local screen = {};
|
||||
|
||||
screen.width = 1920;
|
||||
screen.height = 1080;
|
||||
|
||||
function screen.update_window_size()
|
||||
local width, height = d2d.surface_size();
|
||||
|
||||
if width ~= nil then
|
||||
screen.width = width;
|
||||
end
|
||||
|
||||
if height ~= nil then
|
||||
screen.height = height;
|
||||
end
|
||||
end
|
||||
|
||||
function screen.calculate_absolute_coordinates(position)
|
||||
-- top left
|
||||
if position.anchor == "Top-Left" then
|
||||
return {x = position.x, y = position.y};
|
||||
end
|
||||
|
||||
-- top right
|
||||
if position.anchor == "Top-Right" then
|
||||
local screen_x = screen.width - position.x;
|
||||
return {x = screen_x, y = position.y};
|
||||
end
|
||||
|
||||
-- bottom left
|
||||
if position.anchor == "Bottom-Left" then
|
||||
local screen_y = screen.height - position.y;
|
||||
return {x = position.x, y = screen_y};
|
||||
end
|
||||
|
||||
-- bottom right
|
||||
if position.anchor == "Bottom-Right" then
|
||||
local screen_x = screen.width - position.x;
|
||||
local screen_y = screen.height - position.y;
|
||||
return {x = screen_x, y = screen_y};
|
||||
end
|
||||
|
||||
return {x = position.x, y = position.y};
|
||||
end
|
||||
|
||||
function screen.init_module()
|
||||
|
||||
end
|
||||
|
||||
return screen;
|
||||
118
reframework/autorun/MHR_Overlay/Game_Handler/singletons.lua
Normal file
118
reframework/autorun/MHR_Overlay/Game_Handler/singletons.lua
Normal file
@@ -0,0 +1,118 @@
|
||||
local singletons = {};
|
||||
|
||||
singletons.message_manager = nil;
|
||||
singletons.enemy_manager = nil;
|
||||
singletons.lobby_manager = nil;
|
||||
singletons.progress_manager = nil;
|
||||
singletons.quest_manager = nil;
|
||||
singletons.player_manager = nil;
|
||||
singletons.village_area_manager = nil;
|
||||
|
||||
function singletons.init()
|
||||
singletons.init_message_manager();
|
||||
singletons.init_enemy_manager();
|
||||
singletons.init_lobby_manager()
|
||||
singletons.init_progress_manager();
|
||||
singletons.init_quest_manager();
|
||||
singletons.init_player_manager();
|
||||
singletons.init_village_area_manager();
|
||||
end
|
||||
|
||||
function singletons.init_message_manager()
|
||||
if singletons.message_manager ~= nil then
|
||||
return;
|
||||
end
|
||||
|
||||
singletons.message_manager = sdk.get_managed_singleton("snow.gui.MessageManager");
|
||||
if singletons.message_manager == nil then
|
||||
log.error("[MHR Overlay] No message manager");
|
||||
end
|
||||
|
||||
return singletons.message_manager;
|
||||
end
|
||||
|
||||
function singletons.init_enemy_manager()
|
||||
if singletons.enemy_manager ~= nil then
|
||||
return;
|
||||
end
|
||||
|
||||
singletons.enemy_manager = sdk.get_managed_singleton("snow.enemy.EnemyManager");
|
||||
if singletons.enemy_manager == nil then
|
||||
log.error("[MHR Overlay] No enemy manager");
|
||||
end
|
||||
|
||||
return singletons.enemy_manager;
|
||||
end
|
||||
|
||||
function singletons.init_lobby_manager()
|
||||
if singletons.lobby_manager ~= nil then
|
||||
return;
|
||||
end
|
||||
|
||||
singletons.lobby_manager = sdk.get_managed_singleton("snow.LobbyManager");
|
||||
if singletons.lobby_manager == nil then
|
||||
log.error("[MHR Overlay] No lobby manager");
|
||||
return false;
|
||||
end
|
||||
|
||||
return singletons.lobby_manager;
|
||||
end
|
||||
|
||||
function singletons.init_progress_manager()
|
||||
if singletons.progress_manager ~= nil then
|
||||
return;
|
||||
end
|
||||
|
||||
singletons.progress_manager = sdk.get_managed_singleton("snow.progress.ProgressManager");
|
||||
if singletons.progress_manager == nil then
|
||||
log.error("[MHR Overlay] No progress manager");
|
||||
return false;
|
||||
end
|
||||
|
||||
return singletons.progress_manager;
|
||||
end
|
||||
|
||||
function singletons.init_quest_manager()
|
||||
if singletons.quest_manager ~= nil then
|
||||
return;
|
||||
end
|
||||
|
||||
singletons.quest_manager = sdk.get_managed_singleton("snow.QuestManager");
|
||||
if singletons.quest_manager == nil then
|
||||
log.error("[MHR Overlay] No quest manager");
|
||||
end
|
||||
|
||||
return singletons.quest_manager;
|
||||
end
|
||||
|
||||
function singletons.init_player_manager()
|
||||
if singletons.player_manager ~= nil then
|
||||
return;
|
||||
end
|
||||
|
||||
singletons.player_manager = sdk.get_managed_singleton("snow.player.PlayerManager");
|
||||
if singletons.player_manager == nil then
|
||||
log.error("[MHR Overlay] No player manager");
|
||||
end
|
||||
|
||||
return singletons.player_manager;
|
||||
end
|
||||
|
||||
function singletons.init_village_area_manager()
|
||||
if singletons.village_area_manager ~= nil then
|
||||
return;
|
||||
end
|
||||
|
||||
singletons.village_area_manager = sdk.get_managed_singleton("snow.VillageAreaManager");
|
||||
if singletons.village_area_manager == nil then
|
||||
log.error("[MHR Overlay] No village manager");
|
||||
end
|
||||
|
||||
return singletons.village_area_manager;
|
||||
end
|
||||
|
||||
function singletons.init_module()
|
||||
singletons.init();
|
||||
end
|
||||
|
||||
return singletons;
|
||||
Reference in New Issue
Block a user