No description
assets | ||
levels | ||
src | ||
.gitignore | ||
build.rs | ||
Cargo.lock | ||
Cargo.toml | ||
Makefile | ||
README.md | ||
rustfmt.toml |
marble machinations
(working title)
logic mostly like https://git.crispypin.cc/CrispyPin/marble
todo
- comments
- accessibility
- ui scaling
- background colour setting
- hotkeys for everything
- more levels
- scroll output bytes
- make direct power (comparator -> machine) work, (needs storing power direction in machine tiles)
- cut selections, copy to system clipboard
- timestamps in solutions and blueprints
- lock tile types for early levels to make it less overwhelming
- display tool variant more clearly (it's not obvious there are more states)
- option to use 8-bit marbles?
- blueprint rotation?
physics
- find direct bounces (todo consistency)
- execute direct bounces
- mark tiles as Claimed, ClaimedIndirect, BlockedIndirect, Blocked
- direct movements can move to any but Blocked tiles
- indirect movements can only move to ClaimedIndirect
- Claimed + ClaimedIndirect = BlockedIndirect
- ClaimedIndirect + ClaimedIndirect = BlockedIndirect
- Claimed + Claimed = Blocked
- BlockedIndirect + Claimed = Claimed
file hierarchy
- assets/
- levels/
- chapter_01.json
- chapter_02.json
- sandbox.json
- user/
- solutions/
- output/
- solution_0.json
- solution_1.json
- copy_input/
- solution_0.json
- solution_3.json
- blueprints
- blueprint_0.json
levels
intro, basic mechanics
- output a zero (marble, io)
- output multiple numbers in sequence (digits)
- output zeroes forever (looping, button, silo output)
- copy the input (input)
- copy only odd input numbers (comparator, math, flipper)
0-terminated list processing
- copy the second list
- calculate list length (math, silo input)
- count instances of 5 in a list
- reverse a list (bouncing)
user-friendly numbers
- convert a number to decimal ascii
- parse an ascii number
- convert text to lowercase
advanced list processing
- index a list
- search a list
- add two lists element-wise
- sort list