diff --git a/Content.Client/Lobby/LobbyState.cs b/Content.Client/Lobby/LobbyState.cs index 53e3968cda..8fa7f96b0f 100644 --- a/Content.Client/Lobby/LobbyState.cs +++ b/Content.Client/Lobby/LobbyState.cs @@ -95,6 +95,7 @@ namespace Content.Client.Lobby _gameTicker.LobbyLateJoinStatusUpdated += LobbyLateJoinStatusUpdated; _preferencesManager.OnServerDataLoaded += PreferencesDataLoaded; + _lobby.Background.RandomizeBackground(); //_lobby.CharacterPreview.UpdateUI(); PopulateChangelog(); diff --git a/Content.Client/Lobby/UI/LobbyGui.xaml b/Content.Client/Lobby/UI/LobbyGui.xaml index 9f6bd64212..4c84ed67f7 100644 --- a/Content.Client/Lobby/UI/LobbyGui.xaml +++ b/Content.Client/Lobby/UI/LobbyGui.xaml @@ -10,7 +10,7 @@ xmlns:buttons="clr-namespace:Content.Client._Ohio.Buttons"> - diff --git a/Content.Client/_Ohio/UI/AnimatedBackgroundControl.cs b/Content.Client/_Ohio/UI/AnimatedBackgroundControl.cs index 8a32ed0f2c..0b9dc64245 100644 --- a/Content.Client/_Ohio/UI/AnimatedBackgroundControl.cs +++ b/Content.Client/_Ohio/UI/AnimatedBackgroundControl.cs @@ -1,7 +1,10 @@ +using System.Linq; +using Content.Shared._White; using Robust.Client.Graphics; using Robust.Client.ResourceManagement; using Robust.Client.UserInterface.Controls; using Robust.Shared.Graphics.RSI; +using Robust.Shared.Prototypes; using Robust.Shared.Timing; namespace Content.Client._Ohio.UI; @@ -10,8 +13,9 @@ public sealed class AnimatedBackgroundControl : TextureRect { [Dependency] private readonly IResourceCache _resourceCache = default!; [Dependency] private readonly IClyde _clyde = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; - private const string RsiPath = "/Textures/Ohio/Lobby/anim.rsi"; + private string RsiPath = "/Textures/Ohio/Lobby/backgrounds/native.rsi"; private const int States = 1; private IRenderTexture? _buffer; @@ -88,4 +92,13 @@ public sealed class AnimatedBackgroundControl : TextureRect base.Dispose(disposing); _buffer?.Dispose(); } + + public void RandomizeBackground() + { + var backgroundsProto = _prototypeManager.EnumeratePrototypes().ToList(); + var random = new Random(); + int index = random.Next(backgroundsProto.Count); + RsiPath = $"/Textures/{backgroundsProto[index].Path}"; + InitializeStates(); + } } diff --git a/Content.Shared/_White/AnimatedLobbyScreenPrototype.cs b/Content.Shared/_White/AnimatedLobbyScreenPrototype.cs new file mode 100644 index 0000000000..9b3020cb71 --- /dev/null +++ b/Content.Shared/_White/AnimatedLobbyScreenPrototype.cs @@ -0,0 +1,17 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared._White; + +/// +/// This is a prototype for... +/// +[Prototype("animatedLobbyScreen")] +public sealed partial class AnimatedLobbyScreenPrototype : IPrototype +{ + /// + [IdDataField] + public string ID { get; } = default!; + + [DataField("path")] + public string Path { get; private set; } = string.Empty; +} diff --git a/Resources/Prototypes/_White/AnimatedLobbyScreens/lobbyScreens.yml b/Resources/Prototypes/_White/AnimatedLobbyScreens/lobbyScreens.yml new file mode 100644 index 0000000000..6b3cf05285 --- /dev/null +++ b/Resources/Prototypes/_White/AnimatedLobbyScreens/lobbyScreens.yml @@ -0,0 +1,23 @@ +- type: animatedLobbyScreen + id: NativeLobbyScreen + path: Ohio/Lobby/backgrounds/native.rsi + +- type: animatedLobbyScreen + id: MilkywayLobbyScreen + path: Ohio/Lobby/backgrounds/milkyway.rsi + +- type: animatedLobbyScreen + id: SusLobbyScreen + path: Ohio/Lobby/backgrounds/sus.rsi + +- type: animatedLobbyScreen + id: ThirdLobbyScreen + path: Ohio/Lobby/backgrounds/3.rsi + +- type: animatedLobbyScreen + id: FourthLobbyScreen + path: Ohio/Lobby/backgrounds/4.rsi + +- type: animatedLobbyScreen + id: FifthLobbyScreen + path: Ohio/Lobby/backgrounds/5.rsi \ No newline at end of file diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/3.rsi/1.png b/Resources/Textures/Ohio/Lobby/backgrounds/3.rsi/1.png new file mode 100644 index 0000000000..6742940c3a Binary files /dev/null and b/Resources/Textures/Ohio/Lobby/backgrounds/3.rsi/1.png differ diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/3.rsi/meta.json b/Resources/Textures/Ohio/Lobby/backgrounds/3.rsi/meta.json new file mode 100644 index 0000000000..61c05a7da5 --- /dev/null +++ b/Resources/Textures/Ohio/Lobby/backgrounds/3.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "license": null, + "copyright": null, + "size": { + "x": 1920, + "y": 875 + }, + "states": [ + { + "name": "1", + "delays": [ + [ + 0.1 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/4.rsi/1.png b/Resources/Textures/Ohio/Lobby/backgrounds/4.rsi/1.png new file mode 100644 index 0000000000..83000ed28f Binary files /dev/null and b/Resources/Textures/Ohio/Lobby/backgrounds/4.rsi/1.png differ diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/4.rsi/meta.json b/Resources/Textures/Ohio/Lobby/backgrounds/4.rsi/meta.json new file mode 100644 index 0000000000..016bfc84ff --- /dev/null +++ b/Resources/Textures/Ohio/Lobby/backgrounds/4.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": null, + "copyright": null, + "size": { + "x": 901, + "y": 676 + }, + "states": [ + { + "name": "1", + "delays": [ + [ + 0.015, + 0.015, + 0.015, + 0.015, + 0.015, + 0.015, + 0.015, + 0.015, + 0.015, + 0.015, + 0.015, + 0.015, + 0.015, + 0.015, + 0.015, + 0.015, + 0.015, + 0.015, + 0.015, + 0.015 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/5.rsi/1.png b/Resources/Textures/Ohio/Lobby/backgrounds/5.rsi/1.png new file mode 100644 index 0000000000..26021c51a3 Binary files /dev/null and b/Resources/Textures/Ohio/Lobby/backgrounds/5.rsi/1.png differ diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/5.rsi/meta.json b/Resources/Textures/Ohio/Lobby/backgrounds/5.rsi/meta.json new file mode 100644 index 0000000000..1d58f57dd0 --- /dev/null +++ b/Resources/Textures/Ohio/Lobby/backgrounds/5.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "license": null, + "copyright": null, + "size": { + "x": 1135, + "y": 800 + }, + "states": [ + { + "name": "1", + "delays": [ + [ + 0.1 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/milkyway.rsi/1.png b/Resources/Textures/Ohio/Lobby/backgrounds/milkyway.rsi/1.png new file mode 100644 index 0000000000..a7a4d60403 Binary files /dev/null and b/Resources/Textures/Ohio/Lobby/backgrounds/milkyway.rsi/1.png differ diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/milkyway.rsi/meta.json b/Resources/Textures/Ohio/Lobby/backgrounds/milkyway.rsi/meta.json new file mode 100644 index 0000000000..95486a31d3 --- /dev/null +++ b/Resources/Textures/Ohio/Lobby/backgrounds/milkyway.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "license": null, + "copyright": null, + "size": { + "x": 640, + "y": 365 + }, + "states": [ + { + "name": "1", + "delays": [ + [ + 0.1 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Ohio/Lobby/anim.rsi/1.png b/Resources/Textures/Ohio/Lobby/backgrounds/native.rsi/1.png similarity index 100% rename from Resources/Textures/Ohio/Lobby/anim.rsi/1.png rename to Resources/Textures/Ohio/Lobby/backgrounds/native.rsi/1.png diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/native.rsi/meta.json b/Resources/Textures/Ohio/Lobby/backgrounds/native.rsi/meta.json new file mode 100644 index 0000000000..a92c447559 --- /dev/null +++ b/Resources/Textures/Ohio/Lobby/backgrounds/native.rsi/meta.json @@ -0,0 +1,21 @@ +{ + "version": 1, + "license": null, + "copyright": null, + "size": { + "x": 480, + "y": 480 + }, + "states": [ + { + "name": "1", + "delays": [ + [ + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/sus.rsi/1.png b/Resources/Textures/Ohio/Lobby/backgrounds/sus.rsi/1.png new file mode 100644 index 0000000000..b73b8ec058 Binary files /dev/null and b/Resources/Textures/Ohio/Lobby/backgrounds/sus.rsi/1.png differ diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/sus.rsi/meta.json b/Resources/Textures/Ohio/Lobby/backgrounds/sus.rsi/meta.json new file mode 100644 index 0000000000..61c05a7da5 --- /dev/null +++ b/Resources/Textures/Ohio/Lobby/backgrounds/sus.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "license": null, + "copyright": null, + "size": { + "x": 1920, + "y": 875 + }, + "states": [ + { + "name": "1", + "delays": [ + [ + 0.1 + ] + ] + } + ] +} \ No newline at end of file