| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- 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 .. " <<Miss. obj.>>")
- imgui.NextColumn()
- imgui.NextColumn()
- else
- imgui.TextUnformatted(v.name .. " <<Miss. mem.>>")
- imgui.NextColumn()
- imgui.NextColumn()
- end
- end
- end
- imgui.End()
- end
- return Watcher
|