desck 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitlab-ci.yml +21 -0
- package/README.md +176 -0
- package/desck.cjs +2 -0
- package/elm.json +39 -0
- package/justfile +13 -0
- package/package.json +25 -0
- package/public/index.html +30 -0
- package/public/palette.json +16 -0
- package/public/projects/something.json +139 -0
- package/public/projects/template.json +69 -0
- package/public/script.js +490 -0
- package/public/style.css +471 -0
- package/public/svg/backface.svg +1 -0
- package/public/svg/courts.svg +30 -0
- package/public/svg/digits.svg +18 -0
- package/public/svg/suits.svg +43 -0
- package/server.cjs +316 -0
- package/settings.json +10 -0
- package/src/Card.elm +38 -0
- package/src/ColorPicker.elm +113 -0
- package/src/Deck.elm +571 -0
- package/src/DeckView.elm +415 -0
- package/src/Layout.elm +224 -0
- package/src/Main.elm +3743 -0
- package/src/Palette.elm +302 -0
- package/src/Project.elm +1029 -0
- package/src/Rect.elm +292 -0
- package/src/SaveFile.elm +422 -0
- package/src/Theme.elm +99 -0
- package/src/Util.elm +337 -0
- package/src/Vec.elm +196 -0
- package/src/Zone.elm +364 -0
package/.gitlab-ci.yml
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# The Docker image that will be used to build your app
|
|
2
|
+
image: node:lts
|
|
3
|
+
# Functions that should be executed before the build script is run
|
|
4
|
+
|
|
5
|
+
before_script:
|
|
6
|
+
- npm install -g elm
|
|
7
|
+
pages:
|
|
8
|
+
cache:
|
|
9
|
+
paths:
|
|
10
|
+
- elm-stuff/
|
|
11
|
+
script:
|
|
12
|
+
- elm make src/Main.elm --output=public/main.js --optimize
|
|
13
|
+
- cp README.md public/
|
|
14
|
+
artifacts:
|
|
15
|
+
paths:
|
|
16
|
+
# The folder that contains the files to be exposed at the Page URL
|
|
17
|
+
- public
|
|
18
|
+
rules:
|
|
19
|
+
# This ensures that only pushes to the default branch will trigger
|
|
20
|
+
# a pages deploy
|
|
21
|
+
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
|
package/README.md
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# Desck
|
|
2
|
+
|
|
3
|
+
A card layout editor made for creating example images for card games using the standard deck.
|
|
4
|
+
|
|
5
|
+
[live demo](https://unlessgames.gitlab.io/desck)
|
|
6
|
+
|
|
7
|
+
If you enjoy this tool, consider [donating♥](https://ko-fi.com/unlessgames)!
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Build
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
elm make src/Main.elm --output=public/main.js --optimize
|
|
19
|
+
npm link
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Run
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
desck
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Help
|
|
29
|
+
|
|
30
|
+
There are four main layers in Desck
|
|
31
|
+
|
|
32
|
+
* `Zones ⌧` where you can have rectangles with optional text labels for showing discard piles and other areas of your layout
|
|
33
|
+
* `Cards 🂠` to contain all the cards in examples
|
|
34
|
+
* `Arrows ↣` can have arrows pointing from cards to other cards or zones to illustrate things that can be played and so on
|
|
35
|
+
* `Stamps ✪` are colored circles with a symbol or text inside, useful for referencing from rulebooks for example
|
|
36
|
+
|
|
37
|
+
### Cards
|
|
38
|
+
|
|
39
|
+
* Select cards by clicking them or dragging a selection box around them
|
|
40
|
+
* Add cards to the selection by holding down `Ctrl` while clicking on a new card
|
|
41
|
+
* `Click+Drag` selected cards to move them
|
|
42
|
+
* `Alt+Drag` rotate card freely
|
|
43
|
+
* `Alt-click` on a card to rotate sideways
|
|
44
|
+
* `Right-click` to flip between back and front
|
|
45
|
+
* `Alt+Right-click` to toggle highlighting the card
|
|
46
|
+
|
|
47
|
+
#### Spawning
|
|
48
|
+
|
|
49
|
+
At the bottom, you can type in what card(s) you want into the first input field and spawn them by pressing enter
|
|
50
|
+
* Specify cards via `rank + suit` syntax
|
|
51
|
+
- `3s` is the 3 of Spades
|
|
52
|
+
- `ac` is the Ace of Clubs
|
|
53
|
+
- `0h` is the 10 of Hearts
|
|
54
|
+
- `jd` is the Jack of Diamonds
|
|
55
|
+
- `q` will spawn all 4 Queens
|
|
56
|
+
- `s` will spawn all Spades
|
|
57
|
+
- `xr` is the red Joker (black is `xb`)
|
|
58
|
+
- spawn multiple cards by separating with space like `as 2d 3c 4h`
|
|
59
|
+
|
|
60
|
+
#### Modification
|
|
61
|
+
|
|
62
|
+
You can change the rank and suit of selected cards by rewriting their codes at the bottom and pressing `Enter`. For example, if you select the Ace of Spades, `as` will appear in the bottom, if you change it to `2s` and press the `Enter` key, the card will change to the Two of Spades.
|
|
63
|
+
|
|
64
|
+
#### Ordering
|
|
65
|
+
|
|
66
|
+
* Toggle between `move to top` and `keep order` behaviours, the former will bring whatever card you pick up to the top
|
|
67
|
+
|
|
68
|
+
#### Spread
|
|
69
|
+
|
|
70
|
+
If you have multiple cards selected you can automatically spread them using different methods and spread amount.
|
|
71
|
+
* Select multiple cards
|
|
72
|
+
* Choose a spread type via the `🠚 🠛 ➘ ⇉ ⇊ 🂠 ⌓` buttons
|
|
73
|
+
* Adjust the spread amount at the end to customize the spread like how far cards should be offset or how many columns to use
|
|
74
|
+
* Hover the spread type buttons to see their names
|
|
75
|
+
|
|
76
|
+
#### Shuffle
|
|
77
|
+
* Click `shuffle` to randomly swap cards inside a selection
|
|
78
|
+
|
|
79
|
+
### Zones
|
|
80
|
+
|
|
81
|
+
* Lock the zones layer by pressing `⌧`, when locked, you will not be able to accidently interact with already created zones
|
|
82
|
+
* `Right-click+Drag` to select a rectangle as a new zone
|
|
83
|
+
* `Alt+Drag` on the background also works
|
|
84
|
+
* Click on existing zones to edit their values
|
|
85
|
+
* Change label, fill color, border stroke width, font size, border dashes and so on
|
|
86
|
+
* You can pick transparent in color pickers (empty shape) to create text labels without background or border
|
|
87
|
+
|
|
88
|
+
### Arrows
|
|
89
|
+
|
|
90
|
+
* `Right-click+Drag` from a card or a zone to start an arrow
|
|
91
|
+
* Let go of the drag over another card or zone
|
|
92
|
+
* An arrow will be created pointing from the first shape to the second
|
|
93
|
+
* `Shift+Drag` also works
|
|
94
|
+
* Click on an existing arrow to change it's color and other settings
|
|
95
|
+
|
|
96
|
+
### Stamps
|
|
97
|
+
|
|
98
|
+
Similar to spawning cards, you can use the second input field at the bottom to spawn a stamp with some text inside, you can select spawned stamps to change their content, the stamp menu has some useful unicode symbols for quick addition but you can use any UTF-8 character you want
|
|
99
|
+
|
|
100
|
+
### Removal
|
|
101
|
+
|
|
102
|
+
* Select the shapes you want to remove and click `Remove`
|
|
103
|
+
* `Shift+Right-click` will also work
|
|
104
|
+
* Press `↺` to `Undo` your last change
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
### Palette
|
|
108
|
+
|
|
109
|
+
* In the `◍ Settings` menu you can modify the color palette used for everything
|
|
110
|
+
* Pick a built-in theme
|
|
111
|
+
* Slect colors to configure
|
|
112
|
+
* The changes apply to any existing element
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
### Viewport
|
|
116
|
+
|
|
117
|
+
Set the position and size of the viewport. The coordinates are in "card space", a size of 3x2 will mean that the view will spawn 3 times the width of cards and 2 times their height.
|
|
118
|
+
* Scroll to zoom in and out
|
|
119
|
+
* `Middle-click+Drag` to `Pan` around
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
### Files
|
|
123
|
+
|
|
124
|
+
You can export three different formats from Desck:
|
|
125
|
+
* `⤓ SVG` - will download the image as scalable vector graphics
|
|
126
|
+
* `⤓ PNG` - will render a `.png` image with a size corresponding to the number you've set next to this button. The value sets the height of a card in pixels. This lets you maintain the same card size regardless of the zoom of your project.
|
|
127
|
+
* `⤓ JSON` - will export a `.json` file that contains the project's data without the visuals
|
|
128
|
+
* `load` - can import a `.json` file to continue working on a previous project
|
|
129
|
+
|
|
130
|
+
There are a few other buttons in the top left corner
|
|
131
|
+
* `save` will store your current project in your browser's cache (make sure to export files to avoid losing progress when you clear your browser history)
|
|
132
|
+
* `clone` will start a new project based on the current one, you will be prompted to give it a new name
|
|
133
|
+
|
|
134
|
+
> If you download the [Desck source](https://gitlab.com/unlessgames/desck) you can run the project locally using `node`, in this case Desck will be able to save and load files from it's export folder instead of having to rely on browser cache. If you are comfortable with git and using node and npm, this is the intended way of working with Desck. The online version is mainly for trying the program out.
|
|
135
|
+
|
|
136
|
+
## Automated Exporting
|
|
137
|
+
|
|
138
|
+
When running locally via the node server, you can batch convert all your project files into `.svg` or `.png` images at once and save into the `exports` folder inside the project (useful for updating a rulebook on a git repo with continuous integration enabled [link to our rulebook needed](TODO implement build in deck))
|
|
139
|
+
* `desck <SOURCE_FOLDER> <OUTPUT_FOLDER> --export --svg` - exports all files as `.svg`
|
|
140
|
+
* `desck <SOURCE_FOLDER> <OUTPUT_FOLDER> --export --svg` - exports all files as `.png` (resolution will be decided based on the project file's settings)
|
|
141
|
+
|
|
142
|
+
<!-- ### Title -->
|
|
143
|
+
|
|
144
|
+
<!-- * Click `🖹` -->
|
|
145
|
+
<!-- * Add a short description to the exported SVG -->
|
|
146
|
+
<!-- * This text will be written to the `title` attribute and can be used to render a description (or just keep as a hover tooltip) -->
|
|
147
|
+
|
|
148
|
+
<!-- ## Extending -->
|
|
149
|
+
|
|
150
|
+
<!-- While this isn't well supported yet, you could replace the set that makes up the deck by supplying your own CardModel type and graphics and exposing a handful of functions (see `Deck.elm` and `DeckView.elm` for the built-in standard deck) -->
|
|
151
|
+
|
|
152
|
+
<!-- Currently, these are the things that are expected to exist -->
|
|
153
|
+
|
|
154
|
+
<!-- * `type CardModel` - represents a single card, for example `type CardModel = Int` would represent cards that only have an integer property -->
|
|
155
|
+
<!-- * `modelAsShort : CardModel -> String` - used for spawning and modifying selected cards -->
|
|
156
|
+
<!-- * `parseCards : String -> List CardModel` - used for parsing the spawn query and modifications, if the conversion fails an empty list is expected, this is a list instead of a `Maybe CardModel` - so that shorthands for sets (like `j` for all `Jacks`) is possible when spawning -->
|
|
157
|
+
<!-- * `encodeModel : CardModel -> Json.Encode.Value` - used to serialize cards when saving as JSON -->
|
|
158
|
+
<!-- * `modelDecoder : Json.Decode.Decoder CardModel` - used to decode a saved project -->
|
|
159
|
+
<!-- * `modelUsing : CardModel -> List String` - returns a list of symbol ids that the card is using to filter out unneeded symbols from the svg export -->
|
|
160
|
+
<!-- * `defaulModel : CardModel` - a default card -->
|
|
161
|
+
|
|
162
|
+
<!-- And a few more that are used to show the cards, these should return `Svg` elements -->
|
|
163
|
+
|
|
164
|
+
<!-- * `backface : CardModel -> Svg msg` - shows the back-side of a card -->
|
|
165
|
+
<!-- * `frontface : CardModel -> Svg msg` - shows the front-side of a card -->
|
|
166
|
+
<!-- * `corderRadius : String` - sets the corner radius of every card shown (for example `"8"`) -->
|
|
167
|
+
<!-- * `includes : List (Svg msg)` - this is added to the main SVG element before anything else, useful for reusable `def` symbols -->
|
|
168
|
+
|
|
169
|
+
## Acknowledments
|
|
170
|
+
|
|
171
|
+
* images for royal cards and the card font were converted from [Total Nonsense - Open Source Vector Playing Cards](https://totalnonsense.com/open-source-vector-playing-cards/) licensed under [LGPL-3.0](https://www.gnu.org/licenses/lgpl-3.0.html)
|
|
172
|
+
* suit symbols were designed by Petra Hahn
|
|
173
|
+
|
|
174
|
+
## Support
|
|
175
|
+
|
|
176
|
+
If you enjoy this tool, consider [donating♥](https://ko-fi.com/unlessgames)!
|
package/desck.cjs
ADDED
package/elm.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "application",
|
|
3
|
+
"source-directories": [
|
|
4
|
+
"src"
|
|
5
|
+
],
|
|
6
|
+
"elm-version": "0.19.2",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"direct": {
|
|
9
|
+
"NoRedInk/elm-json-decode-pipeline": "1.0.1",
|
|
10
|
+
"avh4/elm-color": "1.0.0",
|
|
11
|
+
"elm/browser": "1.0.2",
|
|
12
|
+
"elm/core": "1.0.5",
|
|
13
|
+
"elm/file": "1.0.5",
|
|
14
|
+
"elm/html": "1.0.0",
|
|
15
|
+
"elm/json": "1.1.3",
|
|
16
|
+
"elm/random": "1.0.0",
|
|
17
|
+
"elm/svg": "1.0.1",
|
|
18
|
+
"elm-community/list-extra": "8.7.0",
|
|
19
|
+
"elm-community/random-extra": "3.2.0",
|
|
20
|
+
"elm-explorations/linear-algebra": "1.0.3",
|
|
21
|
+
"matthewsj/elm-ordering": "2.0.0",
|
|
22
|
+
"pablohirafuji/elm-markdown": "2.0.5",
|
|
23
|
+
"rtfeldman/elm-hex": "1.0.0",
|
|
24
|
+
"zaboco/elm-draggable": "5.0.0"
|
|
25
|
+
},
|
|
26
|
+
"indirect": {
|
|
27
|
+
"elm/bytes": "1.0.8",
|
|
28
|
+
"elm/regex": "1.0.0",
|
|
29
|
+
"elm/time": "1.0.0",
|
|
30
|
+
"elm/url": "1.0.0",
|
|
31
|
+
"elm/virtual-dom": "1.0.3",
|
|
32
|
+
"mpizenberg/elm-pointer-events": "4.0.2"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"test-dependencies": {
|
|
36
|
+
"direct": {},
|
|
37
|
+
"indirect": {}
|
|
38
|
+
}
|
|
39
|
+
}
|
package/justfile
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
set shell := ["bash", "-c"]
|
|
2
|
+
|
|
3
|
+
build:
|
|
4
|
+
elm make src/Main.elm --output=public/main.js --optimize
|
|
5
|
+
|
|
6
|
+
run:
|
|
7
|
+
node server.cjs
|
|
8
|
+
|
|
9
|
+
build-debug:
|
|
10
|
+
elm make src/Main.elm --output=public/main.js --debug
|
|
11
|
+
|
|
12
|
+
dev:
|
|
13
|
+
node server.cjs & ls src/* | entr just build-debug
|
package/package.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "desck",
|
|
3
|
+
"version": "0.4.2",
|
|
4
|
+
"description": "A card layout editor made for creating example images for our card games using the standard deck.",
|
|
5
|
+
"main": "server.cjs",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
8
|
+
"build": "npx elm make src/Main.elm --output=public/main.js --optimize && cp README.md public/",
|
|
9
|
+
"prepare": "npm run build",
|
|
10
|
+
"start": "node server.cjs"
|
|
11
|
+
},
|
|
12
|
+
"author": "Akos Plesznivy",
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"express": "^4.21.1",
|
|
16
|
+
"puppeteer": "^24.10.0",
|
|
17
|
+
"socket.io": "^4.8.0"
|
|
18
|
+
},
|
|
19
|
+
"bin": {
|
|
20
|
+
"desck": "./desck.cjs"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"elm": "^0.19.2-0"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="utf-8">
|
|
6
|
+
<!-- <meta name="theme-color" content="#000000"> -->
|
|
7
|
+
<!-- <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, shrink-to-fit=no, viewport-fit=cover" > -->
|
|
8
|
+
<!-- <link rel="manifest" href="manifest.json"> -->
|
|
9
|
+
<!-- <link rel="icon" href="favicon.ico"> -->
|
|
10
|
+
<link rel="stylesheet" href="style.css">
|
|
11
|
+
<title>desck</title>
|
|
12
|
+
</head>
|
|
13
|
+
|
|
14
|
+
<body>
|
|
15
|
+
<noscript>
|
|
16
|
+
You need to enable JavaScript to run this app.
|
|
17
|
+
</noscript>
|
|
18
|
+
<svg type="image/svg+xml" id="symbols"></svg>
|
|
19
|
+
<div id="main">
|
|
20
|
+
<div id="header"></div>
|
|
21
|
+
<div id="view"></div>
|
|
22
|
+
<div id="footer"></div>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<script src="/socket.io/socket.io.js"></script>
|
|
26
|
+
<script type="text/javascript" src="main.js"></script>
|
|
27
|
+
<script type="text/javascript" src="script.js"></script>
|
|
28
|
+
</body>
|
|
29
|
+
|
|
30
|
+
</html>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"black": "#000000",
|
|
3
|
+
"white": "#dddddd",
|
|
4
|
+
"red": "#df0000",
|
|
5
|
+
"orange": "#df8200",
|
|
6
|
+
"yellow": "#e2d200",
|
|
7
|
+
"green": "#22da44",
|
|
8
|
+
"cyan": "#22ba99",
|
|
9
|
+
"blue": "#1156a1",
|
|
10
|
+
"violet": "#550099",
|
|
11
|
+
"pink": "#bb5599",
|
|
12
|
+
"darkGray": "#222222",
|
|
13
|
+
"midGray": "#555555",
|
|
14
|
+
"lightGray": "#aaaaaa",
|
|
15
|
+
"user": []
|
|
16
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "something",
|
|
3
|
+
"project": {
|
|
4
|
+
"description": "",
|
|
5
|
+
"viewport": {
|
|
6
|
+
"pos": {
|
|
7
|
+
"x": 173.55371900826424,
|
|
8
|
+
"y": 91.11570247933878
|
|
9
|
+
},
|
|
10
|
+
"size": {
|
|
11
|
+
"x": 1652.8925619834715,
|
|
12
|
+
"y": 867.7685950413224
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"cards": [
|
|
16
|
+
{
|
|
17
|
+
"model": "ac",
|
|
18
|
+
"rect": {
|
|
19
|
+
"pos": {
|
|
20
|
+
"x": 534.8591549295775,
|
|
21
|
+
"y": 358.8732394366197
|
|
22
|
+
},
|
|
23
|
+
"size": {
|
|
24
|
+
"x": 250,
|
|
25
|
+
"y": 350
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"rot": {
|
|
29
|
+
"angle": 0,
|
|
30
|
+
"pivot": {
|
|
31
|
+
"x": 0.5,
|
|
32
|
+
"y": 0.5
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"front": true,
|
|
36
|
+
"highlight": true,
|
|
37
|
+
"id": "c3",
|
|
38
|
+
"z": 0
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"model": "ad",
|
|
42
|
+
"rect": {
|
|
43
|
+
"pos": {
|
|
44
|
+
"x": 784.8591549295775,
|
|
45
|
+
"y": 358.8732394366197
|
|
46
|
+
},
|
|
47
|
+
"size": {
|
|
48
|
+
"x": 250,
|
|
49
|
+
"y": 350
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"rot": {
|
|
53
|
+
"angle": 0,
|
|
54
|
+
"pivot": {
|
|
55
|
+
"x": 0.5,
|
|
56
|
+
"y": 0.5
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"front": true,
|
|
60
|
+
"highlight": true,
|
|
61
|
+
"id": "c2",
|
|
62
|
+
"z": 1
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"model": "ah",
|
|
66
|
+
"rect": {
|
|
67
|
+
"pos": {
|
|
68
|
+
"x": 1034.8591549295775,
|
|
69
|
+
"y": 358.8732394366197
|
|
70
|
+
},
|
|
71
|
+
"size": {
|
|
72
|
+
"x": 250,
|
|
73
|
+
"y": 350
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"rot": {
|
|
77
|
+
"angle": 0,
|
|
78
|
+
"pivot": {
|
|
79
|
+
"x": 0.5,
|
|
80
|
+
"y": 0.5
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"front": true,
|
|
84
|
+
"highlight": true,
|
|
85
|
+
"id": "c1",
|
|
86
|
+
"z": 2
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"model": "as",
|
|
90
|
+
"rect": {
|
|
91
|
+
"pos": {
|
|
92
|
+
"x": 1284.8591549295775,
|
|
93
|
+
"y": 358.8732394366197
|
|
94
|
+
},
|
|
95
|
+
"size": {
|
|
96
|
+
"x": 250,
|
|
97
|
+
"y": 350
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"rot": {
|
|
101
|
+
"angle": 0,
|
|
102
|
+
"pivot": {
|
|
103
|
+
"x": 0.5,
|
|
104
|
+
"y": 0.5
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"front": true,
|
|
108
|
+
"highlight": true,
|
|
109
|
+
"id": "c0",
|
|
110
|
+
"z": 3
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"zones": [],
|
|
114
|
+
"arrows": []
|
|
115
|
+
},
|
|
116
|
+
"palette": {
|
|
117
|
+
"black": "#4a5440",
|
|
118
|
+
"white": "#fde6c4",
|
|
119
|
+
"red": "#e34a4a",
|
|
120
|
+
"orange": "#d6ad71",
|
|
121
|
+
"yellow": "#b58712",
|
|
122
|
+
"green": "#3b5450",
|
|
123
|
+
"cyan": "#527575",
|
|
124
|
+
"blue": "#43637a",
|
|
125
|
+
"violet": "#698996",
|
|
126
|
+
"pink": "#c48787",
|
|
127
|
+
"darkGray": "#2c2321",
|
|
128
|
+
"midGray": "#3f3631",
|
|
129
|
+
"lightGray": "#c5ac96"
|
|
130
|
+
},
|
|
131
|
+
"settings": {
|
|
132
|
+
"embedSymbols": true,
|
|
133
|
+
"stripData": false,
|
|
134
|
+
"mapColors": true,
|
|
135
|
+
"mapFont": true,
|
|
136
|
+
"primaryFont": null,
|
|
137
|
+
"secondaryFont": null
|
|
138
|
+
}
|
|
139
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "template",
|
|
3
|
+
"project": {
|
|
4
|
+
"description": "",
|
|
5
|
+
"background": "transparent",
|
|
6
|
+
"viewport": {
|
|
7
|
+
"pos": {
|
|
8
|
+
"x": -3468.624750374862,
|
|
9
|
+
"y": -56.49966716648288
|
|
10
|
+
},
|
|
11
|
+
"size": {
|
|
12
|
+
"x": 1139.2495007497241,
|
|
13
|
+
"y": 1518.9993343329659
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"cards": [
|
|
17
|
+
{
|
|
18
|
+
"model": "ah",
|
|
19
|
+
"rect": {
|
|
20
|
+
"pos": {
|
|
21
|
+
"x": -3024,
|
|
22
|
+
"y": 528
|
|
23
|
+
},
|
|
24
|
+
"size": {
|
|
25
|
+
"x": 250,
|
|
26
|
+
"y": 350
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"rot": {
|
|
30
|
+
"angle": 360,
|
|
31
|
+
"pivot": {
|
|
32
|
+
"x": 0.5,
|
|
33
|
+
"y": 0.5
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"front": true,
|
|
37
|
+
"highlight": true,
|
|
38
|
+
"id": "c40",
|
|
39
|
+
"z": 4
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"zones": [],
|
|
43
|
+
"arrows": [],
|
|
44
|
+
"stamps": []
|
|
45
|
+
},
|
|
46
|
+
"palette": {
|
|
47
|
+
"black": "#111111",
|
|
48
|
+
"white": "#eeeeee",
|
|
49
|
+
"red": "#df0000",
|
|
50
|
+
"orange": "#bb6600",
|
|
51
|
+
"yellow": "#ebeb0a",
|
|
52
|
+
"green": "#12be12",
|
|
53
|
+
"cyan": "#12be80",
|
|
54
|
+
"blue": "#1234de",
|
|
55
|
+
"violet": "#8212d3",
|
|
56
|
+
"pink": "#e212e2",
|
|
57
|
+
"darkGray": "#333333",
|
|
58
|
+
"midGray": "#666666",
|
|
59
|
+
"lightGray": "#aaaaaa"
|
|
60
|
+
},
|
|
61
|
+
"settings": {
|
|
62
|
+
"embedSymbols": false,
|
|
63
|
+
"stripData": false,
|
|
64
|
+
"mapColors": true,
|
|
65
|
+
"mapFont": true,
|
|
66
|
+
"primaryFont": null,
|
|
67
|
+
"secondaryFont": null
|
|
68
|
+
}
|
|
69
|
+
}
|