X-Git-Url: https://git.jsancho.org/?p=dungeon-master.git;a=blobdiff_plain;f=src%2Fplugins%2Fdefault%2Fmain.scm;h=7a64459f52d2908cfd6c4141e9ecdd46497001c1;hp=b95e41cfed616e8c252795cbcfc896ad51f48c55;hb=4f1840da0753c2e3e9d94cceb4127c7fee77dcb4;hpb=770a848889b174dd4a1dc6422c699cd5640fe318 diff --git a/src/plugins/default/main.scm b/src/plugins/default/main.scm index b95e41c..7a64459 100644 --- a/src/plugins/default/main.scm +++ b/src/plugins/default/main.scm @@ -1,5 +1,34 @@ -(define (hello-world) - (display "Hello World!") - (newline)) +(define-module (dungeon-master plugins default) + #:use-module ((dungeon-master) #:prefix dm:)) -(register-generator "hello-world" hello-world) +(define (random-bool) + (= (random 2) 1)) + +(define pi 3.141592654) + +(define (city-map-generator patches) + "City generator from https://github.com/watabou/TownGeneratorOS/blob/master/Source/com/watabou/towngenerator/building/Model.hx" + (set! *random-state* (random-state-from-platform)) + (when (= patches -1) (set! patches 15)) + (build-patches patches)) + +(define (build-patches patches) + (define* (get-points n seed #:optional (l '())) + (cond ((> n 0) + (let* ((a (+ seed (* (sqrt n) 5))) + (r (if (= n 0) + 0 + (+ 10 (* n (+ 2 (random:exp)))))) + (point (list + (* (cos a) r) + (* (sin a) r)))) + (get-points (- n 1) seed (cons point l)))) + (else + l))) + + (let* ((sa (* (random:exp) 2 pi)) + (points (get-points (* 8 patches) sa))) + (display points) + (newline))) + +(dm:register-generator "city-map-generator" city-map-generator)