mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Machine softlock (#630)
## Bug fixes - Fix softlock affecting The Machine due to a secret hidden slide reel that destroyed everything (thanks Damian)
This commit is contained in:
commit
5503d2aad0
@ -102,7 +102,6 @@ namespace NewHorizons.Builder.Props
|
|||||||
StreamingHandler.SetUpStreaming(prop, detail.keepLoaded ? null : sector);
|
StreamingHandler.SetUpStreaming(prop, detail.keepLoaded ? null : sector);
|
||||||
|
|
||||||
// Could check this in the for loop but I'm not sure what order we need to know about this in
|
// Could check this in the for loop but I'm not sure what order we need to know about this in
|
||||||
var isTorch = prop.GetComponent<VisionTorchItem>() != null;
|
|
||||||
isItem = false;
|
isItem = false;
|
||||||
|
|
||||||
foreach (var component in prop.GetComponentsInChildren<Component>(true))
|
foreach (var component in prop.GetComponentsInChildren<Component>(true))
|
||||||
@ -120,7 +119,7 @@ namespace NewHorizons.Builder.Props
|
|||||||
{
|
{
|
||||||
if (FixUnsectoredComponent(component)) continue;
|
if (FixUnsectoredComponent(component)) continue;
|
||||||
}
|
}
|
||||||
else FixSectoredComponent(component, sector, isTorch, detail.keepLoaded);
|
else FixSectoredComponent(component, sector, detail.keepLoaded);
|
||||||
|
|
||||||
FixComponent(component, go, detail.ignoreSun);
|
FixComponent(component, go, detail.ignoreSun);
|
||||||
}
|
}
|
||||||
@ -219,7 +218,7 @@ namespace NewHorizons.Builder.Props
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Fix components that have sectors. Has a specific fix if there is a VisionTorchItem on the object.
|
/// Fix components that have sectors. Has a specific fix if there is a VisionTorchItem on the object.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private static void FixSectoredComponent(Component component, Sector sector, bool isTorch, bool keepLoaded)
|
private static void FixSectoredComponent(Component component, Sector sector, bool keepLoaded)
|
||||||
{
|
{
|
||||||
// keepLoaded should remove existing groups
|
// keepLoaded should remove existing groups
|
||||||
// renderers/colliders get enabled later so we dont have to do that here
|
// renderers/colliders get enabled later so we dont have to do that here
|
||||||
@ -265,10 +264,10 @@ namespace NewHorizons.Builder.Props
|
|||||||
socket._sector = sector;
|
socket._sector = sector;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fix slide reel - Softlocks if this object is a vision torch
|
// TODO: Fix low res reels (probably in VanillaFix since its a vanilla bug)
|
||||||
else if(!isTorch && component is SlideCollectionContainer container)
|
else if(component is SlideReelItem)
|
||||||
{
|
{
|
||||||
sector.OnOccupantEnterSector.AddListener(_ => container.LoadStreamingTextures());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if(component is NomaiRemoteCameraPlatform remoteCameraPlatform)
|
else if(component is NomaiRemoteCameraPlatform remoteCameraPlatform)
|
||||||
|
|||||||
@ -811,6 +811,12 @@ namespace NewHorizons
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (LoadManager.GetCurrentScene() == OWScene.SolarSystem || LoadManager.GetCurrentScene() == OWScene.EyeOfTheUniverse)
|
||||||
|
{
|
||||||
|
// Slide reel unloading is tied to being removed from the sector, so we do that here to prevent a softlock
|
||||||
|
Locator.GetPlayerSectorDetector().RemoveFromAllSectors();
|
||||||
|
}
|
||||||
|
|
||||||
if (IsChangingStarSystem) return;
|
if (IsChangingStarSystem) return;
|
||||||
|
|
||||||
IsWarpingFromShip = warp;
|
IsWarpingFromShip = warp;
|
||||||
|
|||||||
@ -15,8 +15,8 @@
|
|||||||
<DebugType>none</DebugType>
|
<DebugType>none</DebugType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="OWML" Version="2.9.0" />
|
|
||||||
<PackageReference Include="OuterWildsGameLibs" Version="1.1.13.456" />
|
<PackageReference Include="OuterWildsGameLibs" Version="1.1.13.456" />
|
||||||
|
<PackageReference Include="OWML" Version="2.9.3" />
|
||||||
<Reference Include="../Lib/System.ComponentModel.Annotations.dll" />
|
<Reference Include="../Lib/System.ComponentModel.Annotations.dll" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user