diff --git a/Winch/Data/POI/Dock/Destinations/CustomStorageDestination.cs b/Winch/Data/POI/Dock/Destinations/CustomStorageDestination.cs index 426b3762..3b87f582 100644 --- a/Winch/Data/POI/Dock/Destinations/CustomStorageDestination.cs +++ b/Winch/Data/POI/Dock/Destinations/CustomStorageDestination.cs @@ -36,6 +36,11 @@ public class CustomStorageDestination /// public float overflowHeight = 0.6f; + /// + /// Whether this storage is inside a building + /// + public bool isIndoors = false; + /// /// Whether to enable the chest mesh /// diff --git a/Winch/Serialization/DredgeTypeHelpers.cs b/Winch/Serialization/DredgeTypeHelpers.cs index 3ed00b76..798adcf2 100644 --- a/Winch/Serialization/DredgeTypeHelpers.cs +++ b/Winch/Serialization/DredgeTypeHelpers.cs @@ -355,6 +355,7 @@ public static CustomStorageDestination ParsePrebuiltStorageDestination(object va vCam = jsonDict.TryGetValue("vCam", out object vCam) ? ParseVector3(vCam) : new Vector3(4.5f, 3.45f, 6.75f), hasOverflow = jsonDict.TryGetValue("hasOverflow", out object hasOverflow) ? bool.Parse(hasOverflow.ToString()) : false, overflowHeight = jsonDict.TryGetValue("overflowHeight", out object overflowHeight) ? float.Parse(overflowHeight.ToString()) : 0.6f, + isIndoors = jsonDict.TryGetValue("isIndoors", out object isIndoors) ? bool.Parse(isIndoors.ToString()) : false, hasChest = jsonDict.TryGetValue("hasChest", out object hasChest) ? bool.Parse(hasChest.ToString()) : true, hasBoxes = jsonDict.TryGetValue("hasBoxes", out object hasBoxes) ? bool.Parse(hasBoxes.ToString()) : true, }; diff --git a/Winch/Util/DockUtil.cs b/Winch/Util/DockUtil.cs index f1de9d1d..6f03bb8a 100644 --- a/Winch/Util/DockUtil.cs +++ b/Winch/Util/DockUtil.cs @@ -807,6 +807,7 @@ internal static (StorageDestination, OverflowStorageDestination, GameObject) Cre storageDestination.highlightConditions = new List(); storageDestination.speakerRootNodeOverride = string.Empty; storageDestination.visitSFX = visitSFX; + storageDestination.isIndoors = prebuilt.isIndoors; var overflowStorageDestinationObject = new GameObject("OverflowStorageDestination"); overflowStorageDestinationObject.transform.SetParent(storageDestinationObject.transform, false); overflowStorageDestinationObject.transform.localPosition = new Vector3(0, prebuilt.overflowHeight, 0); @@ -819,6 +820,7 @@ internal static (StorageDestination, OverflowStorageDestination, GameObject) Cre overflowStorageDestination.highlightConditions = new List { new UnstructedHighlightCondition { alwaysHighlight = true } }; overflowStorageDestination.speakerRootNodeOverride = string.Empty; overflowStorageDestination.visitSFX = visitSFX; + overflowStorageDestination.isIndoors = prebuilt.isIndoors; var box = StorageBox.Instantiate(storageObject.transform, false); box.transform.localPosition = Vector3.zero; box.transform.localEulerAngles = new Vector3(0, 360, 0);