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.SetSector(sector);
|
||||||
slideReel.SetVisible(true);
|
slideReel.SetVisible(true);
|
||||||
|
|
||||||
Component.DestroyImmediate(slideReelObj.GetComponent<SlideCollectionContainer>());
|
var toDestroy = slideReelObj.GetComponent<SlideCollectionContainer>();
|
||||||
var slideCollectionContainer = slideReelObj.AddComponent<NHSlideCollectionContainer>();
|
var slideCollectionContainer = slideReelObj.AddComponent<NHSlideCollectionContainer>();
|
||||||
|
slideReel._slideCollectionContainer = slideCollectionContainer;
|
||||||
|
Component.DestroyImmediate(toDestroy);
|
||||||
|
|
||||||
foreach (var renderer in slideReelObj.GetComponentsInChildren<Renderer>())
|
foreach (var renderer in slideReelObj.GetComponentsInChildren<Renderer>())
|
||||||
{
|
{
|
||||||
@ -344,8 +346,10 @@ namespace NewHorizons.Builder.Props
|
|||||||
var autoProjector = projectorObj.GetComponent<AutoSlideProjector>();
|
var autoProjector = projectorObj.GetComponent<AutoSlideProjector>();
|
||||||
autoProjector._sector = sector;
|
autoProjector._sector = sector;
|
||||||
|
|
||||||
Component.DestroyImmediate(autoProjector.GetComponent<SlideCollectionContainer>());
|
var toDestroy = autoProjector.GetComponent<SlideCollectionContainer>();
|
||||||
var slideCollectionContainer = autoProjector.gameObject.AddComponent<NHSlideCollectionContainer>();
|
var slideCollectionContainer = autoProjector.gameObject.AddComponent<NHSlideCollectionContainer>();
|
||||||
|
autoProjector._slideCollectionItem = slideCollectionContainer;
|
||||||
|
Component.DestroyImmediate(toDestroy);
|
||||||
|
|
||||||
// Now we replace the slides
|
// Now we replace the slides
|
||||||
int slidesCount = info.slides.Length;
|
int slidesCount = info.slides.Length;
|
||||||
|
|||||||
@ -8,6 +8,34 @@ public class NHSlideCollectionContainer : SlideCollectionContainer
|
|||||||
public string[] conditionsToSet;
|
public string[] conditionsToSet;
|
||||||
public string[] persistentConditionsToSet;
|
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)
|
public static void SlideCollectionContainer_SetReadFlag(SlideCollectionContainer __instance)
|
||||||
{
|
{
|
||||||
if (__instance is NHSlideCollectionContainer container)
|
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