mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
39 lines
1.2 KiB
C#
39 lines
1.2 KiB
C#
using NewHorizons.Builder.Props;
|
|
using NewHorizons.Components;
|
|
using NewHorizons.External.Modules;
|
|
using NewHorizons.Utility.OWUtilities;
|
|
using UnityEngine;
|
|
using Logger = NewHorizons.Utility.Logger;
|
|
|
|
namespace NewHorizons.Builder.Volumes
|
|
{
|
|
public static class VanishVolumeBuilder
|
|
{
|
|
public static TVolume Make<TVolume>(GameObject planetGO, Sector sector, VolumesModule.VanishVolumeInfo info) where TVolume : VanishVolume
|
|
{
|
|
var go = GeneralPropBuilder.MakeNew(typeof(TVolume).Name, planetGO, sector, info);
|
|
go.layer = Layer.BasicEffectVolume;
|
|
|
|
var collider = go.AddComponent<SphereCollider>();
|
|
collider.isTrigger = true;
|
|
collider.radius = info.radius;
|
|
|
|
var owCollider = go.AddComponent<OWCollider>();
|
|
owCollider._collider = collider;
|
|
|
|
var owTriggerVolume = go.AddComponent<OWTriggerVolume>();
|
|
owTriggerVolume._owCollider = owCollider;
|
|
|
|
var volume = go.AddComponent<TVolume>();
|
|
|
|
volume._collider = collider;
|
|
volume._shrinkBodies = info.shrinkBodies;
|
|
volume._onlyAffectsPlayerAndShip = info.onlyAffectsPlayerAndShip;
|
|
|
|
go.SetActive(true);
|
|
|
|
return volume;
|
|
}
|
|
}
|
|
}
|