Pushed some more small improvements, and starting working on a generic "shapes" API, stuff like the torus above, or balls, cylinders, etc. https://github.com/lambdaisland/witchcraft
Still really amused at how well this worked as an "elevator"
(e/listen! :player-interact
::beam-me-up
(fn [{:keys [clickedBlock player action]}]
(when (and clickedBlock
(= :stone-button (wc/material-name clickedBlock))
(= :right-click-block action))
(case (wc/xyz clickedBlock)
;; up
[689.0 66.0 -846.0]
(wc/teleport player {:x 696
:y 104.5
:z -833.3
:pitch -3.15
:yaw -179})
;; down
[695.0 105.0 -834.0]
(wc/teleport player {:x 690.4144080426516
:y 65.5
:z -844.6999999880791
:pitch -2.6994934
:yaw 176.85172})
nil))))pretty readable IMO