aboutsummaryrefslogtreecommitdiff
path: root/init.lua
diff options
context:
space:
mode:
authorElias Fleckenstein <eliasfleckenstein@web.de>2020-10-21 18:54:57 +0200
committerElias Fleckenstein <eliasfleckenstein@web.de>2020-10-21 18:54:57 +0200
commit5972af39a307b3a80802de0ff9fa9e8a0da7a539 (patch)
treea8b08174eecb2544828a65e5616463639516e762 /init.lua
downloadperlin-5972af39a307b3a80802de0ff9fa9e8a0da7a539.tar.xz
Initial CommitHEADmaster
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua33
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)