5 [
Obsolete(
"Use SCR_ParamEnumArray.FromAddons instead")]
6 private static ParamEnumArray FromEnum(
int titleFormat = 2,
int hideCoreModules = 0)
16 protected static const ref array<string> LOADED_ADDON_GUIDS = {};
18 protected static const ref array<string> CORE_ADDONS = {
"core",
"ArmaReforger" };
25 static array<string> GetResourceAddons(ResourceName prefab,
bool ignoreCoreAddons =
false)
27 array<string> addonNames = {};
32 Resource prefabResource = BaseContainerTools.LoadContainer(prefab);
36 BaseResourceObject configContainer;
37 configContainer = prefabResource.GetResource();
41 BaseContainer configBase = configContainer.ToBaseContainer();
45 configBase.GetSourceAddons(addonNames);
47 if (ignoreCoreAddons && !addonNames.IsEmpty())
49 foreach (
string item : CORE_ADDONS)
51 addonNames.RemoveItem(item);
62 static string GetResourceLastAddon(ResourceName prefab)
64 array<string> addonNames = GetResourceAddons(prefab);
65 if (addonNames.IsEmpty())
68 return addonNames[addonNames.Count() - 1];
76 static string GetAddonID(
int index)
89 static array<string> GetAllAddonIDs()
99 static string GetAddonFileSystem(
int addonIndex)
112 static array<string> GetAllAddonFileSystems()
116 array<string> result = {};
120 result.Insert(ToFileSystem(addonID));
129 static bool IsVanillaAddon(
int addonIndex)
131 if (!LOADED_ADDON_GUIDS.IsIndexValid(addonIndex))
134 return GameProject.IsVanillaAddon(LOADED_ADDON_GUIDS[addonIndex]);
140 static bool IsVanillaAddon(
string addonID)
146 return GameProject.IsVanillaAddon(LOADED_ADDON_GUIDS[addonIndex]);
159 static string StripFileSystem(
string fileSystemPath)
161 int length = fileSystemPath.Length();
162 if (fileSystemPath.IsEmpty())
163 return fileSystemPath;
165 if (!fileSystemPath.StartsWith(
"$"))
166 return fileSystemPath;
168 int colonIndex = fileSystemPath.IndexOf(
":");
170 return fileSystemPath;
173 if (colonIndex == length)
176 return fileSystemPath.Substring(colonIndex, length - colonIndex);
184 static string ToFileSystem(
string addonID)
186 addonID.TrimInPlace();
190 return string.Format(
"$%1:", addonID);
194 protected static void LoadAddons()
199 array<string> guids = {};
200 GameProject.GetLoadedAddons(guids);
202 LOADED_ADDON_GUIDS.Copy(guids);
203 foreach (
string addonGUID : LOADED_ADDON_GUIDS)
217 static bool GetAddonAbsolutePath(
int addonId,
string relativeDirPath, out
string result,
bool mustExist =
true)
219 return Workbench.GetAbsolutePath(ToFileSystem(GetAddonID(addonId)) + relativeDirPath, result, mustExist);
230 static bool GetAddonAbsolutePath(
int addonId, ResourceName directory, out
string result,
bool mustExist =
true)
232 return Workbench.GetAbsolutePath(ToFileSystem(GetAddonID(addonId)) + directory.GetPath(), result, mustExist);
SCR_DestructionSynchronizationComponentClass ScriptComponentClass int index
static ParamEnumArray FromAddons(int titleFormat=2, int hideCoreModules=0)