private void InitValues() { _startLocalPos = AttachedObject.GetValue <Vector3>("_startLocalPos"); _endLocalPos = AttachedObject.GetValue <Vector3>("_endLocalPos"); _interactVolume = AttachedObject.GetValue <SingleInteractionVolume>("_interactVolume"); _owAudioSourceOneShot = AttachedObject.GetValue <OWAudioSource>("_owAudioSourceOneShot"); _owAudioSourceLP = AttachedObject.GetValue <OWAudioSource>("_owAudioSourceLP"); }
public static void Make(GameObject body, float airScale, bool isRaining) { GameObject airGO = new GameObject(); airGO.SetActive(false); airGO.layer = 17; airGO.transform.parent = body.transform; SphereCollider SC = airGO.AddComponent <SphereCollider>(); SC.isTrigger = true; SC.radius = airScale; SimpleFluidVolume SFV = airGO.AddComponent <SimpleFluidVolume>(); SFV.SetValue("_layer", 5); SFV.SetValue("_priority", 1); SFV.SetValue("_density", 1.2f); SFV.SetValue("_fluidType", FluidVolume.Type.AIR); SFV.SetValue("_allowShipAutoroll", true); SFV.SetValue("_disableOnStart", false); if (isRaining) { VisorRainEffectVolume VREF = airGO.AddComponent <VisorRainEffectVolume>(); VREF.SetValue("_rainDirection", VisorRainEffectVolume.RainDirection.Radial); VREF.SetValue("_layer", 0); VREF.SetValue("_priority", 0); AudioSource AS = airGO.AddComponent <AudioSource>(); AS.mute = false; AS.bypassEffects = false; AS.bypassListenerEffects = false; AS.bypassReverbZones = false; AS.playOnAwake = false; AS.loop = true; AS.priority = 128; AS.volume = 0.35f; AS.pitch = 1f; AS.panStereo = 0f; AS.spatialBlend = 0f; AS.reverbZoneMix = 1f; OWAudioSource OWAS = airGO.AddComponent <OWAudioSource>(); OWAS.SetAudioLibraryClip(AudioType.GD_RainAmbient_LP); OWAS.SetClipSelectionType(OWAudioSource.ClipSelectionOnPlay.RANDOM); OWAS.SetTrack(OWAudioMixer.TrackName.Environment); /*AudioVolume av = */ airGO.AddComponent <AudioVolume>(); } airGO.SetActive(true); Logger.Log("Finished building air.", Logger.LogType.Log); }
public static void Make(GameObject body, float airScale, bool isRaining) { GameObject air = new GameObject(); air.layer = 17; air.SetActive(false); air.transform.parent = body.transform; SphereCollider atmoSC = air.AddComponent <SphereCollider>(); atmoSC.isTrigger = true; atmoSC.radius = airScale; SimpleFluidVolume sfv = air.AddComponent <SimpleFluidVolume>(); sfv.SetValue("_layer", 5); sfv.SetValue("_priority", 1); sfv.SetValue("_density", 1.2f); sfv.SetValue("_fluidType", FluidVolume.Type.AIR); sfv.SetValue("_allowShipAutoroll", true); sfv.SetValue("_disableOnStart", false); if (isRaining) { VisorRainEffectVolume vref = air.AddComponent <VisorRainEffectVolume>(); vref.SetValue("_rainDirection", VisorRainEffectVolume.RainDirection.Radial); vref.SetValue("_layer", 0); vref.SetValue("_priority", 0); AudioSource auds = air.AddComponent <AudioSource>(); auds.mute = false; auds.bypassEffects = false; auds.bypassListenerEffects = false; auds.bypassReverbZones = false; auds.playOnAwake = false; auds.loop = true; auds.priority = 128; auds.volume = 0.35f; auds.pitch = 1f; auds.panStereo = 0f; auds.spatialBlend = 0f; auds.reverbZoneMix = 1f; OWAudioSource owas = air.AddComponent <OWAudioSource>(); owas.SetAudioLibraryClip(AudioType.GD_RainAmbient_LP); owas.SetClipSelectionType(OWAudioSource.ClipSelectionOnPlay.RANDOM); owas.SetTrack(OWAudioMixer.TrackName.Environment); AudioVolume av = air.AddComponent <AudioVolume>(); } air.SetActive(true); }
private void OnEvent(MonoBehaviour behaviour, Events ev) { switch (behaviour) { case AnglerfishController anglerfishController when ev == Events.AfterEnable && _disableFish: ModHelper.Logger.Log("Deactivating anglerfish"); anglerfishController.gameObject.SetActive(false); break; case FogLight fogLight when ev == Events.AfterStart && _disableFish: ModHelper.Logger.Log("Clearing _tint in FogOverrideVolume"); ModHelper.HarmonyHelper.EmptyMethod <FogLight>("UpdateFogLight"); break; case FogWarpVolume fogWarpVolume when ev == Events.AfterAwake && _disableFog: ModHelper.Logger.Log("Clearing _fogColor in FogWarpVolume"); fogWarpVolume.SetValue("_fogColor", Color.clear); break; case PlanetaryFogController planetaryFogController when ev == Events.AfterEnable && _disableFog: ModHelper.Logger.Log("Clearing _fogTint in PlanetaryFogController"); planetaryFogController.SetValue("_fogTint", Color.clear); break; case FogOverrideVolume fogOverrideVolume when ev == Events.AfterAwake && _disableFog: ModHelper.Logger.Log("Clearing _tint in FogOverrideVolume"); fogOverrideVolume.SetValue("_tint", Color.clear); break; case GlobalMusicController globalMusicController when ev == Events.AfterStart: ModHelper.Logger.Log("Swapping _darkBrambleSource in GlobalMusicController"); _brambleSource = behaviour.GetValue <OWAudioSource>("_darkBrambleSource"); ModHelper.HarmonyHelper.EmptyMethod <GlobalMusicController>("UpdateBrambleMusic"); break; } }
public static bool Moon_CheckPlayerFogProximity( QuantumMoon __instance, int ____stateIndex, float ____eyeStateFogOffset, ref bool ____isPlayerInside, float ____fogRadius, float ____fogThickness, float ____fogRolloffDistance, string ____revealFactID, OWRigidbody ____moonBody, bool ____hasSunCollapsed, Transform ____vortexReturnPivot, OWAudioSource ____vortexAudio, ref int ____collapseToIndex, VisibilityTracker ____visibilityTracker, QuantumFogEffectBubbleController ____playerFogBubble, QuantumFogEffectBubbleController ____shipLandingCamFogBubble) { var playerDistance = Vector3.Distance(__instance.transform.position, Locator.GetPlayerCamera().transform.position); var fogOffset = (____stateIndex != 5) ? 0f : ____eyeStateFogOffset; var distanceFromFog = playerDistance - (____fogRadius + fogOffset); var fogAlpha = 0f; if (!____isPlayerInside) { fogAlpha = Mathf.InverseLerp(____fogThickness + ____fogRolloffDistance, ____fogThickness, distanceFromFog); if (distanceFromFog < 0f) { if ((bool)__instance.GetType().GetMethod("IsLockedByProbeSnapshot", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, null) || QuantumManager.IsVisibleUsingCameraFrustum((ShapeVisibilityTracker)____visibilityTracker, true)) { ____isPlayerInside = true; __instance.GetType().GetMethod("SetSurfaceState", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, new object[] { ____stateIndex }); Locator.GetShipLogManager().RevealFact(____revealFactID, true, true); QSBEventManager.FireEvent("PlayerEnterQuantumMoon"); } else { __instance.GetType().GetMethod("Collapse", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, new object[] { true }); } } } else if (____isPlayerInside) { fogAlpha = Mathf.InverseLerp(-____fogThickness - ____fogRolloffDistance, -____fogThickness, distanceFromFog); if (distanceFromFog >= 0f) { if (____stateIndex != 5) { ____isPlayerInside = false; if (!(bool)__instance.GetType().GetMethod("IsLockedByProbeSnapshot", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, null) && !QuantumManager.IsVisibleUsingCameraFrustum((ShapeVisibilityTracker)____visibilityTracker, true)) { __instance.GetType().GetMethod("Collapse", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, new object[] { true }); } __instance.GetType().GetMethod("SetSurfaceState", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, new object[] { -1 }); QSBEventManager.FireEvent("PlayerExitQuantumMoon"); } else { var vector = Locator.GetPlayerTransform().position - __instance.transform.position; Locator.GetPlayerBody().SetVelocity(____moonBody.GetPointVelocity(Locator.GetPlayerTransform().position) - (vector.normalized * 5f)); var d = 80f; Locator.GetPlayerBody().SetPosition(__instance.transform.position + (____vortexReturnPivot.up * d)); if (!Physics.autoSyncTransforms) { Physics.SyncTransforms(); } var component = Locator.GetPlayerCamera().GetComponent <PlayerCameraController>(); component.SetDegreesY(component.GetMinDegreesY()); ____vortexAudio.SetLocalVolume(0f); ____collapseToIndex = 1; __instance.GetType().GetMethod("Collapse", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, new object[] { true }); } } } ____playerFogBubble.SetFogAlpha(fogAlpha); ____shipLandingCamFogBubble.SetFogAlpha(fogAlpha); return(false); }