init.lua 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. local class = require("class")
  2. local DebugWindow = require("debug_overlay.debugwindow")
  3. require "imgui"
  4. local Watcher = class(DebugWindow)
  5. function Watcher:init( )
  6. self.watched_values = {}
  7. self.shortcut = "f10"
  8. end
  9. function Watcher:add(obj, member, name)
  10. self.watched_values[#self.watched_values + 1] = setmetatable({
  11. obj = obj,
  12. member = member,
  13. name = name or member
  14. }, {__mode = 'v'})
  15. end
  16. function Watcher:render()
  17. imgui.Begin("Watch")
  18. if #self.watched_values > 0 then
  19. imgui.Columns(2)
  20. for k,v in ipairs(self.watched_values) do
  21. if v.obj and v.member then
  22. imgui.TextUnformatted(v.name)
  23. imgui.NextColumn()
  24. imgui.TextUnformatted(tostring(v.obj[v.member]))
  25. imgui.NextColumn()
  26. elseif v.obj == nil then
  27. imgui.TextUnformatted(v.name .. " <<Miss. obj.>>")
  28. imgui.NextColumn()
  29. imgui.NextColumn()
  30. else
  31. imgui.TextUnformatted(v.name .. " <<Miss. mem.>>")
  32. imgui.NextColumn()
  33. imgui.NextColumn()
  34. end
  35. end
  36. end
  37. imgui.End()
  38. end
  39. return Watcher