#!/usr/bin/perl


#Скрипт для создания ЦГ - изображения мыслей/флешбеков героя


use strict;
use warnings;
use utf8;
use Scalar::Util qw( looks_like_number );
use Encode qw(decode encode);
use Cwd 'abs_path';
use File::Basename;
use Term::ANSIColor;

binmode(STDOUT,':utf8');
binmode(STDIN,':utf8');


#Путь до скрипта
my $S_SELF_PATH = abs_path( $0 );
my $S_RPY_FILE_PATH = "Cloudy_Dream_Frame.rpy";
my $S_RENPY_IMAGES_PATH_PREFIX = "images/cg/Misc/Cloudy_Dream_Frame/";

open( FILE, '>', $S_RPY_FILE_PATH ) or die $!;


print FILE "# Этот файл сгенерирован скриптом " . $S_SELF_PATH . "\n";
print FILE "# НЕ ПРАВИТЬ! ВСЕ ПРАВКИ БУДУТ УНИЧТОЖЕНЫ!\n";
print FILE "# Дата создания: " . `date \'+%Y.%m.%d %H:%M\'` . "\n\n\n";


#Записываем каждое анимированное облако в отдельности
my $S_CLOUDS_FOLDERS_PATH = "./clouds/";
my @s_clouds_folders = `ls -1 $S_CLOUDS_FOLDERS_PATH`;
chomp( @s_clouds_folders );

for( my $i = 0; $i < @s_clouds_folders; $i++ )
{
	my $s_cloud_folder_path = $S_CLOUDS_FOLDERS_PATH . $s_clouds_folders[$i];
	print( $s_clouds_folders[$i] . "\n" );
	
	my @s_cloud_png_files = `ls -1 $s_cloud_folder_path`;
	chomp( @s_cloud_png_files );
	
	print FILE "image Cloudy_Dream_Frame_" . $s_clouds_folders[$i] . ":\n";
	
	for( my $j = 0; $j < @s_cloud_png_files; $j++ )
	{
		print( $s_cloud_png_files[$j] . "\n" );
		print FILE "    \"" . $S_RENPY_IMAGES_PATH_PREFIX . "clouds/" . $s_clouds_folders[$i] . "/" . $s_cloud_png_files[$j] . "\"\n";
		print FILE "    pause 0.3\n";
	}
	
	print FILE "    repeat\n\n\n";
}


#Создаем начальную заставку (облака появляются на рандомных позициях)
print FILE "image Cloudy_Dream_Frame_Start:\n";

#Число облаков по горизонталии вертикали
my $N_H_CLOUDS_COUNT = 10;
my $N_V_CLOUDS_COUNT = 6;

#Двумерный массив, облаков, и их положений по горизонтали и вертикали
my @arr_clouds = ();


for( my $i = 0; $i < ( $N_H_CLOUDS_COUNT*$N_V_CLOUDS_COUNT ); $i++ )
{
	$arr_clouds [$i][0] = $s_clouds_folders[ int( rand( @s_clouds_folders ) ) ];
	$arr_clouds [$i][1] = int( rand( 1920 ) );
	$arr_clouds [$i][2] = int( rand( 1080 ) );
	
	print( $arr_clouds [$i][0] . " " . $arr_clouds [$i][1] . " " . $arr_clouds [$i][2] . "\n" );
	
	print FILE "    countais:\n";
	print FILE "        pause " . sprintf("%.2f", ( 0.1 + rand( 0.9 ) ) ) . "\n";
	print FILE "        \"Cloudy_Dream_Frame_" . $arr_clouds [$i][0] . "\"\n\n";
}

