UniversalViewer/Assets/KF3/Scripts/Containers/KF3ObjectContainer.cs

59 lines
1.4 KiB
C#

using KF3.Containers;
using System;
using UnityEngine;
public class KF3ObjectContainer : ObjectContainer
{
protected override System.Type _serializeType => typeof(KF3ObjectContainerSerializable);
public KF3CharacterContainer AsCharacter => this as KF3CharacterContainer;
protected static KF3ModelViewerMain Main => KF3ModelViewerMain.Instance;
protected override void Start()
{
if (DoNotSave) return;
if(Frames.Count == 0)
{
SetKeyframe();
}
KF3ModelViewerMain.RegisterObject(this);
var selector = UITimelineObjectEntry.Create(this);
InstantiatedObjects.Add(selector.gameObject);
KF3ModelViewerMain.Instance.SelectObject(this);
}
protected override void OnDestroy()
{
if (Main.SelectedObject == this)
{
Main.SelectObject(null);
}
KF3ModelViewerMain.UnregisterObject(this);
base.OnDestroy();
}
#region Timeline
public override DataType GetDataType()
{
switch (this)
{
case KF3FriendContainer _:
return DataType.Character;
case KF3CeruleanContainer _:
return DataType.Character;
case KF3StaticContainer _:
return DataType.Object;
default:
Error.Log(Color.red, GetType().FullName);
throw new NotImplementedException();
}
}
#endregion
}