1 (define-module (dungeon-master plugins default)
2 #:use-module ((dungeon-master) #:prefix dm:))
7 (define pi 3.141592654)
9 (define (city-map-generator patches)
10 "City generator from https://github.com/watabou/TownGeneratorOS/blob/master/Source/com/watabou/towngenerator/building/Model.hx"
11 (set! *random-state* (random-state-from-platform))
12 (when (= patches -1) (set! patches 15))
13 (build-patches patches))
15 (define (build-patches patches)
16 (define* (get-points n seed #:optional (l '()))
18 (let* ((a (+ seed (* (sqrt n) 5)))
21 (+ 10 (* n (+ 2 (random:exp))))))
25 (get-points (- n 1) seed (cons point l))))
29 (let* ((sa (* (random:exp) 2 pi))
30 (points (get-points (* 8 patches) sa)))
34 (dm:register-generator "city-map-generator" city-map-generator)