diff --git a/DESIGN.md b/DESIGN.md index a3366429..f14e86e2 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -1,5 +1,5 @@ -# Rojo Design -This is a super rough draft that I'm trying to use to lay out of my thoughts. +# Rojo Design - Protocol Version 1 +This is a super rough draft that I'm trying to use to lay out some of my thoughts. ## API @@ -16,5 +16,20 @@ I imagine that the `Name` attribute of the top-level `RbxItem` would be ignored ## CLI ### Transform Plugins +Transform plugins (or filter plugins?) can interject in three places: +* Transform a `VfsItem` that's being read into an `RbxItem` +* Transform an `Rbxitem` that's being written into a `VfsItem` +* Transform a file change into paths that need to be updated -## Roblox Studio Plugin \ No newline at end of file +The plan is to have several built-in plugins that can be rearranged/configured in project settings: + +* Base plugin + * Transforms all unhandled files to/from StringValue objects +* Script plugin + * Transforms `*.lua` files to their appropriate file types +* JSON/rbxmx/rbxlx model plugin +* External binary plugin + * User passes a binary name (like `moonc`) that modifies file contents + +## Roblox Studio Plugin +With the protocol version 1 change, the Roblox Studio plugin got a lot simpler. Notably, the plugin doesn't need to be aware of anything about the filesystem's semantics, which is super handy. \ No newline at end of file diff --git a/README.md b/README.md index 4cfb5dac..e1454d67 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ It's designed for power users who want to use the **best tools available** for b This is the main Rojo repository, containing the binary server component. For the source for the Roblox plugin, [see the rojo-plugin repository](https://github.com/LPGhatguy/rojo-plugin). +The master branches of both respositories should always pass all tests and be functional, but are not suitable for production use! + ## Features Rojo has a number of desirable features *right now*: