Compare commits

...

5 Commits

Author SHA1 Message Date
Michiel 90592ccfe6
Add files via upload 2018-10-04 09:52:39 +02:00
Michiel c8440f4f1c
Add files via upload 2018-09-30 14:41:44 +02:00
Michiel e6e903caba
Add files via upload 2018-09-26 05:51:47 +02:00
Michiel ef91a73302
Add files via upload 2018-09-23 18:19:09 +02:00
Michiel c65923f2dc
Update README.txt 2018-09-19 15:58:34 +02:00
2 changed files with 49 additions and 33 deletions

View File

@ -4,3 +4,5 @@ Depends default
Licenses: code WTFPL Licenses: code WTFPL
For use with mapgens V6 or indev, adds pools to floatlands. For use with mapgens V6 or indev, adds pools to floatlands.
More or less works with valleys, I don't think it works with v7.
Not tested on Carpathian.

View File

@ -5,7 +5,7 @@
-- Parameters -- Parameters
local YMAX = 170 -- Maximum altitude for pools local YMAX = 195 -- Maximum altitude for pools
local FLOW = 256 local FLOW = 256
-- Stuff -- Stuff
@ -16,35 +16,33 @@ highlandpools = {}
function highlandpools_remtree(x, y, z, area, data) function highlandpools_remtree(x, y, z, area, data)
local c_tree = minetest.get_content_id("default:tree") local c_tree = minetest.get_content_id("default:tree")
local c_ethbirch = minetest.get_content_id("ethereal.birchtree")
local c_apple = minetest.get_content_id("default:apple") local c_apple = minetest.get_content_id("default:apple")
local c_leaves = minetest.get_content_id("default:leaves") local c_leaves = minetest.get_content_id("default:leaves")
local c_air = minetest.get_content_id("air") local c_air = minetest.get_content_id("air")
for j = 1, 7 do -- for j = 1, 7 do
for i = -2, 2 do -- for i = -2, 2 do
for k = -2, 2 do -- for k = -2, 2 do
local vi = area:index(x+i, y+j, z+k) -- local vi = area:index(x+i, y+j, z+k)
if data[vi] == c_tree -- if data[vi] == c_tree
or data[vi] == c_apple -- or data[vi] == c_apple
or data[vi] == c_ethbirch -- or data[vi] == c_leaves then
or data[vi] == c_leaves then -- data[vi] = c_air
data[vi] = c_air -- end
end -- end
end -- end
end -- end
end -- for j = 1, 7 do
for j = 1, 7 do -- for i = -2, 2 do
for i = -2, 2 do -- for k = -2, 2 do
for k = -2, 2 do -- local vi = area:index(x+i, y-j, z+k)
local vi = area:index(x+i, y-j, z+k) -- if data[vi] == c_tree
if data[vi] == c_tree -- or data[vi] == c_apple
or data[vi] == c_apple -- or data[vi] == c_leaves then
or data[vi] == c_leaves then -- data[vi] = c_air
data[vi] = c_air -- end
end -- end
end -- end
end -- end
end
end end
-- On generated function -- On generated function
@ -72,6 +70,10 @@ minetest.register_on_generated(function(minp, maxp, seed)
local c_ignore = minetest.get_content_id("ignore") local c_ignore = minetest.get_content_id("ignore")
local c_watsour = minetest.get_content_id("default:river_water_source") local c_watsour = minetest.get_content_id("default:river_water_source")
local c_grass = minetest.get_content_id("default:dirt_with_grass") local c_grass = minetest.get_content_id("default:dirt_with_grass")
local c_grass2 = minetest.get_content_id("aotearoa:restiad_peat")
local c_grass3 = minetest.get_content_id("default:dirt_with_coniferous_litter")
local c_grass4 = minetest.get_content_id("aotearoa:forest_peat")
local c_grass5 = minetest.get_content_id("aotearoa:dirt_with_dark_litter")
local c_tree = minetest.get_content_id("default:tree") local c_tree = minetest.get_content_id("default:tree")
local c_apple = minetest.get_content_id("default:apple") local c_apple = minetest.get_content_id("default:apple")
local c_leaves = minetest.get_content_id("default:leaves") local c_leaves = minetest.get_content_id("default:leaves")
@ -90,6 +92,18 @@ minetest.register_on_generated(function(minp, maxp, seed)
elseif c_node == c_grass then elseif c_node == c_grass then
yasurf = y + 1 yasurf = y + 1
break break
elseif c_node == c_grass2 then
yasurf = y + 1
break
elseif c_node == c_grass3 then
yasurf = y + 1
break
elseif c_node == c_grass4 then
yasurf = y + 1
break
elseif c_node == c_grass5 then
yasurf = y + 1
break
end end
end end
if yasurf then if yasurf then
@ -163,7 +177,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
local vin = area:index(x, yasurf, z + 1) local vin = area:index(x, yasurf, z + 1)
local vis = area:index(x, yasurf, z - 1) local vis = area:index(x, yasurf, z - 1)
if data[vie] == c_tree then if data[vie] == c_tree then
highlandpools_remtree(x + 1, yasurf, z, area, data) --highlandpools_remtree(x + 1, yasurf, z, area, data)
data[vie] = c_watsour data[vie] = c_watsour
elseif data[vie] == c_air elseif data[vie] == c_air
or data[vie] == c_apple or data[vie] == c_apple
@ -171,7 +185,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
data[vie] = c_watsour data[vie] = c_watsour
end end
if data[viw] == c_tree then if data[viw] == c_tree then
highlandpools_remtree(x - 1, yasurf, z, area, data) --highlandpools_remtree(x - 1, yasurf, z, area, data)
data[viw] = c_watsour data[viw] = c_watsour
elseif data[viw] == c_air elseif data[viw] == c_air
or data[viw] == c_apple or data[viw] == c_apple
@ -179,7 +193,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
data[viw] = c_watsour data[viw] = c_watsour
end end
if data[vin] == c_tree then if data[vin] == c_tree then
highlandpools_remtree(x, yasurf, z + 1, area, data) --highlandpools_remtree(x, yasurf, z + 1, area, data)
data[vin] = c_watsour data[vin] = c_watsour
elseif data[vin] == c_air elseif data[vin] == c_air
or data[vin] == c_apple or data[vin] == c_apple
@ -187,7 +201,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
data[vin] = c_watsour data[vin] = c_watsour
end end
if data[vis] == c_tree then if data[vis] == c_tree then
highlandpools_remtree(x, yasurf, z - 1, area, data) --highlandpools_remtree(x, yasurf, z - 1, area, data)
data[vis] = c_watsour data[vis] = c_watsour
elseif data[vis] == c_air elseif data[vis] == c_air
or data[vis] == c_apple or data[vis] == c_apple
@ -243,7 +257,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
vm:calc_lighting() vm:calc_lighting()
vm:write_to_map(data) vm:write_to_map(data)
local chugent = math.ceil((os.clock() - t1) * 1000) --local chugent = math.ceil((os.clock() - t1) * 1000)
--print ("[highlandpools] time "..chugent.." ms") --print ("[highlandpools] time "..chugent.." ms")
end) end)
@ -252,7 +266,7 @@ local function dissolve(pos_dissolve, pos_liquid)
local name = node.name local name = node.name
local nodedef = minetest.registered_nodes[name] local nodedef = minetest.registered_nodes[name]
if nodedef and nodedef.liquidtype ~= "none" then if nodedef and nodedef.liquidtype ~= "none" then
minetest.remove_node(pos_dissolve) minetest.set_node(pos_dissolve, {name="air"})
return true return true
end end
end end