class Animation:
	def __init__(self, frames, framerate, oscillate, offset):
		self.frames = frames
		self.frame = offset
		self.offset = offset
		self.framerate = framerate
		self.oscillate = oscillate
		self.frCount = 0
		self.iterations = 0
		self.dir = 1
	def play(self, iterations, direction):
		self.frCount = 0
		self.iterations = iterations
		if direction == '>':
			self.dir = 1
			self.frame = self.offset
		else:
			self.dir = -1
			self.frame = frames - 1 + offset
	def stop(self):
		self.iterations = 0
	def step(self):
		if self.iterations != 0:
			self.frCount += 1
			if self.frCount % self.framerate == 0:
				self.frame += self.dir
				if self.frame < self.offset:
					if (self.iterations > 1) or (self.iterations < 0):
						if self.oscillate:
							if self.frames > 1:
								self.frame = self.offset + 1
							else:
								self.frame = self.offset
							self.dir = -self.dir
						else:
							self.frame = self.frames - 1 + self.offset
				elif self.frame > self.frames - 1 + self.offset:
					if (self.iterations > 1) or (self.iterations < 0):
						if self.oscillate:
							if self.frames > 1:
								self.frame = self.frames - 2 + self.offset
							else:
								self.frame = self.offset
							self.dir = -self.dir
						else:
							self.frame = self.offset
				self.iterations -= 1
				if self.iterations == 0: self.stop()