#-------------------------------------- ---- -- -
#  Easy animated pictures v1
#  by lavendersiren and Coelocanth
#-------------------------------------- ---- -- -
# Where to put: between debug and main, most likely near the top of your script list.
# May have some incompatibilities with other scripts that modify how pictures work.
#
# How to use:
# 1. Turn your animation into a horizontal sprite strip.
# 2. Make sure the file name starts with an exclamation point,
# the number of frames, and an underscore. Put whatever you want right after.
#
# Example: !4_firetest.png
#
# 3. Then, just import it into the picture folder and use as usual!
#
# Terms of use:
# Can be used in any project, commercial or noncommercial, with proper credit.
#
#==============================================================================
# ** Sprite_Picture
#------------------------------------------------------------------------------
#  This sprite is used to display the picture.It observes the Game_Character
#  class and automatically changes sprite conditions.
#==============================================================================

class Sprite_Picture < Sprite
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     viewport : viewport
  #     picture  : picture (Game_Picture)
  #--------------------------------------------------------------------------
  def initialize(viewport, picture)
    super(viewport)
    @picture = picture
	@picframe = 1
  @delay_count = 3
  @delay_val = @delay_count
  @animated = true
    update
  end
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose
    if self.bitmap != nil
      self.bitmap.dispose
    end
    super
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    # If picture file name is different from current one
    if @picture_name != @picture.name
      # Remember file name to instance variables
      @picture_name = @picture.name
      # If file name is not empty
      if @picture_name != ""
        # Get picture graphic
        self.bitmap = RPG::Cache.picture(@picture_name)
      end
    end
    # If file name is empty
    if @picture_name == ""
      # Set sprite to invisible
      self.visible = false
      return
    end
	

    # Set sprite coordinates
    self.x = @picture.x
    self.y = @picture.y
    self.z = @picture.number
    # Set zoom rate, opacity level, and blend method
    self.zoom_x = @picture.zoom_x / 100.0
    self.zoom_y = @picture.zoom_y / 100.0
    self.opacity = @picture.opacity
    self.blend_type = @picture.blend_type
    # Set rotation angle and color tone
    self.angle = @picture.angle
    self.tone = @picture.tone
	#------------------------------------
	#  sprite slicinggggggg!!!
	#--------------------------------------
	
	#if the file name string includes a ! sign plus a digit
  if /!(\d+)_/ =~ @picture_name
    @framecount = $1.to_i
    @animated=true
	else
		@framecount = 1
    @animated=false
		#if it doesn't have one, just slice it in 1 piece :b
	end
	if @animated== true
    	  #SLICE IT!!!
        @cw = bitmap.width / @framecount
      @ch = bitmap.height
      sx = @picframe * @cw
	  #set the sx according to which frame you want to start on, 
    #and times that by cw
      sy = 1
	  #keep sy the same, it's just a strip
     self.src_rect.set(sx, sy, @cw, @ch)   
     
   end
   

    # Set transfer starting point
    if @picture.origin == 0
      self.ox = 0
      self.oy = 0
    else
      if @animated==true
		self.ox = @cw / 2
		self.oy = self.bitmap.height / 2
			else
		self.ox = self.bitmap.width / 2
		self.oy = self.bitmap.height / 2
		end
  end
  
      # Set sprite to visible
    self.visible = true
  
	#timinggg!
if @animated==true

  if @delay_val <= 0
  @delay_val = @delay_count
  	if @picframe >= @framecount -1
		@picframe = 0
		else
		@picframe +=1 
		end
	else
		@delay_val -= 1
	end
    end

  end
end