Refactored into modules.

This commit is contained in:
GreenComfyTea
2022-02-02 23:30:39 +02:00
parent 55c72dcc88
commit 2c4a3f4664
17 changed files with 5295 additions and 5001 deletions

View File

@@ -0,0 +1,87 @@
local quest_status = {};
local singletons;
local customization_menu;
local player;
local small_monster;
local large_monster;
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");
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 = {};
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
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 = singletons.village_area_manager:call("checkCurrentArea_TrainingArea");
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");
quest_status.init();
end
return quest_status;

View File

@@ -0,0 +1,46 @@
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)
if position.anchor == "Top-Left" then
return {x = position.x, y = position.y};
end
if position.anchor == "Top-Right" then
local screen_x = screen.width - position.x;
return {x = screen_x, y = position.y};
end
if position.anchor == "Bottom-Left" then
local screen_y = screen.height - position.y;
return {x = position.x, y = screen_y};
end
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;

View 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;