mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Fix positions
This commit is contained in:
parent
9830441a1d
commit
55e8be6546
@ -7,12 +7,12 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
{
|
{
|
||||||
public static class AirBuilder
|
public static class AirBuilder
|
||||||
{
|
{
|
||||||
public static void Make(GameObject body, Sector sector, AtmosphereModule.AirInfo info)
|
public static void Make(GameObject planetGO, Sector sector, AtmosphereModule.AirInfo info)
|
||||||
{
|
{
|
||||||
GameObject airGO = new GameObject("Air");
|
GameObject airGO = new GameObject("Air");
|
||||||
airGO.SetActive(false);
|
airGO.SetActive(false);
|
||||||
airGO.layer = 17;
|
airGO.layer = 17;
|
||||||
airGO.transform.parent = sector?.transform ?? body.transform;
|
airGO.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
|
|
||||||
SphereCollider SC = airGO.AddComponent<SphereCollider>();
|
SphereCollider SC = airGO.AddComponent<SphereCollider>();
|
||||||
SC.isTrigger = true;
|
SC.isTrigger = true;
|
||||||
@ -60,7 +60,7 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
airGO.AddComponent<AudioVolume>();
|
airGO.AddComponent<AudioVolume>();
|
||||||
}
|
}
|
||||||
|
|
||||||
airGO.transform.localPosition = Vector3.zero;
|
airGO.transform.position = planetGO.transform.TransformPoint(Vector3.zero);
|
||||||
airGO.SetActive(true);
|
airGO.SetActive(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,17 +6,17 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
{
|
{
|
||||||
public static class AtmosphereBuilder
|
public static class AtmosphereBuilder
|
||||||
{
|
{
|
||||||
public static void Make(GameObject body, Sector sector, AtmosphereModule atmosphereModule, float surfaceSize)
|
public static void Make(GameObject planetGO, Sector sector, AtmosphereModule atmosphereModule, float surfaceSize)
|
||||||
{
|
{
|
||||||
GameObject atmoGO = new GameObject("Atmosphere");
|
GameObject atmoGO = new GameObject("Atmosphere");
|
||||||
atmoGO.SetActive(false);
|
atmoGO.SetActive(false);
|
||||||
atmoGO.transform.parent = sector?.transform ?? body.transform;
|
atmoGO.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
|
|
||||||
if (atmosphereModule.HasAtmosphere)
|
if (atmosphereModule.HasAtmosphere)
|
||||||
{
|
{
|
||||||
GameObject atmo = GameObject.Instantiate(GameObject.Find("TimberHearth_Body/Atmosphere_TH/AtmoSphere"));
|
GameObject atmo = GameObject.Instantiate(GameObject.Find("TimberHearth_Body/Atmosphere_TH/AtmoSphere"));
|
||||||
atmo.transform.parent = atmoGO.transform;
|
atmo.transform.parent = atmoGO.transform;
|
||||||
atmo.transform.localPosition = Vector3.zero;
|
atmo.transform.position = planetGO.transform.TransformPoint(Vector3.zero);
|
||||||
atmo.transform.localScale = Vector3.one * atmosphereModule.Size * 1.2f;
|
atmo.transform.localScale = Vector3.one * atmosphereModule.Size * 1.2f;
|
||||||
foreach(var meshRenderer in atmo.GetComponentsInChildren<MeshRenderer>())
|
foreach(var meshRenderer in atmo.GetComponentsInChildren<MeshRenderer>())
|
||||||
{
|
{
|
||||||
@ -29,7 +29,7 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
atmo.SetActive(true);
|
atmo.SetActive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
atmoGO.transform.localPosition = Vector3.zero;
|
atmoGO.transform.position = planetGO.transform.TransformPoint(Vector3.zero);
|
||||||
atmoGO.SetActive(true);
|
atmoGO.SetActive(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,7 +11,7 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
public static class CloudsBuilder
|
public static class CloudsBuilder
|
||||||
{
|
{
|
||||||
private static Shader _sphereShader = null;
|
private static Shader _sphereShader = null;
|
||||||
public static void Make(GameObject body, Sector sector, AtmosphereModule atmo, IModBehaviour mod)
|
public static void Make(GameObject planetGO, Sector sector, AtmosphereModule atmo, IModBehaviour mod)
|
||||||
{
|
{
|
||||||
Texture2D image, cap, ramp;
|
Texture2D image, cap, ramp;
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
|
|
||||||
GameObject cloudsMainGO = new GameObject("Clouds");
|
GameObject cloudsMainGO = new GameObject("Clouds");
|
||||||
cloudsMainGO.SetActive(false);
|
cloudsMainGO.SetActive(false);
|
||||||
cloudsMainGO.transform.parent = sector?.transform ?? body.transform;
|
cloudsMainGO.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
|
|
||||||
GameObject cloudsTopGO = new GameObject("TopClouds");
|
GameObject cloudsTopGO = new GameObject("TopClouds");
|
||||||
cloudsTopGO.SetActive(false);
|
cloudsTopGO.SetActive(false);
|
||||||
@ -158,14 +158,14 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
fluidCLFV._disableOnStart = false;
|
fluidCLFV._disableOnStart = false;
|
||||||
|
|
||||||
// Fix the rotations once the rest is done
|
// Fix the rotations once the rest is done
|
||||||
cloudsMainGO.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
cloudsMainGO.transform.rotation = planetGO.transform.TransformRotation(Quaternion.Euler(0, 0, 0));
|
||||||
// For the base shader it has to be rotated idk
|
// For the base shader it has to be rotated idk
|
||||||
if(atmo.UseBasicCloudShader) cloudsMainGO.transform.localRotation = Quaternion.Euler(90, 0, 0);
|
if(atmo.UseBasicCloudShader) cloudsMainGO.transform.rotation = planetGO.transform.TransformRotation(Quaternion.Euler(90, 0, 0));
|
||||||
|
|
||||||
cloudsMainGO.transform.localPosition = Vector3.zero;
|
cloudsMainGO.transform.position = planetGO.transform.TransformPoint(Vector3.zero);
|
||||||
cloudsBottomGO.transform.localPosition = Vector3.zero;
|
cloudsBottomGO.transform.position = planetGO.transform.TransformPoint(Vector3.zero);
|
||||||
cloudsFluidGO.transform.localPosition = Vector3.zero;
|
cloudsFluidGO.transform.position = planetGO.transform.TransformPoint(Vector3.zero);
|
||||||
cloudsTopGO.transform.localPosition = Vector3.zero;
|
cloudsTopGO.transform.position = planetGO.transform.TransformPoint(Vector3.zero);
|
||||||
|
|
||||||
cloudsTopGO.SetActive(true);
|
cloudsTopGO.SetActive(true);
|
||||||
cloudsBottomGO.SetActive(true);
|
cloudsBottomGO.SetActive(true);
|
||||||
|
|||||||
@ -8,12 +8,12 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
{
|
{
|
||||||
public static class EffectsBuilder
|
public static class EffectsBuilder
|
||||||
{
|
{
|
||||||
public static void Make(GameObject body, Sector sector, AtmosphereModule.AirInfo info, float surfaceSize)
|
public static void Make(GameObject planetGO, Sector sector, AtmosphereModule.AirInfo info, float surfaceSize)
|
||||||
{
|
{
|
||||||
GameObject effectsGO = new GameObject("Effects");
|
GameObject effectsGO = new GameObject("Effects");
|
||||||
effectsGO.SetActive(false);
|
effectsGO.SetActive(false);
|
||||||
effectsGO.transform.parent = sector?.transform ?? body.transform;
|
effectsGO.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
effectsGO.transform.localPosition = Vector3.zero;
|
effectsGO.transform.position = planetGO.transform.position;
|
||||||
|
|
||||||
SectorCullGroup SCG = effectsGO.AddComponent<SectorCullGroup>();
|
SectorCullGroup SCG = effectsGO.AddComponent<SectorCullGroup>();
|
||||||
SCG._sector = sector;
|
SCG._sector = sector;
|
||||||
@ -25,7 +25,7 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
if(info.IsRaining)
|
if(info.IsRaining)
|
||||||
{
|
{
|
||||||
var rainGO = GameObject.Instantiate(SearchUtilities.CachedFind("/GiantsDeep_Body/Sector_GD/Sector_GDInterior/Effects_GDInterior/Effects_GD_Rain"), effectsGO.transform);
|
var rainGO = GameObject.Instantiate(SearchUtilities.CachedFind("/GiantsDeep_Body/Sector_GD/Sector_GDInterior/Effects_GDInterior/Effects_GD_Rain"), effectsGO.transform);
|
||||||
rainGO.transform.localPosition = Vector3.zero;
|
rainGO.transform.position = planetGO.transform.position;
|
||||||
|
|
||||||
var pvc = rainGO.GetComponent<PlanetaryVectionController>();
|
var pvc = rainGO.GetComponent<PlanetaryVectionController>();
|
||||||
pvc._densityByHeight = new AnimationCurve(new Keyframe[]
|
pvc._densityByHeight = new AnimationCurve(new Keyframe[]
|
||||||
@ -44,12 +44,12 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
{
|
{
|
||||||
var snowGO = new GameObject("SnowEffects");
|
var snowGO = new GameObject("SnowEffects");
|
||||||
snowGO.transform.parent = effectsGO.transform;
|
snowGO.transform.parent = effectsGO.transform;
|
||||||
snowGO.transform.localPosition = Vector3.zero;
|
snowGO.transform.position = planetGO.transform.position;
|
||||||
for(int i = 0; i < 5; i++)
|
for(int i = 0; i < 5; i++)
|
||||||
{
|
{
|
||||||
var snowEmitter = GameObject.Instantiate(SearchUtilities.CachedFind("/BrittleHollow_Body/Sector_BH/Effects_BH/Effects_BH_Snowflakes"), snowGO.transform);
|
var snowEmitter = GameObject.Instantiate(SearchUtilities.CachedFind("/BrittleHollow_Body/Sector_BH/Effects_BH/Effects_BH_Snowflakes"), snowGO.transform);
|
||||||
snowEmitter.name = "SnowEmitter";
|
snowEmitter.name = "SnowEmitter";
|
||||||
snowEmitter.transform.localPosition = Vector3.zero;
|
snowEmitter.transform.position = planetGO.transform.position;
|
||||||
|
|
||||||
var pvc = snowEmitter.GetComponent<PlanetaryVectionController>();
|
var pvc = snowEmitter.GetComponent<PlanetaryVectionController>();
|
||||||
pvc._densityByHeight = new AnimationCurve(new Keyframe[]
|
pvc._densityByHeight = new AnimationCurve(new Keyframe[]
|
||||||
@ -65,7 +65,7 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effectsGO.transform.localPosition = Vector3.zero;
|
effectsGO.transform.position = planetGO.transform.position;
|
||||||
effectsGO.SetActive(true);
|
effectsGO.SetActive(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,11 +12,11 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
{
|
{
|
||||||
public static class FogBuilder
|
public static class FogBuilder
|
||||||
{
|
{
|
||||||
public static void Make(GameObject body, Sector sector, AtmosphereModule atmo)
|
public static void Make(GameObject planetGO, Sector sector, AtmosphereModule atmo)
|
||||||
{
|
{
|
||||||
GameObject fogGO = new GameObject("FogSphere");
|
GameObject fogGO = new GameObject("FogSphere");
|
||||||
fogGO.SetActive(false);
|
fogGO.SetActive(false);
|
||||||
fogGO.transform.parent = sector?.transform ?? body.transform;
|
fogGO.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
fogGO.transform.localScale = Vector3.one;
|
fogGO.transform.localScale = Vector3.one;
|
||||||
|
|
||||||
// Going to copy from dark bramble
|
// Going to copy from dark bramble
|
||||||
@ -59,8 +59,8 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
lodFogSectorProxy.SetSector(sector);
|
lodFogSectorProxy.SetSector(sector);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
fogGO.transform.localPosition = Vector3.zero;
|
fogGO.transform.position = planetGO.transform.position;
|
||||||
lodFogGO.transform.localPosition = Vector3.zero;
|
lodFogGO.transform.position = planetGO.transform.position;
|
||||||
|
|
||||||
fogGO.SetActive(true);
|
fogGO.SetActive(true);
|
||||||
lodFogGO.SetActive(true);
|
lodFogGO.SetActive(true);
|
||||||
|
|||||||
@ -7,11 +7,11 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
{
|
{
|
||||||
public static class SunOverrideBuilder
|
public static class SunOverrideBuilder
|
||||||
{
|
{
|
||||||
public static void Make(GameObject body, Sector sector, AtmosphereModule atmo, float surfaceSize)
|
public static void Make(GameObject planetGO, Sector sector, AtmosphereModule atmo, float surfaceSize)
|
||||||
{
|
{
|
||||||
GameObject overrideGO = new GameObject("SunOverride");
|
GameObject overrideGO = new GameObject("SunOverride");
|
||||||
overrideGO.SetActive(false);
|
overrideGO.SetActive(false);
|
||||||
overrideGO.transform.parent = sector?.transform ?? body.transform;
|
overrideGO.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
|
|
||||||
GiantsDeepSunOverrideVolume GDSOV = overrideGO.AddComponent<GiantsDeepSunOverrideVolume>();
|
GiantsDeepSunOverrideVolume GDSOV = overrideGO.AddComponent<GiantsDeepSunOverrideVolume>();
|
||||||
GDSOV._sector = sector;
|
GDSOV._sector = sector;
|
||||||
@ -20,7 +20,7 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
GDSOV._waterOuterRadius = surfaceSize;
|
GDSOV._waterOuterRadius = surfaceSize;
|
||||||
GDSOV._waterInnerRadius = 0f;
|
GDSOV._waterInnerRadius = 0f;
|
||||||
|
|
||||||
overrideGO.transform.localPosition = Vector3.zero;
|
overrideGO.transform.position = planetGO.transform.position;
|
||||||
overrideGO.SetActive(true);
|
overrideGO.SetActive(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,11 +8,11 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
{
|
{
|
||||||
public static class VolumesBuilder
|
public static class VolumesBuilder
|
||||||
{
|
{
|
||||||
public static void Make(GameObject body, float innerRadius, float outerRadius, bool useMiniMap)
|
public static void Make(GameObject planetGO, float innerRadius, float outerRadius, bool useMiniMap)
|
||||||
{
|
{
|
||||||
GameObject volumesGO = new GameObject("Volumes");
|
GameObject volumesGO = new GameObject("Volumes");
|
||||||
volumesGO.SetActive(false);
|
volumesGO.SetActive(false);
|
||||||
volumesGO.transform.parent = body.transform;
|
volumesGO.transform.parent = planetGO.transform;
|
||||||
|
|
||||||
GameObject rulesetGO = new GameObject("Ruleset");
|
GameObject rulesetGO = new GameObject("Ruleset");
|
||||||
rulesetGO.SetActive(false);
|
rulesetGO.SetActive(false);
|
||||||
@ -38,7 +38,7 @@ namespace NewHorizons.Builder.Atmosphere
|
|||||||
ER._material = GameObject.Find("RulesetVolumes_GD").GetComponent<RulesetVolume>().GetValue<Material>("_material");
|
ER._material = GameObject.Find("RulesetVolumes_GD").GetComponent<RulesetVolume>().GetValue<Material>("_material");
|
||||||
ER._cloudMaterial = GameObject.Find("RulesetVolumes_GD").GetComponent<RulesetVolume>().GetValue<Material>("_cloudMaterial");
|
ER._cloudMaterial = GameObject.Find("RulesetVolumes_GD").GetComponent<RulesetVolume>().GetValue<Material>("_cloudMaterial");
|
||||||
|
|
||||||
volumesGO.transform.localPosition = Vector3.zero;
|
volumesGO.transform.position = planetGO.transform.position;
|
||||||
rulesetGO.SetActive(true);
|
rulesetGO.SetActive(true);
|
||||||
volumesGO.SetActive(true);
|
volumesGO.SetActive(true);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,12 +11,12 @@ namespace NewHorizons.Builder.Body
|
|||||||
{
|
{
|
||||||
public static class CloakBuilder
|
public static class CloakBuilder
|
||||||
{
|
{
|
||||||
public static void Make(GameObject body, Sector sector, float radius)
|
public static void Make(GameObject planetGO, Sector sector, float radius)
|
||||||
{
|
{
|
||||||
var cloak = SearchUtilities.Find("RingWorld_Body/CloakingField_IP");
|
var cloak = SearchUtilities.Find("RingWorld_Body/CloakingField_IP");
|
||||||
|
|
||||||
var newCloak = GameObject.Instantiate(cloak, body.transform);
|
var newCloak = GameObject.Instantiate(cloak, sector?.transform ?? planetGO.transform);
|
||||||
newCloak.transform.localPosition = Vector3.zero;
|
newCloak.transform.position = planetGO.transform.position;
|
||||||
newCloak.transform.name = "CloakingField";
|
newCloak.transform.name = "CloakingField";
|
||||||
newCloak.transform.localScale = Vector3.one * radius;
|
newCloak.transform.localScale = Vector3.one * radius;
|
||||||
|
|
||||||
@ -28,11 +28,11 @@ namespace NewHorizons.Builder.Body
|
|||||||
cloakFieldController._innerCloakRadius = radius * 900 / 3000f;
|
cloakFieldController._innerCloakRadius = radius * 900 / 3000f;
|
||||||
cloakFieldController._nearCloakRadius = radius * 800 / 3000f;
|
cloakFieldController._nearCloakRadius = radius * 800 / 3000f;
|
||||||
|
|
||||||
cloakFieldController._referenceFrameVolume = body.GetAttachedOWRigidbody()._attachedRFVolume;
|
cloakFieldController._referenceFrameVolume = planetGO.GetAttachedOWRigidbody()._attachedRFVolume;
|
||||||
cloakFieldController._exclusionSector = null;
|
cloakFieldController._exclusionSector = null;
|
||||||
|
|
||||||
var cloakSectorController = newCloak.AddComponent<CloakSectorController>();
|
var cloakSectorController = newCloak.AddComponent<CloakSectorController>();
|
||||||
cloakSectorController.Init(newCloak.GetComponent<CloakFieldController>(), body);
|
cloakSectorController.Init(newCloak.GetComponent<CloakFieldController>(), planetGO);
|
||||||
|
|
||||||
newCloak.SetActive(true);
|
newCloak.SetActive(true);
|
||||||
cloakFieldController.enabled = true;
|
cloakFieldController.enabled = true;
|
||||||
|
|||||||
@ -12,10 +12,10 @@ namespace NewHorizons.Builder.Body
|
|||||||
{
|
{
|
||||||
public static class CometTailBuilder
|
public static class CometTailBuilder
|
||||||
{
|
{
|
||||||
public static void Make(GameObject go, Sector sector, IPlanetConfig config, AstroObject primary)
|
public static void Make(GameObject planetGO, Sector sector, IPlanetConfig config, AstroObject primary)
|
||||||
{
|
{
|
||||||
var cometTail = GameObject.Instantiate(GameObject.Find("Comet_Body/Sector_CO/Effects_CO/Effects_CO_TailMeshes"), sector?.transform ?? go.transform);
|
var cometTail = GameObject.Instantiate(GameObject.Find("Comet_Body/Sector_CO/Effects_CO/Effects_CO_TailMeshes"), sector?.transform ?? planetGO.transform);
|
||||||
cometTail.transform.localPosition = Vector3.zero;
|
cometTail.transform.position = planetGO.transform.position;
|
||||||
cometTail.name = "CometTail";
|
cometTail.name = "CometTail";
|
||||||
cometTail.transform.localScale = Vector3.one * config.Base.SurfaceSize / 110;
|
cometTail.transform.localScale = Vector3.one * config.Base.SurfaceSize / 110;
|
||||||
|
|
||||||
|
|||||||
@ -21,16 +21,16 @@ namespace NewHorizons.Builder.Body
|
|||||||
STAR
|
STAR
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Make(GameObject go, ConstantForceDetector detector, OWRigidbody rigidbody, FunnelModule module)
|
public static void Make(GameObject planetGO, ConstantForceDetector detector, OWRigidbody rigidbody, FunnelModule module)
|
||||||
{
|
{
|
||||||
var funnelType = FunnelType.SAND;
|
var funnelType = FunnelType.SAND;
|
||||||
if (module.Type.ToUpper().Equals("WATER")) funnelType = FunnelType.WATER;
|
if (module.Type.ToUpper().Equals("WATER")) funnelType = FunnelType.WATER;
|
||||||
else if (module.Type.ToUpper().Equals("LAVA")) funnelType = FunnelType.LAVA;
|
else if (module.Type.ToUpper().Equals("LAVA")) funnelType = FunnelType.LAVA;
|
||||||
else if (module.Type.ToUpper().Equals("STAR")) funnelType = FunnelType.STAR;
|
else if (module.Type.ToUpper().Equals("STAR")) funnelType = FunnelType.STAR;
|
||||||
|
|
||||||
var funnelGO = new GameObject($"{go.name.Replace("_Body", "")}Funnel_Body");
|
var funnelGO = new GameObject($"{planetGO.name.Replace("_Body", "")}Funnel_Body");
|
||||||
funnelGO.SetActive(false);
|
funnelGO.SetActive(false);
|
||||||
funnelGO.transform.parent = go.transform;
|
funnelGO.transform.parent = planetGO.transform;
|
||||||
|
|
||||||
var owrb = funnelGO.AddComponent<OWRigidbody>();
|
var owrb = funnelGO.AddComponent<OWRigidbody>();
|
||||||
|
|
||||||
@ -149,7 +149,7 @@ namespace NewHorizons.Builder.Body
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
var sector = go.GetComponent<AstroObject>().GetPrimaryBody().GetRootSector();
|
var sector = planetGO.GetComponent<AstroObject>().GetPrimaryBody().GetRootSector();
|
||||||
proxyGO.GetComponent<SectorProxy>().SetSector(sector);
|
proxyGO.GetComponent<SectorProxy>().SetSector(sector);
|
||||||
geoGO.GetComponent<SectorCullGroup>().SetSector(sector);
|
geoGO.GetComponent<SectorCullGroup>().SetSector(sector);
|
||||||
volumesGO.GetComponent<SectorCollisionGroup>().SetSector(sector);
|
volumesGO.GetComponent<SectorCollisionGroup>().SetSector(sector);
|
||||||
@ -167,7 +167,7 @@ namespace NewHorizons.Builder.Body
|
|||||||
}
|
}
|
||||||
funnelSizeController.scaleCurve = curve;
|
funnelSizeController.scaleCurve = curve;
|
||||||
}
|
}
|
||||||
funnelSizeController.anchor = go.transform;
|
funnelSizeController.anchor = planetGO.transform;
|
||||||
|
|
||||||
// Finish up next tick
|
// Finish up next tick
|
||||||
Main.Instance.ModHelper.Events.Unity.FireOnNextUpdate(() => PostMake(funnelGO, funnelSizeController, module));
|
Main.Instance.ModHelper.Events.Unity.FireOnNextUpdate(() => PostMake(funnelGO, funnelSizeController, module));
|
||||||
|
|||||||
@ -5,12 +5,12 @@ namespace NewHorizons.Builder.Body
|
|||||||
{
|
{
|
||||||
public static class GeometryBuilder
|
public static class GeometryBuilder
|
||||||
{
|
{
|
||||||
public static void Make(GameObject body, Sector sector, float groundScale)
|
public static void Make(GameObject planetGO, Sector sector, float groundScale)
|
||||||
{
|
{
|
||||||
GameObject groundGO = GameObject.CreatePrimitive(PrimitiveType.Sphere);
|
GameObject groundGO = GameObject.CreatePrimitive(PrimitiveType.Sphere);
|
||||||
groundGO.transform.parent = sector?.transform ?? body.transform;
|
groundGO.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
groundGO.transform.localScale = new Vector3(groundScale, groundScale, groundScale);
|
groundGO.transform.localScale = new Vector3(groundScale, groundScale, groundScale);
|
||||||
groundGO.transform.localPosition = Vector3.zero;
|
groundGO.transform.position = planetGO.transform.position;
|
||||||
groundGO.GetComponent<MeshFilter>().mesh = GameObject.Find("CloudsTopLayer_GD").GetComponent<MeshFilter>().mesh;
|
groundGO.GetComponent<MeshFilter>().mesh = GameObject.Find("CloudsTopLayer_GD").GetComponent<MeshFilter>().mesh;
|
||||||
groundGO.GetComponent<SphereCollider>().radius = 1f;
|
groundGO.GetComponent<SphereCollider>().radius = 1f;
|
||||||
groundGO.SetActive(true);
|
groundGO.SetActive(true);
|
||||||
|
|||||||
@ -17,7 +17,7 @@ namespace NewHorizons.Builder.Body
|
|||||||
{
|
{
|
||||||
public static Shader PlanetShader;
|
public static Shader PlanetShader;
|
||||||
|
|
||||||
public static void Make(GameObject go, Sector sector, HeightMapModule module, IModBehaviour mod)
|
public static void Make(GameObject planetGO, Sector sector, HeightMapModule module, IModBehaviour mod)
|
||||||
{
|
{
|
||||||
Texture2D heightMap, textureMap;
|
Texture2D heightMap, textureMap;
|
||||||
try
|
try
|
||||||
@ -35,7 +35,7 @@ namespace NewHorizons.Builder.Body
|
|||||||
|
|
||||||
GameObject cubeSphere = new GameObject("CubeSphere");
|
GameObject cubeSphere = new GameObject("CubeSphere");
|
||||||
cubeSphere.SetActive(false);
|
cubeSphere.SetActive(false);
|
||||||
cubeSphere.transform.parent = sector?.transform ?? go.transform;
|
cubeSphere.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
cubeSphere.transform.rotation = Quaternion.Euler(90, 0, 0);
|
cubeSphere.transform.rotation = Quaternion.Euler(90, 0, 0);
|
||||||
|
|
||||||
Mesh mesh = CubeSphere.Build(51, heightMap, module.MinHeight, module.MaxHeight, module.Stretch);
|
Mesh mesh = CubeSphere.Build(51, heightMap, module.MinHeight, module.MaxHeight, module.Stretch);
|
||||||
@ -55,11 +55,11 @@ namespace NewHorizons.Builder.Body
|
|||||||
var cubeSphereMC = cubeSphere.AddComponent<MeshCollider>();
|
var cubeSphereMC = cubeSphere.AddComponent<MeshCollider>();
|
||||||
cubeSphereMC.sharedMesh = mesh;
|
cubeSphereMC.sharedMesh = mesh;
|
||||||
|
|
||||||
if(go.GetComponent<ProxyShadowCasterSuperGroup>() != null) cubeSphere.AddComponent<ProxyShadowCaster>();
|
if(planetGO.GetComponent<ProxyShadowCasterSuperGroup>() != null) cubeSphere.AddComponent<ProxyShadowCaster>();
|
||||||
|
|
||||||
// Fix rotation in the end
|
// Fix rotation in the end
|
||||||
cubeSphere.transform.localRotation = Quaternion.Euler(90, 0, 0);
|
cubeSphere.transform.rotation = planetGO.transform.TransformRotation(Quaternion.Euler(90, 0, 0));
|
||||||
cubeSphere.transform.localPosition = Vector3.zero;
|
cubeSphere.transform.position = planetGO.transform.position;
|
||||||
|
|
||||||
cubeSphere.SetActive(true);
|
cubeSphere.SetActive(true);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,7 +12,7 @@ namespace NewHorizons.Builder.Body
|
|||||||
{
|
{
|
||||||
public static class LavaBuilder
|
public static class LavaBuilder
|
||||||
{
|
{
|
||||||
public static void Make(GameObject go, Sector sector, OWRigidbody rb, LavaModule module)
|
public static void Make(GameObject planetGO, Sector sector, OWRigidbody rb, LavaModule module)
|
||||||
{
|
{
|
||||||
var heightScale = module.Size;
|
var heightScale = module.Size;
|
||||||
if(module.Curve != null)
|
if(module.Curve != null)
|
||||||
@ -27,8 +27,8 @@ namespace NewHorizons.Builder.Body
|
|||||||
|
|
||||||
var moltenCore = new GameObject("MoltenCore");
|
var moltenCore = new GameObject("MoltenCore");
|
||||||
moltenCore.SetActive(false);
|
moltenCore.SetActive(false);
|
||||||
moltenCore.transform.parent = sector?.transform ?? go.transform;
|
moltenCore.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
moltenCore.transform.localPosition = Vector3.zero;
|
moltenCore.transform.position = planetGO.transform.position;
|
||||||
moltenCore.transform.localScale = Vector3.one * module.Size;
|
moltenCore.transform.localScale = Vector3.one * module.Size;
|
||||||
|
|
||||||
var lavaSphere = GameObject.Instantiate(GameObject.Find("VolcanicMoon_Body/MoltenCore_VM/LavaSphere"), moltenCore.transform);
|
var lavaSphere = GameObject.Instantiate(GameObject.Find("VolcanicMoon_Body/MoltenCore_VM/LavaSphere"), moltenCore.transform);
|
||||||
|
|||||||
@ -6,17 +6,18 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using NewHorizons.Utility;
|
||||||
|
|
||||||
namespace NewHorizons.Builder.Body
|
namespace NewHorizons.Builder.Body
|
||||||
{
|
{
|
||||||
public static class ProcGenBuilder
|
public static class ProcGenBuilder
|
||||||
{
|
{
|
||||||
public static void Make(GameObject go, Sector sector, ProcGenModule module)
|
public static void Make(GameObject planetGO, Sector sector, ProcGenModule module)
|
||||||
{
|
{
|
||||||
GameObject icosphere = new GameObject("Icosphere");
|
GameObject icosphere = new GameObject("Icosphere");
|
||||||
icosphere.transform.parent = sector?.transform ?? go.transform;
|
icosphere.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
icosphere.transform.rotation = Quaternion.Euler(90, 0, 0);
|
icosphere.transform.rotation = Quaternion.Euler(90, 0, 0);
|
||||||
icosphere.transform.localPosition = Vector3.zero;
|
icosphere.transform.position = planetGO.transform.position;
|
||||||
|
|
||||||
Mesh mesh = Icosphere.Build(4, module.Scale, module.Scale * 1.2f);
|
Mesh mesh = Icosphere.Build(4, module.Scale, module.Scale * 1.2f);
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ namespace NewHorizons.Builder.Body
|
|||||||
|
|
||||||
var cubeSphereMC = icosphere.AddComponent<MeshCollider>();
|
var cubeSphereMC = icosphere.AddComponent<MeshCollider>();
|
||||||
cubeSphereMC.sharedMesh = mesh;
|
cubeSphereMC.sharedMesh = mesh;
|
||||||
icosphere.transform.localRotation = Quaternion.Euler(90, 0, 0);
|
icosphere.transform.rotation = planetGO.transform.TransformRotation(Quaternion.Euler(90, 0, 0));
|
||||||
|
|
||||||
icosphere.AddComponent<ProxyShadowCaster>();
|
icosphere.AddComponent<ProxyShadowCaster>();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,7 +21,7 @@ namespace NewHorizons.Builder.Body
|
|||||||
public static Shader UnlitRingShader;
|
public static Shader UnlitRingShader;
|
||||||
public static Shader UnlitRingShader1Pixel;
|
public static Shader UnlitRingShader1Pixel;
|
||||||
|
|
||||||
public static GameObject Make(GameObject body, Sector sector, RingModule ring, IModBehaviour mod)
|
public static GameObject Make(GameObject planetGO, Sector sector, RingModule ring, IModBehaviour mod)
|
||||||
{
|
{
|
||||||
// Properly lit shader doesnt work yet
|
// Properly lit shader doesnt work yet
|
||||||
ring.Unlit = true;
|
ring.Unlit = true;
|
||||||
@ -38,9 +38,9 @@ namespace NewHorizons.Builder.Body
|
|||||||
}
|
}
|
||||||
|
|
||||||
var ringGO = new GameObject("Ring");
|
var ringGO = new GameObject("Ring");
|
||||||
ringGO.transform.parent = sector?.transform ?? body.transform;
|
ringGO.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
ringGO.transform.localPosition = Vector3.zero;
|
ringGO.transform.position = planetGO.transform.position;
|
||||||
ringGO.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
ringGO.transform.rotation = planetGO.transform.rotation;
|
||||||
ringGO.transform.Rotate(ringGO.transform.TransformDirection(Vector3.up), ring.LongitudeOfAscendingNode);
|
ringGO.transform.Rotate(ringGO.transform.TransformDirection(Vector3.up), ring.LongitudeOfAscendingNode);
|
||||||
ringGO.transform.Rotate(ringGO.transform.TransformDirection(Vector3.right), ring.Inclination);
|
ringGO.transform.Rotate(ringGO.transform.TransformDirection(Vector3.right), ring.Inclination);
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@ namespace NewHorizons.Builder.Body
|
|||||||
{
|
{
|
||||||
public static class SandBuilder
|
public static class SandBuilder
|
||||||
{
|
{
|
||||||
public static void Make(GameObject go, Sector sector, OWRigidbody rb, SandModule module)
|
public static void Make(GameObject planetGO, Sector sector, OWRigidbody rb, SandModule module)
|
||||||
{
|
{
|
||||||
var sandGO = new GameObject("Sand");
|
var sandGO = new GameObject("Sand");
|
||||||
sandGO.SetActive(false);
|
sandGO.SetActive(false);
|
||||||
@ -56,8 +56,8 @@ namespace NewHorizons.Builder.Body
|
|||||||
levelController._scaleCurve = curve;
|
levelController._scaleCurve = curve;
|
||||||
}
|
}
|
||||||
|
|
||||||
sandGO.transform.parent = sector?.transform ?? go.transform;
|
sandGO.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
sandGO.transform.localPosition = Vector3.zero;
|
sandGO.transform.position = planetGO.transform.position;
|
||||||
sandGO.transform.localScale = Vector3.one * module.Size * 2f;
|
sandGO.transform.localScale = Vector3.one * module.Size * 2f;
|
||||||
|
|
||||||
sandGO.SetActive(true);
|
sandGO.SetActive(true);
|
||||||
|
|||||||
@ -94,12 +94,12 @@ namespace NewHorizons.Builder.Body
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static GameObject MakeBlackHole(GameObject go, Sector sector, Vector3 localPosition, float size, bool hasDestructionVolume, string targetSolarSystem, bool makeAudio = true)
|
public static GameObject MakeBlackHole(GameObject planetGO, Sector sector, Vector3 localPosition, float size, bool hasDestructionVolume, string targetSolarSystem, bool makeAudio = true)
|
||||||
{
|
{
|
||||||
var blackHole = new GameObject("BlackHole");
|
var blackHole = new GameObject("BlackHole");
|
||||||
blackHole.SetActive(false);
|
blackHole.SetActive(false);
|
||||||
blackHole.transform.parent = sector?.transform ?? go.transform;
|
blackHole.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
blackHole.transform.localPosition = localPosition;
|
blackHole.transform.position = planetGO.transform.TransformPoint(localPosition);
|
||||||
|
|
||||||
var blackHoleRender = new GameObject("BlackHoleRender");
|
var blackHoleRender = new GameObject("BlackHoleRender");
|
||||||
blackHoleRender.transform.parent = blackHole.transform;
|
blackHoleRender.transform.parent = blackHole.transform;
|
||||||
@ -165,12 +165,12 @@ namespace NewHorizons.Builder.Body
|
|||||||
return blackHole;
|
return blackHole;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static GameObject MakeWhiteHole(GameObject body, Sector sector, OWRigidbody OWRB, Vector3 localPosition, float size, bool makeZeroGVolume = true)
|
public static GameObject MakeWhiteHole(GameObject planetGO, Sector sector, OWRigidbody OWRB, Vector3 localPosition, float size, bool makeZeroGVolume = true)
|
||||||
{
|
{
|
||||||
var whiteHole = new GameObject("WhiteHole");
|
var whiteHole = new GameObject("WhiteHole");
|
||||||
whiteHole.SetActive(false);
|
whiteHole.SetActive(false);
|
||||||
whiteHole.transform.parent = sector?.transform ?? body.transform;
|
whiteHole.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
whiteHole.transform.localPosition = localPosition;
|
whiteHole.transform.position = planetGO.transform.TransformPoint(localPosition);
|
||||||
|
|
||||||
var whiteHoleRenderer = new GameObject("WhiteHoleRenderer");
|
var whiteHoleRenderer = new GameObject("WhiteHoleRenderer");
|
||||||
whiteHoleRenderer.transform.parent = whiteHole.transform;
|
whiteHoleRenderer.transform.parent = whiteHole.transform;
|
||||||
@ -214,7 +214,7 @@ namespace NewHorizons.Builder.Body
|
|||||||
whiteHoleVolume._whiteHoleSector = sector;
|
whiteHoleVolume._whiteHoleSector = sector;
|
||||||
whiteHoleVolume._fluidVolume = whiteHoleFluidVolume;
|
whiteHoleVolume._fluidVolume = whiteHoleFluidVolume;
|
||||||
whiteHoleVolume._whiteHoleBody = OWRB;
|
whiteHoleVolume._whiteHoleBody = OWRB;
|
||||||
whiteHoleVolume._whiteHoleProxyShadowSuperGroup = body.GetComponent<ProxyShadowCasterSuperGroup>();
|
whiteHoleVolume._whiteHoleProxyShadowSuperGroup = planetGO.GetComponent<ProxyShadowCasterSuperGroup>();
|
||||||
whiteHoleVolume._radius = size * 0.5f;
|
whiteHoleVolume._radius = size * 0.5f;
|
||||||
|
|
||||||
whiteHoleVolumeGO.GetComponent<SphereCollider>().radius = size;
|
whiteHoleVolumeGO.GetComponent<SphereCollider>().radius = size;
|
||||||
@ -230,7 +230,7 @@ namespace NewHorizons.Builder.Body
|
|||||||
zeroGVolume.GetComponent<SphereCollider>().radius = size * 10f;
|
zeroGVolume.GetComponent<SphereCollider>().radius = size * 10f;
|
||||||
zeroGVolume.GetComponent<ZeroGVolume>()._attachedBody = OWRB;
|
zeroGVolume.GetComponent<ZeroGVolume>()._attachedBody = OWRB;
|
||||||
|
|
||||||
var rulesetVolume = GameObject.Instantiate(GameObject.Find("WhiteHole_Body/Sector_WhiteHole/RulesetVolumes_WhiteHole"), body.transform);
|
var rulesetVolume = GameObject.Instantiate(GameObject.Find("WhiteHole_Body/Sector_WhiteHole/RulesetVolumes_WhiteHole"), planetGO.transform);
|
||||||
rulesetVolume.name = "RulesetVolume";
|
rulesetVolume.name = "RulesetVolume";
|
||||||
rulesetVolume.transform.localPosition = Vector3.zero;
|
rulesetVolume.transform.localPosition = Vector3.zero;
|
||||||
rulesetVolume.transform.localScale = Vector3.one * size / 100f;
|
rulesetVolume.transform.localScale = Vector3.one * size / 100f;
|
||||||
|
|||||||
@ -19,15 +19,15 @@ namespace NewHorizons.Builder.Body
|
|||||||
public const float OuterRadiusRatio = 1.5f;
|
public const float OuterRadiusRatio = 1.5f;
|
||||||
private static Texture2D _colorOverTime;
|
private static Texture2D _colorOverTime;
|
||||||
|
|
||||||
public static StarController Make(GameObject go, Sector sector, StarModule starModule)
|
public static StarController Make(GameObject planetGO, Sector sector, StarModule starModule)
|
||||||
{
|
{
|
||||||
if (_colorOverTime == null) _colorOverTime = ImageUtilities.GetTexture(Main.Instance, "AssetBundle/StarColorOverTime.png");
|
if (_colorOverTime == null) _colorOverTime = ImageUtilities.GetTexture(Main.Instance, "AssetBundle/StarColorOverTime.png");
|
||||||
|
|
||||||
var starGO = new GameObject("Star");
|
var starGO = new GameObject("Star");
|
||||||
starGO.transform.parent = sector?.transform ?? go.transform;
|
starGO.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
|
|
||||||
var sunSurface = GameObject.Instantiate(GameObject.Find("Sun_Body/Sector_SUN/Geometry_SUN/Surface"), starGO.transform);
|
var sunSurface = GameObject.Instantiate(GameObject.Find("Sun_Body/Sector_SUN/Geometry_SUN/Surface"), starGO.transform);
|
||||||
sunSurface.transform.localPosition = Vector3.zero;
|
sunSurface.transform.position = planetGO.transform.position;
|
||||||
sunSurface.transform.localScale = Vector3.one;
|
sunSurface.transform.localScale = Vector3.one;
|
||||||
sunSurface.name = "Surface";
|
sunSurface.name = "Surface";
|
||||||
|
|
||||||
@ -67,8 +67,8 @@ namespace NewHorizons.Builder.Body
|
|||||||
|
|
||||||
if(starModule.HasAtmosphere)
|
if(starModule.HasAtmosphere)
|
||||||
{
|
{
|
||||||
var sunAtmosphere = GameObject.Instantiate(GameObject.Find("Sun_Body/Atmosphere_SUN"), go.transform);
|
var sunAtmosphere = GameObject.Instantiate(GameObject.Find("Sun_Body/Atmosphere_SUN"), planetGO.transform);
|
||||||
sunAtmosphere.transform.localPosition = Vector3.zero;
|
sunAtmosphere.transform.position = planetGO.transform.position;
|
||||||
sunAtmosphere.transform.localScale = Vector3.one;
|
sunAtmosphere.transform.localScale = Vector3.one;
|
||||||
sunAtmosphere.name = "Atmosphere_Star";
|
sunAtmosphere.name = "Atmosphere_Star";
|
||||||
PlanetaryFogController fog = sunAtmosphere.transform.Find("FogSphere").GetComponent<PlanetaryFogController>();
|
PlanetaryFogController fog = sunAtmosphere.transform.Find("FogSphere").GetComponent<PlanetaryFogController>();
|
||||||
@ -151,13 +151,13 @@ namespace NewHorizons.Builder.Body
|
|||||||
if(starModule.SolarFlareTint != null)
|
if(starModule.SolarFlareTint != null)
|
||||||
solarFlareEmitter.GetComponent<SolarFlareEmitter>().tint = starModule.SolarFlareTint.ToColor();
|
solarFlareEmitter.GetComponent<SolarFlareEmitter>().tint = starModule.SolarFlareTint.ToColor();
|
||||||
|
|
||||||
starGO.transform.localPosition = Vector3.zero;
|
starGO.transform.position = planetGO.transform.position;
|
||||||
starGO.transform.localScale = starModule.Size * Vector3.one;
|
starGO.transform.localScale = starModule.Size * Vector3.one;
|
||||||
|
|
||||||
StarController starController = null;
|
StarController starController = null;
|
||||||
if (starModule.SolarLuminosity != 0)
|
if (starModule.SolarLuminosity != 0)
|
||||||
{
|
{
|
||||||
starController = go.AddComponent<StarController>();
|
starController = planetGO.AddComponent<StarController>();
|
||||||
starController.Light = light;
|
starController.Light = light;
|
||||||
starController.AmbientLight = ambientLight;
|
starController.AmbientLight = ambientLight;
|
||||||
starController.FaceActiveCamera = faceActiveCamera;
|
starController.FaceActiveCamera = faceActiveCamera;
|
||||||
|
|||||||
@ -11,14 +11,14 @@ namespace NewHorizons.Builder.Body
|
|||||||
{
|
{
|
||||||
public static class WaterBuilder
|
public static class WaterBuilder
|
||||||
{
|
{
|
||||||
public static void Make(GameObject go, Sector sector, OWRigidbody rb, WaterModule module)
|
public static void Make(GameObject planetGO, Sector sector, OWRigidbody rb, WaterModule module)
|
||||||
{
|
{
|
||||||
var waterSize = module.Size;
|
var waterSize = module.Size;
|
||||||
|
|
||||||
GameObject waterGO = new GameObject("Water");
|
GameObject waterGO = new GameObject("Water");
|
||||||
waterGO.SetActive(false);
|
waterGO.SetActive(false);
|
||||||
waterGO.layer = 15;
|
waterGO.layer = 15;
|
||||||
waterGO.transform.parent = sector?.transform ?? go.transform;
|
waterGO.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
waterGO.transform.localScale = new Vector3(waterSize, waterSize, waterSize);
|
waterGO.transform.localScale = new Vector3(waterSize, waterSize, waterSize);
|
||||||
|
|
||||||
var GDTSR = GameObject.Find("Ocean_GD").GetComponent<TessellatedSphereRenderer>();
|
var GDTSR = GameObject.Find("Ocean_GD").GetComponent<TessellatedSphereRenderer>();
|
||||||
@ -113,7 +113,7 @@ namespace NewHorizons.Builder.Body
|
|||||||
|
|
||||||
// TODO: fix ruleset making the sand bubble pop up
|
// TODO: fix ruleset making the sand bubble pop up
|
||||||
|
|
||||||
waterGO.transform.localPosition = Vector3.zero;
|
waterGO.transform.position = planetGO.transform.position;
|
||||||
waterGO.SetActive(true);
|
waterGO.SetActive(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,10 +8,10 @@ namespace NewHorizons.Builder.General
|
|||||||
{
|
{
|
||||||
public static class AmbientLightBuilder
|
public static class AmbientLightBuilder
|
||||||
{
|
{
|
||||||
public static void Make(GameObject body, Sector sector, float scale)
|
public static void Make(GameObject planetGO, Sector sector, float scale)
|
||||||
{
|
{
|
||||||
GameObject lightGO = GameObject.Instantiate(GameObject.Find("BrittleHollow_Body/AmbientLight_BH_Surface"), sector?.transform ?? body.transform);
|
GameObject lightGO = GameObject.Instantiate(GameObject.Find("BrittleHollow_Body/AmbientLight_BH_Surface"), sector?.transform ?? planetGO.transform);
|
||||||
lightGO.transform.localPosition = Vector3.zero;
|
lightGO.transform.position = planetGO.transform.position;
|
||||||
lightGO.name = "Light";
|
lightGO.name = "Light";
|
||||||
|
|
||||||
var light = lightGO.GetComponent<Light>();
|
var light = lightGO.GetComponent<Light>();
|
||||||
|
|||||||
@ -14,11 +14,11 @@ namespace NewHorizons.Builder.General
|
|||||||
{
|
{
|
||||||
public static class DetectorBuilder
|
public static class DetectorBuilder
|
||||||
{
|
{
|
||||||
public static GameObject Make(GameObject body, OWRigidbody OWRB, AstroObject primaryBody, AstroObject astroObject, IPlanetConfig config)
|
public static GameObject Make(GameObject planetGO, OWRigidbody OWRB, AstroObject primaryBody, AstroObject astroObject, IPlanetConfig config)
|
||||||
{
|
{
|
||||||
GameObject detectorGO = new GameObject("FieldDetector");
|
GameObject detectorGO = new GameObject("FieldDetector");
|
||||||
detectorGO.SetActive(false);
|
detectorGO.SetActive(false);
|
||||||
detectorGO.transform.parent = body.transform;
|
detectorGO.transform.parent = planetGO.transform;
|
||||||
detectorGO.transform.localPosition = Vector3.zero;
|
detectorGO.transform.localPosition = Vector3.zero;
|
||||||
detectorGO.layer = LayerMask.NameToLayer("BasicDetector");
|
detectorGO.layer = LayerMask.NameToLayer("BasicDetector");
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@ namespace NewHorizons.Builder.General
|
|||||||
{
|
{
|
||||||
public static class GravityBuilder
|
public static class GravityBuilder
|
||||||
{
|
{
|
||||||
public static GravityVolume Make(GameObject body, AstroObject ao, IPlanetConfig config)
|
public static GravityVolume Make(GameObject planetGO, AstroObject ao, IPlanetConfig config)
|
||||||
{
|
{
|
||||||
var exponent = config.Base.GravityFallOff.Equals("linear") ? 1f : 2f;
|
var exponent = config.Base.GravityFallOff.Equals("linear") ? 1f : 2f;
|
||||||
var GM = config.Base.SurfaceGravity * Mathf.Pow(config.Base.SurfaceSize, exponent);
|
var GM = config.Base.SurfaceGravity * Mathf.Pow(config.Base.SurfaceSize, exponent);
|
||||||
@ -26,7 +26,7 @@ namespace NewHorizons.Builder.General
|
|||||||
if (config.Base.SphereOfInfluence != 0f) gravityRadius = config.Base.SphereOfInfluence;
|
if (config.Base.SphereOfInfluence != 0f) gravityRadius = config.Base.SphereOfInfluence;
|
||||||
|
|
||||||
GameObject gravityGO = new GameObject("GravityWell");
|
GameObject gravityGO = new GameObject("GravityWell");
|
||||||
gravityGO.transform.parent = body.transform;
|
gravityGO.transform.parent = planetGO.transform;
|
||||||
gravityGO.transform.localPosition = Vector3.zero;
|
gravityGO.transform.localPosition = Vector3.zero;
|
||||||
gravityGO.layer = 17;
|
gravityGO.layer = 17;
|
||||||
gravityGO.SetActive(false);
|
gravityGO.SetActive(false);
|
||||||
|
|||||||
@ -7,10 +7,10 @@ namespace NewHorizons.Builder.General
|
|||||||
{
|
{
|
||||||
public static class RFVolumeBuilder
|
public static class RFVolumeBuilder
|
||||||
{
|
{
|
||||||
public static void Make(GameObject body, OWRigidbody rigidbody, float sphereOfInfluence)
|
public static void Make(GameObject planetGO, OWRigidbody owRigidBody, float sphereOfInfluence)
|
||||||
{
|
{
|
||||||
GameObject rfGO = new GameObject("RFVolume");
|
GameObject rfGO = new GameObject("RFVolume");
|
||||||
rfGO.transform.parent = body.transform;
|
rfGO.transform.parent = planetGO.transform;
|
||||||
rfGO.transform.localPosition = Vector3.zero;
|
rfGO.transform.localPosition = Vector3.zero;
|
||||||
rfGO.layer = 19;
|
rfGO.layer = 19;
|
||||||
rfGO.SetActive(false);
|
rfGO.SetActive(false);
|
||||||
@ -21,7 +21,7 @@ namespace NewHorizons.Builder.General
|
|||||||
|
|
||||||
ReferenceFrameVolume RFV = rfGO.AddComponent<ReferenceFrameVolume>();
|
ReferenceFrameVolume RFV = rfGO.AddComponent<ReferenceFrameVolume>();
|
||||||
|
|
||||||
ReferenceFrame RV = new ReferenceFrame(rigidbody);
|
ReferenceFrame RV = new ReferenceFrame(owRigidBody);
|
||||||
RV._minSuitTargetDistance = sphereOfInfluence;
|
RV._minSuitTargetDistance = sphereOfInfluence;
|
||||||
RV._maxTargetDistance = 0;
|
RV._maxTargetDistance = 0;
|
||||||
RV._autopilotArrivalDistance = 2.0f * sphereOfInfluence;
|
RV._autopilotArrivalDistance = 2.0f * sphereOfInfluence;
|
||||||
|
|||||||
@ -8,11 +8,11 @@ namespace NewHorizons.Builder.General
|
|||||||
{
|
{
|
||||||
public static class MakeSector
|
public static class MakeSector
|
||||||
{
|
{
|
||||||
public static Sector Make(GameObject body, OWRigidbody rigidbody, float sphereOfInfluence)
|
public static Sector Make(GameObject planetBody, OWRigidbody owRigidBody, float sphereOfInfluence)
|
||||||
{
|
{
|
||||||
GameObject sectorGO = new GameObject("Sector");
|
GameObject sectorGO = new GameObject("Sector");
|
||||||
sectorGO.SetActive(false);
|
sectorGO.SetActive(false);
|
||||||
sectorGO.transform.parent = body.transform;
|
sectorGO.transform.parent = planetBody.transform;
|
||||||
sectorGO.transform.localPosition = Vector3.zero;
|
sectorGO.transform.localPosition = Vector3.zero;
|
||||||
|
|
||||||
SphereShape SS = sectorGO.AddComponent<SphereShape>();
|
SphereShape SS = sectorGO.AddComponent<SphereShape>();
|
||||||
@ -27,7 +27,7 @@ namespace NewHorizons.Builder.General
|
|||||||
|
|
||||||
Sector S = sectorGO.AddComponent<Sector>();
|
Sector S = sectorGO.AddComponent<Sector>();
|
||||||
S._name = (Sector.Name)24;
|
S._name = (Sector.Name)24;
|
||||||
S._attachedOWRigidbody = rigidbody;
|
S._attachedOWRigidbody = owRigidBody;
|
||||||
S._subsectors = new List<Sector>();
|
S._subsectors = new List<Sector>();
|
||||||
|
|
||||||
sectorGO.SetActive(true);
|
sectorGO.SetActive(true);
|
||||||
|
|||||||
@ -10,25 +10,25 @@ namespace NewHorizons.Builder.General
|
|||||||
public static class SpawnPointBuilder
|
public static class SpawnPointBuilder
|
||||||
{
|
{
|
||||||
private static bool suitUpQueued = false;
|
private static bool suitUpQueued = false;
|
||||||
public static SpawnPoint Make(GameObject body, SpawnModule module, OWRigidbody rb)
|
public static SpawnPoint Make(GameObject planetGO, SpawnModule module, OWRigidbody owRigidBody)
|
||||||
{
|
{
|
||||||
SpawnPoint playerSpawn = null;
|
SpawnPoint playerSpawn = null;
|
||||||
if(!Main.Instance.IsWarping && module.PlayerSpawnPoint != null)
|
if(!Main.Instance.IsWarping && module.PlayerSpawnPoint != null)
|
||||||
{
|
{
|
||||||
GameObject spawnGO = new GameObject("PlayerSpawnPoint");
|
GameObject spawnGO = new GameObject("PlayerSpawnPoint");
|
||||||
spawnGO.transform.parent = body.transform;
|
spawnGO.transform.parent = planetGO.transform;
|
||||||
spawnGO.layer = 8;
|
spawnGO.layer = 8;
|
||||||
|
|
||||||
spawnGO.transform.localPosition = module.PlayerSpawnPoint;
|
spawnGO.transform.localPosition = module.PlayerSpawnPoint;
|
||||||
|
|
||||||
playerSpawn = spawnGO.AddComponent<SpawnPoint>();
|
playerSpawn = spawnGO.AddComponent<SpawnPoint>();
|
||||||
spawnGO.transform.rotation = Quaternion.FromToRotation(Vector3.up, (playerSpawn.transform.position - body.transform.position).normalized);
|
spawnGO.transform.rotation = Quaternion.FromToRotation(Vector3.up, (playerSpawn.transform.position - planetGO.transform.position).normalized);
|
||||||
spawnGO.transform.position = spawnGO.transform.position + spawnGO.transform.TransformDirection(Vector3.up) * 4f;
|
spawnGO.transform.position = spawnGO.transform.position + spawnGO.transform.TransformDirection(Vector3.up) * 4f;
|
||||||
}
|
}
|
||||||
if(module.ShipSpawnPoint != null)
|
if(module.ShipSpawnPoint != null)
|
||||||
{
|
{
|
||||||
GameObject spawnGO = new GameObject("ShipSpawnPoint");
|
GameObject spawnGO = new GameObject("ShipSpawnPoint");
|
||||||
spawnGO.transform.parent = body.transform;
|
spawnGO.transform.parent = planetGO.transform;
|
||||||
spawnGO.layer = 8;
|
spawnGO.layer = 8;
|
||||||
|
|
||||||
spawnGO.transform.localPosition = module.ShipSpawnPoint;
|
spawnGO.transform.localPosition = module.ShipSpawnPoint;
|
||||||
@ -38,11 +38,11 @@ namespace NewHorizons.Builder.General
|
|||||||
|
|
||||||
var ship = GameObject.Find("Ship_Body");
|
var ship = GameObject.Find("Ship_Body");
|
||||||
ship.transform.position = spawnPoint.transform.position;
|
ship.transform.position = spawnPoint.transform.position;
|
||||||
ship.transform.rotation = Quaternion.FromToRotation(Vector3.up, (spawnPoint.transform.position - body.transform.position).normalized);
|
ship.transform.rotation = Quaternion.FromToRotation(Vector3.up, (spawnPoint.transform.position - planetGO.transform.position).normalized);
|
||||||
// Move it up a bit more
|
// Move it up a bit more
|
||||||
ship.transform.position = ship.transform.position + ship.transform.TransformDirection(Vector3.up) * 4f;
|
ship.transform.position = ship.transform.position + ship.transform.TransformDirection(Vector3.up) * 4f;
|
||||||
|
|
||||||
ship.GetRequiredComponent<MatchInitialMotion>().SetBodyToMatch(rb);
|
ship.GetRequiredComponent<MatchInitialMotion>().SetBodyToMatch(owRigidBody);
|
||||||
|
|
||||||
if(Main.Instance.IsWarping)
|
if(Main.Instance.IsWarping)
|
||||||
{
|
{
|
||||||
@ -63,7 +63,7 @@ namespace NewHorizons.Builder.General
|
|||||||
Main.Instance.ModHelper.Events.Unity.RunWhen(() => Main.IsSystemReady, () => SuitUp());
|
Main.Instance.ModHelper.Events.Unity.RunWhen(() => Main.IsSystemReady, () => SuitUp());
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger.Log("Made spawnpoint on [" + body.name + "]");
|
Logger.Log("Made spawnpoint on [" + planetGO.name + "]");
|
||||||
|
|
||||||
return playerSpawn;
|
return playerSpawn;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,10 +11,10 @@ namespace NewHorizons.Builder.Orbital
|
|||||||
{
|
{
|
||||||
public static class OrbitlineBuilder
|
public static class OrbitlineBuilder
|
||||||
{
|
{
|
||||||
public static OrbitLine Make(GameObject body, NHAstroObject astroObject, bool isMoon, IPlanetConfig config)
|
public static OrbitLine Make(GameObject planetGO, NHAstroObject astroObject, bool isMoon, IPlanetConfig config)
|
||||||
{
|
{
|
||||||
GameObject orbitGO = new GameObject("Orbit");
|
GameObject orbitGO = new GameObject("Orbit");
|
||||||
orbitGO.transform.parent = body.transform;
|
orbitGO.transform.parent = planetGO.transform;
|
||||||
orbitGO.transform.localPosition = Vector3.zero;
|
orbitGO.transform.localPosition = Vector3.zero;
|
||||||
|
|
||||||
var lineRenderer = orbitGO.AddComponent<LineRenderer>();
|
var lineRenderer = orbitGO.AddComponent<LineRenderer>();
|
||||||
|
|||||||
@ -60,7 +60,7 @@ namespace NewHorizons.Builder.Props
|
|||||||
return MakeDetail(go, sector, prefab, position, rotation, scale, alignWithNormal);
|
return MakeDetail(go, sector, prefab, position, rotation, scale, alignWithNormal);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static GameObject MakeDetail(GameObject go, Sector sector, GameObject prefab, MVector3 position, MVector3 rotation, float scale, bool alignWithNormal)
|
public static GameObject MakeDetail(GameObject planetGO, Sector sector, GameObject prefab, MVector3 position, MVector3 rotation, float scale, bool alignWithNormal)
|
||||||
{
|
{
|
||||||
if (prefab == null) return null;
|
if (prefab == null) return null;
|
||||||
|
|
||||||
@ -105,7 +105,7 @@ namespace NewHorizons.Builder.Props
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
(component as AnglerfishController)._chaseSpeed += OWPhysics.CalculateOrbitVelocity(go.GetAttachedOWRigidbody(), go.GetComponent<AstroObject>().GetPrimaryBody().GetAttachedOWRigidbody()).magnitude;
|
(component as AnglerfishController)._chaseSpeed += OWPhysics.CalculateOrbitVelocity(planetGO.GetAttachedOWRigidbody(), planetGO.GetComponent<AstroObject>().GetPrimaryBody().GetAttachedOWRigidbody()).magnitude;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
@ -150,20 +150,20 @@ namespace NewHorizons.Builder.Props
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
prop.transform.position = position == null ? go.transform.position : go.transform.TransformPoint((Vector3)position);
|
prop.transform.position = position == null ? planetGO.transform.position : planetGO.transform.TransformPoint((Vector3)position);
|
||||||
|
|
||||||
Quaternion rot = rotation == null ? Quaternion.identity : Quaternion.Euler((Vector3)rotation);
|
Quaternion rot = rotation == null ? Quaternion.identity : Quaternion.Euler((Vector3)rotation);
|
||||||
prop.transform.localRotation = Quaternion.identity;
|
prop.transform.rotation = planetGO.transform.TransformRotation(Quaternion.identity);
|
||||||
if (alignWithNormal)
|
if (alignWithNormal)
|
||||||
{
|
{
|
||||||
// Apply the rotation after aligning it with normal
|
// Apply the rotation after aligning it with normal
|
||||||
var up = prop.transform.localPosition.normalized;
|
var up = planetGO.transform.InverseTransformPoint(prop.transform.position).normalized;
|
||||||
prop.transform.rotation = Quaternion.FromToRotation(prop.transform.up, up) * prop.transform.rotation;
|
prop.transform.rotation = Quaternion.FromToRotation(prop.transform.up, up) * prop.transform.rotation;
|
||||||
prop.transform.rotation *= rot;
|
prop.transform.rotation *= rot;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
prop.transform.localRotation = rot;
|
prop.transform.rotation = planetGO.transform.TransformRotation(rot);
|
||||||
}
|
}
|
||||||
|
|
||||||
prop.transform.localScale = scale != 0 ? Vector3.one * scale : prefab.transform.localScale;
|
prop.transform.localScale = scale != 0 ? Vector3.one * scale : prefab.transform.localScale;
|
||||||
|
|||||||
@ -28,7 +28,7 @@ namespace NewHorizons.Builder.Props
|
|||||||
if (!string.IsNullOrEmpty(info.pathToAnimController)) MakePlayerTrackingZone(go, dialogue, info);
|
if (!string.IsNullOrEmpty(info.pathToAnimController)) MakePlayerTrackingZone(go, dialogue, info);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void MakeRemoteDialogueTrigger(GameObject go, Sector sector, PropModule.DialogueInfo info, CharacterDialogueTree dialogue)
|
public static void MakeRemoteDialogueTrigger(GameObject planetGO, Sector sector, PropModule.DialogueInfo info, CharacterDialogueTree dialogue)
|
||||||
{
|
{
|
||||||
GameObject conversationTrigger = new GameObject("ConversationTrigger");
|
GameObject conversationTrigger = new GameObject("ConversationTrigger");
|
||||||
conversationTrigger.SetActive(false);
|
conversationTrigger.SetActive(false);
|
||||||
@ -53,12 +53,12 @@ namespace NewHorizons.Builder.Props
|
|||||||
|
|
||||||
sphereCollider.radius = info.remoteTriggerRadius == 0 ? info.radius : info.remoteTriggerRadius;
|
sphereCollider.radius = info.remoteTriggerRadius == 0 ? info.radius : info.remoteTriggerRadius;
|
||||||
|
|
||||||
conversationTrigger.transform.parent = sector?.transform ?? go.transform;
|
conversationTrigger.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
conversationTrigger.transform.localPosition = info.remoteTriggerPosition ?? info.position;
|
conversationTrigger.transform.position = planetGO.transform.TransformPoint(info.remoteTriggerPosition ?? info.position);
|
||||||
conversationTrigger.SetActive(true);
|
conversationTrigger.SetActive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CharacterDialogueTree MakeConversationZone(GameObject go, Sector sector, PropModule.DialogueInfo info, IModHelper mod)
|
public static CharacterDialogueTree MakeConversationZone(GameObject planetGO, Sector sector, PropModule.DialogueInfo info, IModHelper mod)
|
||||||
{
|
{
|
||||||
GameObject conversationZone = new GameObject("ConversationZone");
|
GameObject conversationZone = new GameObject("ConversationZone");
|
||||||
conversationZone.SetActive(false);
|
conversationZone.SetActive(false);
|
||||||
@ -87,8 +87,8 @@ namespace NewHorizons.Builder.Props
|
|||||||
dialogueTree.SetTextXml(text);
|
dialogueTree.SetTextXml(text);
|
||||||
AddTranslation(xml);
|
AddTranslation(xml);
|
||||||
|
|
||||||
conversationZone.transform.parent = sector?.transform ?? go.transform;
|
conversationZone.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
conversationZone.transform.localPosition = info.position;
|
conversationZone.transform.position = planetGO.transform.TransformPoint(info.position);
|
||||||
conversationZone.SetActive(true);
|
conversationZone.SetActive(true);
|
||||||
|
|
||||||
return dialogueTree;
|
return dialogueTree;
|
||||||
|
|||||||
@ -11,11 +11,11 @@ namespace NewHorizons.Builder.Props
|
|||||||
{
|
{
|
||||||
public static class GeyserBuilder
|
public static class GeyserBuilder
|
||||||
{
|
{
|
||||||
public static void Make(GameObject go, Sector sector, PropModule.GeyserInfo info)
|
public static void Make(GameObject planetGO, Sector sector, PropModule.GeyserInfo info)
|
||||||
{
|
{
|
||||||
var original = GameObject.Find("TimberHearth_Body/Sector_TH/Interactables_TH/Geysers/Geyser_Village");
|
var original = GameObject.Find("TimberHearth_Body/Sector_TH/Interactables_TH/Geysers/Geyser_Village");
|
||||||
GameObject geyserGO = original.InstantiateInactive();
|
GameObject geyserGO = original.InstantiateInactive();
|
||||||
geyserGO.transform.parent = sector?.transform ?? go.transform;
|
geyserGO.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
geyserGO.name = "Geyser";
|
geyserGO.name = "Geyser";
|
||||||
|
|
||||||
var pos = ((Vector3)info.position);
|
var pos = ((Vector3)info.position);
|
||||||
@ -24,11 +24,11 @@ namespace NewHorizons.Builder.Props
|
|||||||
var length = pos.magnitude - 65;
|
var length = pos.magnitude - 65;
|
||||||
|
|
||||||
// About 130 high and the surface is at 65
|
// About 130 high and the surface is at 65
|
||||||
geyserGO.transform.localPosition = pos.normalized * length;
|
geyserGO.transform.position = planetGO.transform.TransformPoint(pos.normalized * length);
|
||||||
|
|
||||||
geyserGO.transform.localScale = Vector3.one;
|
geyserGO.transform.localScale = Vector3.one;
|
||||||
|
|
||||||
var up = go.transform.TransformPoint(pos) - go.transform.position;
|
var up = planetGO.transform.TransformPoint(pos) - planetGO.transform.position;
|
||||||
geyserGO.transform.rotation = Quaternion.FromToRotation(geyserGO.transform.up, up) * geyserGO.transform.rotation;
|
geyserGO.transform.rotation = Quaternion.FromToRotation(geyserGO.transform.up, up) * geyserGO.transform.rotation;
|
||||||
|
|
||||||
var controller = geyserGO.GetComponent<GeyserController>();
|
var controller = geyserGO.GetComponent<GeyserController>();
|
||||||
|
|||||||
@ -71,7 +71,7 @@ namespace NewHorizons.Builder.Props
|
|||||||
_recorderPrefab.transform.rotation = Quaternion.identity;
|
_recorderPrefab.transform.rotation = Quaternion.identity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Make(GameObject go, Sector sector, PropModule.NomaiTextInfo info, IModBehaviour mod)
|
public static void Make(GameObject planetGO, Sector sector, PropModule.NomaiTextInfo info, IModBehaviour mod)
|
||||||
{
|
{
|
||||||
if (_scrollPrefab == null) InitPrefabs();
|
if (_scrollPrefab == null) InitPrefabs();
|
||||||
|
|
||||||
@ -79,22 +79,22 @@ namespace NewHorizons.Builder.Props
|
|||||||
|
|
||||||
if (info.type == "wall")
|
if (info.type == "wall")
|
||||||
{
|
{
|
||||||
var nomaiWallTextObj = MakeWallText(go, sector, info, xmlPath).gameObject;
|
var nomaiWallTextObj = MakeWallText(planetGO, sector, info, xmlPath).gameObject;
|
||||||
|
|
||||||
nomaiWallTextObj.transform.parent = sector?.transform ?? go.transform;
|
nomaiWallTextObj.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
nomaiWallTextObj.transform.localPosition = info.position;
|
nomaiWallTextObj.transform.position = planetGO.transform.TransformPoint(info.position);
|
||||||
if (info.normal != null)
|
if (info.normal != null)
|
||||||
{
|
{
|
||||||
// In global coordinates (normal was in local coordinates)
|
// In global coordinates (normal was in local coordinates)
|
||||||
var up = (nomaiWallTextObj.transform.position - go.transform.position).normalized;
|
var up = (nomaiWallTextObj.transform.position - planetGO.transform.position).normalized;
|
||||||
var forward = go.transform.TransformDirection(info.normal).normalized;
|
var forward = planetGO.transform.TransformDirection(info.normal).normalized;
|
||||||
|
|
||||||
nomaiWallTextObj.transform.up = up;
|
nomaiWallTextObj.transform.up = up;
|
||||||
nomaiWallTextObj.transform.forward = forward;
|
nomaiWallTextObj.transform.forward = forward;
|
||||||
}
|
}
|
||||||
if (info.rotation != null)
|
if (info.rotation != null)
|
||||||
{
|
{
|
||||||
nomaiWallTextObj.transform.localRotation = Quaternion.Euler(info.rotation);
|
nomaiWallTextObj.transform.rotation = planetGO.transform.TransformRotation(Quaternion.Euler(info.rotation));
|
||||||
}
|
}
|
||||||
|
|
||||||
nomaiWallTextObj.SetActive(true);
|
nomaiWallTextObj.SetActive(true);
|
||||||
@ -103,7 +103,7 @@ namespace NewHorizons.Builder.Props
|
|||||||
{
|
{
|
||||||
var customScroll = _scrollPrefab.InstantiateInactive();
|
var customScroll = _scrollPrefab.InstantiateInactive();
|
||||||
|
|
||||||
var nomaiWallText = MakeWallText(go, sector, info, xmlPath);
|
var nomaiWallText = MakeWallText(planetGO, sector, info, xmlPath);
|
||||||
nomaiWallText.transform.parent = customScroll.transform;
|
nomaiWallText.transform.parent = customScroll.transform;
|
||||||
nomaiWallText.transform.localPosition = Vector3.zero;
|
nomaiWallText.transform.localPosition = Vector3.zero;
|
||||||
nomaiWallText.transform.localRotation = Quaternion.identity;
|
nomaiWallText.transform.localRotation = Quaternion.identity;
|
||||||
@ -130,10 +130,10 @@ namespace NewHorizons.Builder.Props
|
|||||||
customScroll.GetComponent<OWCollider>()._physicsRemoved = false;
|
customScroll.GetComponent<OWCollider>()._physicsRemoved = false;
|
||||||
|
|
||||||
// Place scroll
|
// Place scroll
|
||||||
customScroll.transform.parent = sector?.transform ?? go.transform;
|
customScroll.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
customScroll.transform.localPosition = info.position ?? Vector3.zero;
|
customScroll.transform.position = planetGO.transform.TransformPoint(info.position ?? Vector3.zero);
|
||||||
|
|
||||||
var up = customScroll.transform.localPosition.normalized;
|
var up = planetGO.transform.InverseTransformPoint(customScroll.transform.position).normalized;
|
||||||
customScroll.transform.rotation = Quaternion.FromToRotation(customScroll.transform.up, up) * customScroll.transform.rotation;
|
customScroll.transform.rotation = Quaternion.FromToRotation(customScroll.transform.up, up) * customScroll.transform.rotation;
|
||||||
|
|
||||||
customScroll.SetActive(true);
|
customScroll.SetActive(true);
|
||||||
@ -157,11 +157,11 @@ namespace NewHorizons.Builder.Props
|
|||||||
{
|
{
|
||||||
var computerObject = _computerPrefab.InstantiateInactive();
|
var computerObject = _computerPrefab.InstantiateInactive();
|
||||||
|
|
||||||
computerObject.transform.parent = sector?.transform ?? go.transform;
|
computerObject.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
computerObject.transform.localPosition = info?.position ?? Vector3.zero;
|
computerObject.transform.position = planetGO.transform.TransformPoint(info?.position ?? Vector3.zero);
|
||||||
|
|
||||||
var up = computerObject.transform.position - go.transform.position;
|
var up = computerObject.transform.position - planetGO.transform.position;
|
||||||
if (info.normal != null) up = go.transform.TransformDirection(info.normal);
|
if (info.normal != null) up = planetGO.transform.TransformDirection(info.normal);
|
||||||
computerObject.transform.rotation = Quaternion.FromToRotation(Vector3.up, up) * computerObject.transform.rotation;
|
computerObject.transform.rotation = Quaternion.FromToRotation(Vector3.up, up) * computerObject.transform.rotation;
|
||||||
|
|
||||||
var computer = computerObject.GetComponent<NomaiComputer>();
|
var computer = computerObject.GetComponent<NomaiComputer>();
|
||||||
@ -181,17 +181,17 @@ namespace NewHorizons.Builder.Props
|
|||||||
{
|
{
|
||||||
var cairnObject = _cairnPrefab.InstantiateInactive();
|
var cairnObject = _cairnPrefab.InstantiateInactive();
|
||||||
|
|
||||||
cairnObject.transform.parent = sector?.transform ?? go.transform;
|
cairnObject.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
cairnObject.transform.localPosition = info?.position ?? Vector3.zero;
|
cairnObject.transform.position = planetGO.transform.TransformPoint(info?.position ?? Vector3.zero);
|
||||||
|
|
||||||
if (info.rotation != null)
|
if (info.rotation != null)
|
||||||
{
|
{
|
||||||
cairnObject.transform.localRotation = Quaternion.Euler(info.rotation);
|
cairnObject.transform.rotation = planetGO.transform.TransformRotation(Quaternion.Euler(info.rotation));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// By default align it to normal
|
// By default align it to normal
|
||||||
var up = (cairnObject.transform.position - go.transform.position).normalized;
|
var up = (cairnObject.transform.position - planetGO.transform.position).normalized;
|
||||||
cairnObject.transform.rotation = Quaternion.FromToRotation(Vector3.up, up) * cairnObject.transform.rotation;
|
cairnObject.transform.rotation = Quaternion.FromToRotation(Vector3.up, up) * cairnObject.transform.rotation;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -224,16 +224,16 @@ namespace NewHorizons.Builder.Props
|
|||||||
{
|
{
|
||||||
var recorderObject = _recorderPrefab.InstantiateInactive();
|
var recorderObject = _recorderPrefab.InstantiateInactive();
|
||||||
|
|
||||||
recorderObject.transform.parent = sector?.transform ?? go.transform;
|
recorderObject.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
recorderObject.transform.localPosition = info?.position ?? Vector3.zero;
|
recorderObject.transform.position = planetGO.transform.TransformPoint(info?.position ?? Vector3.zero);
|
||||||
|
|
||||||
if (info.rotation != null)
|
if (info.rotation != null)
|
||||||
{
|
{
|
||||||
recorderObject.transform.localRotation = Quaternion.Euler(info.rotation);
|
recorderObject.transform.rotation = planetGO.transform.TransformRotation(Quaternion.Euler(info.rotation));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var up = recorderObject.transform.position - go.transform.position;
|
var up = recorderObject.transform.position - planetGO.transform.position;
|
||||||
recorderObject.transform.rotation = Quaternion.FromToRotation(Vector3.up, up) * recorderObject.transform.rotation;
|
recorderObject.transform.rotation = Quaternion.FromToRotation(Vector3.up, up) * recorderObject.transform.rotation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -24,7 +24,7 @@ namespace NewHorizons.Builder.Props
|
|||||||
else Logger.LogError($"Invalid projection type {info.type}");
|
else Logger.LogError($"Invalid projection type {info.type}");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void MakeSlideReel(GameObject go, Sector sector, PropModule.ProjectionInfo info, IModBehaviour mod)
|
private static void MakeSlideReel(GameObject planetGO, Sector sector, PropModule.ProjectionInfo info, IModBehaviour mod)
|
||||||
{
|
{
|
||||||
if (_slideReelPrefab == null)
|
if (_slideReelPrefab == null)
|
||||||
{
|
{
|
||||||
@ -51,9 +51,9 @@ namespace NewHorizons.Builder.Props
|
|||||||
renderer.enabled = true;
|
renderer.enabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
slideReelObj.transform.parent = sector?.transform ?? go.transform;
|
slideReelObj.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
slideReelObj.transform.localPosition = (Vector3)(info.position ?? Vector3.zero);
|
slideReelObj.transform.position = planetGO.transform.TransformPoint((Vector3)(info.position ?? Vector3.zero));
|
||||||
slideReelObj.transform.localRotation = Quaternion.Euler((Vector3)(info.rotation ?? Vector3.zero));
|
slideReelObj.transform.rotation = planetGO.transform.TransformRotation(Quaternion.Euler((Vector3)(info.rotation ?? Vector3.zero)));
|
||||||
|
|
||||||
// Now we replace the slides
|
// Now we replace the slides
|
||||||
int slidesCount = info.slides.Length;
|
int slidesCount = info.slides.Length;
|
||||||
@ -102,7 +102,7 @@ namespace NewHorizons.Builder.Props
|
|||||||
slideReelObj.SetActive(true);
|
slideReelObj.SetActive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void MakeAutoProjector(GameObject go, Sector sector, PropModule.ProjectionInfo info, IModBehaviour mod)
|
public static void MakeAutoProjector(GameObject planetGO, Sector sector, PropModule.ProjectionInfo info, IModBehaviour mod)
|
||||||
{
|
{
|
||||||
if (_autoPrefab == null)
|
if (_autoPrefab == null)
|
||||||
{
|
{
|
||||||
@ -123,9 +123,9 @@ namespace NewHorizons.Builder.Props
|
|||||||
|
|
||||||
var slideCollectionContainer = autoProjector.GetRequiredComponent<SlideCollectionContainer>();
|
var slideCollectionContainer = autoProjector.GetRequiredComponent<SlideCollectionContainer>();
|
||||||
|
|
||||||
autoProjector.transform.parent = sector?.transform ?? go.transform;
|
autoProjector.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
autoProjector.transform.localPosition = (Vector3)(info.position ?? Vector3.zero);
|
autoProjector.transform.position = planetGO.transform.TransformPoint((Vector3)(info.position ?? Vector3.zero));
|
||||||
autoProjector.transform.localRotation = Quaternion.Euler((Vector3)(info.rotation ?? Vector3.zero));
|
autoProjector.transform.rotation = planetGO.transform.TransformRotation(Quaternion.Euler((Vector3)(info.rotation ?? Vector3.zero)));
|
||||||
|
|
||||||
// Now we replace the slides
|
// Now we replace the slides
|
||||||
int slidesCount = info.slides.Length;
|
int slidesCount = info.slides.Length;
|
||||||
|
|||||||
@ -34,8 +34,8 @@ namespace NewHorizons.Builder.Props
|
|||||||
GameObject raftObject = _prefab.InstantiateInactive();
|
GameObject raftObject = _prefab.InstantiateInactive();
|
||||||
raftObject.name = "Raft_Body";
|
raftObject.name = "Raft_Body";
|
||||||
raftObject.transform.parent = sector?.transform ?? planetGO.transform;
|
raftObject.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
raftObject.transform.localPosition = info.position;
|
raftObject.transform.position = planetGO.transform.TransformPoint(info.position);
|
||||||
raftObject.transform.localRotation = Quaternion.identity;
|
raftObject.transform.rotation = planetGO.transform.TransformRotation(Quaternion.identity);
|
||||||
|
|
||||||
sector.OnOccupantEnterSector += (sd) => OWAssetHandler.OnOccupantEnterSector(raftObject, sd, sector);
|
sector.OnOccupantEnterSector += (sd) => OWAssetHandler.OnOccupantEnterSector(raftObject, sd, sector);
|
||||||
OWAssetHandler.LoadObject(raftObject);
|
OWAssetHandler.LoadObject(raftObject);
|
||||||
@ -63,15 +63,6 @@ namespace NewHorizons.Builder.Props
|
|||||||
sector.OnSectorOccupantsUpdated += lightSensor.OnSectorOccupantsUpdated;
|
sector.OnSectorOccupantsUpdated += lightSensor.OnSectorOccupantsUpdated;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
// Debug
|
|
||||||
foreach (var point in fluidDetector._localAlignmentCheckPoints)
|
|
||||||
{
|
|
||||||
var sphere = AddDebugShape.AddSphere(fluidDetector.gameObject, 0.5f, Color.green);
|
|
||||||
sphere.transform.localPosition = point;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
raftObject.SetActive(true);
|
raftObject.SetActive(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -142,7 +142,7 @@ namespace NewHorizons.Builder.Props
|
|||||||
var signalGO = new GameObject($"Signal_{info.Name}");
|
var signalGO = new GameObject($"Signal_{info.Name}");
|
||||||
signalGO.SetActive(false);
|
signalGO.SetActive(false);
|
||||||
signalGO.transform.parent = sector?.transform ?? planetGO.transform;
|
signalGO.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
signalGO.transform.localPosition = info.Position != null ? (Vector3)info.Position : Vector3.zero;
|
signalGO.transform.position = planetGO.transform.TransformPoint(info.Position != null ? (Vector3)info.Position : Vector3.zero);
|
||||||
signalGO.layer = LayerMask.NameToLayer("AdvancedEffectVolume");
|
signalGO.layer = LayerMask.NameToLayer("AdvancedEffectVolume");
|
||||||
|
|
||||||
var source = signalGO.AddComponent<AudioSource>();
|
var source = signalGO.AddComponent<AudioSource>();
|
||||||
@ -211,7 +211,7 @@ namespace NewHorizons.Builder.Props
|
|||||||
var signalDetectionGO = new GameObject($"SignalDetectionTrigger_{info.Name}");
|
var signalDetectionGO = new GameObject($"SignalDetectionTrigger_{info.Name}");
|
||||||
signalDetectionGO.SetActive(false);
|
signalDetectionGO.SetActive(false);
|
||||||
signalDetectionGO.transform.parent = sector?.transform ?? planetGO.transform;
|
signalDetectionGO.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
signalDetectionGO.transform.localPosition = info.Position != null ? (Vector3)info.Position : Vector3.zero;
|
signalDetectionGO.transform.position = planetGO.transform.TransformPoint(info.Position != null ? (Vector3)info.Position : Vector3.zero);
|
||||||
signalDetectionGO.layer = LayerMask.NameToLayer("AdvancedEffectVolume");
|
signalDetectionGO.layer = LayerMask.NameToLayer("AdvancedEffectVolume");
|
||||||
|
|
||||||
var sphereShape = signalDetectionGO.AddComponent<SphereShape>();
|
var sphereShape = signalDetectionGO.AddComponent<SphereShape>();
|
||||||
|
|||||||
@ -19,7 +19,7 @@ namespace NewHorizons.Builder.Props
|
|||||||
private static GameObject downPrefab;
|
private static GameObject downPrefab;
|
||||||
private static GameObject soundPrefab;
|
private static GameObject soundPrefab;
|
||||||
|
|
||||||
public static void Make(GameObject go, Sector sector, PropModule.TornadoInfo info, bool hasClouds)
|
public static void Make(GameObject planetGO, Sector sector, PropModule.TornadoInfo info, bool hasClouds)
|
||||||
{
|
{
|
||||||
if (upPrefab == null)
|
if (upPrefab == null)
|
||||||
{
|
{
|
||||||
@ -57,7 +57,7 @@ namespace NewHorizons.Builder.Props
|
|||||||
|
|
||||||
var tornadoGO = info.downwards ? downPrefab.InstantiateInactive() : upPrefab.InstantiateInactive();
|
var tornadoGO = info.downwards ? downPrefab.InstantiateInactive() : upPrefab.InstantiateInactive();
|
||||||
tornadoGO.transform.parent = sector.transform;
|
tornadoGO.transform.parent = sector.transform;
|
||||||
tornadoGO.transform.localPosition = position;
|
tornadoGO.transform.position = planetGO.transform.TransformPoint(position);
|
||||||
tornadoGO.transform.rotation = Quaternion.FromToRotation(Vector3.up, sector.transform.TransformDirection(position.normalized));
|
tornadoGO.transform.rotation = Quaternion.FromToRotation(Vector3.up, sector.transform.TransformDirection(position.normalized));
|
||||||
|
|
||||||
// Add the sound thing before changing the scale
|
// Add the sound thing before changing the scale
|
||||||
|
|||||||
@ -10,13 +10,13 @@ namespace NewHorizons.Builder.Props
|
|||||||
private static Color defaultStoneTint = new Color(0.07450981f, 0.07450981f, 0.07450981f);
|
private static Color defaultStoneTint = new Color(0.07450981f, 0.07450981f, 0.07450981f);
|
||||||
private static Color defaultLavaTint = new Color(4.594794f, 0.3419145f, 0f, 1f);
|
private static Color defaultLavaTint = new Color(4.594794f, 0.3419145f, 0f, 1f);
|
||||||
|
|
||||||
public static void Make(GameObject go, Sector sector, PropModule.VolcanoInfo info)
|
public static void Make(GameObject planetGO, Sector sector, PropModule.VolcanoInfo info)
|
||||||
{
|
{
|
||||||
var prefab = GameObject.Find("VolcanicMoon_Body/Sector_VM/Effects_VM/VolcanoPivot (2)/MeteorLauncher");
|
var prefab = GameObject.Find("VolcanicMoon_Body/Sector_VM/Effects_VM/VolcanoPivot (2)/MeteorLauncher");
|
||||||
|
|
||||||
var launcherGO = prefab.InstantiateInactive();
|
var launcherGO = prefab.InstantiateInactive();
|
||||||
launcherGO.transform.parent = sector.transform;
|
launcherGO.transform.parent = sector.transform;
|
||||||
launcherGO.transform.localPosition = info.position == null ? Vector3.zero : (Vector3)info.position;
|
launcherGO.transform.position = planetGO.transform.TransformPoint(info.position == null ? Vector3.zero : (Vector3)info.position);
|
||||||
launcherGO.transform.rotation = Quaternion.FromToRotation(launcherGO.transform.TransformDirection(Vector3.up), ((Vector3)info.position).normalized).normalized;
|
launcherGO.transform.rotation = Quaternion.FromToRotation(launcherGO.transform.TransformDirection(Vector3.up), ((Vector3)info.position).normalized).normalized;
|
||||||
launcherGO.name = "MeteorLauncher";
|
launcherGO.name = "MeteorLauncher";
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,7 @@ namespace NewHorizons.Builder.ShipLog
|
|||||||
GameObject entryLocationGameObject = new GameObject("Entry Location (" + info.id + ")");
|
GameObject entryLocationGameObject = new GameObject("Entry Location (" + info.id + ")");
|
||||||
entryLocationGameObject.SetActive(false);
|
entryLocationGameObject.SetActive(false);
|
||||||
entryLocationGameObject.transform.parent = sector?.transform ?? go.transform;
|
entryLocationGameObject.transform.parent = sector?.transform ?? go.transform;
|
||||||
entryLocationGameObject.transform.localPosition = info.position ?? Vector3.zero;
|
entryLocationGameObject.transform.position = go.transform.TransformPoint(info.position ?? Vector3.zero);
|
||||||
ShipLogEntryLocation newLocation = entryLocationGameObject.AddComponent<ShipLogEntryLocation>();
|
ShipLogEntryLocation newLocation = entryLocationGameObject.AddComponent<ShipLogEntryLocation>();
|
||||||
newLocation._entryID = info.id;
|
newLocation._entryID = info.id;
|
||||||
newLocation._isWithinCloakField = info.cloaked;
|
newLocation._isWithinCloakField = info.cloaked;
|
||||||
|
|||||||
@ -44,12 +44,12 @@ namespace NewHorizons.Builder.ShipLog
|
|||||||
return newShape;
|
return newShape;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static GameObject MakeGameObject(GameObject go, Sector sector, PropModule.RevealInfo info, IModBehaviour mod)
|
private static GameObject MakeGameObject(GameObject planetGO, Sector sector, PropModule.RevealInfo info, IModBehaviour mod)
|
||||||
{
|
{
|
||||||
GameObject revealTriggerVolume = new GameObject("Reveal Volume (" + info.revealOn + ")");
|
GameObject revealTriggerVolume = new GameObject("Reveal Volume (" + info.revealOn + ")");
|
||||||
revealTriggerVolume.SetActive(false);
|
revealTriggerVolume.SetActive(false);
|
||||||
revealTriggerVolume.transform.parent = sector?.transform ?? go.transform;
|
revealTriggerVolume.transform.parent = sector?.transform ?? planetGO.transform;
|
||||||
revealTriggerVolume.transform.localPosition = info.position ?? Vector3.zero;
|
revealTriggerVolume.transform.position = planetGO.transform.TransformPoint(info.position ?? Vector3.zero);
|
||||||
return revealTriggerVolume;
|
return revealTriggerVolume;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -181,7 +181,7 @@ namespace NewHorizons.Handlers
|
|||||||
var rb = existingPlanet.GetComponent<OWRigidbody>();
|
var rb = existingPlanet.GetComponent<OWRigidbody>();
|
||||||
|
|
||||||
var sector = MakeSector.Make(existingPlanet, rb, GetSphereOfInfluence(body));
|
var sector = MakeSector.Make(existingPlanet, rb, GetSphereOfInfluence(body));
|
||||||
sector.name = $"Sector-{existingPlanet.GetComponents<Sector>().Count()}";
|
sector.name = $"Sector-{existingPlanet.GetComponentsInChildren<Sector>().Count()}";
|
||||||
|
|
||||||
SharedGenerateBody(body, existingPlanet, sector, rb);
|
SharedGenerateBody(body, existingPlanet, sector, rb);
|
||||||
|
|
||||||
|
|||||||
@ -117,5 +117,10 @@ namespace NewHorizons.Utility
|
|||||||
original.SetActive(true);
|
original.SetActive(true);
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Quaternion TransformRotation(this Transform transform, Quaternion localRotation)
|
||||||
|
{
|
||||||
|
return transform.rotation * localRotation;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user