]> git.jsancho.org Git - dungeon-master.git/blob - src/plugins/default/main.scm
7a64459f52d2908cfd6c4141e9ecdd46497001c1
[dungeon-master.git] / src / plugins / default / main.scm
1 (define-module (dungeon-master plugins default)
2   #:use-module ((dungeon-master) #:prefix dm:))
3
4 (define (random-bool)
5   (= (random 2) 1))
6
7 (define pi 3.141592654)
8
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))
14
15 (define (build-patches patches)
16   (define* (get-points n seed #:optional (l '()))
17     (cond ((> n 0)
18            (let* ((a (+ seed (* (sqrt n) 5)))
19                   (r (if (= n 0)
20                          0
21                          (+ 10 (* n (+ 2 (random:exp))))))
22                   (point (list
23                           (* (cos a) r)
24                           (* (sin a) r))))
25              (get-points (- n 1) seed (cons point l))))
26           (else
27            l)))
28
29   (let* ((sa (* (random:exp) 2 pi))
30          (points (get-points (* 8 patches) sa)))
31     (display points)
32     (newline)))
33
34 (dm:register-generator "city-map-generator" city-map-generator)