new-horizons/NewHorizons/Components/SizeControllers/WhiteHoleSizeController.cs

56 lines
1.8 KiB
C#

using NewHorizons.Builder.Body;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
namespace NewHorizons.Components.SizeControllers
{
public class WhiteHoleSizeController : SizeController
{
public Material material;
public Light light;
public SphereCollider sphereCollider, zeroGSphereCollider;
public WhiteHoleFluidVolume fluidVolume;
public WhiteHoleVolume volume;
public GameObject rulesetVolume;
public new void FixedUpdate()
{
base.FixedUpdate();
// The "size" parameter set in the config got multiplied by 2.8 so we gotta divide by that
var trueSize = CurrentScale / 2.8f;
material.SetFloat(SingularityBuilder.Radius, trueSize * 0.4f);
material.SetFloat(SingularityBuilder.DistortFadeDist, trueSize);
material.SetFloat(SingularityBuilder.MaxDistortRadius, trueSize * 2.8f);
if (light != null)
{
light.range = trueSize * 7f;
}
if (sphereCollider != null) sphereCollider.radius = trueSize;
if (fluidVolume != null)
{
fluidVolume._innerRadius = trueSize * 0.5f;
fluidVolume._outerRadius = trueSize;
}
if (volume != null)
{
volume._debrisDistMax = trueSize * 6.5f;
volume._debrisDistMin = trueSize * 2f;
volume._radius = trueSize * 0.5f;
}
if (zeroGSphereCollider != null) zeroGSphereCollider.radius = trueSize * 10f;
if (rulesetVolume != null) rulesetVolume.transform.localScale = Vector3.one * trueSize / 100f;
}
}
}