86c388644ac5
Collapse files
author | Steve Losh <steve@stevelosh.com> |
---|---|
date | Sat, 07 Jan 2017 19:14:51 +0000 |
parents | 1c92535d2aec |
children | 01ab77c9d46a |
branches/tags | (none) |
files | antipodes.asd src/flavor.lisp src/main.lisp src/world-generation.lisp |
Changes
--- a/antipodes.asd Sat Jan 07 19:11:35 2017 +0000 +++ b/antipodes.asd Sat Jan 07 19:14:51 2017 +0000 @@ -22,7 +22,6 @@ (:module "src" :serial t :components ((:file "utilities") - (:file "world-generation") (:module "aspects" :serial t :components ((:file "coordinates") (:file "holdable")
--- a/src/flavor.lisp Sat Jan 07 19:11:35 2017 +0000 +++ b/src/flavor.lisp Sat Jan 07 19:14:51 2017 +0000 @@ -30,5 +30,5 @@ (defun random-flavor () (let ((r (random 1.0))) - (cond ((< r 0.50) (animal)) + (cond ((< r 0.20) (animal)) (t (wind)))))
--- a/src/main.lisp Sat Jan 07 19:11:35 2017 +0000 +++ b/src/main.lisp Sat Jan 07 19:14:51 2017 +0000 @@ -28,6 +28,36 @@ (defparameter *food-density* 1/6000) +;;;; Heightmap ---------------------------------------------------------------- +;;; TODO: Switch to something less samey +(defparameter *map-size* 2000) +(defparameter *noise-scale* 0.03) +(defparameter *noise-seed-x* (random 1000.0)) +(defparameter *noise-seed-y* (random 1000.0)) + +(defun make-empty-heightmap () + (make-array (list *map-size* *map-size*) + :element-type 'single-float + :initial-element 0.0)) + +(defun noise-heightmap (heightmap) + (iterate + (with ox = *noise-seed-x*) + (with oy = *noise-seed-x*) + (with scale = *noise-scale*) + (for (val x y) :in-array heightmap) + (setf (aref heightmap x y) + (black-tie:perlin-noise-single-float + (+ ox (* x scale)) + (+ oy (* y scale)) + 0.0)))) + +(defun generate-heightmap () + (let ((heightmap (make-empty-heightmap))) + (noise-heightmap heightmap) + heightmap)) + + ;;;; Colors ------------------------------------------------------------------- (defcolors (+white-black+ charms/ll:COLOR_WHITE charms/ll:COLOR_BLACK)
--- a/src/world-generation.lisp Sat Jan 07 19:11:35 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -(in-package :ap) - -;;;; Parameters --------------------------------------------------------------- -(defparameter *map-size* 2000) -(defparameter *noise-scale* 0.03) -(defparameter *noise-seed-x* (random 1000.0)) -(defparameter *noise-seed-y* (random 1000.0)) - - -;;;; Heightmap ---------------------------------------------------------------- -;;; TODO: Switch to something less samey - -(defun make-empty-heightmap () - (make-array (list *map-size* *map-size*) - :element-type 'single-float - :initial-element 0.0)) - -(defun noise-heightmap (heightmap) - (iterate - (with ox = *noise-seed-x*) - (with oy = *noise-seed-x*) - (with scale = *noise-scale*) - (for (val x y) :in-array heightmap) - (setf (aref heightmap x y) - (black-tie:perlin-noise-single-float - (+ ox (* x scale)) - (+ oy (* y scale)) - 0.0)))) - -(defun generate-heightmap () - (let ((heightmap (make-empty-heightmap))) - (noise-heightmap heightmap) - heightmap))