Timeline's Note And Sth Submodule
This commit is contained in:
@@ -110,8 +110,10 @@ namespace Ichni.Editor
|
||||
{
|
||||
public TimelineTab timelineTabPrefab;
|
||||
public Dictionary<Type, TimelineTab> timelineTabList = new Dictionary<Type, TimelineTab>();
|
||||
private int TabIndex = 0;
|
||||
public void SetTimeLine(GameElement element)//暂时好了(别的类型什么的传时间就好了)
|
||||
{
|
||||
TabIndex = 0;
|
||||
for (int i = timePointerModule.moveTabPoint.childCount - 1; i >= 0; i--)
|
||||
{
|
||||
var transform = timePointerModule.moveTabPoint.transform.GetChild(i);
|
||||
@@ -123,35 +125,64 @@ namespace Ichni.Editor
|
||||
timelineTabList.Remove(timelineTabList.ElementAt(i).Key);
|
||||
}
|
||||
|
||||
Notefind(element);
|
||||
Elementfind(element);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public RectTransform moveTabPoint;
|
||||
public void Notefind(GameElement Track)
|
||||
{//这也是if山
|
||||
foreach (var i in Track.childElementList)
|
||||
public void Elementfind(GameElement element)//在其中添加东西时timelineTab也要写(难受)
|
||||
{
|
||||
|
||||
if (element.submoduleList.Any(w => w is TimeDurationSubmodule))
|
||||
{
|
||||
TimeDurationSubmodule sub = (TimeDurationSubmodule)element.submoduleList.Find(w => w is TimeDurationSubmodule);
|
||||
if (sub.isOverridingDuration) Add(sub);
|
||||
}
|
||||
|
||||
if (element is NoteBase)
|
||||
{
|
||||
if (!timelineTabList.ContainsKey(element.GetType()))
|
||||
{
|
||||
Add(element);
|
||||
}
|
||||
else
|
||||
{
|
||||
timelineTabList[element.GetType()].AddElement(element);
|
||||
}
|
||||
}
|
||||
else if (element is Track track && track.submoduleList.Any(w => w is TrackTimeSubmodule))
|
||||
{
|
||||
TrackTimeSubmodule sub = (TrackTimeSubmodule)track.submoduleList.Find(w => w is TrackTimeSubmodule);
|
||||
Add(sub);
|
||||
}
|
||||
|
||||
foreach (var i in element.childElementList)
|
||||
{
|
||||
if (i is NoteBase)
|
||||
{
|
||||
if (!timelineTabList.ContainsKey(i.GetType()))
|
||||
{
|
||||
TimelineTab timelineTab = Instantiate(timelineTabPrefab, timelineTabRect.transform);
|
||||
//timelineTab.timeline = this;
|
||||
//timelineTab.MoveArea = timePointerModule.timePointerArea;
|
||||
timelineTab.MoveArea = moveTabPoint;
|
||||
timelineTab.SetTab(i, i.GetType());
|
||||
timelineTabList.Add(i.GetType(), timelineTab);
|
||||
|
||||
Add(i);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
timelineTabList[i.GetType()].AddElement(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
private void Add(IBaseElement obj)
|
||||
{
|
||||
TimelineTab timelineTab = Instantiate(timelineTabPrefab, timelineTabRect.transform);
|
||||
timelineTab.MoveArea = moveTabPoint;
|
||||
timelineTab.TabIndex = TabIndex;
|
||||
timelineTab.SetTab(obj, obj.GetType());
|
||||
timelineTabList.Add(obj.GetType(), timelineTab);
|
||||
|
||||
TabIndex++;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user