Elin Decompiled Documentation EA 23.317 Nightly
Loading...
Searching...
No Matches
LayerMod.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using System.IO;
3
4public class LayerMod : ELayer
5{
6 public static LayerMod Instance;
7
8 public UIList list;
9
10 public UIList list2;
11
13
15
17
18 private void Move(BaseModPackage p, ItemMod b, int a)
19 {
20 List<BaseModPackage> packages = ELayer.core.mods.packages;
21 int num = packages.IndexOf(p);
22 if (num + a < 0 || num + a >= packages.Count || packages[num + a].builtin)
23 {
24 SE.BeepSmall();
25 return;
26 }
27 packages.Move(p, a);
28 SE.Tab();
29 textRestart.SetActive(enable: true);
31 list.List();
32 }
33
34 public override void OnInit()
35 {
36 textRestart.SetActive(enable: false);
38 {
39 ELayer.config.other.disableMods = on;
41 textRestart.SetActive(enable: true);
42 });
43 Instance = this;
44 list.dragScrollView = GetComponentInChildren<UIScrollView>();
45 list.dragViewport = windows[0].Rect();
46 list.dragEdgeSize = 34f;
47 UIList uIList = list;
48 UIList uIList2 = list2;
50 {
51 onClick = delegate
52 {
53 },
54 onInstantiate = delegate(ModPackage a, ItemMod b)
55 {
56 a.UpdateMeta(updateOnly: true);
57 b.package = a;
58 string s = ELayer.core.mods.packages.IndexOf(a) + 1 + ". " + (a.isInPackages ? "[Local] " : "") + a.title;
59 b.buttonActivate.mainText.SetText(s, (!a.IsValidVersion()) ? FontColor.Bad : (a.activated ? FontColor.ButtonGeneral : FontColor.Passive));
60 b.buttonActivate.subText.text = a.version;
61 b.buttonLock.mainText.text = a.author;
62 b.buttonUp.SetActive(!a.builtin);
63 b.buttonDown.SetActive(!a.builtin);
64 b.buttonToggle.SetToggle(a.willActivate);
65 b.buttonUp.SetOnClick(delegate
66 {
67 Move(a, b, -1);
68 });
69 b.buttonDown.SetOnClick(delegate
70 {
71 Move(a, b, 1);
72 });
74 bt.SetOnClick(delegate
75 {
76 a.willActivate = !a.willActivate;
77 bt.SetToggle(a.willActivate);
79 textRestart.SetActive(enable: true);
80 });
81 bt.interactable = !a.builtin;
82 b.buttonActivate.onClick.AddListener(delegate
83 {
84 Refresh();
85 UIContextMenu uIContextMenu = ELayer.ui.CreateContextMenuInteraction();
86 if (ELayer.debug.enable || (!BaseCore.IsOffline && a.isInPackages && !a.builtin && !ELayer.core.version.demo))
87 {
88 uIContextMenu.AddButton("mod_publish", delegate
89 {
90 Core.TryWarnUpload(delegate
91 {
92 Dialog.YesNo("mod_publish_warn".lang(a.title, a.id, a.author), delegate
93 {
94 ELayer.core.steam.CreateUserContent(a);
95 });
96 });
97 });
98 }
99 if (!a.builtin)
100 {
101 uIContextMenu.AddButton(a.willActivate ? "mod_deactivate" : "mod_activate", delegate
102 {
103 SE.Click();
104 a.willActivate = !a.willActivate;
105 ELayer.core.mods.SaveLoadOrder();
106 list.List();
107 textRestart.SetActive(enable: true);
108 });
109 if (!a.isInPackages && !a.workshopId.IsEmpty())
110 {
111 uIContextMenu.AddButton("mod_convert_local", delegate
112 {
113 SE.Click();
114 string path = ("Mod_" + a.workshopId + "_" + a.id).SanitizeDirectoryName();
115 string text2 = Path.Combine(BaseModManager.rootMod, path);
116 a.CopyContentTo(text2);
117 ModPackage modPackage = manager.AddPackage(new DirectoryInfo(text2), isInPackages: true);
118 manager.packages.Move(modPackage, manager.packages.IndexOf(a) - manager.packages.Count + 2);
119 modPackage.willActivate = false;
120 modPackage.activated = false;
122 list.List();
123 textRestart.SetActive(enable: true);
124 });
125 }
126 if (a.isInPackages && a.IsSourceLocalizable)
127 {
128 uIContextMenu.AddButton("mod_export_text", delegate
129 {
130 SE.Click();
131 string text = a.UpdateSourceLocalizationFile(Lang.langCode, force: true);
132 ELayer.ui.Say(text);
133 });
134 }
135 }
136 uIContextMenu.AddButton("mod_info", delegate
137 {
138 SE.Click();
139 Util.ShowExplorer(a.dirInfo.FullName + "/package.xml");
140 });
141 uIContextMenu.Show();
142 });
143 b.buttonLock.onClick.AddListener(Refresh);
144 },
145 onList = delegate
146 {
147 foreach (BaseModPackage package in manager.packages)
148 {
149 if (package.builtin)
150 {
151 list2.Add(package);
152 }
153 else
154 {
155 list.Add(package);
156 }
157 }
158 },
159 onRefresh = Refresh,
160 onDragReorder = delegate(ModPackage p, int a)
161 {
163 manager.packages.Move(p, a);
164 SE.Tab();
165 textRestart.SetActive(enable: true);
167 list.List();
168 },
169 canDragReorder = (ModPackage p) => !p.builtin
170 };
171 UIList.ICallback callbacks = obj;
172 uIList2.callbacks = obj;
173 uIList.callbacks = callbacks;
174 list.List();
175 list2.List();
176 }
177
178 public void Refresh()
179 {
180 }
181
182 public override void OnKill()
183 {
185 }
186}
FontColor
Definition: FontColor.cs:2
static bool IsOffline
Definition: BaseCore.cs:9
Version version
Definition: BaseCore.cs:17
static BaseCore Instance
Definition: BaseCore.cs:11
virtual void FreezeScreen(float duration=0.2f)
Definition: BaseCore.cs:80
static string rootMod
void Save()
Definition: CoreConfig.cs:840
OtherSetting other
Definition: CoreConfig.cs:627
bool enable
Definition: CoreDebug.cs:301
Definition: Core.cs:14
ModManager mods
Definition: Core.cs:39
static void TryWarnUpload(Action action)
Definition: Core.cs:848
Definition: Dialog.cs:7
static Dialog YesNo(string langDetail, Action actionYes, Action actionNo=null, string langYes="yes", string langNo="no")
Definition: Dialog.cs:252
Definition: ELayer.cs:4
static Core core
Definition: ELayer.cs:7
static CoreDebug debug
Definition: ELayer.cs:43
static CoreConfig config
Definition: ELayer.cs:31
static UI ui
Definition: ELayer.cs:21
UIButton buttonActivate
Definition: ItemMod.cs:5
UIButton buttonUp
Definition: ItemMod.cs:11
UIButton buttonToggle
Definition: ItemMod.cs:15
UIButton buttonDown
Definition: ItemMod.cs:13
UIButton buttonLock
Definition: ItemMod.cs:9
Definition: Lang.cs:7
static string langCode
Definition: Lang.cs:29
UIList list
Definition: LayerMod.cs:8
ModManager manager
Definition: LayerMod.cs:16
void Move(BaseModPackage p, ItemMod b, int a)
Definition: LayerMod.cs:18
UIButton toggleDisableMods
Definition: LayerMod.cs:14
override void OnInit()
Definition: LayerMod.cs:34
override void OnKill()
Definition: LayerMod.cs:182
UIList list2
Definition: LayerMod.cs:10
UIText textRestart
Definition: LayerMod.cs:12
void Refresh()
Definition: LayerMod.cs:178
static LayerMod Instance
Definition: LayerMod.cs:6
List< Window > windows
Definition: Layer.cs:116
ModPackage AddPackage(DirectoryInfo dir, bool isInPackages=false)
Definition: ModManager.cs:159
void SaveLoadOrder()
Definition: ModManager.cs:63
void CopyContentTo(string dir)
Definition: ModPackage.cs:19
override string UpdateSourceLocalizationFile(string lang, bool force=false)
Definition: ModPackage.cs:307
UIText mainText
Definition: UIButton.cs:102
void SetToggle(bool isOn, Action< bool > onToggle=null)
Definition: UIButton.cs:341
void Show(UIItem i)
void AddButton(Func< string > funcText, UnityAction action=null)
Definition: UIList.cs:9
override void Add(object item)
Definition: UIList.cs:354
override void List()
Definition: UIList.cs:769
Definition: UIText.cs:6
void SetText(string s)
Definition: UIText.cs:163
bool demo
Definition: Version.cs:14