shenanigans

This commit is contained in:
Noah Pilarski 2025-01-25 22:18:58 -05:00
parent 5d37898ce1
commit e5b964d7c7
3 changed files with 42 additions and 22 deletions

View File

@ -15,28 +15,28 @@ namespace NewHorizons.Handlers
{ {
private static Dictionary<string, AudioType> _customAudioTypes; private static Dictionary<string, AudioType> _customAudioTypes;
private static List<AudioLibrary.AudioEntry> _audioEntries; private static List<AudioLibrary.AudioEntry> _audioEntries;
private static bool _postInitialized = false;
public static void Init(bool titleScreen = false) public static void Init()
{ {
_customAudioTypes = new Dictionary<string, AudioType>(); _customAudioTypes = new Dictionary<string, AudioType>();
_audioEntries = new List<AudioLibrary.AudioEntry>(); _audioEntries = new List<AudioLibrary.AudioEntry>();
_postInitialized = false;
if (titleScreen) Delay.RunWhen(() => Locator.GetAudioManager()?._libraryAsset != null && Locator.GetAudioManager()?._audioLibraryDict != null,
Delay.RunWhenAndInNUpdates( PostInit
PostInit, );
() => Locator.GetAudioManager()?._libraryAsset != null,
1
);
else
Delay.RunWhen(() => Locator.GetAudioManager()?._libraryAsset != null,
PostInit
);
} }
private static void PostInit() private static void PostInit()
{ {
NHLogger.LogVerbose($"Adding all custom AudioTypes to the library"); NHLogger.LogVerbose($"Adding all custom AudioTypes to the library");
_postInitialized = true;
ModifyAudioLibrary();
}
private static void ModifyAudioLibrary()
{
var library = Locator.GetAudioManager()._libraryAsset; var library = Locator.GetAudioManager()._libraryAsset;
var audioEntries = library.audioEntries; // store previous array var audioEntries = library.audioEntries; // store previous array
library.audioEntries = library.audioEntries.Concat(_audioEntries).ToArray(); // concat custom entries library.audioEntries = library.audioEntries.Concat(_audioEntries).ToArray(); // concat custom entries
@ -94,6 +94,8 @@ namespace NewHorizons.Handlers
_audioEntries.Add(new AudioLibrary.AudioEntry(audioType, audioClips)); _audioEntries.Add(new AudioLibrary.AudioEntry(audioType, audioClips));
_customAudioTypes.Add(id, audioType); _customAudioTypes.Add(id, audioType);
if (_postInitialized) ModifyAudioLibrary();
return audioType; return audioType;
} }
} }

View File

@ -1,3 +1,4 @@
using Epic.OnlineServices;
using Epic.OnlineServices.Presence; using Epic.OnlineServices.Presence;
using NewHorizons.Builder.Body; using NewHorizons.Builder.Body;
using NewHorizons.Builder.Props; using NewHorizons.Builder.Props;
@ -28,11 +29,24 @@ namespace NewHorizons.Handlers
var ambientLight = SearchUtilities.Find("Scene/Background/PlanetPivot/AmbientLight_CaveTwin"); var ambientLight = SearchUtilities.Find("Scene/Background/PlanetPivot/AmbientLight_CaveTwin");
ambientLight.transform.SetParent(planetRoot.transform, true); ambientLight.transform.SetParent(planetRoot.transform, true);
TitleSceneHandler.InitSubtitles(); InitSubtitles();
AudioTypeHandler.Init();
// Load player data for fact and persistent condition checking
var profileManager = StandaloneProfileManager.SharedInstance;
profileManager.PreInitialize();
profileManager.Initialize();
PlayerData.Init(profileManager.currentProfileGameSave,
profileManager.currentProfileGameSettings,
profileManager.currentProfileGraphicsSettings,
profileManager.currentProfileInputJSON);
// TODO: Select one title screen and if it has shareTitleScreen set to true do all the other ones that have it true too. // TODO: Select one title screen and if it has shareTitleScreen set to true do all the other ones that have it true too.
var (mod, config) = Main.TitleScreenConfigs.FirstOrDefault(kvp => kvp.Value.KnowsFact() && kvp.Value.HasCondition()); var (mod, config) = Main.TitleScreenConfigs.FirstOrDefault(kvp => kvp.Value.KnowsFact() && kvp.Value.HasCondition());
TitleSceneHandler.SetUp(mod, config); if (config != null)
SetUp(mod, config);
else
DisplayBodiesOnTitleScreen();
} }
public static void InitSubtitles() public static void InitSubtitles()
@ -53,14 +67,7 @@ namespace NewHorizons.Handlers
{ {
if (!config.disableNHPlanets) if (!config.disableNHPlanets)
{ {
try DisplayBodiesOnTitleScreen();
{
TitleSceneHandler.DisplayBodyOnTitleScreen(Main.BodyDict.Values.ToList().SelectMany(x => x).ToList());
}
catch (Exception e)
{
NHLogger.LogError($"Failed to make title screen bodies: {e}");
}
} }
if (config.menuTextTint != null) if (config.menuTextTint != null)
@ -154,6 +161,18 @@ namespace NewHorizons.Handlers
} }
} }
public static void DisplayBodiesOnTitleScreen()
{
try
{
TitleSceneHandler.DisplayBodyOnTitleScreen(Main.BodyDict.Values.ToList().SelectMany(x => x).ToList());
}
catch (Exception e)
{
NHLogger.LogError($"Failed to make title screen bodies: {e}");
}
}
public static void DisplayBodyOnTitleScreen(List<NewHorizonsBody> bodies) public static void DisplayBodyOnTitleScreen(List<NewHorizonsBody> bodies)
{ {
// Try loading one planet why not // Try loading one planet why not

View File

@ -422,7 +422,6 @@ namespace NewHorizons
if (isTitleScreen && CustomTitleScreen) if (isTitleScreen && CustomTitleScreen)
{ {
AudioTypeHandler.Init(true);
TitleSceneHandler.Init(); TitleSceneHandler.Init();
} }