86 lines
2.3 KiB
Plaintext
86 lines
2.3 KiB
Plaintext
|
--Переменные--
|
||
|
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
|