using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[RequireComponent(typeof(RopeSim))]
public class RopeCreditsRenderer : MonoBehaviour {
    public GameObject QuitModel;
    private RopeSim ropesim;
    private bool generated = false;
    void Start () {
        ropesim = GetComponent<RopeSim>();
        if ( !ropesim.sane ) {
            return;
        }
        Debug.Log(ropesim.bones.Count );
        if ( ropesim.bones.Count != 7 ) {
            return;
        }
        GameObject quit = Instantiate(QuitModel);
        quit.transform.SetParent( ropesim.bones[0] );
        quit.transform.localPosition = Vector3.zero;
        quit.transform.up = ropesim.bones[0].up;
        SkinnedMeshRenderer mesh = quit.GetComponentInChildren<SkinnedMeshRenderer>();
        List<Transform> bones = new List<Transform>();
        bones.Add( ropesim.bones[0] );
        bones.Add( ropesim.bones[1] );
        bones.Add( ropesim.bones[2] );
        bones.Add( ropesim.bones[3] );
        bones.Add( ropesim.bones[4] );
        bones.Add( ropesim.bones[5] );
        bones.Add( ropesim.bones[6] );
        mesh.bones = bones.ToArray();
        mesh.localBounds = new Bounds(Vector3.zero, new Vector3(100,100,100));
        generated = true;
    }

    void Update() {
        if ( !generated ) {
            Start();
            return;
        }
    }
}
