Stop rings stealing you from moons

This commit is contained in:
Noah Pilarski 2022-06-28 08:05:30 -04:00
parent 61ad85c685
commit 729b0297dc
2 changed files with 23 additions and 2 deletions

View File

@ -1,4 +1,4 @@
using NewHorizons.Components;
using NewHorizons.Components;
using NewHorizons.Components.SizeControllers;
using NewHorizons.Utility;
using OWML.Common;
@ -45,7 +45,7 @@ namespace NewHorizons.Builder.Body
var trigger = ringVolume.AddComponent<OWTriggerVolume>();
trigger._shape = ringShape;
var sfv = ringVolume.AddComponent<SimpleFluidVolume>();
var sfv = ringVolume.AddComponent<RingFluidVolume>();
var fluidType = FluidVolume.Type.NONE;
try

View File

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace NewHorizons.Components
{
public class RingFluidVolume : SimpleFluidVolume
{
public override void OnEffectVolumeEnter(GameObject hitObj)
{
FluidDetector fluidDetector = hitObj.GetComponent<FluidDetector>();
if (fluidDetector == null) return;
ForceDetector forceDetector = hitObj.GetComponent<ForceDetector>();
if (forceDetector != null && forceDetector._activeVolumes != null && forceDetector._activeVolumes.Count > 0 && forceDetector._activeVolumes.Where(activeVolume => activeVolume is ForceVolume).Select(activeVolume => activeVolume as ForceVolume).Any(activeVolume => activeVolume.GetAffectsAlignment(forceDetector._attachedBody))) return;
fluidDetector.AddVolume(this);
}
}
}