mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Merge branch 'dev' into scene-load-fixes
This commit is contained in:
commit
62ee681cb8
@ -10,7 +10,7 @@
|
||||
"Trifid#Tester\n#Programmer",
|
||||
"Nageld#Programmer",
|
||||
"Ernesto#Fish",
|
||||
"With help from#Raicuparta\n#dgarroDC\n#jtsalomo\n#and the modding community",
|
||||
"With help from#Raicuparta\n#dgarroDC\n#jtsalomo\n#coderCleric\n#TRSasasusu\n#and the modding community",
|
||||
" ",
|
||||
"Based off Marshmallow made by#_nebula",
|
||||
"With help from#AmazingAlek\n#Raicuparta\n#and the Outer Wilds discord server",
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
using NewHorizons.Components;
|
||||
using NewHorizons.Components.Orbital;
|
||||
using NewHorizons.External.Configs;
|
||||
using NewHorizons.External;
|
||||
using NewHorizons.Utility.OWML;
|
||||
using UnityEngine;
|
||||
|
||||
@ -8,9 +8,13 @@ namespace NewHorizons.Builder.General
|
||||
{
|
||||
public static class AstroObjectBuilder
|
||||
{
|
||||
public static NHAstroObject Make(GameObject body, AstroObject primaryBody, PlanetConfig config, bool isVanilla)
|
||||
public static NHAstroObject Make(GameObject body, AstroObject primaryBody, NewHorizonsBody nhBody, bool isVanilla)
|
||||
{
|
||||
NHAstroObject astroObject = body.AddComponent<NHAstroObject>();
|
||||
astroObject.modUniqueName = nhBody.Mod.ModHelper.Manifest.UniqueName;
|
||||
|
||||
var config = nhBody.Config;
|
||||
|
||||
astroObject.isVanilla = isVanilla;
|
||||
astroObject.HideDisplayName = !config.Base.hasMapMarker;
|
||||
astroObject.invulnerableToSun = config.Base.invulnerableToSun;
|
||||
|
||||
@ -102,10 +102,12 @@ namespace NewHorizons.Builder.Props
|
||||
// We just have to merge the dialogue options
|
||||
var dialogueOptions = newDialogueNode.GetChildNode("DialogueOptionsList").GetChildNodes("DialogueOption");
|
||||
var existingDialogueOptionsList = existingNode.GetChildNode("DialogueOptionsList");
|
||||
var firstNode = existingDialogueOptionsList.ChildNodes[0];
|
||||
foreach (XmlNode node in dialogueOptions)
|
||||
{
|
||||
var importedNode = existingDialogueOptionsList.OwnerDocument.ImportNode(node, true);
|
||||
existingDialogueOptionsList.AppendChild(importedNode);
|
||||
// We add them to the start because normally the last option is to return to menu or exit
|
||||
existingDialogueOptionsList.PrependChild(importedNode);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@ -51,6 +51,10 @@ namespace NewHorizons.Builder.Props
|
||||
item.DisplayName = itemName;
|
||||
item.ItemType = itemType;
|
||||
item.Droppable = info.droppable;
|
||||
item.HoldOffset = info.holdOffset ?? Vector3.zero;
|
||||
item.HoldRotation = info.holdRotation ?? Vector3.zero;
|
||||
item.SocketOffset = info.socketOffset ?? Vector3.zero;
|
||||
item.SocketRotation = info.socketRotation ?? Vector3.zero;
|
||||
if (!string.IsNullOrEmpty(info.pickupAudio))
|
||||
{
|
||||
item.PickupAudio = AudioTypeHandler.GetAudioType(info.pickupAudio, mod);
|
||||
|
||||
@ -476,7 +476,7 @@ namespace NewHorizons.Builder.Props.TranslatorText
|
||||
}
|
||||
|
||||
ArcCacheData[] cachedData = null;
|
||||
if (nhBody.Cache?.ContainsKey(cacheKey) ?? false)
|
||||
if (nhBody?.Cache?.ContainsKey(cacheKey) ?? false)
|
||||
cachedData = nhBody.Cache.Get<ArcCacheData[]>(cacheKey);
|
||||
|
||||
var arranger = nomaiWallText.gameObject.AddComponent<NomaiTextArcArranger>();
|
||||
|
||||
@ -14,6 +14,11 @@ namespace NewHorizons.Components.Orbital
|
||||
public bool invulnerableToSun;
|
||||
public bool isVanilla;
|
||||
|
||||
/// <summary>
|
||||
/// The unique name of the mod that created this body or, if it is an existing body being edited, the last mod to edit it
|
||||
/// </summary>
|
||||
public string modUniqueName;
|
||||
|
||||
public void SetOrbitalParametersFromConfig(OrbitModule orbit)
|
||||
{
|
||||
SetOrbitalParametersFromTrueAnomaly(orbit.eccentricity, orbit.semiMajorAxis, orbit.inclination, orbit.argumentOfPeriapsis, orbit.longitudeOfAscendingNode, orbit.trueAnomaly);
|
||||
|
||||
@ -19,6 +19,10 @@ namespace NewHorizons.Components.Props
|
||||
public AudioType DropAudio;
|
||||
public AudioType SocketAudio;
|
||||
public AudioType UnsocketAudio;
|
||||
public Vector3 HoldOffset;
|
||||
public Vector3 HoldRotation;
|
||||
public Vector3 SocketOffset;
|
||||
public Vector3 SocketRotation;
|
||||
public string PickupCondition;
|
||||
public bool ClearPickupConditionOnDrop;
|
||||
public string PickupFact;
|
||||
@ -42,6 +46,8 @@ namespace NewHorizons.Components.Props
|
||||
public override void PickUpItem(Transform holdTranform)
|
||||
{
|
||||
base.PickUpItem(holdTranform);
|
||||
transform.localPosition = HoldOffset;
|
||||
transform.localEulerAngles = HoldRotation;
|
||||
TriggerPickupConditions();
|
||||
PlayCustomSound(PickupAudio);
|
||||
}
|
||||
@ -56,6 +62,8 @@ namespace NewHorizons.Components.Props
|
||||
public override void SocketItem(Transform socketTransform, Sector sector)
|
||||
{
|
||||
base.SocketItem(socketTransform, sector);
|
||||
transform.localPosition = SocketOffset;
|
||||
transform.localEulerAngles = SocketRotation;
|
||||
TriggerDropConditions();
|
||||
PlayCustomSound(SocketAudio);
|
||||
}
|
||||
|
||||
@ -44,6 +44,22 @@ namespace NewHorizons.External.Modules.Props.Item
|
||||
/// </summary>
|
||||
public MVector3 dropNormal;
|
||||
/// <summary>
|
||||
/// A relative offset to apply to the item's position when holding it. The initial position varies for vanilla item types.
|
||||
/// </summary>
|
||||
public MVector3 holdOffset;
|
||||
/// <summary>
|
||||
/// A relative offset to apply to the item's rotation when holding it.
|
||||
/// </summary>
|
||||
public MVector3 holdRotation;
|
||||
/// <summary>
|
||||
/// A relative offset to apply to the item's position when placing it into a socket.
|
||||
/// </summary>
|
||||
public MVector3 socketOffset;
|
||||
/// <summary>
|
||||
/// A relative offset to apply to the item's rotation when placing it into a socket.
|
||||
/// </summary>
|
||||
public MVector3 socketRotation;
|
||||
/// <summary>
|
||||
/// The audio to play when this item is picked up. Only applies to custom/non-vanilla item types.
|
||||
/// Can be a path to a .wav/.ogg/.mp3 file, or taken from the AudioClip list.
|
||||
/// </summary>
|
||||
|
||||
@ -371,7 +371,7 @@ namespace NewHorizons.Handlers
|
||||
const float sphereOfInfluence = 2000f;
|
||||
|
||||
var owRigidBody = RigidBodyBuilder.Make(go, sphereOfInfluence, body.Config);
|
||||
var ao = AstroObjectBuilder.Make(go, null, body.Config, false);
|
||||
var ao = AstroObjectBuilder.Make(go, null, body, false);
|
||||
|
||||
var sector = SectorBuilder.Make(go, owRigidBody, sphereOfInfluence);
|
||||
ao._rootSector = sector;
|
||||
@ -447,7 +447,7 @@ namespace NewHorizons.Handlers
|
||||
var sphereOfInfluence = GetSphereOfInfluence(body);
|
||||
|
||||
var owRigidBody = RigidBodyBuilder.Make(go, sphereOfInfluence, body.Config);
|
||||
var ao = AstroObjectBuilder.Make(go, primaryBody, body.Config, false);
|
||||
var ao = AstroObjectBuilder.Make(go, primaryBody, body, false);
|
||||
|
||||
var sector = SectorBuilder.Make(go, owRigidBody, sphereOfInfluence * 2f);
|
||||
ao._rootSector = sector;
|
||||
@ -788,7 +788,7 @@ namespace NewHorizons.Handlers
|
||||
}
|
||||
|
||||
// Just destroy the existing AO after copying everything over
|
||||
var newAO = AstroObjectBuilder.Make(go, primary, body.Config, true);
|
||||
var newAO = AstroObjectBuilder.Make(go, primary, body, true);
|
||||
newAO._gravityVolume = ao._gravityVolume;
|
||||
newAO._moon = ao._moon;
|
||||
newAO._name = ao._name;
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
using NewHorizons.Handlers;
|
||||
using OWML.Common;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
@ -1429,6 +1429,22 @@
|
||||
"description": "The direction the item will be oriented when dropping it on the ground. Defaults to up (0, 1, 0).",
|
||||
"$ref": "#/definitions/MVector3"
|
||||
},
|
||||
"holdOffset": {
|
||||
"description": "A relative offset to apply to the item's position when holding it. The initial position varies for vanilla item types.",
|
||||
"$ref": "#/definitions/MVector3"
|
||||
},
|
||||
"holdRotation": {
|
||||
"description": "A relative offset to apply to the item's rotation when holding it.",
|
||||
"$ref": "#/definitions/MVector3"
|
||||
},
|
||||
"socketOffset": {
|
||||
"description": "A relative offset to apply to the item's position when placing it into a socket.",
|
||||
"$ref": "#/definitions/MVector3"
|
||||
},
|
||||
"socketRotation": {
|
||||
"description": "A relative offset to apply to the item's rotation when placing it into a socket.",
|
||||
"$ref": "#/definitions/MVector3"
|
||||
},
|
||||
"pickupAudio": {
|
||||
"type": "string",
|
||||
"description": "The audio to play when this item is picked up. Only applies to custom/non-vanilla item types.\nCan be a path to a .wav/.ogg/.mp3 file, or taken from the AudioClip list."
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
"author": "xen, Bwc9876, JohnCorby, MegaPiggy, Clay, Trifid, and friends",
|
||||
"name": "New Horizons",
|
||||
"uniqueName": "xen.NewHorizons",
|
||||
"version": "1.19.8",
|
||||
"version": "1.19.9",
|
||||
"owmlVersion": "2.10.3",
|
||||
"dependencies": [ "JohnCorby.VanillaFix", "xen.CommonCameraUtility", "dgarro.CustomShipLogModes" ],
|
||||
"conflicts": [ "PacificEngine.OW_CommonResources" ],
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user