diff options
author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-10-21 18:54:57 +0200 |
---|---|---|
committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-10-21 18:54:57 +0200 |
commit | 5972af39a307b3a80802de0ff9fa9e8a0da7a539 (patch) | |
tree | a8b08174eecb2544828a65e5616463639516e762 /init.lua | |
download | perlin-5972af39a307b3a80802de0ff9fa9e8a0da7a539.tar.xz |
Diffstat (limited to 'init.lua')
-rw-r--r-- | init.lua | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..4e05c97 --- /dev/null +++ b/init.lua @@ -0,0 +1,33 @@ +perlin = dofile(minetest.get_modpath("perlin") .. "/perlin.lua") + +local start, height, stretch + +minetest.register_chatcommand("perlin", { + description = "Start perlin terraforming", + param = "<height> <stretch>", + func = function(param) + local sparam = param:split(" ") + start, height, stretch = math.floor(minetest.localplayer:get_pos().y), sparam[1], sparam[2] + end +}) + +minetest.register_chatcommand("perlinstop", { + description = "Abort perlin terraforming", + func = function(param) + start, height, stretch = nil + end +}) + +minetest.register_globalstep(function() + if start then + local player = minetest.localplayer + local pos = vector.floor(player:get_pos()) + for x = pos.x - 1, pos.x + 1 do + for z = pos.z - 1, pos.z + 1 do + local y = math.floor(start + height * perlin:noise(x / stretch, z / stretch)) + local p = vector.new(x, y, z) + minetest.place_node(p) + end + end + end +end) |