From f7b9ee450cb17e95aac505506b99b6dc86762dd7 Mon Sep 17 00:00:00 2001 From: MisterE123 <61124264+MisterE123@users.noreply.github.com> Date: Sat, 7 Jan 2023 12:13:29 -0500 Subject: [PATCH] pass original_content to logic --- README.md | 14 +++++++++----- example.lua | 4 ++-- init.lua | 6 +++--- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 3e0f39a..8fd701f 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,9 @@ local c_stone = minetest.get_content_id("default:stone") local c_water = minetest.get_content_id("default:water_source") local water_level = 0 local old_logic = luamap.logic -function luamap.logic(noise_vals,x,y,z,seed) +function luamap.logic(noise_vals,x,y,z,seed,original_content) -- get any terrain defined in another mod - local content = old_logic(noise_vals,x,y,z,seed) + local content = old_logic(noise_vals,x,y,z,seed,original_content) -- use our own logic to add to that logic -- make any nodes below sea level water and below stone level stone if y < water_level then @@ -54,9 +54,9 @@ local c_stone = minetest.get_content_id("default:stone") local c_water = minetest.get_content_id("default:water_source") local water_level = 0 local old_logic = luamap.logic -function luamap.logic(noise_vals,x,y,z,seed) +function luamap.logic(noise_vals,x,y,z,seed,original_content) -- get any terrain defined in another mod - local content = old_logic(noise_vals,x,y,z,seed) + local content = old_logic(noise_vals,x,y,z,seed,original_content) if y < water_level then content = c_water @@ -92,7 +92,7 @@ luamap.register_noise("terrainmap",{ ### luamap.logic ```lua -luamap.logic(noise_vals,x,y,z,seed) +luamap.logic(noise_vals,x,y,z,seed,original_content) ``` DESCRIPTION: Override this function to define mapgen logic. Best practice is to @@ -121,6 +121,10 @@ The coordinates of the position to set the content for The seed passed to minetest.register_on_generated() +`original_content` + +The content id that the original mapgen created. Air if set to singlenode. + RETURNS: should return a content id such as that gotten from diff --git a/example.lua b/example.lua index 46333f0..73c4f2d 100644 --- a/example.lua +++ b/example.lua @@ -26,10 +26,10 @@ local water_level = 0 local old_logic = luamap.logic -function luamap.logic(noise_vals,x,y,z,seed) +function luamap.logic(noise_vals,x,y,z,seed,original_content) -- get any terrain defined in another mod - local content = old_logic(noise_vals,x,y,z,seed) + local content = old_logic(noise_vals,x,y,z,seed,original_content) if y < water_level then content = c_water diff --git a/init.lua b/init.lua index f28a48a..8ffc9b1 100644 --- a/init.lua +++ b/init.lua @@ -41,8 +41,8 @@ end local c_air = minetest.get_content_id("air") -- override this function -function luamap.logic(noise_vals,x,y,z,seed) - return c_air +function luamap.logic(noise_vals,x,y,z,seed,original_content) + return original_content end -- override this function @@ -131,7 +131,7 @@ minetest.register_on_generated(function(minp, maxp, seed) noise_vals[name] = elements.nvals[i3dy] end end - data[vi] = logic(noise_vals,x,y,z,seed) + data[vi] = logic(noise_vals,x,y,z,seed,data[vi]) i3dy = i3dy + ystride end