#__END__
# Sion 鼠标系统(SionMouseSystem)v2.31 (2014/2/20)
 
# RGU version by Admenri 220801
 
# v2.32(2014/6/9)  优化了地图卷动指令、等待指令的衔接过程。
# v2.31(2014/2/20) 事件执行过程中,卷动地图后不会自动跳转到玩家位置了。
 
 
=begin 说明  
 
  主要功能
 
    1,自动寻路,按住 D 键可以扩大寻路的范围
    2,变量输入框改良
    3,鼠标启动事件:
      在事件中加入“注释”:鼠标启动
      该事件将无法用其它方式启动,只能用鼠标左键点击启动
      
  鼠标指针图片 MouseCursor.png 放入 Graphics\System 文件夹
  路径点指示图片 $Arrow.png 放入 Graphics\Characters 文件夹
  如果未放入会使用RM自带图片代替缺失文件
 
=end
 
# RGU version by Admenri 220801
 
# 基础鼠标模组(Sion_MouseBase)v1.01 (2013/11/5)
# 需求! 白菜组脚本基 (WhiteCabbageBase) v1.0+
#
# 鼠标指针图片 MouseCursor.png 放入 Graphics\System 文件夹
# 按下 Alt + L 将鼠标锁定在屏幕内; Alt + O(字母欧) 解除锁定
 
Mouse.visible = true
 
module Mouse end
class << Mouse
  def activate(vp = nil)
  end
  def deactivate
  end
  def set_pos(x, y)
  end
 
  def create_cursor(vp)
  end
  def dispose_cursor
  end
 
  def trigger?(sym)
    click? sym
  end
  def repeat?(sym)
    false
  end
  def state(sym)
    press? sym
  end
  def double_click?
    dbl_clk? :L
  end
  def click_count
    0
  end
  def show_system_cursor
  end
  def hide_system_cursor
  end
end
 
 
 
class << Mouse
  attr_reader :sprite
end
class << Input
  alias_method :sion_mouse_press?,   :press?
  alias_method :sion_mouse_trigger?, :trigger?
  alias_method :sion_mouse_repeat?,  :repeat?
  unless self.method_defined?(:sion_mouse_update)
    alias_method :sion_mouse_update, :update
  end
  def update
    Mouse.update
    sion_mouse_update
  end
  def press?(key)
    return true if sion_mouse_press?(key)
    return Mouse.press?(Mouse::LEFT) if key == ":L" #b
    return Mouse.press?(Mouse::RIGHT) if key == ":R" #b
    return Mouse.press?(Mouse::MIDDLE) if key == ":M" #b
    return Mouse.press?(:R) if key == :B
    return false
  end
  def trigger?(key)
    return true if sion_mouse_trigger?(key)
    return Mouse.trigger?(:L) if key == :C
    return Mouse.trigger?(:R) if key == :B
    return false
  end
  def repeat?(key)
    return true if sion_mouse_repeat?(key)
    return Mouse.repeat?(:L) if key == :C
    return Mouse.repeat?(:R) if key == :B
    return false
  end
end