Divergent/mods/Hide Tooltip/gamedata/scripts/zzzz_hide_tooltip.script

86 lines
2.3 KiB
Plaintext
Raw Normal View History

2024-03-17 20:18:03 -04:00
--Переменные--
local key_pressed = false
local non_mod_udate = utils_ui.UIInfoItem.Update
local displacement1 = 0
local displacement2 = 0
function utils_ui.UIInfoItem:Update(obj, sec, flags)
non_mod_udate(self, obj, sec, flags)
if not self:Pass(obj, sec) then
self:Show(false)
return
end
local non_mod = self.dialog
local parameter = self.frame
local bias_x, bias_y = 0,0
cursor_position = GetCursorPosition()
local tooltip_position = vector2():set(key_pressed and cursor_position.x+displacement1 or cursor_position.x+displacement2,cursor_position.y)
local w = parameter and parameter:GetWidth() or non_mod:GetWidth()
local h = parameter and parameter:GetHeight() or non_mod:GetHeight()
if (1024 - tooltip_position.x < w) then
tooltip_position.x = tooltip_position.x - w
end
if (768 - tooltip_position.y < h) then
local y = tooltip_position.y - h
tooltip_position.y = y < 0 and 0 or y
end
if cursor_position.x <= 514 and cursor_position.x >= 510 and cursor_position.y <= 386 and cursor_position.y >= 382 then
non_mod:Show(false)
else
non_mod:SetWndPos(vector2():set( tooltip_position.x + (bias_x or 0) , tooltip_position.y + (bias_y or 0) ))
end
end
--Функция режима скрытия описания--
function on_mode_change()
if hide_mode then
displacement2 = 10000
else
displacement2 = 0
end
end
--Функции нажатия клавиш--
local function on_key_press(key)
on_mode_change()
if hide_mode and key == KEY_HIDE then
key_pressed = true
displacement2 = 0
elseif not hide_mode and key == KEY_HIDE then
key_pressed = true
displacement1 = 10000
end
end
local function on_key_release(key)
on_mode_change()
if hide_mode and key == KEY_HIDE then
key_pressed = false
displacement2 = 10000
elseif not hide_mode and key == KEY_HIDE then
key_pressed = false
displacement1 = 0
end
end
function on_option_change()
KEY_HIDE = zzzz_hide_tooltip_mcm.get_config("key_hide")
hide_mode = zzzz_hide_tooltip_mcm.get_config("key_mode")
end
--Определение функций на старте игры--
function on_game_start()
RegisterScriptCallback("on_option_change",on_option_change)
RegisterScriptCallback("on_key_release",on_key_release)
RegisterScriptCallback("on_key_press",on_key_press)
RegisterScriptCallback("on_mode_change",on_mode_change)
on_mode_change()
on_option_change()
end