DaxSoft

Add-on Mouse Core 0.5

Feb 17th, 2014
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.52 KB | None | 0 0
  1. #==============================================================================
  2. # • Dax Mouse Update
  3. #==============================================================================
  4. # Autor: Dax
  5. # Versão: 0.5
  6. # Site: www.dax-soft.weebly.com
  7. # Requerimento: Dax Core
  8. #==============================================================================
  9. # • Descrição:
  10. #------------------------------------------------------------------------------
  11. # Atualização do Mouse do Dax Core, permitindo a integração do mouse com o menu,
  12. # e a criação facilitada de integração do mouse.
  13. #==============================================================================
  14. # • Comandos:
  15. #------------------------------------------------------------------------------
  16. #==============================================================================
  17. # • Versões:
  18. #------------------------------------------------------------------------------
  19. # 0.5 :
  20. # - Integração com a janela padrão.
  21. #==============================================================================
  22. Dax.register(:mouse_system_update, "Dax", 0.5)
  23. #==============================================================================
  24. # • Window Selectable
  25. #==============================================================================
  26. class Window_Selectable < Window_Base
  27. #----------------------------------------------------------------------------
  28. # • Definição de controle de confirmação e cancelamento
  29. #----------------------------------------------------------------------------
  30. def process_handling
  31. return unless open? && active
  32. return process_ok if ok_enabled? && trigger?(:C) or trigger?(0x01)
  33. return process_cancel if cancel_enabled? && trigger?(:B) or trigger?(0x02)
  34. return process_pagedown if handle?(:pagedown) && Input.trigger?(:R)
  35. return process_pageup if handle?(:pageup) && Input.trigger?(:L)
  36. end
  37. #----------------------------------------------------------------------------
  38. # • Atualização dos objetos.
  39. #----------------------------------------------------------------------------
  40. alias :mouse_update_core :update
  41. def update(*args, &block)
  42. mouse_update_core(*args, &block)
  43. update_mouse if self.active && self.visible
  44. end
  45. #----------------------------------------------------------------------------
  46. # • Atualização do mouse.
  47. #----------------------------------------------------------------------------
  48. def update_mouse
  49. old_index = @index
  50. rect_cursors = Array.new
  51. add_x, add_y = self.x + 16 - self.ox, self.y + 16 - self.oy
  52. unless self.viewport.nil?
  53. add_x += self.viewport.rect.x - self.viewport.ox
  54. add_y += self.viewport.rect.y - self.viewport.oy
  55. end
  56. self.item_max.times { |i|
  57. @index = i
  58. update_mouse_cursor
  59. rect_cursors << cursor_rect.dup
  60. }
  61. @index = old_index
  62. rect_cursors.each_with_index { |rect, _index| @index = _index if Mouse.in_area?(Rect.new(rect.x + add_x, rect.y + add_y, rect.width, rect.height))}
  63. update_cursor
  64. call_update_help
  65. end
  66. #----------------------------------------------------------------------------
  67. # • Atualização do cursor do mouse.
  68. #----------------------------------------------------------------------------
  69. def update_mouse_cursor
  70. if @cursor_all
  71. cursor_rect.set(0, 0, contents.width, row_max * item_height)
  72. elsif @index < 0
  73. cursor_rect.empty
  74. else
  75. cursor_rect.set(item_rect(@index))
  76. end
  77. end
  78. end
Advertisement
Add Comment
Please, Sign In to add comment