74 lines
No EOL
1.4 KiB
Markdown
74 lines
No EOL
1.4 KiB
Markdown
# marble machinations
|
|
(working title)
|
|
|
|
logic mostly like https://git.crispypin.cc/CrispyPin/marble
|
|
|
|
## todo
|
|
cleanup: unpowered texture names x_off -> x
|
|
sim/speed control gui
|
|
(option) display input as numbers
|
|
scroll output
|
|
default i/o text modes specified per level
|
|
properly center view
|
|
make marble movement not order-dependent (`>ooo <` does not behave symmetrically)
|
|
blueprints
|
|
scroll level list
|
|
|
|
decide on marble data size (u32 or byte?)
|
|
blueprint rotation
|
|
|
|
## file hierarchy
|
|
```
|
|
- assets/
|
|
- storage/
|
|
- levels/
|
|
- 00_zeroes.json
|
|
- 01_cat.json
|
|
- 02_parse.json
|
|
- 99_sandbox.json
|
|
- solutions/
|
|
- 00_zeroes/
|
|
- solution_0.json
|
|
- solution_1.json
|
|
- factorial_194726/
|
|
- solution_0.json
|
|
- solution_1.json
|
|
- blueprints
|
|
- blueprint_0.json
|
|
- custom_levels/
|
|
- factorial_194726.json
|
|
```
|
|
|
|
`00_zeroes.json`
|
|
```json
|
|
{
|
|
"id": "00_zeroes",
|
|
"name": "Zeroes",
|
|
"description": "learn how to output data",
|
|
"init_board": null,
|
|
"inputs": [],
|
|
"outputs": [0, 0, 0, 0, 0, 0, 0, 0]
|
|
}
|
|
```
|
|
`00_zeroes/solution_0.json`
|
|
```json
|
|
{
|
|
"level_id": "00_zeroes", //redundant, useful if sharing solution files?
|
|
"solution_id": "solution_0",
|
|
"name": "unnamed 1",
|
|
"board": "oo\nP*\n|-",
|
|
"score": {
|
|
"cycles": 8,
|
|
"tiles": 6,
|
|
"area": 6,
|
|
}
|
|
}
|
|
```
|
|
|
|
`blueprints/blueprint_0.json`
|
|
```json
|
|
{
|
|
"name": "fast printer",
|
|
"board": "oo\nP*\n|-"
|
|
}
|
|
``` |