public static void SpriteSelectorPopup(tk2dSpriteCollectionData spriteCollection, int spriteId, SpriteChangedCallback callback, object callbackData) { tk2dSpritePickerPopup.DoPickSprite(spriteCollection, spriteId, "Select sprite", callback, callbackData); }
public static void SpriteSelector( tk2dSpriteCollectionData spriteCollection, int spriteId, SpriteChangedCallback callback, object callbackData) { tk2dSpriteCollectionData newCollection = spriteCollection; int newSpriteId = spriteId; GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); newCollection = SpriteCollectionList("Collection", newCollection); if (newCollection != spriteCollection) { newSpriteId = GetNamedSpriteInNewCollection( spriteCollection, spriteId, newCollection ); } if (showOpenEditShortcuts && newCollection != null && GUILayout.Button("o", EditorStyles.miniButton, GUILayout.Width(18))) { EditorGUIUtility.PingObject(newCollection); } GUILayout.EndHorizontal(); if (newCollection != null && newCollection.Count != 0) { if (newSpriteId < 0 || newSpriteId >= newCollection.Count || !newCollection.inst.spriteDefinitions[newSpriteId].Valid) { newSpriteId = newCollection.FirstValidDefinitionIndex; } GUILayout.BeginHorizontal(); newSpriteId = SpriteList( "Sprite", newSpriteId, newCollection ); if ( showOpenEditShortcuts && newCollection != null && newCollection.dataGuid != TransientGUID && GUILayout.Button( "e", EditorStyles.miniButton, GUILayout.Width(18), GUILayout.MaxHeight( 14f ) ) ) { tk2dSpriteCollection gen = AssetDatabase.LoadAssetAtPath( AssetDatabase.GUIDToAssetPath(newCollection.spriteCollectionGUID), typeof(tk2dSpriteCollection) ) as tk2dSpriteCollection; if ( gen != null ) { tk2dSpriteCollectionEditorPopup v = EditorWindow.GetWindow( typeof(tk2dSpriteCollectionEditorPopup), false, "Sprite Collection Editor" ) as tk2dSpriteCollectionEditorPopup; v.SetGeneratorAndSelectedSprite(gen, newSpriteId); v.Show(); } } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); if (newCollection != null && GUILayout.Button("...", GUILayout.Height(32), GUILayout.Width(32))) { SpriteSelectorPopup( newCollection, newSpriteId, callback, callbackData ); } GUILayout.EndHorizontal(); // Handle drag and drop Rect rect = GUILayoutUtility.GetLastRect(); if (rect.Contains(Event.current.mousePosition)) { if (Event.current.type == EventType.DragUpdated) { bool valid = false; if (DragAndDrop.objectReferences.Length == 1 && DragAndDrop.objectReferences[0] is GameObject) { GameObject go = DragAndDrop.objectReferences[0] as GameObject; if (go.GetComponent<tk2dSpriteCollection>() || go.GetComponent<tk2dSpriteCollectionData>()) { valid = true; } Event.current.Use(); } if (valid) { DragAndDrop.visualMode = DragAndDropVisualMode.Copy; } else { DragAndDrop.visualMode = DragAndDropVisualMode.None; } Event.current.Use(); } else if (Event.current.type == EventType.DragPerform) { DragAndDrop.visualMode = DragAndDropVisualMode.None; Event.current.Use(); GameObject go = DragAndDrop.objectReferences[0] as GameObject; tk2dSpriteCollection sc = go.GetComponent<tk2dSpriteCollection>(); tk2dSpriteCollectionData scd = go.GetComponent<tk2dSpriteCollectionData>(); if (sc != null && scd == null) { scd = sc.spriteCollection; } if (scd != null) { newCollection = scd; if (newCollection != spriteCollection) { newSpriteId = GetNamedSpriteInNewCollection( spriteCollection, spriteId, newCollection ); } } } } // Final callback if (callback != null && (newCollection != spriteCollection || newSpriteId != spriteId)) { callback(newCollection, newSpriteId, callbackData); } }
public static void SpriteSelector(tk2dSpriteCollectionData spriteCollection, int spriteId, SpriteChangedCallback callback, object callbackData) { tk2dSpriteCollectionData newCollection = spriteCollection; int newSpriteId = spriteId; GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); newCollection = SpriteCollectionList("Collection", newCollection); if (newCollection != spriteCollection) { newSpriteId = GetNamedSpriteInNewCollection(spriteCollection, spriteId, newCollection); } if (showOpenEditShortcuts && newCollection != null && GUILayout.Button("o", EditorStyles.miniButton, GUILayout.Width(18))) { EditorGUIUtility.PingObject(newCollection); } GUILayout.EndHorizontal(); if (newCollection != null && newCollection.Count != 0) { if (newSpriteId < 0 || newSpriteId >= newCollection.Count || !newCollection.inst.spriteDefinitions[newSpriteId].Valid) { newSpriteId = newCollection.FirstValidDefinitionIndex; } GUILayout.BeginHorizontal(); newSpriteId = SpriteList("Sprite", newSpriteId, newCollection); if (showOpenEditShortcuts && newCollection != null && newCollection.dataGuid != TransientGUID && GUILayout.Button("e", EditorStyles.miniButton, GUILayout.Width(18), GUILayout.MaxHeight(14f))) { tk2dSpriteCollection gen = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(newCollection.spriteCollectionGUID), typeof(tk2dSpriteCollection)) as tk2dSpriteCollection; if (gen != null) { tk2dSpriteCollectionEditorPopup v = EditorWindow.GetWindow(typeof(tk2dSpriteCollectionEditorPopup), false, "Sprite Collection Editor") as tk2dSpriteCollectionEditorPopup; v.SetGeneratorAndSelectedSprite(gen, newSpriteId); } } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); if (newCollection != null && GUILayout.Button("...", GUILayout.Height(32), GUILayout.Width(32))) { SpriteSelectorPopup(newCollection, newSpriteId, callback, callbackData); } GUILayout.EndHorizontal(); // Handle drag and drop Rect rect = GUILayoutUtility.GetLastRect(); if (rect.Contains(Event.current.mousePosition)) { if (Event.current.type == EventType.DragUpdated) { bool valid = false; if (DragAndDrop.objectReferences.Length == 1 && DragAndDrop.objectReferences[0] is GameObject) { GameObject go = DragAndDrop.objectReferences[0] as GameObject; if (go.GetComponent <tk2dSpriteCollection>() || go.GetComponent <tk2dSpriteCollectionData>()) { valid = true; } Event.current.Use(); } if (valid) { DragAndDrop.visualMode = DragAndDropVisualMode.Copy; } else { DragAndDrop.visualMode = DragAndDropVisualMode.None; } Event.current.Use(); } else if (Event.current.type == EventType.DragPerform) { DragAndDrop.visualMode = DragAndDropVisualMode.None; Event.current.Use(); GameObject go = DragAndDrop.objectReferences[0] as GameObject; tk2dSpriteCollection sc = go.GetComponent <tk2dSpriteCollection>(); tk2dSpriteCollectionData scd = go.GetComponent <tk2dSpriteCollectionData>(); if (sc != null && scd == null) { scd = sc.spriteCollection; } if (scd != null) { newCollection = scd; if (newCollection != spriteCollection) { newSpriteId = GetNamedSpriteInNewCollection(spriteCollection, spriteId, newCollection); } } } } // Final callback if (callback != null && (newCollection != spriteCollection || newSpriteId != spriteId)) { callback(newCollection, newSpriteId, callbackData); } }
public static void SpriteSelectorPopup( tk2dSpriteCollectionData spriteCollection, int spriteId, SpriteChangedCallback callback, object callbackData) { tk2dSpritePickerPopup.DoPickSprite(spriteCollection, spriteId, "Select sprite", callback, callbackData); }
public static void SpriteSelector(tk2dSpriteCollectionData spriteCollection, int spriteId, SpriteChangedCallback callback, object callbackData) { tk2dSpriteCollectionData newCollection = spriteCollection; int newSpriteId = spriteId; GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); newCollection = SpriteCollectionList("Collection", spriteCollection); if (spriteCollection != null && spriteCollection.Count != 0) { if (spriteId < 0 || spriteId >= spriteCollection.Count || !spriteCollection.inst.spriteDefinitions[spriteId].Valid) { newSpriteId = spriteCollection.FirstValidDefinitionIndex; } GUILayout.BeginHorizontal(); newSpriteId = SpriteList("Sprite", newSpriteId, spriteCollection); if (tk2dPreferences.inst.displayEditSpriteButton && spriteCollection != null && spriteCollection.dataGuid != TransientGUID && GUILayout.Button("Edit...", EditorStyles.miniButton, GUILayout.MaxWidth(40f), GUILayout.MaxHeight(14f))) { tk2dSpriteCollection gen = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(spriteCollection.spriteCollectionGUID), typeof(tk2dSpriteCollection)) as tk2dSpriteCollection; if (gen != null) { tk2dSpriteCollectionEditorPopup v = EditorWindow.GetWindow(typeof(tk2dSpriteCollectionEditorPopup), false, "Sprite Collection Editor") as tk2dSpriteCollectionEditorPopup; v.SetGeneratorAndSelectedSprite(gen, spriteId); } } GUILayout.EndHorizontal(); } if (callback != null && (newCollection != spriteCollection || newSpriteId != spriteId)) { callback(newCollection, newSpriteId, callbackData); } GUILayout.EndVertical(); if (GUILayout.Button("...", GUILayout.Height(32), GUILayout.Width(32))) { SpriteSelectorPopup(spriteCollection, spriteId, callback, callbackData); } GUILayout.EndHorizontal(); }
public static void SpriteSelector(tk2dSpriteCollectionData spriteCollection, int spriteId, SpriteChangedCallback callback, object callbackData) { tk2dSpriteCollectionData newCollection = spriteCollection; int newSpriteId = spriteId; GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); newCollection = SpriteCollectionList("Collection", newCollection); if (newCollection != spriteCollection) { string oldSpriteName = (spriteCollection == null || spriteCollection.inst == null) ? "" : spriteCollection.inst.spriteDefinitions[spriteId].name; int distance = -1; for (int i = 0; i < newCollection.inst.spriteDefinitions.Length; ++i) { if (newCollection.inst.spriteDefinitions[i].Valid) { string newSpriteName = newCollection.inst.spriteDefinitions[i].name; int tmpDistance = (newSpriteName == oldSpriteName) ? 0 : Mathf.Abs((oldSpriteName.ToLower()).CompareTo(newSpriteName.ToLower())); if (distance == -1 || tmpDistance < distance) { distance = tmpDistance; newSpriteId = i; } } } } if (newCollection != null && GUILayout.Button("o", EditorStyles.miniButton, GUILayout.Width(18))) { EditorGUIUtility.PingObject(newCollection); } GUILayout.EndHorizontal(); if (newCollection != null && newCollection.Count != 0) { if (newSpriteId < 0 || newSpriteId >= newCollection.Count || !newCollection.inst.spriteDefinitions[newSpriteId].Valid) { newSpriteId = newCollection.FirstValidDefinitionIndex; } GUILayout.BeginHorizontal(); newSpriteId = SpriteList("Sprite", newSpriteId, newCollection); if (newCollection != null && newCollection.dataGuid != TransientGUID && GUILayout.Button("e", EditorStyles.miniButton, GUILayout.Width(18), GUILayout.MaxHeight(14f))) { tk2dSpriteCollection gen = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(newCollection.spriteCollectionGUID), typeof(tk2dSpriteCollection)) as tk2dSpriteCollection; if (gen != null) { tk2dSpriteCollectionEditorPopup v = EditorWindow.GetWindow(typeof(tk2dSpriteCollectionEditorPopup), false, "Sprite Collection Editor") as tk2dSpriteCollectionEditorPopup; v.SetGeneratorAndSelectedSprite(gen, newSpriteId); } } GUILayout.EndHorizontal(); } if (callback != null && (newCollection != spriteCollection || newSpriteId != spriteId)) { callback(newCollection, newSpriteId, callbackData); } GUILayout.EndVertical(); if (newCollection != null && GUILayout.Button("...", GUILayout.Height(32), GUILayout.Width(32))) { SpriteSelectorPopup(newCollection, newSpriteId, callback, callbackData); } GUILayout.EndHorizontal(); }
public static void SpriteSelector( tk2dSpriteCollectionData spriteCollection, int spriteId, SpriteChangedCallback callback, object callbackData) { tk2dSpriteCollectionData newCollection = spriteCollection; int newSpriteId = spriteId; GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); newCollection = SpriteCollectionList("Collection", spriteCollection); if (newCollection != spriteCollection) { string oldSpriteName = (spriteCollection == null || spriteCollection.inst == null) ? "" : spriteCollection.inst.spriteDefinitions[spriteId].name; int distance = -1; for (int i = 0; i < newCollection.inst.spriteDefinitions.Length; ++i) { if (newCollection.inst.spriteDefinitions[i].Valid) { string newSpriteName = newCollection.inst.spriteDefinitions[i].name; int tmpDistance = (newSpriteName == oldSpriteName) ? 0 : Mathf.Abs ( (oldSpriteName.ToLower()).CompareTo(newSpriteName.ToLower ())); if (distance == -1 || tmpDistance < distance) { distance = tmpDistance; newSpriteId = i; } } } } if (spriteCollection != null && GUILayout.Button("o", EditorStyles.miniButton, GUILayout.Width(18))) { EditorGUIUtility.PingObject(spriteCollection); } GUILayout.EndHorizontal(); if (spriteCollection != null && spriteCollection.Count != 0) { if (spriteId < 0 || spriteId >= spriteCollection.Count || !spriteCollection.inst.spriteDefinitions[spriteId].Valid) { newSpriteId = spriteCollection.FirstValidDefinitionIndex; } GUILayout.BeginHorizontal(); newSpriteId = SpriteList( "Sprite", newSpriteId, spriteCollection ); if ( spriteCollection != null && spriteCollection.dataGuid != TransientGUID && GUILayout.Button( "e", EditorStyles.miniButton, GUILayout.Width(18), GUILayout.MaxHeight( 14f ) ) ) { tk2dSpriteCollection gen = AssetDatabase.LoadAssetAtPath( AssetDatabase.GUIDToAssetPath(spriteCollection.spriteCollectionGUID), typeof(tk2dSpriteCollection) ) as tk2dSpriteCollection; if ( gen != null ) { tk2dSpriteCollectionEditorPopup v = EditorWindow.GetWindow( typeof(tk2dSpriteCollectionEditorPopup), false, "Sprite Collection Editor" ) as tk2dSpriteCollectionEditorPopup; v.SetGeneratorAndSelectedSprite(gen, spriteId); } } GUILayout.EndHorizontal(); } if (callback != null && (newCollection != spriteCollection || newSpriteId != spriteId)) { callback(newCollection, newSpriteId, callbackData); } GUILayout.EndVertical(); if (spriteCollection != null && GUILayout.Button("...", GUILayout.Height(32), GUILayout.Width(32))) { SpriteSelectorPopup( spriteCollection, spriteId, callback, callbackData ); } GUILayout.EndHorizontal(); }
public static void SpriteSelector( tk2dSpriteCollectionData spriteCollection, int spriteId, SpriteChangedCallback callback, object callbackData) { tk2dSpriteCollectionData newCollection = spriteCollection; int newSpriteId = spriteId; GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); newCollection = SpriteCollectionList("Collection", spriteCollection); if (GUILayout.Button("o", EditorStyles.miniButton, GUILayout.Width(18))) { EditorGUIUtility.PingObject(spriteCollection); } GUILayout.EndHorizontal(); if (spriteCollection != null && spriteCollection.Count != 0) { if (spriteId < 0 || spriteId >= spriteCollection.Count || !spriteCollection.inst.spriteDefinitions[spriteId].Valid) { newSpriteId = spriteCollection.FirstValidDefinitionIndex; } GUILayout.BeginHorizontal(); newSpriteId = SpriteList( "Sprite", newSpriteId, spriteCollection ); if ( spriteCollection != null && spriteCollection.dataGuid != TransientGUID && GUILayout.Button( "e", EditorStyles.miniButton, GUILayout.Width(18), GUILayout.MaxHeight( 14f ) ) ) { tk2dSpriteCollection gen = AssetDatabase.LoadAssetAtPath( AssetDatabase.GUIDToAssetPath(spriteCollection.spriteCollectionGUID), typeof(tk2dSpriteCollection) ) as tk2dSpriteCollection; if ( gen != null ) { tk2dSpriteCollectionEditorPopup v = EditorWindow.GetWindow( typeof(tk2dSpriteCollectionEditorPopup), false, "Sprite Collection Editor" ) as tk2dSpriteCollectionEditorPopup; v.SetGeneratorAndSelectedSprite(gen, spriteId); } } GUILayout.EndHorizontal(); } if (callback != null && (newCollection != spriteCollection || newSpriteId != spriteId)) { callback(newCollection, newSpriteId, callbackData); } GUILayout.EndVertical(); if (GUILayout.Button("...", GUILayout.Height(32), GUILayout.Width(32))) { SpriteSelectorPopup( spriteCollection, spriteId, callback, callbackData ); } GUILayout.EndHorizontal(); }