Files
2026-10-16 23:33:13 -07:00

88 lines
3.1 KiB
C#

using System.Reflection;
using RadicadeServer.DB;
using RadicadeServer.RecNet;
namespace RadicadeServer.Utils
{
public static class LoadingScreenImages
{
private const string ResourcePrefix = "LoadingScreens/";
public static IReadOnlyList<LoadingScreenTip> Tips { get; } = new List<LoadingScreenTip>
{
Tip("Welcome.png", "Welcome to Radicade",
"Rec Room is a virtual social club where you create and play games with friends. It's a fun and welcoming environment for people from all walks of life!"),
Tip("Go.png", "Play on the go!",
"Download Rec Room on your iOS device and play anywhere!"),
Tip("TagMerch.png", "Laser Tag Merch",
"You earn tickets for every game of Laser Tag. Redeem them for awesome Laser Tag gear!"),
Tip("RoomCheers.png", "Room Cheers",
"Cheer and Favorite any room in the This Room section of your Watch Menu."),
Tip("Star.png", "Become a Star!",
"Use #RecRoom on your Instagram and Twitter posts for a chance to make it onto our Community Board!"),
Tip("Clubs.png", "Check out clubs!",
"Create or join a club. Visit all the clubhouses and even set one as your spawn point!"),
Tip("Community.png", "Join the Rec Room Community!",
"See recroom.com/community for links to Radicade's YouTube, Instagram, and MORE"),
Tip("DailyChallenges.png", "Daily challenges",
"Check out the Challenges section in your watch for fun ways to earn in-game rewards."),
Tip("HairDye.png", "Hair Dye Patterns",
"Express yourself by mixing and matching colors with the new hair dye patterns!"),
Tip("Style.png", "Find Your Style",
"Personalize your outfit and appearance in your Dorm Room."),
Tip("RecNet.png", "We're all on Rec.Net!",
"Log into your Rec.Net profile to stay in touch with your friends any time!"),
Tip("TokenBin.png", "Rec Room Tokens",
"Earn tokens as you play, then spend them in the Store."),
Tip("RRPlus.png", "Plus and bundles",
"Check the Store for Rec Room Plus and other bundles."),
Tip("KanyeWest.png", "Quote", "People always tell you to be humble. When was the last time someone told you to be great?")
};
public static IReadOnlyList<string> Names { get; } =
Tips.Select(tip => tip.ImageName).ToList();
public static void EnsureInstalled()
{
try
{
if (!Directory.Exists(DBConfig.CDNImages))
Directory.CreateDirectory(DBConfig.CDNImages);
var assembly = typeof(LoadingScreenImages).Assembly;
var installed = new List<string>();
foreach (var name in Names)
{
var path = Path.Join(DBConfig.CDNImages, name);
if (File.Exists(path)) continue;
using var stream = assembly.GetManifestResourceStream(ResourcePrefix + name);
if (stream == null)
{
continue;
}
using var file = File.Create(path);
stream.CopyTo(file);
installed.Add(name);
}
}
catch (Exception)
{
}
}
private const int AllPlatforms = 495;
private static LoadingScreenTip Tip(string imageName, string title, string message) => new()
{
ImageName = imageName,
Title = title,
Message = message,
RoomNames = new List<string>(),
PlatformMask = AllPlatforms
};
}
}