A game about forced loneliness, made by TACStudios
1using System;
2using UnityEngine;
3
4namespace UnityEditor.U2D.Animation
5{
6 internal class SkeletonToolWrapper : BaseTool
7 {
8 private SkeletonTool m_SkeletonTool;
9 private SkeletonMode m_Mode;
10
11 public SkeletonTool skeletonTool
12 {
13 get { return m_SkeletonTool; }
14 set { m_SkeletonTool = value; }
15 }
16
17 public SkeletonMode mode
18 {
19 get { return m_Mode; }
20 set { m_Mode = value; }
21 }
22
23 public bool editBindPose { get; set; }
24
25 public override int defaultControlID
26 {
27 get
28 {
29 Debug.Assert(skeletonTool != null);
30
31 return skeletonTool.defaultControlID;
32 }
33 }
34
35 protected override void OnActivate()
36 {
37 Debug.Assert(skeletonTool != null);
38 skeletonTool.enableBoneInspector = true;
39 skeletonTool.Activate();
40 }
41
42 protected override void OnDeactivate()
43 {
44 skeletonTool.enableBoneInspector = false;
45 skeletonTool.Deactivate();
46 }
47
48 private SkeletonMode OverrideMode()
49 {
50 var modeOverride = mode;
51
52 //Disable SkeletonManipulation if character exists and we are in SpriteSheet mode
53 if (skinningCache.mode == SkinningMode.SpriteSheet && skinningCache.hasCharacter && editBindPose)
54 modeOverride = SkeletonMode.Selection;
55
56 return modeOverride;
57 }
58
59 protected override void OnGUI()
60 {
61 Debug.Assert(skeletonTool != null);
62
63 skeletonTool.mode = OverrideMode();
64 skeletonTool.editBindPose = editBindPose;
65 skeletonTool.DoGUI();
66 }
67 }
68}