From 5499259f1b75a9585da7f2600348cf548ec35830 Mon Sep 17 00:00:00 2001 From: Paul Liverman III Date: Sat, 4 Mar 2017 11:21:38 -0800 Subject: [PATCH] remove deprecated module(), better README --- README.md | 44 +++++++++++++++++++++-------------------- heightmap/heightmap.lua | 11 +++++++---- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 7a01290..32b7e67 100644 --- a/README.md +++ b/README.md @@ -11,33 +11,35 @@ The heightmap module uses the diamond-square algorithm to generate cloud or plas Usage ----- - -- import module - require "heightmap" +```lua +-- import module +local heightmap = require "heightmap" - -- create 32x32 heightmap - map = heightmap.create(32, 32) +-- create 32x32 heightmap +map = heightmap.create(32, 32) - -- examine each height value - for x = 0, map.w do - for y = 0, map.h do - print(map[x][y]) - end +-- examine each height value +for x = 0, map.w do + for y = 0, map.h do + print(map[x][y]) end +end - -- define a custom height function - -- (reusing the default but scaling it) - function f(map, x, y, d, h) - return 2 * heightmap.defaultf(map, x, y, d, h) - end +-- define a custom height function +-- (reusing the default but scaling it) +function f(map, x, y, d, h) + return 2 * heightmap.defaultf(map, x, y, d, h) +end - -- use it to create a larger non-square heightmap - map = heightmap.create(100, 200, f) - - -- create a map with normalized range of -1 to 1 - map = heightmap.create(150, 300, -1, 1) +-- use it to create a larger non-square heightmap +map = heightmap.create(100, 200, f) - -- use the custom height function and normalize with a range of 10 to 20 - map = heightmap.create(200, 200, f, 10, 20) +-- create a map with normalized range of -1 to 1 +map = heightmap.create(150, 300, -1, 1) + +-- use the custom height function and normalize with a range of 10 to 20 +map = heightmap.create(200, 200, f, 10, 20) +``` How it Works ------------ diff --git a/heightmap/heightmap.lua b/heightmap/heightmap.lua index 1e7ae42..0b267d2 100644 --- a/heightmap/heightmap.lua +++ b/heightmap/heightmap.lua @@ -3,8 +3,6 @@ local max, random = math.max, math.random -module(...) - -- Find power of two sufficient for size local function pot(size) local pot = 2 @@ -88,13 +86,13 @@ end -- d is depth (from size to 1 by powers of two) -- h is mean height at map[x][y] (from square/diamond of radius d) -- returns h' which is used to set map[x][y] -function defaultf(map, x, y, d, h) +local function defaultf(map, x, y, d, h) return h + (random()-0.5)*d end -- Create a heightmap using the specified height function (or default) -- map[x][y] where x from 0 to map.w and y from 0 to map.h -function create(width, height, f) +local function create(width, height, f) f = f and f or defaultf -- make heightmap local map = diamondsquare(pot(max(width, height)), f) @@ -104,3 +102,8 @@ function create(width, height, f) map.w, map.h = width, height return map end + +return { + defaultf = defaultf, + create = create +}