class 'ExtraVideoPlayerScreenBase' (BaseScreen)

--[[
 * ExtraVideoPlayerScreenBase - скрин, предназначеный для проигрывания видео из ExtraContent.
--]]
function ExtraVideoPlayerScreenBase:__init(name)
	BaseScreen.__init(self, name)

	self.video = nil

	local skip = self:getEntityNamed('bttn_skip')
	skip.onPress:add( bind(self.complete, self) )
	skip:setSFXTrackOnPress( getCommonSoundEntity('ButtonClick') )

	self:showBlackBars(0.3)
end
-------------------------------------------------------------------------------

--[[
 * Начало воспроизведения видео.
 * @param	info	Таблица, содержащая имя видео, пути к файлам видео и аудио.
--]]
function ExtraVideoPlayerScreenBase:play(info)
	do
		local screenSize = Vector2f(1024, 768)

		self.video = CreateVideoEntity( info.videoPath, false )
		self.video:attachTo			( self:getMainEntity() )
		self.video:setName			( info.name )
		self.video:setOrder			( 1 )
		self.video:setXY			( screenSize.x/2, screenSize.y/2 )
		self.video:setScaleX		( screenSize.x / self.video:getWidth() )
		self.video:setScaleY		( screenSize.y / self.video:getHeight() )
		self.video:setLooped		( false )
		self.video:setHideOnStop	( false )
		self.video.onFinish:add	( bind(self.complete, self) )
		
		if info.soundPath then
		    self.video:setSoundTrack( info.soundPath )
	    end
		self.video:play()
	end

	if info.subtitles then
		self:createSubtitles( info.subtitles )
	end
end
-------------------------------------------------------------------------------

function ExtraVideoPlayerScreenBase:createSubtitles(subtitlesData)
	local subtitles = Subtitles(self)

	for i=1, #subtitlesData do
		local data		= subtitlesData[i]
		local textKey	= data[1]
		local time		= data[2]
		local dt		= data[3]

		subtitles:pushReplic(textKey, time, dt)
	end

	subtitles:play()
end
-------------------------------------------------------------------------------

--[[
 * Прекращение воспроизведения видео. Вызывается либо по ночатию на skip, либо
 * по окончанию видео.
--]]
function ExtraVideoPlayerScreenBase:complete()
	self.video:stop()
	self.video = nil
		
	PopUpScreensMgr:pop()
end
-------------------------------------------------------------------------------

function ExtraVideoPlayerScreenBase:showBlackBars(time)
	local top	 = self:getEntityNamed('border_top')
	local bottom = self:getEntityNamed('border_bottom')

	top:Move(0, top:getHeight(), time)
	bottom:Move(0, -bottom:getHeight(), time)
end 
-------------------------------------------------------------------------------