No description
Find a file
2024-10-08 21:51:31 +02:00
assets make selecting look nicer 2024-10-07 18:06:02 +02:00
levels fix marbles not working in negative quadrants 2024-10-07 17:57:07 +02:00
src reimplement marble behavior, making it more consistent in different directions. Triggers no longer activate from blocked marbles, and bounces take the same amount of time to travel through a chain of marbles in all directions 2024-10-08 21:51:31 +02:00
.gitignore solution saving and loading 2024-10-06 16:29:45 +02:00
Cargo.lock initial level selection gui 2024-10-06 12:39:36 +02:00
Cargo.toml initial level selection gui 2024-10-06 12:39:36 +02:00
README.md reimplement marble behavior, making it more consistent in different directions. Triggers no longer activate from blocked marbles, and bounces take the same amount of time to travel through a chain of marbles in all directions 2024-10-08 21:51:31 +02:00
rustfmt.toml init 2024-10-03 22:59:49 +02:00

marble machinations

(working title)

logic mostly like https://git.crispypin.cc/CrispyPin/marble

todo

(more levels) story/lore blueprints scroll level list should the output tile consume marbles like the bag instead of needing power? then input and output could be merged to one tile type make marble movement more consistent (>o o< depends on internal marble order) 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

{
  "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

{
  "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

{
  "name": "fast printer",
  "board": "oo\nP*\n|-"
}