10 public List<SkinDeco> decos
14 return this.widget.config.skin.decos;
24 return this.widget.config.skin;
29 public override void OnInit()
35 public void SetWidget(
Widget _widget)
37 this.widget = _widget;
38 foreach (SkinDeco skinDeco
in this.decos)
40 this.Activate(skinDeco.actor);
42 this.widget.transform.SetParent(this.widgetHolder,
false);
46 public override void OnUpdateInput()
48 if (EInput.leftMouse.clicked)
50 if (EInput.leftMouse.dragging)
54 SkinDecoActor selected = InputModuleEX.GetComponentOf<SkinDecoActor>();
55 Vector3 clickPos = Input.mousePosition;
56 UIContextMenu m =
ELayer.ui.CreateContextMenu(
"ContextMenu");
59 SkinDeco deco = selected.owner;
60 Action<PickerState, Color> <>9__9;
61 m.AddButton(
"editColor", delegate()
64 Color color = deco.color;
65 Color white = Color.white;
66 Action<PickerState, Color> onChangeColor;
67 if ((onChangeColor = <>9__9) ==
null)
69 onChangeColor = (<>9__9 = delegate(PickerState state, Color _c)
75 layerColorPicker.SetColor(color, white, onChangeColor);
77 m.AddButton(
"bringToTop", delegate()
79 this.decos.Remove(deco);
81 selected.transform.SetAsLastSibling();
83 m.AddSlider(
"rotation", (
float n) => (n * 45f).ToString() ??
"", (float)deco.rz, delegate(
float a)
87 }, 0f, 7f,
true,
true,
false);
88 m.AddSlider(
"size", (
float n) => n.ToString() ??
"", (float)Mathf.Abs(deco.sx), delegate(
float a)
90 deco.sx = (int)a * ((deco.sx > 0) ? 1 : -1);
91 deco.sy = (int)a * ((deco.sy > 0) ? 1 : -1);
93 }, 10f, 400f,
true,
true,
false);
94 m.AddToggle(
"shadow", deco.shadow, delegate(
bool a)
99 m.AddToggle(
"reverse", deco.reverse, delegate(
bool a)
104 m.AddButton(
"removeDeco", delegate()
106 this.widget.RemoveDeco(selected.owner);
111 UIContextMenu parent = m.AddChild(
"addDeco");
112 UIList uilist = Util.Instantiate<UIList>(
"UI/Element/List/ListImageGrid", parent);
113 BaseList baseList = uilist;
114 UIList.Callback<Sprite, UIButton> callback =
new UIList.Callback<Sprite, UIButton>();
115 callback.onInstantiate = delegate(Sprite a, UIButton _b)
119 callback.onClick = delegate(Sprite a, UIButton _b)
121 SkinDeco skinDeco =
new SkinDeco
127 skinDeco.id =
int.Parse(a.name.Remove(0, 4));
128 this.widget.AddDeco(skinDeco);
129 SkinDecoActor actor = skinDeco.actor;
130 this.Activate(actor);
131 actor.transform.position = clickPos;
132 EInput.Consume(
false, 1);
135 baseList.callbacks = callback;
136 foreach (Sprite o
in Resources.LoadAll<Sprite>(
"Media/Graphics/Deco/"))
140 uilist.Refresh(
false);
144 if (EInput.rightMouse.down)
146 UIContextMenu uicontextMenu =
ELayer.ui.CreateContextMenu(
"ContextMenu");
147 uicontextMenu.AddButton(
"quitEdit", delegate()
151 uicontextMenu.Show();
156 public void Activate(SkinDecoActor actor)
158 actor.image.raycastTarget =
true;
159 actor.transform.SetParent(base.transform,
true);
160 UIDragPanel uidragPanel = actor.gameObject.AddComponent<UIDragPanel>();
161 uidragPanel.target = actor.Rect();
162 uidragPanel.bound = actor.Rect();
163 uidragPanel.clamp =
false;
167 public override void OnKill()
169 this.widget.transform.SetParent(
ELayer.ui.widgets.transform,
false);
170 foreach (SkinDeco skinDeco
in this.decos)
172 SkinDecoActor actor = skinDeco.actor;
173 actor.image.raycastTarget =
false;
174 UnityEngine.Object.DestroyImmediate(actor.gameObject.GetComponent<UIDragPanel>());
175 actor.transform.SetParent(this.widget.transform,
true);
176 skinDeco.x = (int)actor.Rect().anchoredPosition.x;
177 skinDeco.y = (int)actor.Rect().anchoredPosition.y;
186 public Transform widgetHolder;