2using System.Collections.Generic;
24 List<DirectoryInfo> list =
new List<DirectoryInfo>
30 list.AddRange(PackageIterator.GetDirectories(
"Deco"));
36 Dictionary<string, FileInfo> dictionary =
new Dictionary<string, FileInfo>();
37 foreach (FileInfo
item in list.SelectMany((DirectoryInfo d) => d.GetFiles(
"*.png")))
43 dictionary.Remove(customSprite.name);
45 foreach (KeyValuePair<string, FileInfo> item2
in dictionary)
47 item2.Deconstruct(out var key, out var value);
49 Texture2D texture2D = IO.LoadPNG(value.FullName, FilterMode.Bilinear);
52 Sprite sprite = Sprite.Create(texture2D,
new Rect(0f, 0f, texture2D.width, texture2D.height),
new Vector2(0.5f, 0.5f));
85 Vector3 clickPos = Input.mousePosition;
102 selected.transform.SetAsLastSibling();
104 m.
AddSlider(
"rotation", (
float n) => (n * 45f).ToString() ??
"", deco.
rz, delegate(
float a)
108 }, 0f, 7f, isInt:
true);
109 m.
AddSlider(
"size", (
float n) => n.ToString() ??
"", Mathf.Abs(deco.
sx), delegate(
float a)
111 deco.sx = (int)a * ((deco.
sx > 0) ? 1 : (-1));
112 deco.sy = (int)a * ((deco.
sy > 0) ? 1 : (-1));
114 }, 10f, 400f, isInt:
true);
138 UIList uIList =
Util.Instantiate<
UIList>(
"UI/Element/List/ListImageGrid", uIContextMenu);
141 onInstantiate = delegate(Sprite a,
UIButton _b)
145 onClick = delegate(Sprite a,
UIButton _b)
153 if (a.name.StartsWith(
"_"))
155 skinDeco.name = a.
name;
160 skinDeco.id =
int.Parse(a.name.Remove(0, 4));
165 actor.transform.position = clickPos;
170 foreach (Sprite
item in Resources.LoadAll<Sprite>(
"Media/Graphics/Deco/").Concat(
GetCustomSprites(rescan:
true)))
181 uIContextMenu2.
AddButton(
"quitEdit", delegate
185 uIContextMenu2.
Show();
191 actor.image.raycastTarget =
true;
192 actor.transform.SetParent(base.transform, worldPositionStays:
true);
194 uIDragPanel.target = actor.Rect();
195 uIDragPanel.bound = actor.Rect();
196 uIDragPanel.clamp =
false;
205 widget.transform.SetParent(
ELayer.
ui.widgets.transform, worldPositionStays:
false);
210 actor.image.raycastTarget =
false;
211 UnityEngine.Object.DestroyImmediate(actor.gameObject.GetComponent<
UIDragPanel>());
212 actor.transform.SetParent(
widget.transform, worldPositionStays:
true);
213 deco.x = (int)actor.Rect().anchoredPosition.x;
214 deco.y = (int)actor.Rect().anchoredPosition.y;
void Activate(SkinDecoActor actor)
static List< Sprite > customSprites
static List< Sprite > GetCustomSprites(bool rescan=false)
void SetWidget(Widget _widget)
override void OnUpdateInput()
void Refresh(bool editing=true)