public void InitIfNeeded()
{
if (this.m_CurveLibraryEditorState == null)
{
this.m_CurveLibraryEditorState = new PresetLibraryEditorState(this.GetEditorPrefBaseName());
this.m_CurveLibraryEditorState.TransferEditorPrefsState(true);
}
if (this.m_CurveLibraryEditor == null)
{
ScriptableObjectSaveLoadHelper<DoubleCurvePresetLibrary> helper = new ScriptableObjectSaveLoadHelper<DoubleCurvePresetLibrary>(PresetLibraryLocations.GetParticleCurveLibraryExtension(this.m_DoubleCurve.IsSingleCurve(), this.m_DoubleCurve.signedRange), SaveType.Text);
this.m_CurveLibraryEditor = new PresetLibraryEditor<DoubleCurvePresetLibrary>(helper, this.m_CurveLibraryEditorState, new Action<int, object>(this, (IntPtr) this.ItemClickedCallback));
this.m_CurveLibraryEditor.addDefaultPresets = (Action<PresetLibrary>) Delegate.Combine(this.m_CurveLibraryEditor.addDefaultPresets, new Action<PresetLibrary>(this.AddDefaultPresetsToLibrary));
this.m_CurveLibraryEditor.presetsWasReordered = new Action(this, (IntPtr) this.PresetsWasReordered);
this.m_CurveLibraryEditor.previewAspect = 4f;
this.m_CurveLibraryEditor.minMaxPreviewHeight = new Vector2(24f, 24f);
this.m_CurveLibraryEditor.showHeader = true;
}
}
void InitCurvePresets() { if (m_CurvePresets == null) { AnimationCurve max = m_CurveEditor.animationCurves[0].curve; AnimationCurve min = m_CurveEditor.animationCurves.Length > 1 ? m_CurveEditor.animationCurves[1].curve : null; // Selection callback for library window System.Action <DoubleCurve> presetSelectedCallback = delegate(DoubleCurve presetCurve) { var doubleCurve = new DoubleCurve(min, max, true); doubleCurve.minCurve.keys = CurveEditorWindow.GetNormalizedKeys(presetCurve.minCurve.keys, m_CurveEditor); doubleCurve.minCurve.postWrapMode = presetCurve.minCurve.postWrapMode; doubleCurve.minCurve.preWrapMode = presetCurve.minCurve.preWrapMode; doubleCurve.maxCurve.keys = CurveEditorWindow.GetNormalizedKeys(presetCurve.maxCurve.keys, m_CurveEditor); doubleCurve.maxCurve.postWrapMode = presetCurve.maxCurve.postWrapMode; doubleCurve.maxCurve.preWrapMode = presetCurve.maxCurve.preWrapMode; m_CurveEditor.SelectNone(); RefreshShownCurves(); SendEvent("CurveChanged", true); }; // We set the curve to save when showing the popup to ensure to scale the current state of the curve m_CurvePresets = new DoubleCurvePresetsContentsForPopupWindow(new DoubleCurve(min, max, true), presetSelectedCallback); m_CurvePresets.InitIfNeeded(); m_CurvePresets.GetPresetLibraryEditor().GetCurrentLib().useRanges = false; } }