-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathArcweave Project Structure & Notes.txt
63 lines (50 loc) · 2.23 KB
/
Arcweave Project Structure & Notes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Project
-Name
-Starting Element
-Cover (Image)
-Boards (ID and data)
-Notes (tied by ID)
-Jumpers (tied by ID)
-Elements (tied by ID)
-Connections (tied by ID)
-Branches
-Notes (ID and Data)
-Elements (ID and Data)
-Components (tied by ID)
-Attributes (tied by ID)
-Connection Outputs
-Jumpers (ID) -> When activated, they will activate dialogue on another board
-Connections (ID and Data)
-Label
-Source ID -> TargetID
-Components (ID and Data)
-Attributes (tied by ID)
-Component Folders (ID and Data)
-Contains children; never contain attributes.
-Can be a Root (every project has a root, acting as a container for everything in the project)
-Attributes (ID and Data)
-cID = ID of parent component/element
-cType = type of parent (component or element)
-Attribute Values (data stored within an Attribute) - 3 TYPES:
-STRING: String contained within an attribute value; { type: 'string', plain: true }
-RICH STRING: String contained within attribute that is in HTML; { type: 'string' }
-COMPONENT LIST: Array of components contained within an Attribute (tied by ID) { type: 'component-list' }
-String and Rich-Strings will be treated virtually the same - so need to differentiate for now.
-Variables
-Conditions
-Branches
Note* IDs appear to just be randomly generated UUIDs
----
The general idea of this file format is that everything is tied together by their IDs, and the project itself houses all of these items in lists that contain their IDs with their data. The above diagram appears to be the general structure of the format.
I've written JArcweave to try and take this concept and convert it into an object based system that's easy to use, but still enough like the file format to where it's still recognizable of how it's saved.
----
Notes on root objects:
"It's the unique item with no parent, all items that do not belong in a folder are children of the root item. It's basically the invisible "root" folder."
----
Adding new functionality to JArcweave:
-Parse the JSON into a RawArcweaveProject and add the new data types
-Add the proper RawX data objects
-Add a processor for it to ArcweaveProject and add the new data types
-Add the proper X data objects
-???
-Profit