Log attempts to access deleted JContainers' objects.If map container gets modified during iteration process, some container's keys may not be visited.The functions will not return, skip the keys equal to endKey parameter (that would interrupt iteration when key = endKey).For now JFormMap.nextKey will not return unloaded (None) forms, except if it's end of iteration. Still, the forms imported from JSON files, especially object-reference forms may not be retained if those forms belong to some unloaded cells and are unloaded. Note that v3.3 retains all forms including object-reference forms, thus it's likely impossible to unload such form anymore. It is not very much reliable to use it on JFormMap containing object-reference form keys, because Skyrim may unload some of the forms and in the result iteration will be interrupted as nextKey will return None form. Note that the JFormMap.nextKey function is not much reliable (unlike allKeys & allKeysPArray). IMO it's best to replace rootKey with pathįeel free to suggest better function naming etc. JDB.autoremoveKeyIfPluginMissing(string rootKey, string pluginFileName). evalLuaStr( "return string.gsub(args.str, ' ', '%W') ", JLua. String function normalizeString( string value) global replace all non-letter, non-number characters with empty space JLua interface for convenient Papyrus -> Lua parameter transporting. Set of new JMap|JFormMap|JIntMap.allKeysPArray functions JString: FormId|Form "_formData|'pluginName'|'lowFormId'" conversion functions Note that it the functions will share the same tag with JValue.retain function JValue: string getTag(int object), setTag(int object, string tag) functions. Form observing code: make it really thread safe, almost lock free, use concurrent hashmap collections.Retain and observe EVERY form that gets passed into JContainers which prevents a form from being unloaded.For now it assumes that the form exists, even if it's not possible to test that. In previous alpha version the test marks a form's identifier as invalid if the form is not loaded in game. Remove extra strict test when loading forms' identifiers from JSON files.Q: What happens when a folder in /JCData/Domains/ doesn't exist anymore?Ī: Domain with similar name won't be loaded from a save file. Though it's possible to develop a mod using default context, use normal scripts and etc and then perform mass find & replace on your scripts Lack of Sublime highlighting and having to invoke domain-specific functions via Class_method instead of thod. Some of the functions do not belong to any domain, and JContainers_DomainsExample.psc won't declare them.Ī: You can't easily transport a data across domains. Find and replace JXXX.yyyy with JXXX_yyyy. Import AnyFilename script into your scripts. Put empty AnyFilename folder into SKSE/Plugins/JCData/Domains/. You can't transport your data across domains (unless use writeToFile/readFromFile).īasically, every user-created domain is a copy of compiled JContainers_DomainsExample.psc file and just a new, empty folder inside SKSE/Plugins/JCData/Domains/Ī: Rename JContainers_DomainsExample.psc into AnyFilename.psc (change script name also), compile it and distribute with your mod. absolutely everything.Įvery domain is virtual, self-sufficient copy of JContainers. It's important, as it allows to remove the objects you forgot to release, i.e. Which in return allows us to remove domain-specific data completely and automatically when a mod gets uninstalled. Any mod author may have one or few JContainers domains, containing only the author's data.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |