Fix SectorCullGroup on details (#814)

## Bug fixes
- Sector cull groups now function properly (not erroneously enabled even
without KeepLoaded) (fix #792)
- Fixes a problem where projected slides are brighter than the source
image (fix #755)
This commit is contained in:
xen-42 2024-03-17 23:59:21 -04:00 committed by GitHub
commit 962a6f778b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 9 additions and 14 deletions

View File

@ -303,17 +303,6 @@ namespace NewHorizons.Builder.Props
s.SetParentSector(sector); s.SetParentSector(sector);
} }
else if (component is SectorCullGroup sectorCullGroup)
{
sectorCullGroup._controllingProxy = null;
// fixes sector cull group deactivating renderers on map view enter and fast foward
// TODO: does this actually work? what? how?
sectorCullGroup._inMapView = false;
sectorCullGroup._isFastForwarding = false;
sectorCullGroup.SetVisible(sectorCullGroup.ShouldBeVisible(), true, false);
}
else if(component is SectoredMonoBehaviour behaviour && !existingSectors.Contains(behaviour._sector)) else if(component is SectoredMonoBehaviour behaviour && !existingSectors.Contains(behaviour._sector))
{ {
// not using SetSector here because it registers the events twice // not using SetSector here because it registers the events twice

View File

@ -54,7 +54,9 @@ namespace NewHorizons.External.Modules.Props
public string quantumGroupID; public string quantumGroupID;
/// <summary> /// <summary>
/// Should this detail stay loaded even if you're outside the sector (good for very large props) /// Should this detail stay loaded (visible and collideable) even if you're outside the sector (good for very large props)?
/// Also makes this detail visible on the map.
/// Most logic/behavior scripts will still only work inside the sector, as most of those scripts break if a sector is not provided.
/// </summary> /// </summary>
public bool keepLoaded; public bool keepLoaded;

View File

@ -1342,7 +1342,7 @@
}, },
"keepLoaded": { "keepLoaded": {
"type": "boolean", "type": "boolean",
"description": "Should this detail stay loaded even if you're outside the sector (good for very large props)" "description": "Should this detail stay loaded (visible and collideable) even if you're outside the sector (good for very large props)?\nAlso makes this detail visible on the map.\nMost logic/behavior scripts will still only work inside the sector, as most of those scripts break if a sector is not provided."
}, },
"hasPhysics": { "hasPhysics": {
"type": "boolean", "type": "boolean",

View File

@ -95,6 +95,10 @@ namespace NewHorizons.Utility.Files
_textureCache.Clear(); _textureCache.Clear();
} }
/// <summary>
/// used specifically for projected slides.
/// also adds a border (to prevent weird visual bug) and makes the texture linear (otherwise the projected image is too bright).
/// </summary>
public static Texture2D Invert(Texture2D texture) public static Texture2D Invert(Texture2D texture)
{ {
var key = $"{texture.name} > invert"; var key = $"{texture.name} > invert";
@ -122,7 +126,7 @@ namespace NewHorizons.Utility.Files
} }
} }
var newTexture = new Texture2D(texture.width, texture.height, texture.format, texture.mipmapCount != 1); var newTexture = new Texture2D(texture.width, texture.height, texture.format, texture.mipmapCount != 1, true);
newTexture.name = key; newTexture.name = key;
newTexture.SetPixels(pixels); newTexture.SetPixels(pixels);
newTexture.Apply(); newTexture.Apply();