local class = require("class") local DebugWindow = require("debug_overlay.debugwindow") require "imgui" local Watcher = class(DebugWindow) function Watcher:init( ) self.watched_values = {} self.shortcut = "f10" end function Watcher:add(obj, member, name) self.watched_values[#self.watched_values + 1] = setmetatable({ obj = obj, member = member, name = name or member }, {__mode = 'v'}) end function Watcher:render() imgui.Begin("Watch") if #self.watched_values > 0 then imgui.Columns(2) for k,v in ipairs(self.watched_values) do if v.obj and v.member then imgui.TextUnformatted(v.name) imgui.NextColumn() imgui.TextUnformatted(tostring(v.obj[v.member])) imgui.NextColumn() elseif v.obj == nil then imgui.TextUnformatted(v.name .. " <>") imgui.NextColumn() imgui.NextColumn() else imgui.TextUnformatted(v.name .. " <>") imgui.NextColumn() imgui.NextColumn() end end end imgui.End() end return Watcher