You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
2.4 KiB

5 years ago
# Scorpio
The Scorpio Project is used to build an addon platform for World of Warcraft.
It's designed based on the [PLoop](https://github.com/kurapica/PLoop_WOW), although the Lib is created based on
the OOP system, it provided a pure functional programming style to easy the addon development.
The Scorpio provides several features to simple and power the addons:
1. A declarative functional programming style to register and handle the system events, secure hooks and slash commands.
2. A full addon life-cycle management. Addons can split their features into several modules for management.
3. An asynchronous framework to avoid the using of callbacks, and have all the asynchronous tasks controlled under
a task schedule system, so the FPS will be smooth and almost no dropping caused by the Lua codes.
4. A new UI & Skin system, It'll split the functionality and display of the widgets, so we can create functionality
UIs in one addons, and let's other authors do the skin parts very easily.
5. ~~A well designed secure template framework, so we can enjoy the power of the secure template system provided by
the blizzard and stay away the hard part. (coming soon)~~
## Preparation
The Scorpio Lib require the [PLoop](https://github.com/kurapica/PLoop_WOW), both can be download through the curseforge:
* [PLoop](https://www.curseforge.com/wow/addons/ploop)
* [Scorpio](https://www.curseforge.com/wow/addons/scorpio)
The Scorpio Lib is separated to several folders, so the features can be loaded on demand.
* Scorpio - The core system, provide the declarative functional programming style, the addon management and the
asynchronous framework, all for the non-ui part.
* Scorpio.UI - The ui core system, provide the new template and skin system, provide the basic features like enums,
structs and basic widget classes.
* Scorpio.Widget - The common widget classes and helpful APIs to simple the user interaction.
## Documents
You can find the documents for each parts:
* [Addon & The Declarative Functional Programming](https://github.com/kurapica/Scorpio/blob/master/Docs/001.addon.md)
* [Asynchronous Framework & Task Schedule System](https://github.com/kurapica/Scorpio/blob/master/Docs/002.async.md)
* [The basic UI Template & Skin System](https://github.com/kurapica/Scorpio/blob/master/Docs/003.ui.md)
* [The Common Widgets](https://github.com/kurapica/Scorpio/blob/master/Docs/004.widget.md)