Reorganization

This commit is contained in:
GreenComfyTea
2022-02-11 00:17:22 +02:00
parent 1c9174ca38
commit 2a2a5c3539
32 changed files with 3073 additions and 3343 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,277 @@
local language = {};
local table_helpers;
language.language_folder = "MHR Overlay\\languages\\";
language.default_language = {
parts = {
head = "Head",
neck = "Neck",
body = "Body",
torso = "Torso",
abdomen = "Abdomen",
back = "Back",
tail = "Tail",
upper_body = "Upper Body",
lower_body = "Lower Body",
upper_back = "Upper Back",
lower_back = "Lower Back",
left_wing = "Wing L",
right_wing = "Wing R",
wings = "Wings",
left_leg = "Leg L",
right_leg = "Leg R",
legs = "Legs",
left_legs = "Legs L",
right_legs = "Legs R",
left_arm = "Arm L",
right_arm = "Arm R",
arms = "Arms",
left_arm_ice = "Arm L (Ice)",
right_arm_ice = "Arm R (Ice)",
left_cutwing = "Cutwing L",
right_cutwing = "Cutwing R",
head_mud = "Head (Mud)",
tail_mud = "Tail (Mud)",
tail_windsac = "Tail (Windsac)",
chest_windsac = "Chest (Windsac)",
back_windsac = "Back (Windsac)",
large_mudbulb = "Large Mudbulb",
mane = "Mane",
rear = "Rear",
claw = "Claw",
dorsal_fin = "Dorsal Fin",
carapace = "Carapace",
spinning = "Spinning",
rock = "Rock"
},
UI = {
HP = "HP:",
stamina = "Stamina:",
rage = "Rage:",
gold = "Gold",
silver = "Silver",
mini = "Mini"
},
customization_menu = {
mod_name = "MHR Overlay";
status = "Status",
modules = "Modules",
global_settings = "Global Settings",
small_monster_UI = "Small Monster UI",
large_monster_UI = "Large Monster UI",
time_UI = "Time UI",
damage_meter_UI = "Damage Meter UI",
large_monster_dynamic_UI = "Large Monster Dynamic UI",
large_monster_static_UI = "Large Monster Static UI",
language = "Language",
module_visibility_on_different_screens = "Module Visibility on Different Screens",
during_quest = "During Quest",
quest_summary_screen = "Quest Summary Screen",
training_area = "Training Area",
performance = "Performance",
max_monster_updates_per_tick = "Max Monster Updates per Tick",
prioritize_large_monsters = "Large Monsters on High Priority";
font_notice = "Any changes to the font require script reload!",
font = "Font",
family = "Family",
size = "Size",
bold = "Bold",
italic = "Italic",
enabled = "Enabled",
settings = "Settings",
dynamic_positioning = "Dynamic Positioning",
static_position = "Static Position",
static_spacing = "Static Spacing",
static_sorting = "Static Sorting",
monster_name_label = "Monster Name Label",
health = "Health",
stamina = "Stamina",
static_orientation = "Static Orientation",
opacity_falloff = "Opacity Falloff",
max_distance = "Max Distance",
world_offset = "World Offset",
viewport_offset = "Viewport Offset",
x = "X",
y = "Y",
z = "Z",
anchor = "Anchor",
top_left = "Top-Left",
top_right = "Top-Right",
bottom_left = "Bottom-Left",
bottom_right = "Bottom-Right",
type = "Type",
normal = "Normal",
health_percentage = "Health Percentage",
distance = "Distance",
reversed_order = "Reversed Order",
visible = "Visible",
offset = "Offset",
color = "Color",
colors = "Colors",
shadow = "Shadow",
text_label = "Text Label",
value_label = "Value Label",
percentage_label = "Percentage Label",
bar = "Bar",
width = "Width",
height = "Height",
foreground = "Foreground",
background = "Background",
dynamically_positioned = "Dynamically Positioned",
statically_positioned = "Statically Positioned",
include = "Include",
monster_name = "Monster Name",
crown = "Crown",
crown_thresholds = "Crown Thresholds",
rage = "Rage",
body_parts = "Body Parts",
hide_undamaged_parts = "Hide Undamaged Parts",
part_name = "Part Name",
break_count = "Break Count",
orientation = "Orientation",
horizontal = "Horizontal",
vertical = "Vertical",
position = "Position",
spacing = "Spacing",
sorting = "Sorting",
part_name_label = "Part Name Label",
time_label = "Time Label",
tracked_monster_types = "Tracked Monster Types",
tracked_damage_types = "Tracked Damage Types",
player_name_label = "Player Name Label",
damage_value_label = "Damage Value Label",
damage_percentage_label = "Damage Percetange Label",
total_damage_label = "Total Damage Label",
total_damage_value_label = "Total Damage Value Label",
damage_bar = "Damage Bar",
highlighted_damage_bar = "Highlighted Damage Bar",
monster_can_be_captured = "Monster can be captured",
hide_module_if_total_damage_is_zero = "Hide Module if Total Damage is 0",
hide_player_if_player_damage_is_zero = "Hide Player if Player Damage is 0",
hide_total_if_total_damage_is_zero = "Hide Total if Total Damage is 0",
total_damage_offset_is_relative = "Total Damage Offset is Relative",
higlighted_bar = "Highlighted Bar",
me = "Me",
top_damage = "Top Damage",
none = "None",
damage_bars_are_relative_to = "Damage Bars are relative to",
total_damage = "Total Damage",
my_damage_bar_location = "My Damage Bar Location",
first = "First",
last = "Last",
small_monsters = "Small Monsters",
large_monsters = "Large Monsters",
player_damage = "Player Damage",
bomb_damage = "Bomb Damage",
kunai_damage = "Kunai Damage",
installation_damage = "Installation Damage",
otomo_damage = "Otomo Damage",
monster_damage = "Monster Damage",
damage = "Damage",
other_players = "Other Players",
hunter_rank = "Hunter Rank",
word_player = "Word \"Player\"";
player_id = "Player ID",
player_name = "Player Name",
}
};
language.current_language = {};
language.language_names = {"default"};
language.languages = {language.default_language};
function language.load()
local language_files = fs.glob([[MHR Overlay\\languages\\.*json]]);
if language_files == nil then
return;
end
for i, language_file in ipairs(language_files) do
local language_name = language_file:gsub(language.language_folder, ""):gsub(".json", "");
-- v will be something like `my-cool-mod\config-file-1.json`;
local loaded_language = json.load_file(language_file);
if loaded_language ~= nil then
log.info("[MHR Overlay] " .. language_name .. ".json loaded successfully");
table.insert(language.language_names, language_name);
table.insert(language.languages, loaded_language);
else
log.error("[MHR Overlay] Failed to load " .. language_name .. ".json");
end
end
end
function language.save_default()
-- save current config to disk, replacing any existing file
local success = json.dump_file(language.language_folder .. "en-us.json", language.default_language);
if success then
log.info('[MHR Overlay] en-us.json saved successfully');
else
log.error('[MHR Overlay] Failed to save en-us.json');
end
end
function language.update(index)
language.current_language = table_helpers.deep_copy(language.languages[index]);
end
function language.init_module()
table_helpers = require("MHR_Overlay.Misc.table_helpers");
language.save_default();
language.load();
language.current_language = table_helpers.deep_copy(language.default_language);
end
return language;

View File

@@ -0,0 +1,476 @@
local part_names = {};
local language;
local table_helpers;
part_names.list = {};
function part_names.init()
part_names.list = {
[98] = -- Great Izuchi+ 98
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.arms,
language.current_language.parts.tail,
},
[54] = -- Great Baggi+ 54
{
language.current_language.parts.head,
language.current_language.parts.torso,
language.current_language.parts.tail
},
[107] = -- Kulu-Ya-Ku+ 107 boulders are cut out
{
language.current_language.parts.head,
language.current_language.parts.arms,
language.current_language.parts.body,
language.current_language.parts.tail,
language.current_language.parts.rock,
language.current_language.parts.rock
},
[59] = -- Great Wroggi+ 59
{
language.current_language.parts.head,
language.current_language.parts.torso,
language.current_language.parts.tail
},
[60] = -- Arzuros+ 60 Unknown parts
{
language.current_language.parts.head,
language.current_language.parts.upper_body,
language.current_language.parts.arms,
language.current_language.parts.rear,
language.current_language.parts.lower_body
},
[61] = -- Lagombi+ 61
{
language.current_language.parts.head,
language.current_language.parts.upper_body,
language.current_language.parts.arms,
language.current_language.parts.rear,
language.current_language.parts.lower_body
},
[62] = -- Volvidon+ 62
{
language.current_language.parts.upper_back,
language.current_language.parts.upper_body,
language.current_language.parts.arms,
language.current_language.parts.lower_back,
language.current_language.parts.lower_body,
language.current_language.parts.spinning
},
[91] = -- Aknosom+ 91
{
language.current_language.parts.head,
language.current_language.parts.neck,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.body,
language.current_language.parts.tail,
language.current_language.parts.legs
},
[47] = -- Royal Ludroth+ 47
{
language.current_language.parts.head,
language.current_language.parts.mane,
language.current_language.parts.torso,
language.current_language.parts.left_legs,
language.current_language.parts.right_legs,
language.current_language.parts.tail
},
[44] = -- Barroth+ 44
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.arms,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[3] = -- Khezu+ 3
{
language.current_language.parts.head,
language.current_language.parts.neck,
language.current_language.parts.torso,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.tail
},
[92] = -- Tetranadon+ 92
{
language.current_language.parts.head,
language.current_language.parts.right_arm,
language.current_language.parts.left_arm,
language.current_language.parts.right_leg,
language.current_language.parts.left_leg,
language.current_language.parts.carapace,
language.current_language.parts.torso,
language.current_language.parts.tail
},
[90] = -- Bishaten+ 90
{
language.current_language.parts.head,
language.current_language.parts.torso,
language.current_language.parts.right_arm,
language.current_language.parts.left_arm,
language.current_language.parts.right_leg,
language.current_language.parts.left_leg,
language.current_language.parts.tail
},
[102] = -- Pukei-Pukei+ 102
{
language.current_language.parts.head,
language.current_language.parts.torso,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[108] = -- Jyuratodus+ 108 missing mud parts
{
language.current_language.parts.head,
language.current_language.parts.torso,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail,
language.current_language.parts.head_mud,
language.current_language.parts.tail_mud
},
[4] = -- Basarios+ 4
{
language.current_language.parts.torso,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.head,
language.current_language.parts.abdomen,
language.current_language.parts.tail
},
[93] = -- Somnacanth+ 93
{
language.current_language.parts.body,
language.current_language.parts.head,
language.current_language.parts.neck,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[1] = -- Rathian+ 1
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[42] = -- Barioth+ 42
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[109] = -- Tobi-Kadachi+ 109
{
language.current_language.parts.head,
language.current_language.parts.torso,
language.current_language.parts.back,
language.current_language.parts.arms,
language.current_language.parts.legs,
language.current_language.parts.tail
},
[89] = -- Magnamalo+ 89
{
language.current_language.parts.head,
language.current_language.parts.torso,
language.current_language.parts.right_arm,
language.current_language.parts.left_arm,
language.current_language.parts.back,
language.current_language.parts.tail,
language.current_language.parts.legs
},
[100] = -- Anjanath+ 100 (missing parts)
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing
},
[37] = -- Nargacuga+ 37
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_cutwing,
language.current_language.parts.tail,
language.current_language.parts.arms,
language.current_language.parts.left_leg,
language.current_language.parts.right_cutwing,
language.current_language.parts.right_leg
},
[82] = -- Mizutsune+ 82
{
language.current_language.parts.head,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.body,
language.current_language.parts.tail,
language.current_language.parts.dorsal_fin
},
[97] = -- Goss Harag+ 97
{
language.current_language.parts.head,
language.current_language.parts.back,
language.current_language.parts.left_arm,
language.current_language.parts.left_arm_ice,
language.current_language.parts.right_arm,
language.current_language.parts.right_arm_ice,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.body
},
[2] = -- Rathalos+ 2
{
language.current_language.parts.body,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.neck,
language.current_language.parts.head,
language.current_language.parts.tail
},
[95] = -- Almudron+ 95
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail,
language.current_language.parts.large_mudbulb,
language.current_language.parts.large_mudbulb,
},
[57] = -- Zinogre+ 57
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.back,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[32] = -- Tigrex+ 32
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[7] = -- Diablos+ 7
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[94] = -- Rakna-Kadaki+ 94 (?)
{
language.current_language.parts.head,
language.current_language.parts.claw,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.abdomen,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm -- mb abdomen_cocooned)
},
[24] = -- Kushala Daora+ 24
{
language.current_language.parts.head,
language.current_language.parts.back,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.wings,
language.current_language.parts.tail
},
[25] = -- Chameleos+ 25
{
language.current_language.parts.head,
language.current_language.parts.abdomen,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail,
language.current_language.parts.wings
},
[27] = -- Teostra+ 27
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.arms,
language.current_language.parts.legs,
language.current_language.parts.wings,
language.current_language.parts.tail
},
[23] = -- Rajang+ 23
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[118] = -- Bazelgeuse+ 118
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.legs,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.tail
},
[96] = -- Wind Serpent Ibushi+ 96 (missing parts)
{
language.current_language.parts.head,
language.current_language.parts.right_arm,
language.current_language.parts.left_arm,
language.current_language.parts.torso,
language.current_language.parts.back,
language.current_language.parts.tail,
language.current_language.parts.tail_windsac,
language.current_language.parts.chest_windsac,
language.current_language.parts.back_windsac
},
[99] = -- Thunder Serpent Narwa+ 99 (no parts?)
{},
[1379] = -- Narwa the Allmother+ 1379 (no parts?)
{},
[1366] = -- Crimson Glow Valstrax+ 1366
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.tail,
language.current_language.parts.legs,
language.current_language.parts.chest_windsac
},
[1852] = -- Apex Arzuros+ 1852
{
language.current_language.parts.head,
language.current_language.parts.upper_body,
language.current_language.parts.arms,
language.current_language.parts.rear,
language.current_language.parts.lower_body
},
[1793] = -- Apex Rathian+ 1793
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[1874] = -- Apex Mizutsune+ 1874
{
language.current_language.parts.head,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.body,
language.current_language.parts.tail,
language.current_language.parts.dorsal_fin
},
[1794] = -- Apex Rathalos+ 1794
{
language.current_language.parts.body,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.neck,
language.current_language.parts.head,
language.current_language.parts.tail
},
[1799] = -- Apex Diablos+ 1799
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.left_wing,
language.current_language.parts.right_wing,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
},
[1849] = -- Apex Zinogre+ 1849
{
language.current_language.parts.head,
language.current_language.parts.body,
language.current_language.parts.back,
language.current_language.parts.left_arm,
language.current_language.parts.right_arm,
language.current_language.parts.left_leg,
language.current_language.parts.right_leg,
language.current_language.parts.tail
}
};
end
function part_names.get_part_name(monster_id, part_id)
local monster_parts = part_names.list[monster_id];
if monster_parts == nil then
return "";
end
local part_name = monster_parts[part_id];
if part_name == nil then
return "";
end
return part_name;
end
function part_names.init_module()
language = require("MHR_Overlay.Misc.language");
table_helpers = require("MHR_Overlay.Misc.table_helpers");
part_names.init();
end
return part_names;

View File

@@ -0,0 +1,82 @@
local table_helpers = {};
function table_helpers.deep_copy(original, copies)
copies = copies or {};
local original_type = type(original);
local copy;
if original_type == 'table' then
if copies[original] then
copy = copies[original];
else
copy = {};
copies[original] = copy;
for original_key, original_value in next, original, nil do
copy[table_helpers.deep_copy(original_key, copies)] = table_helpers.deep_copy(original_value, copies);
end
setmetatable(copy, table_helpers.deep_copy(getmetatable(original), copies));
end
else -- number, string, boolean, etc
copy = original;
end
return copy;
end
function table_helpers.find_index(table, value, nullable)
for i = 1, #table do
if table[i] == value then
return i;
end
end
if not nullable then
return 1;
end
return nil;
end
function table_helpers.merge(...)
local tables_to_merge = {...};
assert(#tables_to_merge > 1, "There should be at least two tables to merge them");
for key, table in ipairs(tables_to_merge) do
assert(type(table) == "table", string.format("Expected a table as function parameter %d", key));
end
local result = table_helpers.deep_copy(tables_to_merge[1]);
for i = 2, #tables_to_merge do
local from = tables_to_merge[i];
for key, value in pairs(from) do
if type(value) == "table" then
result[key] = result[key] or {};
assert(type(result[key]) == "table", string.format("Expected a table: '%s'", key));
result[key] = table_helpers.merge(result[key], value);
else
result[key] = value;
end
end
end
return result;
end
function table_helpers.tostring(table)
if type(table) == 'table' then
local s = '{ \n';
for k,v in pairs(table) do
if type(k) ~= 'number' then
k = '"' .. k .. '"';
end
s = s .. '\t['..k..'] = ' .. table_helpers.tostring(v) .. ',\n';
end
return s .. '} \n';
else
return tostring(table);
end
end
function table_helpers.init_module()
end
return table_helpers;