Files
Magical-Jumping-Bean/Library/metadata/49/495e2738ac7d88a41a158cd2e237d70b
T

115 lines
9.0 KiB
Plaintext
Raw Normal View History

2019-09-29 19:40:54 -04:00
í2019.2.3f1þÿÿÿÿÿ’3$øÌuñ옲e+ Í=^7€ÿÿÿÿ¦€²Ð¦¦¦€#¦€+H€3ÿÿÿÿ1€1€ÿÿÿÿ@Þ Q€j
H€<ÿÿÿÿ 1€1€ÿÿÿÿ @Þ
Q€jÕ€Iÿÿÿÿ1€1€ÿÿÿÿÀÞH€j€ÿÿÿÿ1€1€ÿÿÿÿ@ÞQ€j€PAssetMetaDataguiddata[0]data[1]data[2]data[3]pathNameoriginalNamelabelsassetStoreRef ÿÿfš†!ë5˜9Ý4QÁóBí7€ÿÿÿÿ¦€²
E Þ€#.€,5a Þ€#.€,€r Þ€# .€,
H€«€ÿÿÿÿ 1€1€ÿÿÿÿ @Þ
Q€jñ€JÿÿÿÿÀ1€1€ÿÿÿÿÞ€j€ÿÿÿÿ\€ÿÿÿÿH€rÿÿÿÿ1€1€ÿÿÿÿ@ÞQ€jH€wÿÿÿÿ1€1€ÿÿÿÿ@ÞQ€jH€€ÿÿÿÿ1€1€ÿÿÿÿ@ÞQ€jy
 Þ€#!.€,"€…ÿÿÿÿ#@1€1€ÿÿÿÿ$Þ%.€j&Õ€“ÿÿÿÿ'1€1€ÿÿÿÿ(ÀÞ)€j€ÿÿÿÿ*H€›€ÿÿÿÿ+1€1€ÿÿÿÿ,@Þ-Q€j.y
 /Þ€#0.€,1 €§2@¾€¶ 3@Þ€#4.€,5H€»ÿÿÿÿ61€1€ÿÿÿÿ7@Þ8Q€j9H€Æÿÿÿÿ:1€1€ÿÿÿÿ;@Þ<Q€j=H€Øÿÿÿÿ>1€1€ÿÿÿÿ?@Þ@Q€jAMonoImporterPPtr<EditorExtension>m_FileIDm_PathIDPPtr<PrefabInstance>m_ExternalObjectsSourceAssetIdentifiertypeassemblynamem_UsedFileIDsm_DefaultReferencesexecutionOrdericonm_UserDatam_AssetBundleNamem_AssetBundleVariantsÿÿ£Gñ×ÜZ56 :!@iÁJ*€7€ÿÿÿÿ¦€²E Þ.(a Þ.€r Þ .
H€«€ÿÿÿÿ 1€1€ÿÿÿÿ @Þ
Q€jH€ê€ÿÿÿÿ1€1€ÿÿÿÿ@ÞQ€jñ€=ÿÿÿÿ1€1€ÿÿÿÿÞ€j€ÿÿÿÿH€›€ÿÿÿÿ1€1€ÿÿÿÿ@ÞQ€jy
 Þ.y€Q Þ. Þ€X!H€iÿÿÿÿ"1€1€ÿÿÿÿ#@Þ$Q€j%H€uÿÿÿÿ&1€1€ÿÿÿÿ'@Þ(Q€j)PPtr<EditorExtension>m_FileIDm_PathIDPPtr<PrefabInstance>m_DefaultReferencesm_Iconm_ExecutionOrderm_ClassNamem_Namespacetx\ày¯Ø”årƒÊ׈J¡QÈ-.s}°LPackages/com.unity.timeline/Editor/Manipulators/Utils/EditModeRippleUtils.csày¯EditModeRippleUtilswusing System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine.Timeline;
namespace UnityEditor.Timeline
{
static class EditModeRippleUtils
{
public static void Insert(IEnumerable<ItemsPerTrack> itemsGroups)
{
var start = double.MaxValue;
var end = double.MinValue;
foreach (var itemsGroup in itemsGroups)
{
start = Math.Min(start, itemsGroup.items.Min(c => c.start));
end = Math.Max(end, itemsGroup.items.Max(c => c.end));
}
var offset = 0.0;
var discreteStart = (DiscreteTime)start;
var discreteEnd = (DiscreteTime)end;
var itemTypes = ItemsUtils.GetItemTypes(itemsGroups);
var siblingsToRipple = new List<ITimelineItem>();
foreach (var itemsGroup in itemsGroups)
{
//can only ripple items of the same type as those selected
siblingsToRipple.AddRange(ItemsUtils.GetItemsExcept(itemsGroup.targetTrack, itemsGroup.items).Where(i => itemTypes.Contains(i.GetType())));
foreach (var item in siblingsToRipple)
{
var discreteItemStart = (DiscreteTime)item.start;
var discreteItemEnd = (DiscreteTime)item.end;
if ((discreteItemStart < discreteStart && discreteItemEnd > discreteStart) || (discreteItemStart >= discreteStart && discreteItemStart < discreteEnd))
offset = Math.Max(offset, end - item.start);
}
}
if (offset > 0.0)
{
foreach (var sibling in siblingsToRipple)
{
if ((DiscreteTime)sibling.end > (DiscreteTime)start)
sibling.start += offset;
}
}
}
public static void Remove(IEnumerable<ItemsPerTrack> itemsGroups)
{
foreach (var itemsGroup in itemsGroups)
Remove(itemsGroup.targetTrack, itemsGroup.items);
}
static void Remove(TrackAsset track, IEnumerable<ITimelineItem> items)
{
if (track == null) return;
//can only ripple items of the same type as those selected
var itemTypes = ItemsUtils.GetItemTypes(items);
var siblingsToRipple = ItemsUtils.GetItemsExcept(track, items)
.Where(i => itemTypes.Contains(i.GetType()))
.OrderBy(c => c.start)
.ToArray();
var orderedItems = items
.OrderBy(c => c.start)
.ToArray();
var cumulativeOffset = 0.0;
foreach (var item in orderedItems)
{
var offset = item.end - item.start;
var start = item.start - cumulativeOffset;
var end = item.end - cumulativeOffset;
var nextItem = siblingsToRipple.FirstOrDefault(c => (DiscreteTime)c.start > (DiscreteTime)start && (DiscreteTime)c.start < (DiscreteTime)end);
if (nextItem != null)
{
offset -= end - nextItem.start;
}
var prevItem = siblingsToRipple.FirstOrDefault(c => (DiscreteTime)c.end > (DiscreteTime)start && (DiscreteTime)c.end < (DiscreteTime)end);
if (prevItem != null)
{
offset -= prevItem.end - start;
}
if (offset <= 0.0)
continue;
cumulativeOffset += offset;
for (int i = siblingsToRipple.Length - 1; i >= 0; --i)
{
var c = siblingsToRipple[i];
if ((DiscreteTime)c.start < (DiscreteTime)start)
break;
c.start = c.start - offset;
}
}