From 29f8a9e0317f9b3dca859dfaaf773c83935ad36c Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 17 May 2020 18:56:07 +0100 Subject: import our tarball in here --- plymouth/themes/redcore/redcore.script | 89 ++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100755 plymouth/themes/redcore/redcore.script (limited to 'plymouth/themes/redcore/redcore.script') diff --git a/plymouth/themes/redcore/redcore.script b/plymouth/themes/redcore/redcore.script new file mode 100755 index 0000000..e8601ba --- /dev/null +++ b/plymouth/themes/redcore/redcore.script @@ -0,0 +1,89 @@ +redcore_wall = Image("background.png"); +screen_ratio = Window.GetHeight() / Window.GetWidth(); +wall_image_ratio = redcore_wall.GetHeight() / redcore_wall.GetWidth(); + +if (screen_ratio > wall_image_ratio) + { # Screen ratio is taller than image ratio, we will match the screen height + scale_factor = Window.GetHeight() / redcore_wall.GetHeight(); + } +else + { # Screen ratio is wider than image ratio, we will match the screen width + scale_factor = Window.GetWidth() / redcore_wall.GetWidth(); + } + +scaled_wall_image = redcore_wall.Scale(redcore_wall.GetWidth() * scale_factor, redcore_wall.GetHeight() * scale_factor); +redcore_sprite = Sprite(scaled_wall_image); # Create a sprite using the scaled image + +redcore_sprite.SetX(Window.GetWidth() / 2 - scaled_wall_image.GetWidth() / 2); # Place it in the centre +redcore_sprite.SetY(Window.GetHeight() / 2 - scaled_wall_image.GetHeight() / 2); +redcore_sprite.setZ(-100); + +#----------------------------------------- Logo ----------------------------------------- + +logo.image = Image("redcore-logo.png"); +logo.sprite = Sprite(logo.image); +logo.opacity_angle = 0; # enable this if blinking logo is also activated + +# Those lines will position the logo in the center, with fixed opacity +# Disable for blinking logo + +#logo.sprite.SetX (Window.GetX() + Window.GetWidth() / 2 - logo.image.GetWidth() / 2); +#logo.sprite.SetY (Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2); + +#------------------------------------- Blinking logo ------------------------------------ + +# Uncomment bellow, but make sure to coment the above 2 lines, for a blinking logo + +fun refresh_callback () + { + if (status == "normal") + { + logo.opacity_angle += ((2 * 3.14) / 50) * 0.3; # 0.3 HZ + min_opacity = 0.3; + opacity = (Math.Cos(logo.opacity_angle) + 1) / 2; + opacity *= 1 - min_opacity; + opacity += min_opacity; + logo.sprite.SetX (Window.GetX() + Window.GetWidth() / 2 - logo.image.GetWidth() / 2); + logo.sprite.SetY (Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2); + logo.sprite.SetOpacity (opacity); + } + else + { + logo.sprite.SetX (0); + logo.sprite.SetY (0); + logo.sprite.SetOpacity (1); + } + } + + Plymouth.SetRefreshFunction (refresh_callback); + status = "normal"; + +#--------------------------------------- Progress Bar ---------------------------------- + +progress_bar.original_image = Image("progress_bar.png"); +progress_bar.sprite = Sprite(); + +progress_bar.x = Window.GetX() + Window.GetWidth() / 2 - progress_bar.original_image.GetWidth() / 2; +progress_bar.y = Window.GetY() + Window.GetHeight() / 2 * 1.5; # Place it at 3/4 from top +progress_bar.sprite.SetPosition(progress_bar.x, progress_bar.y, 1); +progress_bar.sprite.SetOpacity (0.35); + +fun progress_callback (duration, progress) + { + if (progress_bar.image.GetWidth () != Math.Int (progress_bar.original_image.GetWidth () * progress)) + { + progress_bar.image = progress_bar.original_image.Scale(progress_bar.original_image.GetWidth(progress_bar.original_image) * progress, progress_bar.original_image.GetHeight()); + progress_bar.sprite.SetImage (progress_bar.image); + } + } + +Plymouth.SetBootProgressFunction(progress_callback); + +#----------------------------------------- Quit ---------------------------------------- + +fun quit_callback () +{ + logo.sprite.SetOpacity (1); +} + +Plymouth.SetQuitFunction(quit_callback); -- cgit v1.2.3