148 lines
5.8 KiB
Plaintext
148 lines
5.8 KiB
Plaintext
|
/******************************************************************************
|
||
|
* Spine Runtimes License Agreement
|
||
|
* Last updated January 1, 2020. Replaces all prior versions.
|
||
|
*
|
||
|
* Copyright (c) 2013-2020, Esoteric Software LLC
|
||
|
*
|
||
|
* Integration of the Spine Runtimes into software or otherwise creating
|
||
|
* derivative works of the Spine Runtimes is permitted under the terms and
|
||
|
* conditions of Section 2 of the Spine Editor License Agreement:
|
||
|
* http://esotericsoftware.com/spine-editor-license
|
||
|
*
|
||
|
* Otherwise, it is permitted to integrate the Spine Runtimes into software
|
||
|
* or otherwise create derivative works of the Spine Runtimes (collectively,
|
||
|
* "Products"), provided that each user of the Products must obtain their own
|
||
|
* Spine Editor license and redistribution of the Products in any form must
|
||
|
* include this license and copyright notice.
|
||
|
*
|
||
|
* THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
|
||
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||
|
* DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
|
||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
|
||
|
* BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
|
||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||
|
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
|
*****************************************************************************/
|
||
|
|
||
|
#pragma warning disable 0219
|
||
|
|
||
|
#define SPINE_SKELETONMECANIM
|
||
|
|
||
|
using UnityEngine;
|
||
|
using UnityEditor;
|
||
|
using System.Collections.Generic;
|
||
|
using System.IO;
|
||
|
using System.Text;
|
||
|
using System.Linq;
|
||
|
using System.Reflection;
|
||
|
using System.Globalization;
|
||
|
|
||
|
namespace Spine.Unity.Editor {
|
||
|
public partial class SpineEditorUtilities {
|
||
|
public static class Icons {
|
||
|
public static Texture2D skeleton;
|
||
|
public static Texture2D nullBone;
|
||
|
public static Texture2D bone;
|
||
|
public static Texture2D poseBones;
|
||
|
public static Texture2D boneNib;
|
||
|
public static Texture2D slot;
|
||
|
public static Texture2D slotRoot;
|
||
|
public static Texture2D skinPlaceholder;
|
||
|
public static Texture2D image;
|
||
|
public static Texture2D genericAttachment;
|
||
|
public static Texture2D boundingBox;
|
||
|
public static Texture2D point;
|
||
|
public static Texture2D mesh;
|
||
|
public static Texture2D weights;
|
||
|
public static Texture2D path;
|
||
|
public static Texture2D clipping;
|
||
|
public static Texture2D skin;
|
||
|
public static Texture2D skinsRoot;
|
||
|
public static Texture2D animation;
|
||
|
public static Texture2D animationRoot;
|
||
|
public static Texture2D spine;
|
||
|
public static Texture2D userEvent;
|
||
|
public static Texture2D constraintNib;
|
||
|
public static Texture2D constraintRoot;
|
||
|
public static Texture2D constraintTransform;
|
||
|
public static Texture2D constraintPath;
|
||
|
public static Texture2D constraintIK;
|
||
|
public static Texture2D warning;
|
||
|
public static Texture2D skeletonUtility;
|
||
|
public static Texture2D hingeChain;
|
||
|
public static Texture2D subMeshRenderer;
|
||
|
public static Texture2D skeletonDataAssetIcon;
|
||
|
public static Texture2D info;
|
||
|
public static Texture2D unity;
|
||
|
|
||
|
static Texture2D LoadIcon (string filename) {
|
||
|
return (Texture2D)AssetDatabase.LoadMainAssetAtPath(SpineEditorUtilities.editorGUIPath + "/" + filename);
|
||
|
}
|
||
|
|
||
|
public static void Initialize () {
|
||
|
skeleton = LoadIcon("icon-skeleton.png");
|
||
|
nullBone = LoadIcon("icon-null.png");
|
||
|
bone = LoadIcon("icon-bone.png");
|
||
|
poseBones = LoadIcon("icon-poseBones.png");
|
||
|
boneNib = LoadIcon("icon-boneNib.png");
|
||
|
slot = LoadIcon("icon-slot.png");
|
||
|
slotRoot = LoadIcon("icon-slotRoot.png");
|
||
|
skinPlaceholder = LoadIcon("icon-skinPlaceholder.png");
|
||
|
|
||
|
genericAttachment = LoadIcon("icon-attachment.png");
|
||
|
image = LoadIcon("icon-image.png");
|
||
|
boundingBox = LoadIcon("icon-boundingBox.png");
|
||
|
point = LoadIcon("icon-point.png");
|
||
|
mesh = LoadIcon("icon-mesh.png");
|
||
|
weights = LoadIcon("icon-weights.png");
|
||
|
path = LoadIcon("icon-path.png");
|
||
|
clipping = LoadIcon("icon-clipping.png");
|
||
|
|
||
|
skin = LoadIcon("icon-skin.png");
|
||
|
skinsRoot = LoadIcon("icon-skinsRoot.png");
|
||
|
animation = LoadIcon("icon-animation.png");
|
||
|
animationRoot = LoadIcon("icon-animationRoot.png");
|
||
|
spine = LoadIcon("icon-spine.png");
|
||
|
userEvent = LoadIcon("icon-event.png");
|
||
|
constraintNib = LoadIcon("icon-constraintNib.png");
|
||
|
|
||
|
constraintRoot = LoadIcon("icon-constraints.png");
|
||
|
constraintTransform = LoadIcon("icon-constraintTransform.png");
|
||
|
constraintPath = LoadIcon("icon-constraintPath.png");
|
||
|
constraintIK = LoadIcon("icon-constraintIK.png");
|
||
|
|
||
|
warning = LoadIcon("icon-warning.png");
|
||
|
skeletonUtility = LoadIcon("icon-skeletonUtility.png");
|
||
|
hingeChain = LoadIcon("icon-hingeChain.png");
|
||
|
subMeshRenderer = LoadIcon("icon-subMeshRenderer.png");
|
||
|
|
||
|
skeletonDataAssetIcon = LoadIcon("SkeletonDataAsset Icon.png");
|
||
|
|
||
|
info = EditorGUIUtility.FindTexture("console.infoicon.sml");
|
||
|
unity = EditorGUIUtility.FindTexture("SceneAsset Icon");
|
||
|
}
|
||
|
|
||
|
public static Texture2D GetAttachmentIcon (Attachment attachment) {
|
||
|
// Analysis disable once CanBeReplacedWithTryCastAndCheckForNull
|
||
|
if (attachment is RegionAttachment)
|
||
|
return Icons.image;
|
||
|
else if (attachment is MeshAttachment)
|
||
|
return ((MeshAttachment)attachment).IsWeighted() ? Icons.weights : Icons.mesh;
|
||
|
else if (attachment is BoundingBoxAttachment)
|
||
|
return Icons.boundingBox;
|
||
|
else if (attachment is PointAttachment)
|
||
|
return Icons.point;
|
||
|
else if (attachment is PathAttachment)
|
||
|
return Icons.path;
|
||
|
else if (attachment is ClippingAttachment)
|
||
|
return Icons.clipping;
|
||
|
else
|
||
|
return Icons.warning;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|