using NewHorizons.Utility;
using System.Linq;
using UnityEngine;
namespace NewHorizons.Components
{
///
/// Used by vessel asset bundle to change materials to the in-game ones.
///
[UsedInUnityProject]
public class MaterialReplacer : MonoBehaviour
{
public string[] materialNames;
public void Start()
{
Renderer renderer = GetComponent();
NomaiNodeController nnc = GetComponent();
if (renderer != null)
{
var materials = materialNames.Select(name => SearchUtilities.FindResourceOfTypeAndName(name)).ToArray();
if (renderer is ParticleSystemRenderer psr)
psr.materials = materials;
else
renderer.sharedMaterials = materials;
}
else if (nnc != null)
{
var materials = materialNames.Select(name => SearchUtilities.FindResourceOfTypeAndName(name)).ToArray();
nnc._inactiveMaterial = materials[0];
nnc._activeMaterial = materials[1];
}
NomaiLamp nl = GetComponentInParent();
if (nl != null)
{
nl.enabled = true;
nl.Awake();
}
}
}
}