JContainers at Skyrim Nexus

您所在的位置:网站首页 jcontainers怎么安装 JContainers at Skyrim Nexus

JContainers at Skyrim Nexus

2024-03-04 17:01| 来源: 网络整理| 查看: 265

JContainers

The main goal of the project is to extend Papyrus with JSON-based data structures (arrays and maps).

Dynamism If you have some programming background, you'll notice that you can not simply instantiate a class (or a script) in Papyrus. Almost everything exists in a single exemplar, except aliases and magic scripts. Papyrus arrays aren't expandable, single array can hold a values of a single type only. JContainers brings JMaps so that you can use them the same way FO4 structures are used. Considering the ability of JArray, JFormMap, JIntMap structures to reference/contain each other - and you can build large graphs of structures.

Embeded Lua

Ability to filter/search/modify data structures with Lua. Ability to write your own Lua scripts. Example:    int obj = JValue.objectFromPrototype("[        {\"magnitude\": -9},        {\"magnitude\": 11},        {\"magnitude\": 3}    ]")

    int eleven = JValua.evalLuaFlt(obj, "return jc.accumulateValues(obj, math.max, '.magnitude')")    int minusNine = JValua.evalLuaFlt(obj, "return jc.accumulateValues(obj, math.min, '.magnitude')")

[New] Domains

The Domain is isolated, standalone sandbox, non-global (per-save file), personal storage of JC's data, created by a modder for personal (or non-) use. The feature enables automatic removal of the data stored in a domain once a mod linked to the domain gets uninstalled.Example of the mod that use domain - https://github.com/SilverIce/PosePicker/commit/38d09404bb8db6c8e07548650bb327a445c452fd

[New] Form Observing

Internal improvement. Mimics the way a script references a form - a form referenced by any of JContainers' containers won't be unloaded by the game (unless force unloaded). Once a form deleted, the FormObserver will receive a notification and form references to that form will be set to zero.

Links

Quick feature overviewLatest documentationWatch project news and updates on GitHub

Special thanks

- to Saerileth and Gooser, without your interest that project would be abandoned on very early stages- to Skwerlman and Alexdunn for documentation improvements- to Verteiron for feedback, bugreports- to RealAntithesis for feedback, object' identifier generation idea- to Djarb, specifically for default-return-values idea

Credits

SKSE team - it would be impossible to imagine Skyrim modding without itboost framework authors - real treasure for any C++ programmerAkheron, who made jansson - nice JSON parsing libraryLua and LuaJIT creators

Permissions

- You are free to shoot into your own foot bundle JContainers. But it's not advisable to do it, as this will inflict your users, as the plugin gets updated quite often and JContainers version downgrade, version conflicts due to mods bundling different versions WILL cause issues鹿. This is time-proven fact.- It's up to you to report to a user of incompatibility of installed JC API version and the version mod has been compiled for the best user's experience. Valid condition is `JC.APIVersion == hardcodedAPIVersion && JC.featureVersion >= hardcodedFeatureVersion`.- The files in this plugin are not to be modified under any circumstance as that could cause problems when a load order includes multiple mods that use the plugin and one or more mods have modified the files in this plugin.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3