Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/SilverIce/JContainers
JSON-based data structures for Papyrus (TESV Skyrim scripting language)
https://github.com/SilverIce/JContainers
c-plus-plus data-structures json library papyrus skse skse-plugin skyrim
Last synced: 2 months ago
JSON representation
JSON-based data structures for Papyrus (TESV Skyrim scripting language)
- Host: GitHub
- URL: https://github.com/SilverIce/JContainers
- Owner: SilverIce
- License: mit
- Created: 2016-01-06T15:06:02.000Z (about 9 years ago)
- Default Branch: develop
- Last Pushed: 2024-08-10T15:56:20.000Z (5 months ago)
- Last Synced: 2024-08-10T17:04:03.732Z (5 months ago)
- Topics: c-plus-plus, data-structures, json, library, papyrus, skse, skse-plugin, skyrim
- Language: C++
- Homepage:
- Size: 20.7 MB
- Stars: 41
- Watchers: 11
- Forks: 33
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build status](https://ci.appveyor.com/api/projects/status/ucafwl5wk6mxpsr9?svg=true)](https://ci.appveyor.com/project/SilverIce/jcontainers)
[![Discord Chat](https://img.shields.io/discord/308323056592486420.svg)](https://discord.gg/MegDmda)# JContainers
The main goal of the project is to extend Papyrus with JSON-based data structures (arrays and maps).
### Skyrim SE port (by @ryobg) of the project located [here](https://github.com/ryobg/JContainers).
### Why bother?
If you are programmer, sooner or later you'll notice the lack of many, many must-have features in Papyrus. First of all, the only data structure in Papyrus is Array. There is no way to:
- append, erase values from arrays
- put an array into an array (e.g. no nested arrays)
- put multiple value types into a single arrayAnd I didn't mentioned the lack of associative containers or impossibility to load or save a data into a file. Though, Papyrus is a specialized language, we shouldn't expect much.
### The solution
There is no easy way to extend existing Array (which would require to change Papyrus VM, which is tricky since we have no source code) or add new data structures into VM, thus JContainers implements its own data structures, garbage collector and other infernal stuff from scratch. Features, offered by JContainers:
- Data structures (arrays, dictionaries)
- Import and export data to and from JSON files
- Embedded Lua - it possible to use powerful Lua
- C++ API - interaction with JContainers via C++ interface. See "developer resources" archive for usage example.### Links
[Latest documentation](https://github.com/SilverIce/JContainers/wiki)
### Can I help?
Sure! Feel free to do whatever you think is good - post feature requests, report bugs, improve Wiki or source code.