Add files via upload
reworked textures, biome and decor params,
@ -11,7 +11,7 @@ minetest.register_decoration({
|
||||
place_on = {"group:soil"},
|
||||
sidelen = 16,
|
||||
fill_ratio = 0.02,
|
||||
biomes = {"forest", "thicket"},
|
||||
biomes = {"forest", "thicket", "OLD_FOREST"},
|
||||
y_min = 1,
|
||||
y_max = 1000,
|
||||
schematic = nodecore.talltree_schematic,
|
||||
@ -75,7 +75,7 @@ minetest.register_decoration({
|
||||
-- persist = 0.64
|
||||
-- },
|
||||
fill_ratio = 0.001,
|
||||
biomes = {"unknown", "grassland", "stonewaste", "old_forest"},
|
||||
biomes = {"grassland", "stonewaste", "old_forest"},
|
||||
y_min = 1,
|
||||
y_max = 31000,
|
||||
schematic = nodecore.boulder_schematic,
|
||||
|
188
biomes.lua
@ -5,57 +5,8 @@ local minetest
|
||||
|
||||
local modname = minetest.get_current_modname()
|
||||
|
||||
minetest.register_biome({
|
||||
name = "forest",
|
||||
node_top = "nc_terrain:dirt_with_grass",
|
||||
depth_top = 1,
|
||||
node_filler = "nc_terrain:dirt",
|
||||
depth_filler = 6,
|
||||
node_riverbed = "nc_terrain:dirt",
|
||||
depth_riverbed = 2,
|
||||
node_dungeon = "nc_concrete:bricks_bonded",
|
||||
y_min = 4,
|
||||
y_max = 2000,
|
||||
vertical_blend = 16,
|
||||
horizontal_blend = 16,
|
||||
heat_point = 50,
|
||||
humidity_point = 60,
|
||||
})
|
||||
|
||||
minetest.register_biome({
|
||||
name = "old_forest",
|
||||
node_top = "nc_terrain:dirt_with_grass",
|
||||
depth_top = 1,
|
||||
node_filler = "nc_terrain:dirt",
|
||||
depth_filler = 6,
|
||||
node_riverbed = "nc_terrain:dirt",
|
||||
depth_riverbed = 2,
|
||||
node_dungeon = "nc_concrete:bricks_bonded",
|
||||
y_min = 6,
|
||||
y_max = 1000,
|
||||
vertical_blend = 16,
|
||||
horizontal_blend = 16,
|
||||
heat_point = 40,
|
||||
humidity_point = 75,
|
||||
})
|
||||
|
||||
minetest.register_biome({
|
||||
name = "thicket",
|
||||
node_top = "nc_terrain:dirt_with_grass",
|
||||
depth_top = 1,
|
||||
node_filler = "nc_terrain:dirt",
|
||||
depth_filler = 2,
|
||||
node_riverbed = "nc_terrain:sand",
|
||||
depth_riverbed = 2,
|
||||
node_dungeon = "nc_terrain:stone",
|
||||
y_min = 4,
|
||||
y_max = 64,
|
||||
vertical_blend = 8,
|
||||
horizontal_blend = 16,
|
||||
heat_point = 70,
|
||||
humidity_point = 80,
|
||||
})
|
||||
|
||||
----------------------------------------
|
||||
---------------GRASSLAND----------------
|
||||
minetest.register_biome({
|
||||
name = "grassland",
|
||||
node_top = "nc_terrain:dirt_with_grass",
|
||||
@ -64,14 +15,98 @@ minetest.register_biome({
|
||||
depth_filler = 2,
|
||||
node_riverbed = "nc_terrain:sand",
|
||||
depth_riverbed = 1,
|
||||
node_dungeon = "nc_concrete:adobe",
|
||||
node_dungeon_alt = "nc_nature:mossy_dirt",
|
||||
y_min = 1,
|
||||
y_max = 31000,
|
||||
vertical_blend = 16,
|
||||
horizontal_blend = 16,
|
||||
heat_point = 50,
|
||||
humidity_point =40,
|
||||
humidity_point =50,
|
||||
})
|
||||
|
||||
----------------------------------------
|
||||
-----------------FOREST-----------------
|
||||
minetest.register_biome({
|
||||
name = "forest",
|
||||
node_top = "nc_terrain:dirt_with_grass",
|
||||
depth_top = 1,
|
||||
node_filler = "nc_terrain:dirt",
|
||||
depth_filler = 4,
|
||||
node_riverbed = "nc_terrain:dirt",
|
||||
depth_riverbed = 2,
|
||||
node_dungeon = "nc_stonework:bricks_bonded",
|
||||
node_dungeon_alt = "nc_nature:mossy_bricks_bonded",
|
||||
y_min = 4,
|
||||
y_max = 200,
|
||||
vertical_blend = 16,
|
||||
horizontal_blend = 16,
|
||||
heat_point = 45,
|
||||
humidity_point = 60,
|
||||
})
|
||||
|
||||
----------------------------------------
|
||||
---------------OLD FOREST---------------
|
||||
minetest.register_biome({
|
||||
name = "old_forest",
|
||||
node_top = "nc_terrain:dirt_with_grass",
|
||||
depth_top = 1,
|
||||
node_filler = "nc_terrain:dirt",
|
||||
depth_filler = 6,
|
||||
node_riverbed = "nc_terrain:dirt",
|
||||
depth_riverbed = 2,
|
||||
node_dungeon = "nc_stonework:bricks_bonded",
|
||||
node_dungeon_alt = "nc_nature:mossy_bricks_bonded",
|
||||
y_min = 6,
|
||||
y_max = 100,
|
||||
vertical_blend = 16,
|
||||
horizontal_blend = 16,
|
||||
heat_point = 40,
|
||||
humidity_point = 65,
|
||||
})
|
||||
|
||||
----------------------------------------
|
||||
-------------ANCIENT FOREST-------------
|
||||
minetest.register_biome({
|
||||
name = "ancient_forest",
|
||||
node_top = "nc_terrain:dirt_with_grass",
|
||||
depth_top = 1,
|
||||
node_filler = "nc_terrain:dirt",
|
||||
depth_filler = 8,
|
||||
node_riverbed = "nc_terrain:dirt",
|
||||
depth_riverbed = 2,
|
||||
node_dungeon = "nc_stonework:bricks_bonded",
|
||||
node_dungeon_alt = "nc_nature:mossy_bricks_bonded",
|
||||
y_min = 6,
|
||||
y_max = 100,
|
||||
vertical_blend = 16,
|
||||
horizontal_blend = 16,
|
||||
heat_point = 35,
|
||||
humidity_point = 70,
|
||||
})
|
||||
|
||||
----------------------------------------
|
||||
----------------THICKET-----------------
|
||||
minetest.register_biome({
|
||||
name = "thicket",
|
||||
node_top = "nc_terrain:dirt_with_grass",
|
||||
depth_top = 1,
|
||||
node_filler = "nc_terrain:dirt",
|
||||
depth_filler = 2,
|
||||
node_riverbed = "nc_terrain:sand",
|
||||
depth_riverbed = 2,
|
||||
node_dungeon = "nc_concrete:adobe",
|
||||
node_dungeon_alt = "nc_nature:mossy_dirt",
|
||||
y_min = 4,
|
||||
y_max = 48,
|
||||
vertical_blend = 8,
|
||||
horizontal_blend = 16,
|
||||
heat_point = 70,
|
||||
humidity_point = 80,
|
||||
})
|
||||
|
||||
----------------------------------------
|
||||
---------------FLOODLAND----------------
|
||||
minetest.register_biome({
|
||||
name = "floodland",
|
||||
node_top = "nc_terrain:dirt_with_grass",
|
||||
@ -80,7 +115,9 @@ minetest.register_biome({
|
||||
depth_filler = 2,
|
||||
node_riverbed = "nc_terrain:sand",
|
||||
depth_riverbed = 1,
|
||||
y_min = -4,
|
||||
node_dungeon = "nc_stonework:bricks",
|
||||
node_dungeon_alt = "nc_nature:mossy_bricks",
|
||||
y_min = -1,
|
||||
y_max = 2,
|
||||
vertical_blend = 2,
|
||||
horizontal_blend = 16,
|
||||
@ -88,20 +125,43 @@ minetest.register_biome({
|
||||
humidity_point = 100,
|
||||
})
|
||||
|
||||
----------------------------------------
|
||||
-----------------DUNE-------------------
|
||||
minetest.register_biome({
|
||||
name = "stonewaste",
|
||||
node_top = "nc_terrain:cobble",
|
||||
depth_top = 1,
|
||||
node_filler = "nc_terrain:cobble",
|
||||
depth_filler = 1,
|
||||
node_riverbed = "nc_terrain:gravel",
|
||||
depth_riverbed = 2,
|
||||
node_dungeon = "nc_concrete:bricks_bonded",
|
||||
y_min = 30,
|
||||
name = "dune",
|
||||
-- node_dust = "nc_terrain:sand",
|
||||
node_top = "nc_terrain:sand",
|
||||
depth_top = 3,
|
||||
node_filler = "nc_concrete:sandstone",
|
||||
depth_filler = 6,
|
||||
node_riverbed = "nc_terrain:sand",
|
||||
depth_riverbed = 6,
|
||||
node_dungeon = "nc_concrete:sandstone",
|
||||
y_min = 0,
|
||||
y_max = 31000,
|
||||
vertical_blend = 16,
|
||||
horizontal_blend = 16,
|
||||
heat_point = 100,
|
||||
humidity_point = 0,
|
||||
heat_point = 90,
|
||||
humidity_point = 5,
|
||||
})
|
||||
|
||||
----------------------------------------
|
||||
---------------STONEWASTE---------------
|
||||
minetest.register_biome({ --This is the best 'cold biome' i can do without adding ice.
|
||||
name = "stonewaste",
|
||||
node_top = "nc_terrain:gravel",
|
||||
depth_top = 2,
|
||||
node_filler = "nc_terrain:cobble",
|
||||
depth_filler = 3,
|
||||
node_riverbed = "nc_terrain:gravel",
|
||||
depth_riverbed = 2,
|
||||
node_dungeon = "nc_terrain:cobble",
|
||||
node_dungeon_alt = "nc_nature:mossy_cobble",
|
||||
y_min = 0,
|
||||
y_max = 31000,
|
||||
vertical_blend = 16,
|
||||
horizontal_blend = 16,
|
||||
heat_point = 10,
|
||||
humidity_point = 5,
|
||||
})
|
||||
|
||||
|
41
decor.lua
@ -48,17 +48,17 @@ function register_flower_decoration(offset, scale, id, ymin)
|
||||
octaves = 3,
|
||||
persist = 0.4
|
||||
},
|
||||
y_max = 1000,
|
||||
y_max = 140,
|
||||
y_min = ymin,
|
||||
decoration = {modname .. ":flower_" .. id},
|
||||
})
|
||||
end
|
||||
|
||||
register_flower_decoration(-0.072, 0.02, "blue", 2)
|
||||
register_flower_decoration(-0.041, 0.02, "red", 20)
|
||||
register_flower_decoration(0, 0.02, "violet", 10)
|
||||
register_flower_decoration(0.015, 0.02, "white", 5)
|
||||
register_flower_decoration(0.03, 0.02, "yellow", 1)
|
||||
register_flower_decoration(0.072, 0.02, "violet", 40)
|
||||
register_flower_decoration(0.042, 0.02, "red", 30)
|
||||
register_flower_decoration(0.005, 0.02, "blue", 20)
|
||||
register_flower_decoration(0.015, 0.01, "white", 5)
|
||||
register_flower_decoration(0.035, 0.01, "yellow", 1)
|
||||
|
||||
----------------------------------------
|
||||
---------------REEDS--------------------
|
||||
@ -134,7 +134,7 @@ minetest.register_decoration({
|
||||
place_on = {"group:soil"},
|
||||
sidelen = 16,
|
||||
fill_ratio = 0.1,
|
||||
biomes = {"forest"},
|
||||
biomes = {"forest", "old_forest"},
|
||||
y_max = 2000,
|
||||
y_min = -20,
|
||||
decoration = {modname .. ":fern"},
|
||||
@ -145,7 +145,7 @@ minetest.register_decoration({
|
||||
minetest.register_decoration({
|
||||
name = {modname .. ":lilypad"},
|
||||
deco_type = "simple",
|
||||
place_on = {"nc_terrain:dirt", "nc_terrain:sand"},
|
||||
place_on = {"group:soil", "group:crumbly", "group:stone", },
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = -0.12,
|
||||
@ -202,8 +202,27 @@ function mushroom_decoration(id, ymin, ymax, offest, scale, seed, place, biome)
|
||||
})
|
||||
end
|
||||
--------------------ID------------------ymin----ymax----offset------scale---seed----place-----------------------------------------------biome-----
|
||||
mushroom_decoration("mushroom", 1, 80, -0.42, 0.07, 42, {"group:soil"}, {"grassland", "forest", "old_forest"})
|
||||
mushroom_decoration("mushroom_glow", -400, 1, 0.11, 0.2, 94, {"group:soil", "group:crumbly", "group:cobble"}, {""})
|
||||
mushroom_decoration("mushroom_lux", -1000, -100, 0.72, 0.1, 69, {"group:soil", "group:crumbly", "group:cobble"}, {""})
|
||||
mushroom_decoration("mushroom", 1, 80, -0.42, 0.07, 42, {"group:soil", "group:log"}, {"grassland", "forest", "old_forest"})
|
||||
mushroom_decoration("mushroom_glow", -400, 1, 0.11, 0.2, 94, {"group:soil", "group:log", "group:crumbly", "group:cobble"}, {""})
|
||||
mushroom_decoration("mushroom_lux", -1000, -100, 0.72, 0.1, 69, {"group:soil", "group:crumbly", "group:cobble"}, {""})
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
----------------------------------------
|
||||
---------------STARFLOWER---------------
|
||||
minetest.register_decoration({
|
||||
name = {modname .. ":starflower"},
|
||||
deco_type = "simple",
|
||||
place_on = {"group:soil"},
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = -0.7,
|
||||
scale = 0.7,
|
||||
spread = {x = 700, y = 70, z = 700},
|
||||
seed = 777,
|
||||
octaves = 7,
|
||||
persist = 0.7
|
||||
},
|
||||
y_max = 31000,
|
||||
y_min = 200,
|
||||
decoration = {modname .. ":starflower"},
|
||||
})
|
171
fungi.lua
@ -3,15 +3,22 @@ local minetest, nodecore
|
||||
= minetest, nodecore
|
||||
-- LUALOCALS > ---------------------------------------------------------
|
||||
local modname = minetest.get_current_modname()
|
||||
local checkdirs = {
|
||||
{x = 1, y = 0, z = 0},
|
||||
{x = -1, y = 0, z = 0},
|
||||
{x = 0, y = 0, z = 1},
|
||||
{x = 0, y = 0, z = -1},
|
||||
{x = 0, y = 1, z = 0},
|
||||
{x = 0, y = -1, z = 0}
|
||||
local checkdirs = nodecore.dirs()
|
||||
local breathable = {
|
||||
airlike = true,
|
||||
allfaces = true,
|
||||
allfaces_optional = true,
|
||||
torchlike = true,
|
||||
signlike = true,
|
||||
plantlike = true,
|
||||
firelike = true,
|
||||
raillike = true,
|
||||
nodebox = true,
|
||||
mesh = true,
|
||||
plantlike_rooted = true,
|
||||
liquid = true,
|
||||
flowingliquid = true
|
||||
}
|
||||
|
||||
----------------------------------------
|
||||
---------------MUSHROOMS----------------
|
||||
|
||||
@ -23,11 +30,11 @@ local checkdirs = {
|
||||
sunlight_propagates = true,
|
||||
paramtype = 'light',
|
||||
walkable = false,
|
||||
silktouch = false,
|
||||
groups = { snappy = 1, fungi = 1, flammable = 1, attached_node = 1},
|
||||
-- silktouch = false,
|
||||
groups = { snappy = 1, fungi = 1, flammable = 1, attached_node = 1, natdecay = 1},
|
||||
sounds = nodecore.sounds("nc_terrain_swishy"),
|
||||
buildable_to = true,
|
||||
drop = "nc_nature:plant_fibers",
|
||||
-- drop = "nc_nature:plant_fibers",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 4 / 16, 6 / 16},
|
||||
@ -42,12 +49,12 @@ local checkdirs = {
|
||||
sunlight_propagates = true,
|
||||
paramtype = 'light',
|
||||
walkable = false,
|
||||
silktouch = false,
|
||||
-- silktouch = false,
|
||||
light_source = 2,
|
||||
groups = { snappy = 1, fungi = 1, flammable = 1, attached_node = 1},
|
||||
groups = { snappy = 1, fungi = 1, flammable = 1, attached_node = 1, natdecay = 1},
|
||||
sounds = nodecore.sounds("nc_terrain_swishy"),
|
||||
buildable_to = true,
|
||||
drop = "nc_nature:plant_fibers",
|
||||
-- drop = "nc_nature:plant_fibers",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 4 / 16, 6 / 16},
|
||||
@ -62,12 +69,12 @@ local checkdirs = {
|
||||
sunlight_propagates = true,
|
||||
paramtype = 'light',
|
||||
walkable = false,
|
||||
silktouch = false,
|
||||
-- silktouch = false,
|
||||
light_source = 4,
|
||||
groups = { snappy = 1, fungi = 1, flammable = 1, attached_node = 1},
|
||||
groups = { snappy = 1, fungi = 1, flammable = 1, attached_node = 1, natdecay = 1},
|
||||
sounds = nodecore.sounds("nc_terrain_swishy"),
|
||||
buildable_to = true,
|
||||
drop = "nc_nature:plant_fibers",
|
||||
-- drop = "nc_nature:plant_fibers",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 4 / 16, 6 / 16},
|
||||
@ -158,6 +165,19 @@ minetest.register_node("nc_nature:mossy_dirt", {
|
||||
minetest.register_node("nc_nature:mossy_bricks", {
|
||||
description = "Mossy Stone Bricks",
|
||||
tiles = {"nc_nature_mossy_stonebrick.png"},
|
||||
drop_in_place = "nc_stonework:bricks",
|
||||
groups = {
|
||||
stone = 1,
|
||||
rock = 1,
|
||||
snappy = 1,
|
||||
brick = 1,
|
||||
mossy = 1
|
||||
},
|
||||
sounds = nodecore.sounds("nc_terrain_stony")
|
||||
})
|
||||
minetest.register_node("nc_nature:mossy_bricks_bonded", {
|
||||
description = "Mossy Bonded Stone Bricks",
|
||||
tiles = {"nc_nature_mossy_stonebrick.png"},
|
||||
drop_in_place = "nc_stonework:bricks_bonded",
|
||||
groups = {
|
||||
stone = 1,
|
||||
@ -171,16 +191,28 @@ minetest.register_node("nc_nature:mossy_bricks", {
|
||||
|
||||
----------------------------------------
|
||||
--------------MOSS GROWTH---------------
|
||||
--Thanks to Kimapr for helping figure this out--
|
||||
|
||||
--cobble--
|
||||
nodecore.register_limited_abm({
|
||||
nodecore.register_limited_abm({ --notes about this line of code,
|
||||
label = "moss spread cobble",
|
||||
nodenames = {"nc_terrain:cobble"},
|
||||
neighbors = {"group:mossy"},
|
||||
interval = 10,
|
||||
chance = 20,
|
||||
action = function(pos)
|
||||
nodecore.set_node(pos, {name = modname .. ":mossy_cobble"})
|
||||
local good = false
|
||||
for _,dir in ipairs(nodecore.dirs()) do
|
||||
local posn = vector.add(pos,dir)
|
||||
local node = minetest.get_node(posn)
|
||||
if breathable[minetest.registered_items[node.name].drawtype] then
|
||||
good = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if good then
|
||||
nodecore.set_node(pos, {name = modname .. ":mossy_cobble"})
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
@ -190,11 +222,21 @@ nodecore.register_limited_abm({
|
||||
nodenames = {"nc_terrain:stone"},
|
||||
neighbors = {"group:mossy"},
|
||||
interval = 10,
|
||||
chance = 10,
|
||||
chance = 20,
|
||||
action = function(pos)
|
||||
nodecore.set_node(pos, {name = modname .. ":mossy_stone"})
|
||||
local good = false
|
||||
for _,dir in ipairs(nodecore.dirs()) do
|
||||
local posn = vector.add(pos,dir)
|
||||
local node = minetest.get_node(posn)
|
||||
if breathable[minetest.registered_items[node.name].drawtype] then
|
||||
good = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if good then
|
||||
nodecore.set_node(pos, {name = modname .. ":mossy_stone"})
|
||||
end
|
||||
end
|
||||
-- end
|
||||
})
|
||||
|
||||
--thatch--
|
||||
@ -203,9 +245,20 @@ nodecore.register_limited_abm({
|
||||
nodenames = {"nc_nature:thatch"},
|
||||
neighbors = {"group:mossy"},
|
||||
interval = 10,
|
||||
chance = 10,
|
||||
chance = 20,
|
||||
action = function(pos)
|
||||
nodecore.set_node(pos, {name = modname .. ":mossy_thatch"})
|
||||
local good = false
|
||||
for _,dir in ipairs(nodecore.dirs()) do
|
||||
local posn = vector.add(pos,dir)
|
||||
local node = minetest.get_node(posn)
|
||||
if breathable[minetest.registered_items[node.name].drawtype] then
|
||||
good = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if good then
|
||||
nodecore.set_node(pos, {name = modname .. ":mossy_thatch"})
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
@ -215,9 +268,20 @@ nodecore.register_limited_abm({
|
||||
nodenames = {"nc_tree:tree"},
|
||||
neighbors = {"group:mossy"},
|
||||
interval = 10,
|
||||
chance = 10,
|
||||
chance = 20,
|
||||
action = function(pos)
|
||||
nodecore.set_node(pos, {name = modname .. ":mossy_trunk"})
|
||||
local good = false
|
||||
for _,dir in ipairs(nodecore.dirs()) do
|
||||
local posn = vector.add(pos,dir)
|
||||
local node = minetest.get_node(posn)
|
||||
if breathable[minetest.registered_items[node.name].drawtype] then
|
||||
good = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if good then
|
||||
nodecore.set_node(pos, {name = modname .. ":mossy_trunk"})
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
@ -227,21 +291,64 @@ nodecore.register_limited_abm({
|
||||
nodenames = {"nc_terrain:dirt"},
|
||||
neighbors = {"group:mossy"},
|
||||
interval = 10,
|
||||
chance = 10,
|
||||
chance = 20,
|
||||
action = function(pos)
|
||||
nodecore.set_node(pos, {name = modname .. ":mossy_dirt"})
|
||||
local good = false
|
||||
for _,dir in ipairs(nodecore.dirs()) do
|
||||
local posn = vector.add(pos,dir)
|
||||
local node = minetest.get_node(posn)
|
||||
if breathable[minetest.registered_items[node.name].drawtype] then
|
||||
good = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if good then
|
||||
nodecore.set_node(pos, {name = modname .. ":mossy_dirt"})
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
--stonebricks--
|
||||
nodecore.register_limited_abm({
|
||||
label = "moss spread stonebricks",
|
||||
nodenames = {"group:brick"},
|
||||
label = "moss spread stacked stonebricks",
|
||||
nodenames = {"nc_stonework:bricks"},
|
||||
neighbors = {"group:mossy"},
|
||||
interval = 10,
|
||||
chance = 10,
|
||||
chance = 20,
|
||||
action = function(pos)
|
||||
nodecore.set_node(pos, {name = modname .. ":mossy_stonebrick"})
|
||||
local good = false
|
||||
for _,dir in ipairs(nodecore.dirs()) do
|
||||
local posn = vector.add(pos,dir)
|
||||
local node = minetest.get_node(posn)
|
||||
if breathable[minetest.registered_items[node.name].drawtype] then
|
||||
good = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if good then
|
||||
nodecore.set_node(pos, {name = modname .. ":mossy_bricks"})
|
||||
end
|
||||
end
|
||||
})
|
||||
nodecore.register_limited_abm({
|
||||
label = "moss spread bonded stonebricks",
|
||||
nodenames = {"nc_stonework:bricks_bonded"},
|
||||
neighbors = {"group:mossy"},
|
||||
interval = 10,
|
||||
chance = 20,
|
||||
action = function(pos)
|
||||
local good = false
|
||||
for _,dir in ipairs(nodecore.dirs()) do
|
||||
local posn = vector.add(pos,dir)
|
||||
local node = minetest.get_node(posn)
|
||||
if breathable[minetest.registered_items[node.name].drawtype] then
|
||||
good = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if good then
|
||||
nodecore.set_node(pos, {name = modname .. ":mossy_bricks_bonded"})
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
|
85
plants.lua
@ -6,29 +6,7 @@ local modname = minetest.get_current_modname()
|
||||
|
||||
----------------------------------------
|
||||
-----------------GRASS------------------
|
||||
minetest.register_node("nc_nature:grass_1", {
|
||||
description = ("Grass"),
|
||||
drawtype = "plantlike",
|
||||
waving = 1,
|
||||
tiles = {"nc_nature_grass_1.png"},
|
||||
-- Use texture of a taller grass stage in inventory
|
||||
inventory_image = "nc_nature_grass_3.png",
|
||||
wield_image = "nc_nature_grass_3.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
buildable_to = true,
|
||||
silktouch = false,
|
||||
drop = "nc_nature:plant_fibers",
|
||||
groups = {snappy = 1, flora = 1, attached_node = 1, grass = 1, flammable = 1},
|
||||
sounds = nodecore.sounds("nc_terrain_swishy"),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -5 / 16, 6 / 16},
|
||||
},
|
||||
})
|
||||
|
||||
for i = 2, 5 do
|
||||
for i = 1, 5 do
|
||||
minetest.register_node("nc_nature:grass_" .. i, {
|
||||
description = ("Grass"),
|
||||
drawtype = "plantlike",
|
||||
@ -66,9 +44,9 @@ minetest.register_node("nc_nature:reeds", {
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
buildable_to = true,
|
||||
silktouch = false,
|
||||
groups = {snappy = 1, flora = 1, flammable = 3, attached_node = 1},
|
||||
drop = "nc_nature:plant_fibers",
|
||||
-- silktouch = false,
|
||||
groups = {snappy = 1, flora = 1, flammable = 3, attached_node = 1, natdecay = 1},
|
||||
-- drop = "nc_nature:plant_fibers",
|
||||
sounds = nodecore.sounds("nc_terrain_swishy"),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
@ -107,7 +85,8 @@ minetest.register_node("nc_nature:shrub", {
|
||||
falling_repose = 1,
|
||||
green = 1,
|
||||
stack_as_node = 1,
|
||||
shrub = 1
|
||||
shrub = 1,
|
||||
natdecay = 1
|
||||
}
|
||||
},
|
||||
no_repack = true,
|
||||
@ -118,7 +97,7 @@ nodecore.register_limited_abm({
|
||||
label = "Shrub Rerooting",
|
||||
nodenames = {modname .. ":shrub_loose"},
|
||||
neighbors = {"group:soil"},
|
||||
interval = 10,
|
||||
interval = 2,
|
||||
chance = 10,
|
||||
action = function(pos)
|
||||
nodecore.set_loud(pos, {name = modname .. ":shrub"})
|
||||
@ -173,11 +152,11 @@ minetest.register_node(modname .. ":fern", {
|
||||
sunlight_propagates = true,
|
||||
paramtype = 'light',
|
||||
walkable = false,
|
||||
silktouch = false,
|
||||
groups = { snappy = 1, flora = 1, flammable = 2, attached_node = 1},
|
||||
-- silktouch = false,
|
||||
groups = { snappy = 1, flora = 1, flammable = 2, attached_node = 1, natdecay = 1},
|
||||
sounds = nodecore.sounds("nc_terrain_swishy"),
|
||||
buildable_to = true,
|
||||
drop = "nc_nature:plant_fibers",
|
||||
-- drop = "nc_nature:plant_fibers",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 4 / 16, 6 / 16},
|
||||
@ -243,14 +222,16 @@ function register_flower(id, desc)
|
||||
drawtype = 'plantlike',
|
||||
waving = 1,
|
||||
tiles = {modname .. "_flower_" .. id .. ".png"},
|
||||
wield_image = {modname .. "_flower_" .. id .. ".png"},
|
||||
inventory_image = {modname .. "_flower_" .. id .. ".png"},
|
||||
sunlight_propagates = true,
|
||||
paramtype = 'light',
|
||||
walkable = false,
|
||||
silktouch = false,
|
||||
groups = { snappy = 1, flora = 1, flammable = 1, attached_node = 1},
|
||||
-- silktouch = false,
|
||||
groups = { snappy = 1, flora = 1, flammable = 1, attached_node = 1, natdecay = 1},
|
||||
sounds = nodecore.sounds("nc_terrain_swishy"),
|
||||
buildable_to = true,
|
||||
drop = "nc_nature:plant_fibers",
|
||||
-- drop = "nc_nature:plant_fibers",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 4 / 16, 6 / 16},
|
||||
@ -262,4 +243,40 @@ register_flower("red", "Red")
|
||||
register_flower("violet", "Violet")
|
||||
register_flower("white", "White")
|
||||
register_flower("yellow", "Yellow")
|
||||
|
||||
----------------------------------------
|
||||
---------------STARFLOWER---------------
|
||||
minetest.register_node(modname .. ":starflower", {
|
||||
description = "Starflower",
|
||||
drawtype = 'plantlike',
|
||||
waving = 1,
|
||||
tiles = {modname .. "_starflower.png"},
|
||||
wield_image = {modname .. "_starflower.png"},
|
||||
inventory_image = {modname .. "_starflower.png"},
|
||||
sunlight_propagates = true,
|
||||
paramtype = 'light',
|
||||
light_source = 7,
|
||||
walkable = false,
|
||||
groups = { snappy = 1, flora = 1, flammable = 1, attached_node = 1, natdecay = 1},
|
||||
sounds = nodecore.sounds("nc_terrain_swishy"),
|
||||
buildable_to = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 4 / 16, 6 / 16},
|
||||
},
|
||||
})
|
||||
|
||||
----------------------------------------
|
||||
-----------------Decay------------------
|
||||
-----Plant Decay-----
|
||||
nodecore.register_aism({
|
||||
label = "Plant Stack Decay",
|
||||
interval = 2,
|
||||
chance = 10,
|
||||
itemnames = {"group:natdecay"},
|
||||
action = function(stack, data)
|
||||
minetest.sound_play("nc_terrain_swishy", {gain = 0.4, pos = data.pos})
|
||||
stack:set_name(modname .. ":plant_fibers")
|
||||
return stack
|
||||
end
|
||||
})
|
||||
|
@ -43,6 +43,13 @@ local lowboulder = {
|
||||
".sss.",
|
||||
"..c..",
|
||||
}
|
||||
local rareslice = {
|
||||
".....",
|
||||
".sss.",
|
||||
".sos.",
|
||||
".sss.",
|
||||
".....",
|
||||
}
|
||||
local midboulder = {
|
||||
".....",
|
||||
"..s..",
|
||||
@ -57,11 +64,20 @@ local topboulder = {
|
||||
".....",
|
||||
".....",
|
||||
}
|
||||
local mossboulder = {
|
||||
".....",
|
||||
".....",
|
||||
"..m..",
|
||||
".....",
|
||||
".....",
|
||||
}
|
||||
|
||||
nodecore.boulder_params = {
|
||||
{},
|
||||
{},
|
||||
{prob = 160}
|
||||
{prob = 255},
|
||||
{prob = 100},
|
||||
{prob = 255},
|
||||
{prob = 100},
|
||||
{prob = 200},
|
||||
}
|
||||
|
||||
nodecore.boulder_schematic = nodecore.ezschematic(
|
||||
@ -69,19 +85,23 @@ nodecore.boulder_schematic = nodecore.ezschematic(
|
||||
["."] = {name = "air", prob = 0},
|
||||
s = {name = "nc_terrain:stone", prob = 255},
|
||||
c = {name = "nc_terrain:cobble", prob = 160},
|
||||
m = {name = "nc_nature:mossy_stone", prob = 255},
|
||||
o = {name = "nc_lode:ore", prob = 255},
|
||||
},
|
||||
{
|
||||
lowboulder,
|
||||
rareslice,
|
||||
midboulder,
|
||||
topboulder,
|
||||
topboulder
|
||||
mossboulder
|
||||
},
|
||||
{
|
||||
yslice_prob = {
|
||||
{ypos = 1, prob = 255},
|
||||
{ypos = 2, prob = 160},
|
||||
{ypos = 3, prob = 160},
|
||||
{ypos = 4, prob = 160},
|
||||
{ypos = 2, prob = 100},
|
||||
{ypos = 3, prob = 225},
|
||||
{ypos = 4, prob = 100},
|
||||
{ypos = 5, prob = 200},
|
||||
}
|
||||
}
|
||||
)
|
||||
|
Before Width: | Height: | Size: 639 B After Width: | Height: | Size: 297 B |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.4 KiB |
BIN
textures/nc_nature_starflower.png
Normal file
After Width: | Height: | Size: 572 B |