lib_materials/lib_materials_decorations.lua

707 lines
28 KiB
Lua

local S = lib_materials.intllib
minetest.register_node("lib_materials:litter_rock", {
description = S("Litter - Rock"),
drawtype = "nodebox",
tiles = {"lib_materials_litter_rock.png"},
inventory_image = "lib_materials_litter_rock.png",
wield_image = "lib_materials_litter_rock.png",
sunlight_propagates = true,
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
buildable_to = true,
floodable = true,
groups = {chippy = 1, flakey = 1, knappy = 1, ground_litter = 1, rock = 1, oddly_breakable_by_hand = 1},
sounds = lib_materials.node_sound_stone_defaults(),
node_box = {
type = "fixed",
fixed = {
{-0.5,-0.5,-0.5,0.5,-0.49,0.5}
}
},
})
minetest.register_node("lib_materials:litter_rocks", {
description = S("Litter - Rocks"),
drawtype = "nodebox",
tiles = {"lib_materials_litter_rocks.png"},
inventory_image = "lib_materials_litter_rocks.png",
wield_image = "lib_materials_litter_rocks.png",
sunlight_propagates = true,
paramtype = "light",
paramtype2 = "facedir",
visual_scale = 2.0,
walkable = false,
buildable_to = true,
floodable = true,
groups = {chippy = 1, flakey = 1, knappy = 1, ground_litter = 1, rock = 1, oddly_breakable_by_hand = 1},
sounds = lib_materials.node_sound_stone_defaults(),
node_box = {
type = "fixed",
fixed = {
{-0.5,-0.5,-0.5,0.5,-0.49,0.5}
}
},
})
minetest.register_node("lib_materials:litter_stick", {
description = S("Litter - Stick"),
drawtype = "nodebox",
tiles = {"lib_materials_litter_stick.png"},
inventory_image = "lib_materials_litter_stick.png",
wield_image = "lib_materials_litter_stick.png",
sunlight_propagates = true,
paramtype = "light",
paramtype2 = "facedir",
visual_scale = 2.0,
walkable = false,
buildable_to = true,
floodable = true,
groups = {choppy = 1, snappy = 1, ground_litter = 1, stick = 1, oddly_breakable_by_hand = 1},
sounds = lib_materials.node_sound_wood_defaults(),
node_box = {
type = "fixed",
fixed = {
{-0.5,-0.5,-0.5,0.5,-0.49,0.5}
}
},
on_place = function(itemstack, placer, pointed_thing)
local sound_pos = pointed_thing.above or placer:get_pos()
minetest.sound_play(
"default_tool_breaks",
{pos = sound_pos, gain = 0.5, max_hear_distance = 8}
)
local player_name = placer:get_player_name()
if pointed_thing.type == "node" then
local node_under = minetest.get_node(pointed_thing.under).name
local nodedef = minetest.registered_nodes[node_under]
if not nodedef then
return
end
if minetest.is_protected(pointed_thing.under, player_name) then
minetest.chat_send_player(player_name, "This area is protected")
return
end
if node_under == "lib_materials:litter_stick" then
if minetest.get_node(pointed_thing.above).name == "air" then
minetest.set_node(pointed_thing.under, {name = "lib_materials:litter_sticks"})
end
else
if minetest.get_node(pointed_thing.above).name == "air" then
minetest.set_node(pointed_thing.above, {name = "lib_materials:litter_stick"})
end
end
end
if not (creative and creative.is_enabled_for
and creative.is_enabled_for(player_name)) then
-- Wear tool
local wdef = itemstack:get_definition()
itemstack:add_wear(2000)
-- Tool break sound
if itemstack:get_count() == 0 and wdef.sound and wdef.sound.breaks then
minetest.sound_play(wdef.sound.breaks, {pos = sound_pos, gain = 0.5})
end
return itemstack
end
end,
})
minetest.register_node("lib_materials:litter_sticks", {
description = S("Litter - Sticks"),
drawtype = "nodebox",
tiles = {"lib_materials_litter_stick.png^(lib_materials_litter_stick.png^[transformFX)"},
inventory_image = "lib_materials_litter_stick.png^(lib_materials_litter_stick.png^[transformFX)",
wield_image = "lib_materials_litter_stick.png^(lib_materials_litter_stick.png^[transformFX)",
sunlight_propagates = true,
paramtype = "light",
paramtype2 = "facedir",
visual_scale = 2.0,
walkable = false,
buildable_to = true,
floodable = true,
groups = {choppy = 1, snappy = 1, ground_litter = 1, stick = 1, sticks = 1, oddly_breakable_by_hand = 1},
sounds = lib_materials.node_sound_wood_defaults(),
node_box = {
type = "fixed",
fixed = {
{-0.5,-0.5,-0.5,0.5,-0.49,0.5}
}
},
})
-- Push an element onto a stack (table).
function push(t, x)
t[#t+1] = x
end
----------------------
-- Decorative Rocks --
----------------------
--[[
-- I'm feeling a bit zen...
-- Create a simple sphereoid from nodeboxes.
-- This isn't as nifty as I originally thought. The large ones are
-- ugly and the small ones are nearly invisible. I may stick with cubes.
local function step_sphere(grid, pos, diameters, embed)
local step = {x=diameters.x * 0.2, y=diameters.y * 0.2, z=diameters.z * 0.2}
local rock = {}
if embed then
embed = 1
else
embed = 0
end
rock[1] = pos.x + step.x
rock[2] = pos.y + (step.y * embed)
rock[3] = pos.z
rock[4] = pos.x + diameters.x - step.x
rock[5] = diameters.y + pos.y - step.y - (step.y * embed)
rock[6] = pos.z + diameters.z
push(grid, rock)
rock = {}
rock[1] = pos.x
rock[2] = pos.y + (step.y * embed)
rock[3] = pos.z + step.z
rock[4] = pos.x + step.x
rock[5] = diameters.y + pos.y - step.y - (step.y * embed)
rock[6] = pos.z + diameters.z - step.z
push(grid, rock)
rock = {}
rock[1] = pos.x + diameters.x - step.x
rock[2] = pos.y + (step.y * embed)
rock[3] = pos.z + step.z
rock[4] = pos.x + diameters.x
rock[5] = diameters.y + pos.y - step.y - (step.y * embed)
rock[6] = pos.z + diameters.z - step.z
push(grid, rock)
if not embed then
rock = {}
rock[1] = pos.x + step.x
rock[2] = pos.y
rock[3] = pos.z + step.z
rock[4] = pos.x + diameters.x - step.x
rock[5] = step.y + pos.y
rock[6] = pos.z + diameters.z - step.z
push(grid, rock)
end
rock = {}
rock[1] = pos.x + step.x
rock[2] = diameters.y + pos.y - step.y - (step.y * embed)
rock[3] = pos.z + step.z
rock[4] = pos.x + diameters.x - step.x
rock[5] = diameters.y + pos.y - (step.y * embed)
rock[6] = pos.z + diameters.z - step.z
push(grid, rock)
end
--]]
-- Place a small nodebox.
local function small_cube(grid, pos, diameters)
local rock = {}
rock[1] = pos.x
rock[2] = pos.y
rock[3] = pos.z
rock[4] = pos.x + diameters.x
rock[5] = pos.y + diameters.y
rock[6] = pos.z + diameters.z
push(grid, rock)
end
-- Create some tiles of small rocks that can be picked up.
local default_grid
local tiles = {"lib_materials_stone_default.png", "lib_materials_stone_desert_default.png", "lib_materials_stone_sandstone_default.png", "lib_materials_stone_cobble_default.png"}
for grid_count = 1,6 do
local grid = {}
for rock_count = 2, math.random(1,4) + 1 do
local diameter = math.random(5,15)/100
local x = math.random(1,80)/100 - 0.5
local z = math.random(1,80)/100 - 0.5
--step_sphere(grid, {x=x,y=-0.5,z=z}, {x=diameter, y=diameter, z=diameter})
small_cube(grid, {x=x,y=-0.5,z=z}, {x=diameter, y=diameter, z=diameter})
end
--local stone = tiles[math.random(1,#tiles)]
local stone = tiles[(grid_count % #tiles) + 1]
minetest.register_node("lib_materials:litter_small_rocks"..grid_count, {
description = "Small Rocks",
tiles = {stone},
is_ground_content = true,
walkable = false,
paramtype = "light",
drawtype = "nodebox",
buildable_to = true,
node_box = { type = "fixed",
fixed = grid },
selection_box = { type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
},
groups = {rock=1, oddly_breakable_by_hand=3, not_in_creative_inventory=1},
drop = "lib_materials:litter_small_rocks",
sounds = lib_materials.node_sound_stone_defaults(),
})
minetest.register_decoration({
deco_type = "simple",
decoration = "lib_materials:litter_small_rocks"..grid_count,
sidelen = 80,
place_on = {"group:soil", "group:sand", "group:stone"},
fill_ratio = 0.002,
--biomes = {"lib_ecology_sandstone_grassland", "lib_ecology_tundra", "lib_ecology_taiga", "lib_ecology_stone_grassland", "lib_ecology_coniferous_forest", "lib_ecology_deciduous_forest", "lib_ecology_desert", "lib_ecology_cold_desert", "lib_ecology_savanna", "lib_ecology_rainforest", "lib_ecology_desertstone_grassland", },
flags = "place_center_x, place_center_z",
rotation = "random",
})
default_grid = grid
end
-- This is the inventory item, so we don't have six different stacks.
minetest.register_node("lib_materials:litter_small_rocks", {
description = "Small Rocks",
tiles = {"lib_materials_stone_default.png"},
inventory_image = "lib_materials_litter_rocks.png",
is_ground_content = true,
walkable = false,
paramtype = "light",
drawtype = "nodebox",
node_box = { type = "fixed",
fixed = default_grid },
selection_box = { type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
},
groups = {stone=1, oddly_breakable_by_hand=3},
sounds = lib_materials.node_sound_stone_defaults(),
})
---- Create some larger rocks that can be mined.
local tiles = {"lib_materials_stone_default.png", "lib_materials_stone_desert_default.png", "lib_materials_stone_sandstone_default.png", "lib_materials_stone_cobble_default.png"}
local sel = {{-0.4,-0.5,-0.4,0.4,0.0,0.3}, {-0.4,-0.5,-0.4,0.2,-0.1,0.3}, {-0.3,-0.5,-0.3,0.2,-0.2,0.3}}
--
for count = 1,9 do
local stone = tiles[(count % #tiles) + 1]
--local grid = {}
--step_sphere(grid, {x=-0.25,y=-0.5,z=-0.25}, {x=0.5, y=0.3, z=0.5})
minetest.register_node("lib_materials:medium_rock"..count, {
description = "Medium Rock",
tiles = {stone},
is_ground_content = true,
walkable = true,
paramtype = "light",
--drawtype = "mesh",
drawtype = "nodebox",
--mesh = "rock0"..math.ceil(count / 3)..".b3d",
node_box = {
type = "fixed",
fixed = {
-0.25, -0.5, -0.25, 0.25, -0.25, 0.25,
},
},
selection_box = {type="fixed", fixed=sel[math.ceil(count / 3)]},
groups = {rock=1, cracky=3, not_in_creative_inventory=1},
drop = "lib_materials:stone_cobble",
sounds = lib_materials.node_sound_stone_defaults(),
})
--
minetest.register_decoration({
deco_type = "simple",
decoration = "lib_materials:medium_rock"..count,
sidelen = 80,
place_on = {"group:soil", "group:sand", "group:stone"},
fill_ratio = 0.001,
--biomes = {"sandstone_grassland", "tundra", "taiga", "stone_grassland", "coniferous_forest", "deciduous_forest", "desert", "cold_desert", "savanna", "rainforest", "desertstone_grassland", },
flags = "place_center_x, place_center_z",
rotation = "random",
})
end
-- Small rocks can be used to create cobblestone, if you like.
minetest.register_craft({
output = "lib_materials:stone_cobble",
recipe = {
{"", "", ""},
{"lib_materials:litter_small_rocks", "lib_materials:litter_small_rocks", ""},
{"lib_materials:litter_small_rocks", "lib_materials:litter_small_rocks", ""},
},
})
minetest.register_decoration({
deco_type = "simple",
decoration = "lib_materials:litter_rock",
sidelen = 80,
place_on = {"group:soil", "group:sand", "group:stone"},
fill_ratio = 0.002,
flags = "place_center_x, place_center_z",
rotation = "random",
})
minetest.register_decoration({
deco_type = "simple",
decoration = "lib_materials:litter_rocks",
sidelen = 80,
place_on = {"group:soil", "group:sand", "group:stone"},
fill_ratio = 0.002,
flags = "place_center_x, place_center_z",
rotation = "random",
})
minetest.register_decoration({
deco_type = "simple",
decoration = "lib_materials:litter_stick",
sidelen = 80,
place_on = {"group:soil", "group:leaves", "group:wood"},
fill_ratio = 0.002,
flags = "place_center_x, place_center_z",
rotation = "random",
})
--[[
minetest.register_decoration({
name = "lib_materials:stone_rocks1",
deco_type = "schematic",
place_on = {"group:stone", "group:gravel"},
sidelen = 80,
fill_ratio = 0.001,
biomes = {
"hot_arid_coastal", "hot_arid_lowland", "hot_arid_shelf", "hot_arid_highland",
"warm_arid_coastal", "warm_arid_lowland", "warm_arid_shelf", "warm_arid_highland",
"temperate_arid_coastal", "temperate_arid_lowland", "temperate_arid_shelf", "temperate_arid_highland",
"cool_arid_coastal", "cool_arid_lowland", "cool_arid_shelf", "cool_arid_highland",
"cold_arid_coastal", "cold_arid_lowland", "cold_arid_shelf", "cold_arid_highland",
"hot_humid_mountain", "hot_semihumid_mountain", "hot_temperate_mountain", "hot_semiarid_mountain", "hot_arid_mountain",
"warm_humid_mountain", "warm_semihumid_mountain", "warm_temperate_mountain", "warm_semiarid_mountain", "warm_arid_mountain",
"temperate_humid_mountain", "temperate_semihumid_mountain", "temperate_temperate_mountain", "temperate_semiarid_mountain", "temperate_arid_mountain",
"cool_humid_mountain", "cool_semihumid_mountain", "cool_temperate_mountain", "cool_semiarid_mountain", "cool_arid_mountain",
"cold_humid_mountain", "cold_semihumid_mountain", "cold_temperate_mountain", "cold_semiarid_mountain", "cold_arid_mountain",
},
flags = "force_placement, place_center_x, place_center_z",
schematic = dofile(lib_materials.path.."/schems/lib_materials_schem_rock_01.lua"),
rotation = "random",
})
minetest.register_decoration({
name = "lib_materials:stone_rocks2",
deco_type = "schematic",
place_on = {"group:stone", "group:gravel"},
sidelen = 80,
fill_ratio = 0.001,
biomes = {
"hot_arid_coastal", "hot_arid_lowland", "hot_arid_shelf", "hot_arid_highland",
"warm_arid_coastal", "warm_arid_lowland", "warm_arid_shelf", "warm_arid_highland",
"temperate_arid_coastal", "temperate_arid_lowland", "temperate_arid_shelf", "temperate_arid_highland",
"cool_arid_coastal", "cool_arid_lowland", "cool_arid_shelf", "cool_arid_highland",
"cold_arid_coastal", "cold_arid_lowland", "cold_arid_shelf", "cold_arid_highland",
"hot_humid_mountain", "hot_semihumid_mountain", "hot_temperate_mountain", "hot_semiarid_mountain", "hot_arid_mountain",
"warm_humid_mountain", "warm_semihumid_mountain", "warm_temperate_mountain", "warm_semiarid_mountain", "warm_arid_mountain",
"temperate_humid_mountain", "temperate_semihumid_mountain", "temperate_temperate_mountain", "temperate_semiarid_mountain", "temperate_arid_mountain",
"cool_humid_mountain", "cool_semihumid_mountain", "cool_temperate_mountain", "cool_semiarid_mountain", "cool_arid_mountain",
"cold_humid_mountain", "cold_semihumid_mountain", "cold_temperate_mountain", "cold_semiarid_mountain", "cold_arid_mountain",
},
flags = "force_placement, place_center_x, place_center_z",
schematic = dofile(lib_materials.path.."/schems/lib_materials_schem_rock_02.lua"),
rotation = "random",
})
minetest.register_decoration({
name = "lib_materials:stone_rocks3",
deco_type = "schematic",
place_on = {"group:stone", "group:gravel"},
sidelen = 80,
fill_ratio = 0.001,
biomes = {
"hot_arid_coastal", "hot_arid_lowland", "hot_arid_shelf", "hot_arid_highland",
"warm_arid_coastal", "warm_arid_lowland", "warm_arid_shelf", "warm_arid_highland",
"temperate_arid_coastal", "temperate_arid_lowland", "temperate_arid_shelf", "temperate_arid_highland",
"cool_arid_coastal", "cool_arid_lowland", "cool_arid_shelf", "cool_arid_highland",
"cold_arid_coastal", "cold_arid_lowland", "cold_arid_shelf", "cold_arid_highland",
"hot_humid_mountain", "hot_semihumid_mountain", "hot_temperate_mountain", "hot_semiarid_mountain", "hot_arid_mountain",
"warm_humid_mountain", "warm_semihumid_mountain", "warm_temperate_mountain", "warm_semiarid_mountain", "warm_arid_mountain",
"temperate_humid_mountain", "temperate_semihumid_mountain", "temperate_temperate_mountain", "temperate_semiarid_mountain", "temperate_arid_mountain",
"cool_humid_mountain", "cool_semihumid_mountain", "cool_temperate_mountain", "cool_semiarid_mountain", "cool_arid_mountain",
"cold_humid_mountain", "cold_semihumid_mountain", "cold_temperate_mountain", "cold_semiarid_mountain", "cold_arid_mountain",
},
flags = "force_placement, place_center_x, place_center_z",
schematic = dofile(lib_materials.path.."/schems/lib_materials_schem_rock_03.lua"),
rotation = "random",
})
minetest.register_decoration({
name = "lib_materials:stone_rocks4",
deco_type = "schematic",
place_on = {"group:stone", "group:gravel"},
sidelen = 80,
fill_ratio = 0.001,
biomes = {
"hot_arid_coastal", "hot_arid_lowland", "hot_arid_shelf", "hot_arid_highland",
"warm_arid_coastal", "warm_arid_lowland", "warm_arid_shelf", "warm_arid_highland",
"temperate_arid_coastal", "temperate_arid_lowland", "temperate_arid_shelf", "temperate_arid_highland",
"cool_arid_coastal", "cool_arid_lowland", "cool_arid_shelf", "cool_arid_highland",
"cold_arid_coastal", "cold_arid_lowland", "cold_arid_shelf", "cold_arid_highland",
"hot_humid_mountain", "hot_semihumid_mountain", "hot_temperate_mountain", "hot_semiarid_mountain", "hot_arid_mountain",
"warm_humid_mountain", "warm_semihumid_mountain", "warm_temperate_mountain", "warm_semiarid_mountain", "warm_arid_mountain",
"temperate_humid_mountain", "temperate_semihumid_mountain", "temperate_temperate_mountain", "temperate_semiarid_mountain", "temperate_arid_mountain",
"cool_humid_mountain", "cool_semihumid_mountain", "cool_temperate_mountain", "cool_semiarid_mountain", "cool_arid_mountain",
"cold_humid_mountain", "cold_semihumid_mountain", "cold_temperate_mountain", "cold_semiarid_mountain", "cold_arid_mountain",
},
flags = "force_placement, place_center_x, place_center_z",
schematic = dofile(lib_materials.path.."/schems/lib_materials_schem_rock_04.lua"),
rotation = "random",
})
minetest.register_decoration({
name = "lib_materials:stone_rocks5",
deco_type = "schematic",
place_on = {"group:stone", "group:gravel"},
sidelen = 80,
fill_ratio = 0.001,
biomes = {
"hot_arid_coastal", "hot_arid_lowland", "hot_arid_shelf", "hot_arid_highland",
"warm_arid_coastal", "warm_arid_lowland", "warm_arid_shelf", "warm_arid_highland",
"temperate_arid_coastal", "temperate_arid_lowland", "temperate_arid_shelf", "temperate_arid_highland",
"cool_arid_coastal", "cool_arid_lowland", "cool_arid_shelf", "cool_arid_highland",
"cold_arid_coastal", "cold_arid_lowland", "cold_arid_shelf", "cold_arid_highland",
"hot_humid_mountain", "hot_semihumid_mountain", "hot_temperate_mountain", "hot_semiarid_mountain", "hot_arid_mountain",
"warm_humid_mountain", "warm_semihumid_mountain", "warm_temperate_mountain", "warm_semiarid_mountain", "warm_arid_mountain",
"temperate_humid_mountain", "temperate_semihumid_mountain", "temperate_temperate_mountain", "temperate_semiarid_mountain", "temperate_arid_mountain",
"cool_humid_mountain", "cool_semihumid_mountain", "cool_temperate_mountain", "cool_semiarid_mountain", "cool_arid_mountain",
"cold_humid_mountain", "cold_semihumid_mountain", "cold_temperate_mountain", "cold_semiarid_mountain", "cold_arid_mountain",
},
flags = "force_placement, place_center_x, place_center_z",
schematic = dofile(lib_materials.path.."/schems/lib_materials_schem_rock_05.lua"),
rotation = "random",
})
minetest.register_decoration({
name = "lib_materials:stone_rocks6",
deco_type = "schematic",
place_on = {"group:stone", "group:gravel"},
sidelen = 80,
fill_ratio = 0.001,
biomes = {
"hot_arid_coastal", "hot_arid_lowland", "hot_arid_shelf", "hot_arid_highland",
"warm_arid_coastal", "warm_arid_lowland", "warm_arid_shelf", "warm_arid_highland",
"temperate_arid_coastal", "temperate_arid_lowland", "temperate_arid_shelf", "temperate_arid_highland",
"cool_arid_coastal", "cool_arid_lowland", "cool_arid_shelf", "cool_arid_highland",
"cold_arid_coastal", "cold_arid_lowland", "cold_arid_shelf", "cold_arid_highland",
"hot_humid_mountain", "hot_semihumid_mountain", "hot_temperate_mountain", "hot_semiarid_mountain", "hot_arid_mountain",
"warm_humid_mountain", "warm_semihumid_mountain", "warm_temperate_mountain", "warm_semiarid_mountain", "warm_arid_mountain",
"temperate_humid_mountain", "temperate_semihumid_mountain", "temperate_temperate_mountain", "temperate_semiarid_mountain", "temperate_arid_mountain",
"cool_humid_mountain", "cool_semihumid_mountain", "cool_temperate_mountain", "cool_semiarid_mountain", "cool_arid_mountain",
"cold_humid_mountain", "cold_semihumid_mountain", "cold_temperate_mountain", "cold_semiarid_mountain", "cold_arid_mountain",
},
flags = "force_placement, place_center_x, place_center_z",
schematic = dofile(lib_materials.path.."/schems/lib_materials_schem_rock_06.lua"),
rotation = "random",
})
minetest.register_decoration({
name = "lib_materials:stone_rocks7",
deco_type = "schematic",
place_on = {"group:stone", "group:gravel"},
sidelen = 80,
fill_ratio = 0.001,
biomes = {
"hot_arid_coastal", "hot_arid_lowland", "hot_arid_shelf", "hot_arid_highland",
"warm_arid_coastal", "warm_arid_lowland", "warm_arid_shelf", "warm_arid_highland",
"temperate_arid_coastal", "temperate_arid_lowland", "temperate_arid_shelf", "temperate_arid_highland",
"cool_arid_coastal", "cool_arid_lowland", "cool_arid_shelf", "cool_arid_highland",
"cold_arid_coastal", "cold_arid_lowland", "cold_arid_shelf", "cold_arid_highland",
"hot_humid_mountain", "hot_semihumid_mountain", "hot_temperate_mountain", "hot_semiarid_mountain", "hot_arid_mountain",
"warm_humid_mountain", "warm_semihumid_mountain", "warm_temperate_mountain", "warm_semiarid_mountain", "warm_arid_mountain",
"temperate_humid_mountain", "temperate_semihumid_mountain", "temperate_temperate_mountain", "temperate_semiarid_mountain", "temperate_arid_mountain",
"cool_humid_mountain", "cool_semihumid_mountain", "cool_temperate_mountain", "cool_semiarid_mountain", "cool_arid_mountain",
"cold_humid_mountain", "cold_semihumid_mountain", "cold_temperate_mountain", "cold_semiarid_mountain", "cold_arid_mountain",
},
flags = "force_placement, place_center_x, place_center_z",
schematic = dofile(lib_materials.path.."/schems/lib_materials_schem_rock_07.lua"),
rotation = "random",
})
minetest.register_decoration({
name = "lib_materials:stone_rocks8",
deco_type = "schematic",
place_on = {"group:stone", "group:gravel"},
sidelen = 80,
fill_ratio = 0.001,
biomes = {
"hot_arid_coastal", "hot_arid_lowland", "hot_arid_shelf", "hot_arid_highland",
"warm_arid_coastal", "warm_arid_lowland", "warm_arid_shelf", "warm_arid_highland",
"temperate_arid_coastal", "temperate_arid_lowland", "temperate_arid_shelf", "temperate_arid_highland",
"cool_arid_coastal", "cool_arid_lowland", "cool_arid_shelf", "cool_arid_highland",
"cold_arid_coastal", "cold_arid_lowland", "cold_arid_shelf", "cold_arid_highland",
"hot_humid_mountain", "hot_semihumid_mountain", "hot_temperate_mountain", "hot_semiarid_mountain", "hot_arid_mountain",
"warm_humid_mountain", "warm_semihumid_mountain", "warm_temperate_mountain", "warm_semiarid_mountain", "warm_arid_mountain",
"temperate_humid_mountain", "temperate_semihumid_mountain", "temperate_temperate_mountain", "temperate_semiarid_mountain", "temperate_arid_mountain",
"cool_humid_mountain", "cool_semihumid_mountain", "cool_temperate_mountain", "cool_semiarid_mountain", "cool_arid_mountain",
"cold_humid_mountain", "cold_semihumid_mountain", "cold_temperate_mountain", "cold_semiarid_mountain", "cold_arid_mountain",
},
flags = "force_placement, place_center_x, place_center_z",
schematic = dofile(lib_materials.path.."/schems/lib_materials_schem_rock_08.lua"),
rotation = "random",
})
minetest.register_decoration({
name = "lib_materials:stone_rocks9",
deco_type = "schematic",
place_on = {"group:stone", "group:gravel"},
sidelen = 80,
fill_ratio = 0.001,
biomes = {
"hot_arid_coastal", "hot_arid_lowland", "hot_arid_shelf", "hot_arid_highland",
"warm_arid_coastal", "warm_arid_lowland", "warm_arid_shelf", "warm_arid_highland",
"temperate_arid_coastal", "temperate_arid_lowland", "temperate_arid_shelf", "temperate_arid_highland",
"cool_arid_coastal", "cool_arid_lowland", "cool_arid_shelf", "cool_arid_highland",
"cold_arid_coastal", "cold_arid_lowland", "cold_arid_shelf", "cold_arid_highland",
"hot_humid_mountain", "hot_semihumid_mountain", "hot_temperate_mountain", "hot_semiarid_mountain", "hot_arid_mountain",
"warm_humid_mountain", "warm_semihumid_mountain", "warm_temperate_mountain", "warm_semiarid_mountain", "warm_arid_mountain",
"temperate_humid_mountain", "temperate_semihumid_mountain", "temperate_temperate_mountain", "temperate_semiarid_mountain", "temperate_arid_mountain",
"cool_humid_mountain", "cool_semihumid_mountain", "cool_temperate_mountain", "cool_semiarid_mountain", "cool_arid_mountain",
"cold_humid_mountain", "cold_semihumid_mountain", "cold_temperate_mountain", "cold_semiarid_mountain", "cold_arid_mountain",
},
flags = "force_placement, place_center_x, place_center_z",
schematic = dofile(lib_materials.path.."/schems/lib_materials_schem_rock_09.lua"),
rotation = "random",
})
minetest.register_decoration({
name = "lib_materials:stone_rocks_large1",
deco_type = "schematic",
place_on = {"group:stone", "group:gravel"},
sidelen = 80,
fill_ratio = 0.001,
biomes = {
"hot_arid_coastal", "hot_arid_lowland", "hot_arid_shelf", "hot_arid_highland",
"warm_arid_coastal", "warm_arid_lowland", "warm_arid_shelf", "warm_arid_highland",
"temperate_arid_coastal", "temperate_arid_lowland", "temperate_arid_shelf", "temperate_arid_highland",
"cool_arid_coastal", "cool_arid_lowland", "cool_arid_shelf", "cool_arid_highland",
"cold_arid_coastal", "cold_arid_lowland", "cold_arid_shelf", "cold_arid_highland",
"hot_humid_mountain", "hot_semihumid_mountain", "hot_temperate_mountain", "hot_semiarid_mountain", "hot_arid_mountain",
"warm_humid_mountain", "warm_semihumid_mountain", "warm_temperate_mountain", "warm_semiarid_mountain", "warm_arid_mountain",
"temperate_humid_mountain", "temperate_semihumid_mountain", "temperate_temperate_mountain", "temperate_semiarid_mountain", "temperate_arid_mountain",
"cool_humid_mountain", "cool_semihumid_mountain", "cool_temperate_mountain", "cool_semiarid_mountain", "cool_arid_mountain",
"cold_humid_mountain", "cold_semihumid_mountain", "cold_temperate_mountain", "cold_semiarid_mountain", "cold_arid_mountain",
},
flags = "force_placement, place_center_x, place_center_y, place_center_z",
schematic = dofile(lib_materials.path.."/schems/lib_materials_schem_rock_large_01.lua"),
rotation = "random",
})
--]]
--[[
minetest.register_decoration({
deco_type = "schematic",
place_on = {"group:gravel", "group:stone", },
sidelen = 80,
fill_ratio = 0.002,
--biomes = c,
schematic = lib_materials.schem_rock_05, --lib_ecology.schematics.select(f),
flags = "force_placement, place_center_x, place_center_z",
rotation = "random",
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"group:gravel", }, --"group:stone",
sidelen = 80,
fill_ratio = 0.001,
--biomes = c,
schematic = lib_materials.schem_rock_desert_05, --lib_ecology.schematics.select(f),
flags = "force_placement, place_center_x, place_center_y, place_center_z",
rotation = "random",
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"group:soil", "group:stone", "group:gravel", }, --"group:stone",
sidelen = 80,
fill_ratio = 0.001,
biomes = {
"temperate_humid_lowland",
"temperate_semihumid_lowland",
"temperate_temperate_lowland",
"cool_humid_shelf",
"cool_semihumid_shelf",
"cool_temperate_shelf"
},
schematic = lib_materials.schem_erratic_01, --lib_ecology.schematics.select(f),
flags = "force_placement, place_center_x, place_center_y, place_center_z",
rotation = "random",
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"group:gravel", "group:stone", },
sidelen = 80,
fill_ratio = 0.002,
--biomes = c,
schematic = lib_materials.schem_rock_desert_02_01, --lib_ecology.schematics.select(f),
flags = "force_placement, place_center_x, place_center_z",
rotation = "random",
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"group:gravel", "group:stone", },
sidelen = 80,
fill_ratio = 0.002,
--biomes = c,
schematic = lib_materials.schem_rock_desert_02_02, --lib_ecology.schematics.select(f),
flags = "force_placement, place_center_x, place_center_z",
rotation = "random",
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"group:gravel", "group:stone", },
sidelen = 80,
fill_ratio = 0.002,
--biomes = c,
schematic = lib_materials.schem_rock_desert_03_01, --lib_ecology.schematics.select(f),
flags = "force_placement, place_center_x, place_center_z",
rotation = "random",
})
--]]