class Sprite_Reflection
  attr_reader :visible
  attr_accessor :event

  def initialize(sprite,event,viewport=nil)
    @rsprite  = sprite
    @sprite   = nil
    @event    = event
    @height   = 0
    @fixedheight = false
    if @event && @event!=$game_player
      if @event.name[/reflection\((\d+)\)/i]
        @height = $~[1].to_i || 0
        @fixedheight = true
      end
    end
    @viewport = viewport
    @disposed = false
    update
  end

  def dispose
    if !@disposed
      @sprite.dispose if @sprite
      @sprite   = nil
      @disposed = true
    end
  end

  def disposed?
    @disposed
  end

  def visible=(value)
    @visible = value
    @sprite.visible = value if @sprite && !@sprite.disposed?
  end

  def update
    return
  #   return if disposed?
  #   shouldShow = @rsprite.visible
  #   if !shouldShow
  #     # Just-in-time disposal of sprite
  #     if @sprite
  #       @sprite.dispose
  #       @sprite = nil
  #     end
  #     return
  #   end
  #   # Just-in-time creation of sprite
  #   @sprite = Sprite.new(@viewport) if !@sprite
  #   if @sprite
  #     x = @rsprite.x-@rsprite.ox
  #     y = @rsprite.y-@rsprite.oy
  #     y -= 32 if @rsprite.character.character_name[/offset/i]
  #     @height = $PokemonGlobal.bridge if !@fixedheight
  #     y += @height*16
  #     width  = @rsprite.src_rect.width
  #     height = @rsprite.src_rect.height
  #     @sprite.x        = x+width/2
  #     @sprite.y        = y+height+height/2
  #     @sprite.ox       = width/2
  #     @sprite.oy       = height/2-2   # Hard-coded 2 pixel shift up
  #     @sprite.oy       -= @rsprite.character.bob_height*2
  #     @sprite.z        = -50   # Still water is -100, map is 0 and above
  #     @sprite.zoom_x   = @rsprite.zoom_x
  #     @sprite.zoom_y   = @rsprite.zoom_y
  #     frame = (Graphics.frame_count%40)/10
  #     @sprite.zoom_x   *= [1.0, 0.95, 1.0, 1.05][frame]
  #     @sprite.angle    = 180.0
  #     @sprite.mirror   = true
  #     @sprite.bitmap   = @rsprite.bitmap
  #     @sprite.tone     = @rsprite.tone
  #     if @height>0
  #       @sprite.color   = Color.new(48,96,160,255)   # Dark still water
  #       @sprite.opacity = @rsprite.opacity
  #       @sprite.visible = !Settings::TIME_SHADING   # Can't time-tone a colored sprite
  #     else
  #       @sprite.color   = Color.new(224,224,224,96)
  #       @sprite.opacity = @rsprite.opacity*3/4
  #       @sprite.visible = true
  #     end
  #     @sprite.src_rect = @rsprite.src_rect
  #   end
   end
end
