mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Changed Map Mode Lines
- Lines are now hidden if their parent is hidden - Better Line Color
This commit is contained in:
parent
67372d3bf6
commit
1b320f6fc1
@ -168,10 +168,12 @@ namespace NewHorizons.Builder.General
|
||||
const float unviewedIconOffset = 15;
|
||||
ShipLogAstroObject astroObject = nodeGO.AddComponent<ShipLogAstroObject>();
|
||||
astroObject._id = GetAstroObjectId(node.mainBody);
|
||||
|
||||
string imagePath = node.mainBody.Config.ShipLog?.mapMode?.revealedSprite ?? "DEFAULT";
|
||||
string outlinePath = node.mainBody.Config.ShipLog?.mapMode?.outlineSprite ?? imagePath;
|
||||
astroObject._imageObj = CreateImage(nodeGO, node.mainBody.Mod.Assets, imagePath, node.mainBody.Config.Name + " Revealed", layer);
|
||||
astroObject._outlineObj = CreateImage(nodeGO, node.mainBody.Mod.Assets, outlinePath, node.mainBody.Config.Name + " Outline", layer);
|
||||
|
||||
astroObject._unviewedObj = Object.Instantiate(referenceUnviewedSprite, nodeGO.transform, false);
|
||||
if (node.mainBody.Config.FocalPoint != null)
|
||||
{
|
||||
@ -181,6 +183,7 @@ namespace NewHorizons.Builder.General
|
||||
astroObject.transform.localScale = node.lastSibling.astroObject.transform.localScale;
|
||||
}
|
||||
astroObject._invisibleWhenHidden = node.mainBody.Config.ShipLog?.mapMode?.invisibleWhenHidden ?? false;
|
||||
|
||||
Rect imageRect = astroObject._imageObj.GetComponent<RectTransform>().rect;
|
||||
astroObject._unviewedObj.transform.localPosition = new Vector3(imageRect.width / 2 + unviewedIconOffset, imageRect.height / 2 + unviewedIconOffset, 0);
|
||||
node.astroObject = astroObject;
|
||||
@ -190,16 +193,28 @@ namespace NewHorizons.Builder.General
|
||||
{
|
||||
Vector2 fromPosition = node.astroObject.transform.localPosition;
|
||||
Vector2 toPosition = node.lastSibling.astroObject.transform.localPosition;
|
||||
GameObject newLink = new GameObject(node.mainBody.Config.Name + " To " + node.lastSibling.mainBody.Config.Name + " Link_ShipLog");
|
||||
|
||||
GameObject newLink = new GameObject("Line_ShipLog");
|
||||
newLink.layer = node.astroObject.gameObject.layer;
|
||||
newLink.SetActive(false);
|
||||
|
||||
RectTransform transform = newLink.AddComponent<RectTransform>();
|
||||
transform.SetParent(node.astroObject.transform.parent);
|
||||
Vector2 center = toPosition + (fromPosition - toPosition) / 2;
|
||||
transform.localPosition = new Vector3(center.x, center.y, -1);
|
||||
transform.localRotation = Quaternion.identity;
|
||||
transform.localScale = node.level % 2 == 0 ? new Vector3(node.astroObject.transform.localScale.x / 5f, Mathf.Abs(fromPosition.y - toPosition.y) / 100f, 1) : new Vector3(Mathf.Abs(fromPosition.x - toPosition.x) / 100f, node.astroObject.transform.localScale.y / 5f , 1);
|
||||
newLink.AddComponent<Image>();
|
||||
Image linkImage = newLink.AddComponent<Image>();
|
||||
linkImage.color = new Color(0.28f, 0.28f, 0.5f, 0.28f);
|
||||
|
||||
ShipLogModule.ShipLogDetailInfo linkDetailInfo = new ShipLogModule.ShipLogDetailInfo()
|
||||
{
|
||||
invisibleWhenHidden = node.mainBody.Config.ShipLog?.mapMode?.invisibleWhenHidden ?? false
|
||||
};
|
||||
|
||||
ShipLogDetail linkDetail = newLink.AddComponent<ShipLogDetail>();
|
||||
linkDetail.Init(linkDetailInfo, linkImage, linkImage);
|
||||
|
||||
transform.SetParent(node.astroObject.transform);
|
||||
transform.SetAsFirstSibling();
|
||||
newLink.SetActive(true);
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
using OWML.Common;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using Logger = NewHorizons.Utility.Logger;
|
||||
|
||||
namespace NewHorizons.Components
|
||||
{
|
||||
@ -20,17 +21,26 @@ namespace NewHorizons.Components
|
||||
outlineImage.enabled = false;
|
||||
}
|
||||
|
||||
public void UpdateState(bool parentRevealed)
|
||||
public void UpdateState(ShipLogEntry.State parentState)
|
||||
{
|
||||
if (parentRevealed)
|
||||
switch (parentState)
|
||||
{
|
||||
revealedImage.enabled = true;
|
||||
outlineImage.enabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
revealedImage.enabled = false;
|
||||
outlineImage.enabled = !detailInfo.invisibleWhenHidden;
|
||||
case ShipLogEntry.State.Explored:
|
||||
outlineImage.enabled = false;
|
||||
revealedImage.enabled = true;
|
||||
break;
|
||||
case ShipLogEntry.State.Rumored:
|
||||
revealedImage.enabled = false;
|
||||
outlineImage.enabled = true;
|
||||
break;
|
||||
case ShipLogEntry.State.Hidden:
|
||||
revealedImage.enabled = false;
|
||||
outlineImage.enabled = !detailInfo.invisibleWhenHidden;
|
||||
break;
|
||||
case ShipLogEntry.State.None:
|
||||
revealedImage.enabled = false;
|
||||
outlineImage.enabled = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -544,10 +544,17 @@ namespace NewHorizons.Tools
|
||||
Component detail;
|
||||
if (child.TryGetComponent(typeof(ShipLogDetail), out detail))
|
||||
{
|
||||
(detail as ShipLogDetail)?.UpdateState(__instance._state == ShipLogEntry.State.Explored);
|
||||
(detail as ShipLogDetail)?.UpdateState(__instance._state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Transform lineObject = __instance.transform.Find("Line_ShipLog");
|
||||
if (lineObject != null)
|
||||
{
|
||||
ShipLogDetail lineDetail = lineObject.gameObject.GetComponent<ShipLogDetail>();
|
||||
lineDetail.UpdateState(__instance._state);
|
||||
}
|
||||
}
|
||||
|
||||
public static bool DisableShipLogSandFunnel()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user