mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Make it actually work
This commit is contained in:
parent
162237d3ad
commit
c273b0d8cf
@ -138,8 +138,10 @@ namespace NewHorizons.Builder.Props
|
||||
slideReel.SetSector(sector);
|
||||
slideReel.SetVisible(true);
|
||||
|
||||
Component.DestroyImmediate(slideReelObj.GetComponent<SlideCollectionContainer>());
|
||||
var toDestroy = slideReelObj.GetComponent<SlideCollectionContainer>();
|
||||
var slideCollectionContainer = slideReelObj.AddComponent<NHSlideCollectionContainer>();
|
||||
slideReel._slideCollectionContainer = slideCollectionContainer;
|
||||
Component.DestroyImmediate(toDestroy);
|
||||
|
||||
foreach (var renderer in slideReelObj.GetComponentsInChildren<Renderer>())
|
||||
{
|
||||
@ -344,8 +346,10 @@ namespace NewHorizons.Builder.Props
|
||||
var autoProjector = projectorObj.GetComponent<AutoSlideProjector>();
|
||||
autoProjector._sector = sector;
|
||||
|
||||
Component.DestroyImmediate(autoProjector.GetComponent<SlideCollectionContainer>());
|
||||
var toDestroy = autoProjector.GetComponent<SlideCollectionContainer>();
|
||||
var slideCollectionContainer = autoProjector.gameObject.AddComponent<NHSlideCollectionContainer>();
|
||||
autoProjector._slideCollectionItem = slideCollectionContainer;
|
||||
Component.DestroyImmediate(toDestroy);
|
||||
|
||||
// Now we replace the slides
|
||||
int slidesCount = info.slides.Length;
|
||||
|
||||
@ -8,6 +8,34 @@ public class NHSlideCollectionContainer : SlideCollectionContainer
|
||||
public string[] conditionsToSet;
|
||||
public string[] persistentConditionsToSet;
|
||||
|
||||
[HarmonyPrefix]
|
||||
[HarmonyPatch(typeof(SlideCollectionContainer), nameof(SlideCollectionContainer.Initialize))]
|
||||
public static bool SlideCollectionContainer_Initialize(SlideCollectionContainer __instance)
|
||||
{
|
||||
if (__instance is NHSlideCollectionContainer)
|
||||
{
|
||||
if (__instance._initialized)
|
||||
return false;
|
||||
__instance.SetupReadFlags();
|
||||
__instance.RegisterPerSlideCompletion();
|
||||
if (__instance.streamingTexturesAvailable)
|
||||
__instance.SetupStreaming();
|
||||
__instance.BuildMusicRangesIndex();
|
||||
__instance._changeSlidesAllowed = true;
|
||||
__instance._initialized = true;
|
||||
__instance._slideCollection.isVision = __instance._owningItem == null;
|
||||
foreach (var factID in __instance._playWithShipLogFacts)
|
||||
{
|
||||
var fact = Locator.GetShipLogManager().GetFact(factID);
|
||||
fact?.RegisterSlideCollection(__instance._slideCollection);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
[HarmonyPostfix]
|
||||
[HarmonyPatch(typeof(SlideCollectionContainer), nameof(SlideCollectionContainer.SetReadFlag))]
|
||||
public static void SlideCollectionContainer_SetReadFlag(SlideCollectionContainer __instance)
|
||||
{
|
||||
if (__instance is NHSlideCollectionContainer container)
|
||||
|
||||
@ -1,30 +0,0 @@
|
||||
using HarmonyLib;
|
||||
|
||||
namespace NewHorizons.Patches.ShipLogPatches
|
||||
{
|
||||
[HarmonyPatch(typeof(SlideCollectionContainer))]
|
||||
public static class SlideCollectionContainerPatches
|
||||
{
|
||||
[HarmonyPrefix]
|
||||
[HarmonyPatch(typeof(SlideCollectionContainer), nameof(SlideCollectionContainer.Initialize))]
|
||||
public static bool SlideCollectionContainer_Initialize(SlideCollectionContainer __instance)
|
||||
{
|
||||
if (__instance._initialized)
|
||||
return false;
|
||||
__instance.SetupReadFlags();
|
||||
__instance.RegisterPerSlideCompletion();
|
||||
if (__instance.streamingTexturesAvailable)
|
||||
__instance.SetupStreaming();
|
||||
__instance.BuildMusicRangesIndex();
|
||||
__instance._changeSlidesAllowed = true;
|
||||
__instance._initialized = true;
|
||||
__instance._slideCollection.isVision = __instance._owningItem == null;
|
||||
foreach (var factID in __instance._playWithShipLogFacts)
|
||||
{
|
||||
var fact = Locator.GetShipLogManager().GetFact(factID);
|
||||
fact?.RegisterSlideCollection(__instance._slideCollection);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user