Bugfix floating wide dirt paths. Add bridge structure of mod junglewood
This commit is contained in:
parent
e9817b7c05
commit
fdecf42f5f
@ -1,4 +1,4 @@
|
||||
pathv6alt 0.2.6 by paramat
|
||||
pathv6alt 0.2.7 by paramat
|
||||
For latest stable Minetest back to 0.4.8
|
||||
Depends default
|
||||
Licenses: code WTFPL
|
||||
|
56
init.lua
56
init.lua
@ -1,19 +1,18 @@
|
||||
-- pathv6alt 0.2.6 by paramat
|
||||
-- pathv6alt 0.2.7 by paramat
|
||||
-- For latest stable Minetest and back to 0.4.8
|
||||
-- Depends default
|
||||
-- License: code WTFPL
|
||||
|
||||
-- compatible with higher terrains
|
||||
-- TODO
|
||||
-- bridge spine structure between columns
|
||||
-- add bridge structure of mod junglewood
|
||||
-- bugfix floating wide dirt paths
|
||||
|
||||
-- Parameters
|
||||
|
||||
local WALK = true -- Walkable paths
|
||||
local YMAXMINP = 128 -- Maximum minp.y of generated chunks (-32 for default mapgen v6. 48, 128, 208 for higher)
|
||||
local YMAXMINP = 48 -- Maximum minp.y of generated chunks (-32 for default mapgen v6. 48, 128, 208 for higher)
|
||||
local HSAMP = 0.85 -- Height select amplitude. Maximum steepness of paths
|
||||
local HSOFF = -0.2 -- Height select noise offset. Bias paths towards base (-) or higher (+) terrain
|
||||
local TCOL = 0.5 -- Column noise threshold. Column density
|
||||
local TCOL = 0.2 -- Column noise threshold. Bridge column density
|
||||
|
||||
-- Mapgen v6 parameters
|
||||
|
||||
@ -151,7 +150,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
||||
|
||||
local c_wood = minetest.get_content_id("pathv6alt:wood")
|
||||
local c_path = minetest.get_content_id("pathv6alt:path")
|
||||
local c_column = minetest.get_content_id("pathv6alt:tree")
|
||||
local c_column = minetest.get_content_id("pathv6alt:junglewood")
|
||||
|
||||
local c_stairn = minetest.get_content_id("pathv6alt:stairn")
|
||||
local c_stairs = minetest.get_content_id("pathv6alt:stairs")
|
||||
@ -224,7 +223,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
||||
local tblend = 0.5 + HSAMP * (hselect + HSOFF)
|
||||
tblend = math.min(math.max(tblend, 0), 1)
|
||||
local tlevel = base * (1 - tblend) + higher * tblend + mudadd
|
||||
local pathy = math.floor(math.max(tlevel, 4))
|
||||
local pathy = math.floor(math.max(tlevel, 6))
|
||||
|
||||
if (n_patha >= 0 and n_xprepatha < 0) or (n_patha < 0 and n_xprepatha >= 0) -- patha
|
||||
or (n_patha >= 0 and n_zprepatha < 0) or (n_patha < 0 and n_zprepatha >= 0)
|
||||
@ -373,6 +372,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
||||
data[vi] = c_pstairsw
|
||||
end
|
||||
end
|
||||
|
||||
for y = pathy + 1, excatop do
|
||||
for k = -1, 1 do
|
||||
local vi = area:index(x-1, y, z+k)
|
||||
@ -414,7 +414,8 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
||||
else
|
||||
data[vi] = c_path
|
||||
end
|
||||
elseif nodid ~= c_wood and nodid ~= c_path then
|
||||
elseif nodid ~= c_wood
|
||||
and nodid ~= c_path then
|
||||
data[vi] = c_air
|
||||
end
|
||||
vi = vi + 1
|
||||
@ -423,9 +424,15 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
||||
end
|
||||
end
|
||||
|
||||
if wood and abscol < TCOL then
|
||||
local vi = area:index(x, pathy - 1, z)
|
||||
for y = pathy - 1, y0, -1 do
|
||||
if wood then
|
||||
local vi = area:index(x, pathy - 1, z) -- bridge structure
|
||||
data[vi] = c_column
|
||||
vi = vi - emerlen
|
||||
data[vi] = c_column
|
||||
|
||||
if abscol < TCOL then -- columns
|
||||
local vi = area:index(x, pathy - 3, z)
|
||||
for y = pathy - 3, y0, -1 do
|
||||
local nodid = data[vi]
|
||||
if nodid == c_stone
|
||||
or nodid == c_destone then
|
||||
@ -437,6 +444,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif (n_pathc >= 0 and n_xprepathc < 0) or (n_pathc < 0 and n_xprepathc >= 0) -- pathc
|
||||
or (n_pathc >= 0 and n_zprepathc < 0) or (n_pathc < 0 and n_zprepathc >= 0)
|
||||
or (n_pathd >= 0 and n_xprepathd < 0) or (n_pathd < 0 and n_xprepathd >= 0) -- pathd
|
||||
@ -460,6 +468,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
||||
end
|
||||
end
|
||||
elseif pathy >= y0 then -- path in chunk, place path node brush
|
||||
local wood = true -- scan disk at path level for ground
|
||||
for k = -2, 2 do
|
||||
local vi = area:index(x-2, pathy, z+k)
|
||||
for i = -2, 2 do
|
||||
@ -647,7 +656,8 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
||||
else
|
||||
data[vi] = c_path
|
||||
end
|
||||
elseif nodid ~= c_wood and nodid ~= c_path then
|
||||
elseif nodid ~= c_wood
|
||||
and nodid ~= c_path then
|
||||
data[vi] = c_air
|
||||
end
|
||||
end
|
||||
@ -657,11 +667,24 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
||||
end
|
||||
end
|
||||
|
||||
if wood and abscol < TCOL then
|
||||
if wood then
|
||||
for i = -1, 1 do -- bridge structure
|
||||
for k = -1, 1 do
|
||||
if not (i == 0 and k == 0) then
|
||||
local vi = area:index(x+i, pathy-1, z+k)
|
||||
for y = 1, 2 do
|
||||
data[vi] = c_column
|
||||
vi = vi - emerlen
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if abscol < TCOL then -- columns
|
||||
for i = -1, 1, 2 do
|
||||
for k = -1, 1, 2 do
|
||||
local vi = area:index(x+i, pathy-1, z+k)
|
||||
for y = pathy - 1, y0, -1 do
|
||||
local vi = area:index(x+i, pathy-3, z+k)
|
||||
for y = pathy - 3, y0, -1 do
|
||||
local nodid = data[vi]
|
||||
if nodid == c_stone
|
||||
or nodid == c_destone then
|
||||
@ -677,6 +700,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
n_xprepatha = n_patha
|
||||
n_xprepathb = n_pathb
|
||||
|
16
nodes.lua
16
nodes.lua
@ -1,5 +1,5 @@
|
||||
minetest.register_node("pathv6alt:wood", {
|
||||
description = "Path Planks",
|
||||
description = "Mod wood",
|
||||
tiles = {"default_wood.png"},
|
||||
is_ground_content = false,
|
||||
groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
|
||||
@ -8,7 +8,7 @@ minetest.register_node("pathv6alt:wood", {
|
||||
})
|
||||
|
||||
minetest.register_node("pathv6alt:path", {
|
||||
description = "Path",
|
||||
description = "Dirt path",
|
||||
tiles = {"pathv6alt_path.png"},
|
||||
is_ground_content = false,
|
||||
groups = {crumbly=2},
|
||||
@ -16,15 +16,13 @@ minetest.register_node("pathv6alt:path", {
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("pathv6alt:tree", {
|
||||
description = "Tree",
|
||||
tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"},
|
||||
paramtype2 = "facedir",
|
||||
minetest.register_node("pathv6alt:junglewood", {
|
||||
description = "Mod junglewood",
|
||||
tiles = {"default_junglewood.png"},
|
||||
is_ground_content = false,
|
||||
groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
|
||||
drop = "default:tree",
|
||||
groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
|
||||
drop = "default:junglewood",
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_place = minetest.rotate_node
|
||||
})
|
||||
|
||||
minetest.register_node("pathv6alt:stairn", {
|
||||
|
Loading…
x
Reference in New Issue
Block a user