diff --git a/NewHorizons/Builder/Props/DialogueBuilder.cs b/NewHorizons/Builder/Props/DialogueBuilder.cs index 1393da03..3beb0659 100644 --- a/NewHorizons/Builder/Props/DialogueBuilder.cs +++ b/NewHorizons/Builder/Props/DialogueBuilder.cs @@ -345,30 +345,38 @@ namespace NewHorizons.Builder.Props { if (info.attentionPoint != null) { - var pointSector = sector; - var ptGo = GeneralPropBuilder.MakeNew("AttentionPoint", go, ref pointSector, info.attentionPoint, defaultParent: dialogue.transform); - dialogue._attentionPoint = ptGo.transform; - dialogue._attentionPointOffset = info.attentionPoint.offset ?? Vector3.zero; - ptGo.SetActive(true); + MakeAttentionPoint(go, sector, dialogue, info.attentionPoint); } if (info.swappedAttentionPoints != null && info.swappedAttentionPoints.Length > 0) { foreach (var pointInfo in info.swappedAttentionPoints) { - var pointSector = sector; - var ptGo = GeneralPropBuilder.MakeNew($"AttentionPoint_{pointInfo.dialogueNode}_{pointInfo.dialoguePage}", go, ref pointSector, pointInfo, defaultParent: dialogue.transform); - var swapper = ptGo.AddComponent(); - swapper._dialogueTree = dialogue; - swapper._attentionPoint = ptGo.transform; - swapper._attentionPointOffset = pointInfo.offset ?? Vector3.zero; - swapper._nodeName = pointInfo.dialogueNode; - swapper._dialoguePage = pointInfo.dialoguePage; - swapper._lookEasing = pointInfo.lookEasing; - ptGo.SetActive(true); + MakeSwappedAttentionPoint(go, sector, dialogue, pointInfo); } } } + private static void MakeAttentionPoint(GameObject go, Sector sector, CharacterDialogueTree dialogue, AttentionPointInfo info) + { + var ptGo = GeneralPropBuilder.MakeNew("AttentionPoint", go, ref sector, info, defaultParent: dialogue.transform); + dialogue._attentionPoint = ptGo.transform; + dialogue._attentionPointOffset = info.offset ?? Vector3.zero; + ptGo.SetActive(true); + } + + private static void MakeSwappedAttentionPoint(GameObject go, Sector sector, CharacterDialogueTree dialogue, SwappedAttentionPointInfo info) + { + var ptGo = GeneralPropBuilder.MakeNew($"AttentionPoint_{info.dialogueNode}_{info.dialoguePage}", go, ref sector, info, defaultParent: dialogue.transform); + var swapper = ptGo.AddComponent(); + swapper._dialogueTree = dialogue; + swapper._attentionPoint = ptGo.transform; + swapper._attentionPointOffset = info.offset ?? Vector3.zero; + swapper._nodeName = info.dialogueNode; + swapper._dialoguePage = info.dialoguePage; + swapper._lookEasing = info.lookEasing; + ptGo.SetActive(true); + } + private static void MakePlayerTrackingZone(GameObject go, CharacterDialogueTree dialogue, DialogueInfo info) { var character = go.transform.Find(info.pathToAnimController); diff --git a/NewHorizons/Builder/Props/GravityCannonBuilder.cs b/NewHorizons/Builder/Props/GravityCannonBuilder.cs index d289156e..0360e858 100644 --- a/NewHorizons/Builder/Props/GravityCannonBuilder.cs +++ b/NewHorizons/Builder/Props/GravityCannonBuilder.cs @@ -65,9 +65,10 @@ namespace NewHorizons.Builder.Props if (_interfacePrefab == null || planetGO == null || sector == null || _detailedPlatformPrefab == null || _platformPrefab == null) return null; + var planetSector = sector; + var detailInfo = new DetailInfo(info.controls) { keepLoaded = true }; - var cannonSector = sector; - var gravityCannonObject = DetailBuilder.Make(planetGO, ref cannonSector, mod, _interfacePrefab, detailInfo); + var gravityCannonObject = DetailBuilder.Make(planetGO, ref sector, mod, _interfacePrefab, detailInfo); gravityCannonObject.SetActive(false); var gravityCannonController = gravityCannonObject.GetComponent(); @@ -78,14 +79,14 @@ namespace NewHorizons.Builder.Props gravityCannonController._retrieveShipLogFact = info.retrieveReveal ?? string.Empty; gravityCannonController._launchShipLogFact = info.launchReveal ?? string.Empty; - CreatePlatform(planetGO, sector, mod, gravityCannonController, info); + CreatePlatform(planetGO, planetSector, mod, gravityCannonController, info); if (info.computer != null) { // Do it next update so that the shuttle has been made Delay.FireOnNextUpdate(() => { - gravityCannonController._nomaiComputer = CreateComputer(planetGO, sector, info.computer, id); + gravityCannonController._nomaiComputer = CreateComputer(planetGO, planetSector, info.computer, id); }); } else diff --git a/NewHorizons/Builder/Props/WarpPadBuilder.cs b/NewHorizons/Builder/Props/WarpPadBuilder.cs index 6f853611..0375646b 100644 --- a/NewHorizons/Builder/Props/WarpPadBuilder.cs +++ b/NewHorizons/Builder/Props/WarpPadBuilder.cs @@ -92,9 +92,9 @@ namespace NewHorizons.Builder.Props public static void Make(GameObject planetGO, Sector sector, IModBehaviour mod, NomaiWarpReceiverInfo info) { + var planetSector = sector; var detailInfo = new DetailInfo(info); - var receiverSector = sector; - var receiverObject = DetailBuilder.Make(planetGO, ref receiverSector, mod, info.detailed ? _detailedReceiverPrefab : _receiverPrefab, detailInfo); + var receiverObject = DetailBuilder.Make(planetGO, ref sector, mod, info.detailed ? _detailedReceiverPrefab : _receiverPrefab, detailInfo); NHLogger.Log($"Position is {detailInfo.position} was {info.position}"); @@ -127,7 +127,7 @@ namespace NewHorizons.Builder.Props if (info.computer != null) { - CreateComputer(planetGO, sector, mod, info.computer, receiver); + CreateComputer(planetGO, planetSector, mod, info.computer, receiver); } }