A game about forced loneliness, made by TACStudios
1using System;
2using System.Linq;
3using System.Collections.Generic;
4using UnityEngine;
5using UnityEditor;
6using UnityEditor.EditorTools;
7using UnityObject = UnityEngine.Object;
8
9namespace UnityEditor.U2D.Common.Path
10{
11 internal class ScriptablePath : ScriptableObject, IEditablePath, IUndoObject
12 {
13 [SerializeField]
14 private EditablePath m_EditablePath = new EditablePath();
15 [SerializeField]
16 private bool m_Modified = false;
17
18 internal bool modified
19 {
20 get { return m_Modified; }
21 }
22
23 internal UnityObject owner { get; set; }
24
25 public ShapeType shapeType
26 {
27 get { return m_EditablePath.shapeType; }
28 set { m_EditablePath.shapeType = value; }
29 }
30
31 public IUndoObject undoObject
32 {
33 get { return this; }
34 set { }
35 }
36
37 public ISelection<int> selection
38 {
39 get { return m_EditablePath.selection; }
40 }
41
42 public Matrix4x4 localToWorldMatrix
43 {
44 get { return m_EditablePath.localToWorldMatrix; }
45 set { m_EditablePath.localToWorldMatrix = value; }
46 }
47
48 public Vector3 forward
49 {
50 get { return m_EditablePath.forward; }
51 set { m_EditablePath.forward = value; }
52 }
53
54 public Vector3 up
55 {
56 get { return m_EditablePath.up; }
57 set { m_EditablePath.up = value; }
58 }
59
60 public Vector3 right
61 {
62 get { return m_EditablePath.right; }
63 set { m_EditablePath.right = value; }
64 }
65
66 public bool isOpenEnded
67 {
68 get { return m_EditablePath.isOpenEnded; }
69 set { m_EditablePath.isOpenEnded = value; }
70 }
71
72 public int pointCount
73 {
74 get { return m_EditablePath.pointCount; }
75 }
76
77 public bool Select(ISelector<Vector3> selector)
78 {
79 return m_EditablePath.Select(selector);
80 }
81
82 public virtual void Clear()
83 {
84 m_EditablePath.Clear();
85 }
86
87 public virtual ControlPoint GetPointLocal(int index)
88 {
89 return m_EditablePath.GetPointLocal(index);
90 }
91
92 public virtual ControlPoint GetPoint(int index)
93 {
94 return m_EditablePath.GetPoint(index);
95 }
96
97 public virtual void SetPoint(int index, ControlPoint controlPoint)
98 {
99 m_EditablePath.SetPoint(index, controlPoint);
100 }
101
102 public virtual void AddPoint(ControlPoint controlPoint)
103 {
104 m_EditablePath.AddPoint(controlPoint);
105 }
106
107 public virtual void InsertPoint(int index, ControlPoint controlPoint)
108 {
109 m_EditablePath.InsertPoint(index, controlPoint);
110 }
111
112 public virtual void RemovePoint(int index)
113 {
114 m_EditablePath.RemovePoint(index);
115 }
116
117 void IUndoObject.RegisterUndo(string name)
118 {
119 Undo.RegisterCompleteObjectUndo(this, name);
120 m_Modified = true;
121 }
122 }
123}