39 lines
725 B
C#
39 lines
725 B
C#
using UnityEngine;
|
|
|
|
namespace RoR2;
|
|
|
|
[RequireComponent(typeof(CharacterModel))]
|
|
[DisallowMultipleComponent]
|
|
public class ModelSkinController : MonoBehaviour
|
|
{
|
|
public SkinDef[] skins;
|
|
|
|
private CharacterModel characterModel;
|
|
|
|
public int currentSkinIndex { get; private set; } = -1;
|
|
|
|
|
|
private void Awake()
|
|
{
|
|
characterModel = GetComponent<CharacterModel>();
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
if ((bool)characterModel.body)
|
|
{
|
|
ApplySkin((int)characterModel.body.skinIndex);
|
|
}
|
|
}
|
|
|
|
public void ApplySkin(int skinIndex)
|
|
{
|
|
if (skinIndex != currentSkinIndex && (uint)skinIndex < skins.Length)
|
|
{
|
|
skins[skinIndex].Apply(base.gameObject);
|
|
characterModel.forceUpdate = true;
|
|
currentSkinIndex = skinIndex;
|
|
}
|
|
}
|
|
}
|