168 lines
5.1 KiB
Lua
168 lines
5.1 KiB
Lua
|
-- Code by VanessaE and Mossmanikin (and maybe some of Ironzorg's Flowers mod code left)
|
||
|
-- The different sizes of junglegrass used to be part of VanessaE's Plantlife modpack/Junglegrass mod
|
||
|
|
||
|
-- For compatibility with older stuff
|
||
|
minetest.register_alias("junglegrass:shortest","dryplants:junglegrass_shortest")
|
||
|
minetest.register_alias("junglegrass:short" ,"dryplants:junglegrass_short" )
|
||
|
minetest.register_alias("junglegrass:medium" ,"dryplants:junglegrass_medium" )
|
||
|
|
||
|
local SPAWN_DELAY = 1000
|
||
|
local SPAWN_CHANCE = 200
|
||
|
local GROW_DELAY = 500
|
||
|
local GROW_CHANCE = 30
|
||
|
local junglegrass_seed_diff = 329
|
||
|
|
||
|
local grasses_list = {
|
||
|
{"dryplants:junglegrass_shortest", "dryplants:junglegrass_short" , 1 },
|
||
|
{"dryplants:junglegrass_short" , "dryplants:junglegrass_medium", 2 },
|
||
|
{"dryplants:junglegrass_medium" , "default:junglegrass" , 3 },
|
||
|
{"default:junglegrass" , nil , 4 }
|
||
|
}
|
||
|
|
||
|
minetest.register_node('dryplants:junglegrass_medium', {
|
||
|
description = "Jungle Grass (medium height)",
|
||
|
drawtype = 'plantlike',
|
||
|
tile_images = { 'dryplants_junglegrass_medium.png' },
|
||
|
inventory_image = 'dryplants_junglegrass_medium.png',
|
||
|
wield_image = 'dryplants_junglegrass_medium.png',
|
||
|
sunlight_propagates = true,
|
||
|
paramtype = 'light',
|
||
|
walkable = false,
|
||
|
groups = { snappy = 3, flammable=2, junglegrass=1, flora=1 },
|
||
|
sounds = default.node_sound_leaves_defaults(),
|
||
|
drop = 'default:junglegrass',
|
||
|
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.4, -0.5, -0.4, 0.4, 0.5, 0.4},
|
||
|
},
|
||
|
buildable_to = true,
|
||
|
})
|
||
|
|
||
|
minetest.register_node('dryplants:junglegrass_short', {
|
||
|
description = "Jungle Grass (short)",
|
||
|
drawtype = 'plantlike',
|
||
|
tile_images = { 'dryplants_junglegrass_short.png' },
|
||
|
inventory_image = 'dryplants_junglegrass_short.png',
|
||
|
wield_image = 'dryplants_junglegrass_short.png',
|
||
|
sunlight_propagates = true,
|
||
|
paramtype = 'light',
|
||
|
walkable = false,
|
||
|
groups = { snappy = 3, flammable=2, junglegrass=1, flora=1 },
|
||
|
sounds = default.node_sound_leaves_defaults(),
|
||
|
drop = 'default:junglegrass',
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.4, -0.5, -0.4, 0.4, 0.3, 0.4},
|
||
|
},
|
||
|
buildable_to = true,
|
||
|
})
|
||
|
|
||
|
minetest.register_node('dryplants:junglegrass_shortest', {
|
||
|
description = "Jungle Grass (very short)",
|
||
|
drawtype = 'plantlike',
|
||
|
tile_images = { 'dryplants_junglegrass_shortest.png' },
|
||
|
inventory_image = 'dryplants_junglegrass_shortest.png',
|
||
|
wield_image = 'dryplants_junglegrass_shortest.png',
|
||
|
sunlight_propagates = true,
|
||
|
paramtype = 'light',
|
||
|
walkable = false,
|
||
|
groups = { snappy = 3, flammable=2, junglegrass=1, flora=1 },
|
||
|
sounds = default.node_sound_leaves_defaults(),
|
||
|
drop = 'default:junglegrass',
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3},
|
||
|
},
|
||
|
buildable_to = true,
|
||
|
})
|
||
|
|
||
|
if JUNGLEGRASS_SPAWNING == true then -- see settings.txt
|
||
|
plantslib:spawn_on_surfaces({
|
||
|
spawn_delay = SPAWN_DELAY,
|
||
|
spawn_plants = {"dryplants:junglegrass_shortest"},
|
||
|
avoid_radius = 4,
|
||
|
spawn_chance = SPAWN_CHANCE,
|
||
|
spawn_surfaces = {"default:dirt_with_grass", "default:cactus", "default:papyrus"},
|
||
|
avoid_nodes = {"group:junglegrass", "default:junglegrass", "default:dry_shrub"},
|
||
|
seed_diff = junglegrass_seed_diff,
|
||
|
light_min = 5
|
||
|
})
|
||
|
|
||
|
plantslib:spawn_on_surfaces({
|
||
|
spawn_delay = SPAWN_DELAY,
|
||
|
spawn_plants = {"dryplants:junglegrass_shortest"},
|
||
|
avoid_radius = 4,
|
||
|
spawn_chance = SPAWN_CHANCE*2,
|
||
|
spawn_surfaces = {"default:sand"},
|
||
|
avoid_nodes = {"group:junglegrass", "default:junglegrass", "default:dry_shrub"},
|
||
|
seed_diff = junglegrass_seed_diff,
|
||
|
light_min = 5
|
||
|
})
|
||
|
|
||
|
plantslib:spawn_on_surfaces({
|
||
|
spawn_delay = SPAWN_DELAY,
|
||
|
spawn_plants = {"dryplants:junglegrass_shortest"},
|
||
|
avoid_radius = 4,
|
||
|
spawn_chance = SPAWN_CHANCE*5,
|
||
|
spawn_surfaces = {"default:desert_sand"},
|
||
|
avoid_nodes = {"group:junglegrass", "default:junglegrass", "default:dry_shrub"},
|
||
|
seed_diff = junglegrass_seed_diff,
|
||
|
light_min = 5
|
||
|
})
|
||
|
end
|
||
|
|
||
|
|
||
|
abstract_dryplants.junglegrass = function(pos)
|
||
|
for i in pairs(grasses_list) do
|
||
|
local SiZe = math.random(1,4)
|
||
|
local GRaSS = grasses_list[i][1]
|
||
|
local NR = grasses_list[i][3]
|
||
|
local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
|
||
|
local node_here = minetest.get_node(right_here)
|
||
|
if minetest.registered_nodes[node_here.name].buildable_to -- instead of check_air = true,
|
||
|
and SiZe == NR
|
||
|
and NR ~= 4 then
|
||
|
minetest.add_node(right_here, {name=GRaSS})
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
plantslib:register_generate_plant({
|
||
|
surface = {
|
||
|
"default:dirt_with_grass",
|
||
|
"default:sand",
|
||
|
"default:desert_sand"
|
||
|
},
|
||
|
max_count = JUNGLEGRASS_PER_MAPBLOCK,
|
||
|
rarity = 101 - JUNGLEGRASS_RARITY,
|
||
|
seed_diff = junglegrass_seed_diff,
|
||
|
min_elevation = 1, -- above sea level
|
||
|
max_elevation = 40,
|
||
|
near_nodes = {"default:jungletree", "default:junglegrass"},
|
||
|
near_nodes_size = 3,
|
||
|
near_nodes_vertical = 2,
|
||
|
near_nodes_count = 1,
|
||
|
plantlife_limit = -0.9,
|
||
|
check_air = false,
|
||
|
},
|
||
|
"abstract_dryplants.junglegrass"
|
||
|
)
|
||
|
|
||
|
-- add junglegrass on cacti?
|
||
|
|
||
|
-- todo: farming
|
||
|
|
||
|
for i in ipairs(grasses_list) do
|
||
|
plantslib:grow_plants({
|
||
|
grow_delay = GROW_DELAY,
|
||
|
grow_chance = GROW_CHANCE/2,
|
||
|
grow_plant = grasses_list[i][1],
|
||
|
grow_result = grasses_list[i][2],
|
||
|
dry_early_node = "default:desert_sand",
|
||
|
grow_nodes = {"default:dirt_with_grass", "default:sand", "default:desert_sand"}
|
||
|
})
|
||
|
end
|
||
|
|
||
|
print("[Junglegrass] Loaded.")
|