Elin Decompiled Documentation EA 23.286 Nightly Patch 1
Loading...
Searching...
No Matches
BaseModManager Class Reference

Classes

class  BaseResource
 

Public Member Functions

virtual void Init (string path, string defaultPackage="_Elona")
 
void InitLang ()
 
virtual void ParseExtra (DirectoryInfo dir, BaseModPackage package)
 

Static Public Member Functions

static void SubscribeEvent (string eventId, Action< object > handler)
 
static void UnsubscribeEvent (string eventId, Action< object > handler)
 
static void PublishEvent (string eventId, object data=null)
 
static bool HasEventSubscriber (string eventId)
 

Public Attributes

DirectoryInfo dirWorkshop
 
int priorityIndex
 
List< BaseModPackagepackages = new List<BaseModPackage>()
 

Static Public Attributes

static BaseModManager Instance
 
static string rootMod
 
static string rootDefaultPacakge
 
static bool isInitialized
 
static List< string > listChainLoad = new List<string>()
 

Static Private Attributes

static readonly Dictionary< string, HashSet< Action< object > > > _eventHandlers = new Dictionary<string, HashSet<Action<object>>>()
 

Detailed Description

Definition at line 7 of file BaseModManager.cs.

Member Function Documentation

◆ HasEventSubscriber()

static bool BaseModManager.HasEventSubscriber ( string  eventId)
inlinestatic

Definition at line 133 of file BaseModManager.cs.

134 {
135 int? num = _eventHandlers.GetValueOrDefault(eventId)?.Count;
136 if (num.HasValue)
137 {
138 return num.GetValueOrDefault() > 0;
139 }
140 return false;
141 }
static readonly Dictionary< string, HashSet< Action< object > > > _eventHandlers

References _eventHandlers.

◆ Init()

virtual void BaseModManager.Init ( string  path,
string  defaultPackage = "_Elona" 
)
inlinevirtual

Definition at line 44 of file BaseModManager.cs.

45 {
46 Debug.Log("Initializing ModManager:" + defaultPackage + "/" + path);
47 Instance = this;
48 rootMod = (rootDefaultPacakge = path);
49 if (!defaultPackage.IsEmpty())
50 {
51 rootDefaultPacakge = rootMod + defaultPackage + "/";
52 }
53 }
static string rootDefaultPacakge
static BaseModManager Instance
static string rootMod

References Debug, Instance, rootDefaultPacakge, and rootMod.

◆ InitLang()

void BaseModManager.InitLang ( )
inline

Definition at line 55 of file BaseModManager.cs.

56 {
57 Debug.Log("Initializing Langs: " + Lang.langCode);
58 foreach (LangSetting value in MOD.langs.Values)
59 {
60 if (value.id != Lang.langCode)
61 {
62 continue;
63 }
64 new DirectoryInfo(value.dir);
65 FileInfo[] files = new DirectoryInfo(value.dir + "Data").GetFiles();
66 foreach (FileInfo fileInfo in files)
67 {
68 if (fileInfo.Name == "Alias.xlsx")
69 {
70 Lang.alias = new ExcelData(fileInfo.FullName);
71 }
72 if (fileInfo.Name == "Name.xlsx")
73 {
74 Lang.names = new ExcelData(fileInfo.FullName);
75 }
76 if (fileInfo.Name == "chara_talk.xlsx")
77 {
78 MOD.listTalk.items.Add(new ExcelData(fileInfo.FullName));
79 }
80 if (fileInfo.Name == "chara_tone.xlsx")
81 {
82 MOD.tones.items.Add(new ExcelData(fileInfo.FullName));
83 }
84 }
85 }
86 }
List< ExcelData > items
Definition: ExcelDataList.cs:6
string dir
Definition: LangSetting.cs:28
string id
Definition: LangSetting.cs:22
Definition: Lang.cs:7
static string langCode
Definition: Lang.cs:29
Definition: MOD.cs:7
static TalkDataList listTalk
Definition: MOD.cs:10
static ToneDataList tones
Definition: MOD.cs:12
static Dictionary< string, LangSetting > langs
Definition: MOD.cs:8

References Debug, LangSetting.dir, LangSetting.id, ExcelDataList.items, Lang.langCode, MOD.langs, MOD.listTalk, and MOD.tones.

◆ ParseExtra()

virtual void BaseModManager.ParseExtra ( DirectoryInfo  dir,
BaseModPackage  package 
)
inlinevirtual

Definition at line 88 of file BaseModManager.cs.

89 {
90 }

Referenced by BaseModPackage.Parse().

◆ PublishEvent()

static void BaseModManager.PublishEvent ( string  eventId,
object  data = null 
)
inlinestatic

Definition at line 114 of file BaseModManager.cs.

115 {
116 if (!_eventHandlers.TryGetValue(eventId, out var value))
117 {
118 return;
119 }
120 foreach (Action<object> item in value.ToList())
121 {
122 try
123 {
124 item(data);
125 }
126 catch (Exception arg)
127 {
128 Debug.LogError($"#event '{eventId}' throws error in one of the handlers\n{arg}");
129 }
130 }
131 }
$
Definition: ModManager.cs:85

References $, _eventHandlers, Debug, and item.

Referenced by Card._OnDeserialized(), Feat.Apply(), Card.Create(), SourceManager.Init(), Scene.Init(), Game.Load(), ModUtil.OnModsActivated(), Game.Save(), Core.SetLang(), and Game.StartNewGame().

◆ SubscribeEvent()

static void BaseModManager.SubscribeEvent ( string  eventId,
Action< object >  handler 
)
inlinestatic

Definition at line 92 of file BaseModManager.cs.

93 {
94 if (!_eventHandlers.TryGetValue(eventId, out var value))
95 {
96 value = new HashSet<Action<object>>();
97 _eventHandlers[eventId] = value;
98 }
99 value.Add(handler);
100 }

References _eventHandlers.

Referenced by ModManager.Init().

◆ UnsubscribeEvent()

static void BaseModManager.UnsubscribeEvent ( string  eventId,
Action< object >  handler 
)
inlinestatic

Definition at line 102 of file BaseModManager.cs.

103 {
104 if (_eventHandlers.TryGetValue(eventId, out var value))
105 {
106 value.Remove(handler);
107 if (value.Count == 0)
108 {
109 _eventHandlers.Remove(eventId);
110 }
111 }
112 }

References _eventHandlers.

Member Data Documentation

◆ _eventHandlers

readonly Dictionary<string, HashSet<Action<object> > > BaseModManager._eventHandlers = new Dictionary<string, HashSet<Action<object>>>()
staticprivate

◆ dirWorkshop

DirectoryInfo BaseModManager.dirWorkshop

Definition at line 37 of file BaseModManager.cs.

◆ Instance

BaseModManager BaseModManager.Instance
static

Definition at line 25 of file BaseModManager.cs.

Referenced by Init(), and BaseModPackage.Parse().

◆ isInitialized

bool BaseModManager.isInitialized
static

Definition at line 31 of file BaseModManager.cs.

◆ listChainLoad

List<string> BaseModManager.listChainLoad = new List<string>()
static

Definition at line 33 of file BaseModManager.cs.

Referenced by ModManager.ActivatePackages().

◆ packages

List<BaseModPackage> BaseModManager.packages = new List<BaseModPackage>()

Definition at line 42 of file BaseModManager.cs.

◆ priorityIndex

int BaseModManager.priorityIndex

Definition at line 39 of file BaseModManager.cs.

◆ rootDefaultPacakge

string BaseModManager.rootDefaultPacakge
static

Definition at line 29 of file BaseModManager.cs.

Referenced by ModManager.Init(), and Init().

◆ rootMod

string BaseModManager.rootMod
static

Definition at line 27 of file BaseModManager.cs.

Referenced by ModManager.Init(), Init(), and ModManager.LoadLocalPackages().


The documentation for this class was generated from the following file: