Example #1
0
 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);
		}
	}
Example #3
0
    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);
	}
Example #5
0
    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();
    }
Example #6
0
    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();
    }