/
d.vision
/
division_engine_cpp
Обзор
Документация
Войти
/
d.vision
/
division_engine_cpp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
resources/scripts/views/clickable.lua
45 строк
1 KB
den163
Improved annotations
27 ноя 2024, 11:06
27 ноя 2024, 11:06
0828538
Код
Авторство
О чём код?
local division = require 'division' local single_child_view = require 'views.single_child_view' ---@class clickable.options ---@field child view ---@field on_click function ---@class clickable: single_child_view, clickable.options ---@overload fun(options: clickable.options): clickable ---@diagnostic disable-next-line: assign-type-mismatch local clickable = single_child_view:inherit 'clickable' ---@class clickable.state: single_child_view.state ---@field id entity_id clickable.state = single_child_view.state:inherit 'clickable.state' ---@param options clickable.options function clickable:__call(options) return clickable:new(options) end function clickable:create_state() local id = division:create_selectable() division:add_select_callback(id, self.on_click) return clickable.state:new { id = id, child_state = self.child:create_state() } end ---@param render_rect rect ---@param view clickable function clickable.state:render(render_rect, view) division:set_collision_bounds(self.id, render_rect) return self.child_state:render(render_rect, view.child) end function clickable.state:destroy() division:remove_select_callback(self.id) division:destroy_entity(self.id) self.child_state:destroy() end return clickable