;; Done (fork [actions]) ;; run actions with ctx but don't update current ctx - effectively a subprocess
;; Done (copy-to-mark mark) ;; copy a block to a mark
;; Done (cut-to-mark mark) ;; cut a block to a mark, replacing everything with a given material or air if not provided
;; Done (paste mark) ;; paste a previously copied or cut block against a mark
;; Done (copy mark radius) ;; copy a sphere of a given radius into a mark
;; Done (cut mark radius) ;; cut a sphere to mark, replacing everything with a material or air
Primitives :
(line-to-mark mark) ;; draw a line to the given mark
(line fwd left up) ;; draw a line from the current point
(box-to-mark mark kind) ;; draw a :filled, :box or :outline box to a given mark
(box fwd left up kind) ;; convenience function to draw a box of kind :filled, :hollow, :outline of a given size
(circle direction radius kind) ;; build a hollow circle with the flat part 'pointing' to direction, so a flat disc to walk on would be :up or :down - kind can be :filled or :outline
(sphere radius) ;; build a hollow sphere with a given radius, kind can be :filled or :hollow or :outline
Operations :
Primitives :