forked from mtcontrib/plantlife_modpack
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
b597f99014
@ -17,7 +17,7 @@ minetest.register_node("cavestuff:pebble_1",{
|
|||||||
tiles = {"undergrowth_pebble.png"},
|
tiles = {"undergrowth_pebble.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = {cracky=3, stone=1},
|
groups = {cracky=3, stone=1, attached_node=1},
|
||||||
selection_box = cbox,
|
selection_box = cbox,
|
||||||
collision_box = cbox,
|
collision_box = cbox,
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
@ -37,7 +37,7 @@ minetest.register_node("cavestuff:pebble_2",{
|
|||||||
tiles = {"undergrowth_pebble.png"},
|
tiles = {"undergrowth_pebble.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = {cracky=3, stone=1, not_in_creative_inventory=1},
|
groups = {cracky=3, stone=1, attached_node=1, not_in_creative_inventory=1},
|
||||||
selection_box = cbox,
|
selection_box = cbox,
|
||||||
collision_box = cbox,
|
collision_box = cbox,
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
@ -50,7 +50,7 @@ minetest.register_node("cavestuff:desert_pebble_1",{
|
|||||||
tiles = {"default_desert_stone.png"},
|
tiles = {"default_desert_stone.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = {cracky=3, stone=1},
|
groups = {cracky=3, stone=1, attached_node=1},
|
||||||
selection_box = cbox,
|
selection_box = cbox,
|
||||||
collision_box = cbox,
|
collision_box = cbox,
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
@ -69,7 +69,7 @@ minetest.register_node("cavestuff:desert_pebble_2",{
|
|||||||
tiles = {"default_desert_stone.png"},
|
tiles = {"default_desert_stone.png"},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = {cracky=3, stone=1, not_in_creative_inventory=1},
|
groups = {cracky=3, stone=1, attached_node=1, not_in_creative_inventory=1},
|
||||||
selection_box = cbox,
|
selection_box = cbox,
|
||||||
collision_box = cbox,
|
collision_box = cbox,
|
||||||
sounds = default.node_sound_stone_defaults(),
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
@ -4,30 +4,44 @@
|
|||||||
-- TWiGS
|
-- TWiGS
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
local random = math.random
|
local fakenode = {
|
||||||
|
name = "default:stone", -- could be anything that's guaranteed to exist at mapgen time, and isn't buildable_to
|
||||||
|
param1 = 0,
|
||||||
|
param2 = 0
|
||||||
|
}
|
||||||
|
|
||||||
abstract_trunks.place_twig = function(pos)
|
abstract_trunks.place_twig = function(pos)
|
||||||
local twig_size = random(1,27)
|
local twig_size = math.random(1,27)
|
||||||
|
|
||||||
local right_here = {x=pos.x , y=pos.y+1, z=pos.z }
|
local right_here = {x=pos.x , y=pos.y+1, z=pos.z }
|
||||||
local north = {x=pos.x , y=pos.y+1, z=pos.z+1}
|
local north = {x=pos.x , y=pos.y+1, z=pos.z+1}
|
||||||
local north_east = {x=pos.x+1, y=pos.y+1, z=pos.z+1}
|
local north_east = {x=pos.x+1, y=pos.y+1, z=pos.z+1}
|
||||||
local east = {x=pos.x+1, y=pos.y+1, z=pos.z }
|
local east = {x=pos.x+1, y=pos.y+1, z=pos.z }
|
||||||
local south_east = {x=pos.x+1, y=pos.y+1, z=pos.z-1}
|
local south_east = {x=pos.x+1, y=pos.y+1, z=pos.z-1}
|
||||||
local south = {x=pos.x , y=pos.y+1, z=pos.z-1}
|
local south = {x=pos.x , y=pos.y+1, z=pos.z-1}
|
||||||
local south_west = {x=pos.x-1, y=pos.y+1, z=pos.z-1}
|
local south_west = {x=pos.x-1, y=pos.y+1, z=pos.z-1}
|
||||||
local west = {x=pos.x-1, y=pos.y+1, z=pos.z }
|
local west = {x=pos.x-1, y=pos.y+1, z=pos.z }
|
||||||
local north_west = {x=pos.x-1, y=pos.y+1, z=pos.z+1}
|
local north_west = {x=pos.x-1, y=pos.y+1, z=pos.z+1}
|
||||||
|
|
||||||
|
local node_here = minetest.get_node(right_here)
|
||||||
|
local node_north = minetest.get_node(north)
|
||||||
|
local node_n_e = minetest.get_node(north_east)
|
||||||
|
local node_east = minetest.get_node(east)
|
||||||
|
local node_s_e = minetest.get_node(south_east)
|
||||||
|
local node_south = minetest.get_node(south)
|
||||||
|
local node_s_w = minetest.get_node(south_west)
|
||||||
|
local node_west = minetest.get_node(west)
|
||||||
|
local node_n_w = minetest.get_node(north_west)
|
||||||
|
|
||||||
|
node_north = minetest.registered_nodes[node_north.name] and node_north or fakenode
|
||||||
|
node_n_e = minetest.registered_nodes[node_n_e.name] and node_n_e or fakenode
|
||||||
|
node_east = minetest.registered_nodes[node_east.name] and node_east or fakenode
|
||||||
|
node_s_e = minetest.registered_nodes[node_s_e.name] and node_s_e or fakenode
|
||||||
|
node_south = minetest.registered_nodes[node_south.name] and node_south or fakenode
|
||||||
|
node_s_w = minetest.registered_nodes[node_s_w.name] and node_s_w or fakenode
|
||||||
|
node_west = minetest.registered_nodes[node_west.name] and node_west or fakenode
|
||||||
|
node_n_w = minetest.registered_nodes[node_n_w.name] and node_n_w or fakenode
|
||||||
|
|
||||||
local node_here = minetest.get_node(right_here)
|
|
||||||
local node_north = minetest.get_node(north)
|
|
||||||
local node_n_e = minetest.get_node(north_east)
|
|
||||||
local node_east = minetest.get_node(east)
|
|
||||||
local node_s_e = minetest.get_node(south_east)
|
|
||||||
local node_south = minetest.get_node(south)
|
|
||||||
local node_s_w = minetest.get_node(south_west)
|
|
||||||
local node_west = minetest.get_node(west)
|
|
||||||
local node_n_w = minetest.get_node(north_west)
|
|
||||||
-- small twigs
|
-- small twigs
|
||||||
if twig_size <= 16 then
|
if twig_size <= 16 then
|
||||||
minetest.swap_node(right_here, {name="trunks:twig_"..random(1,4), param2=random(0,3)})
|
minetest.swap_node(right_here, {name="trunks:twig_"..random(1,4), param2=random(0,3)})
|
||||||
@ -357,12 +371,13 @@ biome_lib:register_generate_plant({
|
|||||||
if Moss_on_ground == true then
|
if Moss_on_ground == true then
|
||||||
abstract_trunks.grow_moss_on_ground = function(pos)
|
abstract_trunks.grow_moss_on_ground = function(pos)
|
||||||
local on_ground = {x=pos.x, y=pos.y+1, z=pos.z}
|
local on_ground = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||||
local moss_type = random(1,21)
|
local moss_type = math.random(1,21)
|
||||||
|
local rot = math.random(0,3)
|
||||||
|
|
||||||
if moss_type == 1 then
|
if moss_type == 1 then
|
||||||
minetest.swap_node(on_ground, {name="trunks:moss_fungus", param2=random(0,3)})
|
minetest.swap_node(on_ground, {name="trunks:moss_with_fungus_"..rot, param2=1})
|
||||||
else
|
else
|
||||||
minetest.swap_node(on_ground, {name="trunks:moss", param2=random(0,3)})
|
minetest.swap_node(on_ground, {name="trunks:moss_plain_"..rot, param2=1})
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
@ -408,44 +423,49 @@ abstract_trunks.grow_moss_on_trunk = function(pos)
|
|||||||
local node_under = minetest.get_node(undrneath)
|
local node_under = minetest.get_node(undrneath)
|
||||||
|
|
||||||
--if minetest.get_item_group(node_under.name, "tree") < 1 then
|
--if minetest.get_item_group(node_under.name, "tree") < 1 then
|
||||||
local moss_type = random(1,41)
|
if minetest.registered_nodes[node_here.name].buildable_to then
|
||||||
if minetest.registered_nodes[node_here.name].buildable_to then -- instead of check_air = true,
|
local moss_type = math.random(1,41)
|
||||||
|
local rot = math.random(0,3)
|
||||||
if moss_type == 1 then
|
if moss_type == 1 then
|
||||||
minetest.swap_node(on_ground, {name="trunks:moss_fungus", param2=random(0,3) --[[1]]})
|
minetest.swap_node(on_ground, {name="trunks:moss_with_fungus_"..rot, param2=1})
|
||||||
elseif moss_type < 22 then
|
elseif moss_type < 22 then
|
||||||
minetest.swap_node(on_ground, {name="trunks:moss", param2=random(0,3) --[[1]]})
|
minetest.swap_node(on_ground, {name="trunks:moss_plain_"..rot, param2=1})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local moss_type = random(1,31) -- cliche of more moss at north
|
if minetest.registered_nodes[node_north.name].buildable_to then
|
||||||
if minetest.registered_nodes[node_north.name].buildable_to then -- instead of check_air = true,
|
local moss_type = math.random(1,31) -- cliche of more moss at north
|
||||||
|
local rot = math.random(0,3)
|
||||||
if moss_type == 1 then
|
if moss_type == 1 then
|
||||||
minetest.swap_node(at_side_n, {name="trunks:moss_fungus", param2=random(4,7)}) -- 5,4,6,7
|
minetest.swap_node(at_side_n, {name="trunks:moss_with_fungus_"..rot, param2=5})
|
||||||
elseif moss_type < 22 then
|
elseif moss_type < 22 then
|
||||||
minetest.swap_node(at_side_n, {name="trunks:moss", param2=random(4,7)})
|
minetest.swap_node(at_side_n, {name="trunks:moss_plain_"..rot, param2=5})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local moss_type = random(1,41)
|
if minetest.registered_nodes[node_east.name].buildable_to then
|
||||||
if minetest.registered_nodes[node_east.name].buildable_to then -- instead of check_air = true,
|
local moss_type = math.random(1,41)
|
||||||
|
local rot = math.random(0,3)
|
||||||
if moss_type == 1 then
|
if moss_type == 1 then
|
||||||
minetest.swap_node(at_side_e, {name="trunks:moss_fungus", param2=random(12,15)})
|
minetest.swap_node(at_side_e, {name="trunks:moss_with_fungus_"..rot, param2=3})
|
||||||
elseif moss_type < 22 then
|
elseif moss_type < 22 then
|
||||||
minetest.swap_node(at_side_e, {name="trunks:moss", param2=random(12,15)})
|
minetest.swap_node(at_side_e, {name="trunks:moss_plain_"..rot, param2=3})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local moss_type = random(1,41)
|
if minetest.registered_nodes[node_south.name].buildable_to then
|
||||||
if minetest.registered_nodes[node_south.name].buildable_to then -- instead of check_air = true,
|
local moss_type = math.random(1,41)
|
||||||
|
local rot = math.random(0,3)
|
||||||
if moss_type == 1 then
|
if moss_type == 1 then
|
||||||
minetest.swap_node(at_side_s, {name="trunks:moss_fungus", param2=random(8,11)})
|
minetest.swap_node(at_side_s, {name="trunks:moss_with_fungus_"..rot, param2=4})
|
||||||
elseif moss_type < 22 then
|
elseif moss_type < 22 then
|
||||||
minetest.swap_node(at_side_s, {name="trunks:moss", param2=random(8,11)})
|
minetest.swap_node(at_side_s, {name="trunks:moss_plain_"..rot, param2=4})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local moss_type = random(1,41)
|
if minetest.registered_nodes[node_west.name].buildable_to then
|
||||||
if minetest.registered_nodes[node_west.name].buildable_to then -- instead of check_air = true,
|
local moss_type = math.random(1,41)
|
||||||
|
local rot = math.random(0,3)
|
||||||
if moss_type == 1 then
|
if moss_type == 1 then
|
||||||
minetest.swap_node(at_side_w, {name="trunks:moss_fungus", param2=random(16,19)})
|
minetest.swap_node(at_side_w, {name="trunks:moss_with_fungus_"..rot, param2=2})
|
||||||
elseif moss_type < 22 then
|
elseif moss_type < 22 then
|
||||||
minetest.swap_node(at_side_w, {name="trunks:moss", param2=random(16,19)})
|
minetest.swap_node(at_side_w, {name="trunks:moss_plain_"..rot, param2=2})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
--end
|
--end
|
||||||
|
118
trunks/nodes.lua
118
trunks/nodes.lua
@ -66,42 +66,62 @@ end
|
|||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
-- MoSS
|
-- MoSS
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
local flat_moss = {-1/2, -1/2, -1/2, 1/2, -15/32--[[<-flickers if smaller]], 1/2}
|
-- wall_top = {-0.4375, 0.4375, -0.3125, 0.4375, 0.5, 0.3125},
|
||||||
|
-- wall_bottom = {-0.4375, -0.5, -0.3125, 0.4375, -0.4375, 0.3125},
|
||||||
|
-- wall_side = {-0.5, -0.3125, -0.4375, -0.4375, 0.3125, 0.4375},
|
||||||
|
|
||||||
minetest.register_node("trunks:moss", {
|
-- was local flat_moss = {-1/2, -1/2, -1/2, 1/2, -15/32, 1/2}
|
||||||
description = S("Moss"),
|
|
||||||
drawtype = "nodebox",--"signlike",
|
|
||||||
tiles = {"trunks_moss.png"},
|
|
||||||
inventory_image = "trunks_moss.png",
|
|
||||||
wield_image = "trunks_moss.png",
|
|
||||||
paramtype = "light",
|
|
||||||
paramtype2 = "facedir",--"wallmounted",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
walkable = false,
|
|
||||||
node_box = {type = "fixed", fixed = flat_moss},
|
|
||||||
selection_box = {type = "fixed", fixed = flat_stick},--{type = "wallmounted"},
|
|
||||||
groups = {snappy = 3, flammable = 3, attached_node = 1 },
|
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
|
||||||
})
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------------------------------
|
|
||||||
-- MoSS & FuNGuS
|
local cbox = {
|
||||||
-----------------------------------------------------------------------------------------------
|
type = "wallmounted",
|
||||||
minetest.register_node("trunks:moss_fungus", {
|
wall_top = {-1/2, 1/2, -1/2, 1/2, 15/32, 1/2},
|
||||||
description = S("Moss with Fungus"),
|
wall_bottom = {-1/2, -1/2, -1/2, 1/2, -15/32, 1/2},
|
||||||
drawtype = "nodebox",--"signlike",
|
wall_side = {-1/2, -1/2, -1/2, -15/32, 1/2, 1/2}
|
||||||
tiles = {"trunks_moss_fungus.png"},
|
}
|
||||||
inventory_image = "trunks_moss_fungus.png",
|
|
||||||
wield_image = "trunks_moss_fungus.png",
|
for r = 0, 3 do
|
||||||
paramtype = "light",
|
local xform = ""
|
||||||
paramtype2 = "facedir",--"wallmounted",
|
if r > 0 then xform = "^[transformR"..r*90 end
|
||||||
sunlight_propagates = true,
|
|
||||||
walkable = false,
|
minetest.register_node("trunks:moss_plain_"..r, {
|
||||||
node_box = {type = "fixed", fixed = flat_moss},
|
description = S("Moss"),
|
||||||
selection_box = {type = "fixed", fixed = flat_stick},--{type = "wallmounted"},
|
drawtype = "nodebox",
|
||||||
groups = {snappy = 3, flammable = 3, attached_node = 1 },
|
tiles = {"trunks_moss.png"..xform},
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
inventory_image = "trunks_moss.png",
|
||||||
})
|
wield_image = "trunks_moss.png",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "wallmounted",
|
||||||
|
sunlight_propagates = true,
|
||||||
|
walkable = false,
|
||||||
|
node_box = cbox,
|
||||||
|
groups = {snappy = 3, flammable = 3, attached_node=1, not_in_creative_inventory = r},
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
drop = "trunks:moss_plain_0",
|
||||||
|
})
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
-- MoSS & FuNGuS
|
||||||
|
-----------------------------------------------------------------------------------------------
|
||||||
|
minetest.register_node("trunks:moss_with_fungus_"..r, {
|
||||||
|
description = S("Moss with Fungus"),
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = {"trunks_moss_fungus.png"..xform},
|
||||||
|
inventory_image = "trunks_moss_fungus.png",
|
||||||
|
wield_image = "trunks_moss_fungus.png",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "wallmounted",
|
||||||
|
sunlight_propagates = true,
|
||||||
|
walkable = false,
|
||||||
|
node_box = cbox,
|
||||||
|
groups = {snappy = 3, flammable = 3, attached_node=1, not_in_creative_inventory = r},
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
drop = "trunks:moss_with_fungus_0",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_alias("trunks:moss_plain", "trunks:moss_plain_0")
|
||||||
|
minetest.register_alias("trunks:moss_with_fungus", "trunks:moss_with_fungus_0")
|
||||||
|
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
-- TWiGS BLoCK
|
-- TWiGS BLoCK
|
||||||
@ -363,18 +383,13 @@ for i in pairs(TRuNKS) do
|
|||||||
choppy=2,
|
choppy=2,
|
||||||
oddly_breakable_by_hand=1,
|
oddly_breakable_by_hand=1,
|
||||||
flammable=2,
|
flammable=2,
|
||||||
|
attached_node = 1
|
||||||
--not_in_creative_inventory=1 -- atm in inv for testing
|
--not_in_creative_inventory=1 -- atm in inv for testing
|
||||||
},
|
},
|
||||||
--drop = "trunks:twig_1", -- not sure about this yet
|
--drop = "trunks:twig_1", -- not sure about this yet
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
default.register_leafdecay({
|
|
||||||
trunks = { MoD..":"..TRuNK },
|
|
||||||
leaves = { "trunks:"..TRuNK.."root" },
|
|
||||||
radius = 1,
|
|
||||||
})
|
|
||||||
|
|
||||||
else
|
else
|
||||||
minetest.log("error", string.format("[Trunks] warning: tree type '%s:%s' not found", MoD, TRuNK))
|
minetest.log("error", string.format("[Trunks] warning: tree type '%s:%s' not found", MoD, TRuNK))
|
||||||
end
|
end
|
||||||
@ -383,3 +398,26 @@ end
|
|||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_alias("trunks:pine_trunkroot", "trunks:pine_treeroot")
|
minetest.register_alias("trunks:pine_trunkroot", "trunks:pine_treeroot")
|
||||||
|
|
||||||
|
-- convert moss to wallmounted mode so that attached_node works properly.
|
||||||
|
|
||||||
|
local fdirtowall = {
|
||||||
|
[0] = 1,
|
||||||
|
[1] = 5,
|
||||||
|
[2] = 4,
|
||||||
|
[3] = 3,
|
||||||
|
[4] = 2,
|
||||||
|
}
|
||||||
|
|
||||||
|
minetest.register_lbm({
|
||||||
|
name = "trunks:convert_moss_wallmounted",
|
||||||
|
label = "Convert moss to wallmounted mode",
|
||||||
|
run_at_every_load = true,
|
||||||
|
nodenames = {"trunks:moss", "trunks:moss_fungus"},
|
||||||
|
action = function(pos, node)
|
||||||
|
local basedir = math.floor(node.param2 / 4)
|
||||||
|
local rot = node.param2 % 4
|
||||||
|
local newname = node.name == "trunks:moss_fungus" and "trunks:moss_with_fungus" or "trunks:moss_plain"
|
||||||
|
minetest.set_node(pos, {name = newname.."_"..rot, param2 = fdirtowall[basedir] })
|
||||||
|
end
|
||||||
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user