## Improvements
- CharacterDialogueTrees from a Unity asset bundle will now load
properly and have translations supported

## 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-18 00:25:24 -04:00 committed by GitHub
commit 21d49587e5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 18 additions and 16 deletions

View File

@ -142,6 +142,13 @@ namespace NewHorizons.Builder.Props
FixSectoredComponent(component, sector, existingSectors, detail.keepLoaded); FixSectoredComponent(component, sector, existingSectors, detail.keepLoaded);
} }
// Asset bundle is a real string -> Object loaded from unity
// If they're adding dialogue we have to manually register the xml text
if (!string.IsNullOrEmpty(detail.assetBundle) && component is CharacterDialogueTree dialogue)
{
DialogueBuilder.AddTranslation(dialogue._xmlCharacterDialogueAsset.text, null);
}
FixComponent(component, go, detail.ignoreSun); FixComponent(component, go, detail.ignoreSun);
} }
catch(Exception e) catch(Exception e)
@ -296,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

@ -376,7 +376,7 @@ namespace NewHorizons.Builder.Props
} }
} }
private static void AddTranslation(string xml, string characterName = null) public static void AddTranslation(string xml, string characterName = null)
{ {
var xmlDocument = new XmlDocument(); var xmlDocument = new XmlDocument();
xmlDocument.LoadXml(xml); xmlDocument.LoadXml(xml);

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();

View File

@ -4,7 +4,7 @@
"author": "xen, Bwc9876, JohnCorby, MegaPiggy, Clay, Trifid, and friends", "author": "xen, Bwc9876, JohnCorby, MegaPiggy, Clay, Trifid, and friends",
"name": "New Horizons", "name": "New Horizons",
"uniqueName": "xen.NewHorizons", "uniqueName": "xen.NewHorizons",
"version": "1.19.2", "version": "1.19.3",
"owmlVersion": "2.9.8", "owmlVersion": "2.9.8",
"dependencies": [ "JohnCorby.VanillaFix", "_nebula.MenuFramework", "xen.CommonCameraUtility", "dgarro.CustomShipLogModes" ], "dependencies": [ "JohnCorby.VanillaFix", "_nebula.MenuFramework", "xen.CommonCameraUtility", "dgarro.CustomShipLogModes" ],
"conflicts": [ "Raicuparta.QuantumSpaceBuddies", "PacificEngine.OW_CommonResources" ], "conflicts": [ "Raicuparta.QuantumSpaceBuddies", "PacificEngine.OW_CommonResources" ],