inspector.lua 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. local inspector = lib.object.create():include(lib.inspector)
  2. inspector.config = {
  3. width = 160,
  4. objects = {'muju', 'enemy'},
  5. initialObject = 'muju'
  6. }
  7. function inspector:init()
  8. self.active = false
  9. self.editing = 'muju'
  10. self.x = -inspector.config.width
  11. self.gooey = lib.gooey.controller:new()
  12. self.dropdown = self.gooey:add(lib.gooey.dropdown, 'inspector.editing', {
  13. value = inspector.config.initialObject
  14. })
  15. end
  16. function inspector:bind()
  17. self.dropdown.geometry = self:createOffsetFunction(6, 8, self.config.width - 16, 20)
  18. self.dropdown.choices = self.config.objects
  19. self.dropdown.padding = 6
  20. self.dropdown.label = 'subject'
  21. self.components = self.dropdown.value:map(self:wrap(self.setupComponents))
  22. return {
  23. love.keypressed
  24. :filter(f.eq('`'))
  25. :subscribe(self:wrap(self.toggleActive)),
  26. love.update
  27. :subscribe(self:wrap(self.smoothX)),
  28. love.mousemoved
  29. :pack()
  30. :combineLatest(self.components)
  31. :subscribe(self:wrap(self.updateCursor)),
  32. app.context.view.hud
  33. :with(self.components)
  34. :subscribe(self:wrap(self.draw))
  35. }
  36. end
  37. return inspector