diff options
Diffstat (limited to 'community-garden.scm')
-rw-r--r-- | community-garden.scm | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/community-garden.scm b/community-garden.scm index 6d6af5d..b570e01 100644 --- a/community-garden.scm +++ b/community-garden.scm @@ -22,89 +22,3 @@ (goblins ocapn netlayer onion) (ice-9 atomic) (oop goops)) - -(define garden-vat (spawn-vat)) -(define catbird-vat (spawn-vat)) -(define alice-vat (spawn-vat)) -(define-vat-run garden-run garden-vat) -(define-vat-run catbird-run catbird-vat) -(define-vat-run alice-run alice-vat) -(define the-botanist (garden-run (spawn ^botanist))) -(define the-garden-gate (garden-run (spawn ^garden-gate the-botanist))) -(define sunflower/approved - (garden-run ($ the-botanist 'approve-plant sunflower))) -(define cabbage/approved - (garden-run ($ the-botanist 'approve-plant cabbage))) -(define our-garden - (garden-run - (spawn ^garden - "Spritely Institute Community Garden" - (make-garden-bed 8 8) - the-garden-gate))) -(define our-garden-community - (garden-run - (spawn ^garden-community our-garden))) -(define onion-netlayer (garden-run (new-onion-netlayer))) -(define mycapn - (garden-run - (let* ((mycapn (spawn-mycapn onion-netlayer)) - (community-sref ($ mycapn 'register our-garden-community 'onion))) - (format #t "Connect to: ~a\n" (ocapn-id->string community-sref)) - mycapn))) - -(define alice - (alice-run (<- our-garden-community 'register-gardener "Alice"))) -(define (alice-plant x y plant) - (alice-run (on alice - (lambda (alice) - (<- alice 'plant x y plant))))) - -(alice-plant 1 1 sunflower/approved) -(alice-plant 2 1 sunflower/approved) -(alice-plant 1 2 sunflower/approved) -(alice-plant 2 2 sunflower/approved) -(alice-plant 5 1 cabbage/approved) -(alice-plant 6 1 cabbage/approved) -(alice-plant 5 2 cabbage/approved) -(alice-plant 6 2 cabbage/approved) - -(define catbird-visitor - (catbird-run (<- our-garden-community 'register-gardener "Catbird Viewer"))) -(define catbird-garden-bed (make-atomic-box #f)) -(define catbird-garden-name (make-atomic-box #f)) -(catbird-run - (on catbird-visitor - (lambda (visitor) - (on (<- visitor 'get-garden-name) - (lambda (name) - (atomic-box-set! catbird-garden-name name)))))) - -(run-catbird - (lambda () - (let ((region (create-full-region #:name 'main)) - (scene (make <scene> #:name 'scratch))) - (replace-scene region scene) - (replace-major-mode scene (make <garden-mode>)) - (set! (camera region) - (make <camera-2d> - #:width %window-width - #:height %window-height)) - (attach-to scene - (make <canvas> - #:name 'background - #:painter - (with-style ((fill-color db32-elf-green)) - (fill - (rectangle (vec2 0.0 0.0) - %window-width - %window-height)))) - (make <garden-view> - #:name 'garden - #:vat catbird-vat - #:user catbird-visitor - #:name-box catbird-garden-name - #:garden-bed-box catbird-garden-bed - #:read-only? #f)))) - #:title "Community Garden" - #:width %window-width - #:height %window-height) |