Files
modolith/mods/ebiomes/coldnswamps.lua
T

2865 lines
83 KiB
Lua

local S = core.get_translator("ebiomes")
--from runs cooltrees
local modname = "ebiomes"
local modpath = core.get_modpath(modname)
local mg_name = core.get_mapgen_setting("mg_name")
--Aliases
core.register_alias("dirt_cold_grass", "ebiomes:dirt_with_grass_cold")
core.register_alias("dirt_with_cold_grass_footsteps", "ebiomes:dirt_with_grass_cold_footsteps")
core.register_alias("dirt_with_swamp_grass", "ebiomes:dirt_with_grass_swamp")
core.register_alias("dirt_with_swamp_grass_footsteps", "ebiomes:dirt_with_grass_swamp_footsteps")
core.register_alias("swamp_water", "ebiomes:swamp_water_source")
core.register_alias("wet_peat_with_green_swamp_moss", "ebiomes:peat_wet_with_swamp_moss_green")
core.register_alias("wet_peat_with_green_swamp_moss_footsteps", "ebiomes:peat_wet_with_swamp_moss_green_footsteps")
core.register_alias("peat_with_yellow_swamp_moss", "ebiomes:peat_with_swamp_moss_yellow")
core.register_alias("peat_with_yellow_swamp_moss_footsteps", "ebiomes:peat_with_swamp_moss_yellow_footsteps")
core.register_alias("reeds", "ebiomes:reeds")
core.register_alias("green_marsh_grass", "ebiomes:marsh_grass_green")
core.register_alias("yellow_marsh_grass", "ebiomes:marsh_grass_yellow")
core.register_alias("blackcurrant_bush_leaves", "ebiomes:blackcurrant_bush_leaves")
core.register_alias("blackcurrant_bush_leaves", "ebiomes:blackcurrant_bush_leaves_with_berries")
core.register_alias("blackcurrant_bush_sapling", "ebiomes:blackcurrant_bush_sapling")
core.register_alias("blackcurrants", "ebiomes:blackcurrants")
core.register_alias("redcurrant_bush_leaves", "ebiomes:redcurrant_bush_leaves")
core.register_alias("redcurrant_bush_leaves", "ebiomes:redcurrant_bush_leaves_with_berries")
core.register_alias("redcurrant_bush_sapling", "ebiomes:redcurrant_bush_sapling")
core.register_alias("redcurrants", "ebiomes:redcurrants")
core.register_alias("gooseberry_bush_leaves", "ebiomes:gooseberry_bush_leaves")
core.register_alias("gooseberry_bush_leaves", "ebiomes:gooseberry_bush_leaves_with_berries")
core.register_alias("gooseberry_bush_sapling", "ebiomes:gooseberry_bush_sapling")
core.register_alias("gooseberries", "ebiomes:gooseberries")
core.register_alias("cranberry_patch", "ebiomes:cranberry_patch")
core.register_alias("cranberries", "ebiomes:cranberries")
core.register_alias("sundew", "ebiomes:sundew")
core.register_alias("marigold", "ebiomes:marigold")
core.register_alias("marsh_stitchwort", "ebiomes:marsh_stitchwort")
core.register_alias("alder_tree", "ebiomes:alder_tree")
core.register_alias("alder_wood", "ebiomes:alder_wood")
core.register_alias("alder_leaves", "ebiomes:alder_leaves")
core.register_alias("alder_sapling", "ebiomes:alder_sapling")
core.register_alias("ash_tree", "ebiomes:ash_tree")
core.register_alias("ash_wood", "ebiomes:ash_wood")
core.register_alias("ash_leaves", "ebiomes:ash_leaves")
core.register_alias("ash_sapling", "ebiomes:ash_sapling")
core.register_alias("birch_tree", "ebiomes:birch_tree")
core.register_alias("birch_wood", "ebiomes:birch_wood")
core.register_alias("birch_leaves", "ebiomes:birch_leaves")
core.register_alias("birch_sapling", "ebiomes:birch_sapling")
core.register_alias("willow_tree", "ebiomes:willow_tree")
core.register_alias("willow_wood", "ebiomes:willow_wood")
core.register_alias("willow_leaves", "ebiomes:willow_leaves")
core.register_alias("willow_sapling", "ebiomes:willow_sapling")
core.register_alias("downy_birch_tree", "ebiomes:downy_birch_tree")
core.register_alias("downy_birch_wood", "ebiomes:downy_birch_wood")
core.register_alias("downy_birch_leaves", "ebiomes:downy_birch_leaves")
core.register_alias("downy_birch_sapling", "ebiomes:downy_birch_sapling")
--Cold deciduous
core.register_node("ebiomes:dirt_with_grass_cold", {
description = S("Dirt with Cold Grass"),
tiles = {"ebiomes_grass_cold.png", "default_dirt.png",
{name = "default_dirt.png^ebiomes_grass_cold_side.png",
tileable_vertical = false}},
groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1},
drop = "default:dirt",
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
soil = {
base = "ebiomes:dirt_with_grass_cold",
dry = "farming:soil",
wet = "farming:soil_wet"
}
})
core.register_node("ebiomes:dirt_with_grass_cold_footsteps", {
description = S("Dirt with Cold Grass and Footsteps"),
tiles = {"ebiomes_grass_cold.png^default_footprint.png", "default_dirt.png",
{name = "default_dirt.png^ebiomes_grass_cold_side.png",
tileable_vertical = false}},
groups = {crumbly = 3, soil = 1, not_in_creative_inventory = 1},
drop = "default:dirt",
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
})
core.register_node("ebiomes:grass_cold_1", {
description = S("Cold Grass"),
drawtype = "plantlike",
waving = 1,
tiles = {"ebiomes_grass_cold_1.png"},
-- Use texture of a taller grass stage in inventory
inventory_image = "ebiomes_grass_cold_3.png",
wield_image = "ebiomes_grass_cold_3.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, flora = 1, attached_node = 1, grass = 1,
normal_grass = 1, flammable = 1},
max_items = 1,
items = {
{items = {"farming:seed_wheat"}, rarity = 5},
{items = {"ebiomes:grass_cold_1"}},
},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -5 / 16, 6 / 16},
},
on_place = function(itemstack, placer, pointed_thing)
-- place a random grass node
local stack = ItemStack("ebiomes:grass_cold_" .. math.random(1,5))
local ret = core.item_place(stack, placer, pointed_thing)
return ItemStack("ebiomes:grass_cold_1 " ..
itemstack:get_count() - (1 - ret:get_count()))
end,
})
for i = 2, 5 do
core.register_node("ebiomes:grass_cold_" .. i, {
description = S("Cold Grass"),
drawtype = "plantlike",
waving = 1,
tiles = {"ebiomes_grass_cold_" .. i .. ".png"},
inventory_image = "ebiomes_grass_cold_" .. i .. ".png",
wield_image = "ebiomes_grass_cold_" .. i .. ".png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "ebiomes:grass_cold_1",
groups = {snappy = 3, flora = 1, attached_node = 1,
not_in_creative_inventory = 1, grass = 1,
normal_grass = 1, flammable = 1},
items = {
{items = {"farming:seed_wheat"}, rarity = 5},
{items = {"ebiomes:grass_cold_1"}},
},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16},
},
})
end
core.register_biome({
name = "deciduous_forest_cold",
node_top = "ebiomes:dirt_with_grass_cold",
depth_top = 1,
node_filler = "default:dirt",
depth_filler = 3,
node_riverbed = "default:sand",
depth_riverbed = 2,
node_dungeon = "default:cobble",
node_dungeon_alt = "default:mossycobble",
node_dungeon_stair = "stairs:stair_cobble",
y_max = 31000,
y_min = 4,
heat_point = 53,
humidity_point = 75,
})
core.register_biome({
name = "deciduous_forest_cold_shore",
node_top = "default:sand",
depth_top = 1,
node_filler = "default:sand",
depth_filler = 3,
node_riverbed = "default:sand",
depth_riverbed = 2,
node_dungeon = "default:cobble",
node_dungeon_alt = "default:mossycobble",
node_dungeon_stair = "stairs:stair_cobble",
y_max = 3,
y_min = -1,
heat_point = 53,
humidity_point = 75,
})
core.register_biome({
name = "deciduous_forest_cold_ocean",
node_top = "default:sand",
depth_top = 1,
node_filler = "default:sand",
depth_filler = 3,
node_riverbed = "default:sand",
depth_riverbed = 2,
node_cave_liquid = "default:water_source",
node_dungeon = "default:cobble",
node_dungeon_alt = "default:mossycobble",
node_dungeon_stair = "stairs:stair_cobble",
vertical_blend = 1,
y_max = -2,
y_min = -255,
heat_point = 53,
humidity_point = 75,
})
core.register_biome({
name = "deciduous_forest_cold_under",
node_cave_liquid = {"default:water_source", "default:lava_source"},
node_dungeon = "default:cobble",
node_dungeon_alt = "default:mossycobble",
node_dungeon_stair = "stairs:stair_cobble",
y_max = -256,
y_min = -400,
heat_point = 53,
humidity_point = 75,
})
for length = 1, 5 do
core.register_decoration({
name = "ebiomes:grass_cold_"..length,
deco_type = "simple",
place_on = {"ebiomes:dirt_with_grass_cold"},
sidelen = 16,
noise_params = {
offset = 0.05,
scale = 0.01,
spread = {x = 100, y = 100, z = 100},
seed = 329,
octaves = 3,
persist = 0.6
},
y_max = 31000,
y_min = 1,
decoration = "ebiomes:grass_cold_"..length,
})
end
--Swamp
core.register_node("ebiomes:dirt_with_grass_swamp", {
description = S("Dirt with Swamp Grass"),
tiles = {"ebiomes_grass_swamp.png", "default_dirt.png",
{name = "default_dirt.png^ebiomes_grass_swamp_side.png",
tileable_vertical = false}},
groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1},
drop = "default:dirt",
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
})
core.register_node("ebiomes:dirt_with_grass_swamp_footsteps", {
description = S("Dirt with Swamp Grass and Footsteps"),
tiles = {"ebiomes_grass_swamp.png^default_footprint.png", "default_dirt.png",
{name = "default_dirt.png^ebiomes_grass_swamp_side.png",
tileable_vertical = false}},
groups = {crumbly = 3, soil = 1, not_in_creative_inventory = 1},
drop = "default:dirt",
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
})
core.register_node("ebiomes:grass_swamp_1", {
description = S("Swamp Grass"),
drawtype = "plantlike",
waving = 1,
tiles = {"ebiomes_grass_swamp_1.png"},
-- Use texture of a taller grass stage in inventory
inventory_image = "ebiomes_grass_swamp_3.png",
wield_image = "ebiomes_grass_swamp_3.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, flora = 1, attached_node = 1, grass = 1,
normal_grass = 1, flammable = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -5 / 16, 6 / 16},
},
on_place = function(itemstack, placer, pointed_thing)
-- place a random grass node
local stack = ItemStack("ebiomes:grass_swamp_" .. math.random(1,5))
local ret = core.item_place(stack, placer, pointed_thing)
return ItemStack("ebiomes:grass_swamp_1 " ..
itemstack:get_count() - (1 - ret:get_count()))
end,
})
for i = 2, 5 do
core.register_node("ebiomes:grass_swamp_" .. i, {
description = S("Swamp Grass"),
drawtype = "plantlike",
waving = 1,
tiles = {"ebiomes_grass_swamp_" .. i .. ".png"},
inventory_image = "ebiomes_grass_swamp_" .. i .. ".png",
wield_image = "ebiomes_grass_swamp_" .. i .. ".png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "ebiomes:grass_swamp_1",
groups = {snappy = 3, flora = 1, attached_node = 1,
not_in_creative_inventory = 1, grass = 1, flammable = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16},
},
})
end
core.register_biome({
name = "swamp",
node_top = "ebiomes:dirt_with_grass_swamp",
depth_top = 1,
node_filler = "default:dirt",
depth_filler = 3,
node_riverbed = "default:sand",
depth_riverbed = 2,
node_dungeon = "default:cobble",
node_dungeon_alt = "default:mossycobble",
node_dungeon_stair = "stairs:stair_cobble",
y_max = 8,
y_min = 1,
heat_point = 53,
humidity_point = 85,
})
core.register_biome({
name = "swamp_shore",
node_top = "default:dirt",
depth_top = 1,
node_filler = "default:dirt",
depth_filler = 3,
node_riverbed = "default:sand",
depth_riverbed = 2,
node_dungeon = "default:cobble",
node_dungeon_alt = "default:mossycobble",
node_dungeon_stair = "stairs:stair_cobble",
y_max = 0,
y_min = -1,
heat_point = 53,
humidity_point = 85,
})
core.register_biome({
name = "swamp_ocean",
node_top = "default:sand",
depth_top = 1,
node_filler = "default:sand",
depth_filler = 3,
node_riverbed = "default:sand",
depth_riverbed = 2,
node_cave_liquid = "default:water_source",
node_dungeon = "default:cobble",
node_dungeon_alt = "default:mossycobble",
node_dungeon_stair = "stairs:stair_cobble",
vertical_blend = 1,
y_max = -2,
y_min = -255,
heat_point = 53,
humidity_point = 85,
})
core.register_biome({
name = "swamp_under",
node_cave_liquid = {"default:water_source", "default:lava_source"},
node_dungeon = "default:cobble",
node_dungeon_alt = "default:mossycobble",
node_dungeon_stair = "stairs:stair_cobble",
y_max = -256,
y_min = -400,
heat_point = 53,
humidity_point = 85,
})
core.register_node("ebiomes:swamp_water_source", {
description = S("Swamp Water Source"),
drawtype = "liquid",
tiles = {
{
name = "ebiomes_swamp_water_source_animated.png",
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
},
{
name = "ebiomes_swamp_water_source_animated.png",
backface_culling = true,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
},
},
use_texture_alpha = "blend",
paramtype = "light",
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
drop = "",
drowning = 1,
liquidtype = "source",
liquid_alternative_flowing = "ebiomes:swamp_water_flowing",
liquid_alternative_source = "ebiomes:swamp_water_source",
liquid_viscosity = 1,
-- Not renewable to avoid horizontal spread of water sources in sloping
-- rivers that can cause water to overflow riverbanks and cause floods.
-- River water source is instead made renewable by the 'force renew'
-- option used in the 'bucket' mod by the river water bucket.
liquid_renewable = false,
liquid_range = 2,
post_effect_color = {a = 128, r = 24, g = 20, b = 16},
groups = {water = 3, liquid = 3, cools_lava = 1},
sounds = default.node_sound_water_defaults(),
})
core.register_node("ebiomes:swamp_water_flowing", {
description = S("Swamp Water"),
drawtype = "flowingliquid",
tiles = {"ebiomes_swamp_water.png"},
special_tiles = {
{
name = "ebiomes_swamp_water_flowing_animated.png",
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 0.5,
},
},
{
name = "ebiomes_swamp_water_flowing_animated.png",
backface_culling = true,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 0.5,
},
},
},
use_texture_alpha = "blend",
paramtype = "light",
paramtype2 = "flowingliquid",
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
drop = "",
drowning = 1,
liquidtype = "flowing",
liquid_alternative_flowing = "ebiomes:swamp_water_flowing",
liquid_alternative_source = "ebiomes:swamp_water_source",
liquid_viscosity = 1,
liquid_renewable = false,
liquid_range = 2,
post_effect_color = {a = 128, r = 24, g = 20, b = 16},
groups = {water = 3, liquid = 3, not_in_creative_inventory = 1,
cools_lava = 1},
sounds = default.node_sound_water_defaults(),
})
bucket.register_liquid(
"ebiomes:swamp_water_source",
"ebiomes:swamp_water_flowing",
"ebiomes:bucket_swamp_water",
"ebiomes_bucket_swamp_water.png",
S("Swamp Water Bucket"),
{tool = 1, water_bucket = 1},
true
)
for length = 1, 5 do
core.register_decoration({
name = "ebiomes:grass_swamp_"..length,
deco_type = "simple",
place_on = {"ebiomes:dirt_with_grass_swamp"},
sidelen = 16,
noise_params = {
offset = 0.05,
scale = 0.01,
spread = {x = 100, y = 100, z = 100},
seed = 329,
octaves = 3,
persist = 0.6
},
y_max = 31000,
y_min = 1,
decoration = "ebiomes:grass_swamp_"..length,
})
end
--Bog
--Peats
core.register_node("ebiomes:peat", {
description = S("Peat"),
tiles = {"ebiomes_peat.png"},
groups = {crumbly = 3, soil = 1},
sounds = default.node_sound_dirt_defaults(),
})
core.register_node("ebiomes:peat_with_swamp_moss_yellow", {
description = S("Peat with Yellow Swamp Moss"),
tiles = {"ebiomes_swamp_moss_yellow.png", "ebiomes_peat.png",
{name = "ebiomes_peat.png^ebiomes_swamp_moss_yellow_side.png",
tileable_vertical = false}},
groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1},
drop = "ebiomes:peat",
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
})
core.register_node("ebiomes:peat_with_swamp_moss_yellow_footsteps", {
description = S("Peat with Yellow Swamp Moss and Footsteps"),
tiles = {"ebiomes_swamp_moss_yellow.png^default_footprint.png", "ebiomes_peat.png",
{name = "ebiomes_peat.png^ebiomes_swamp_moss_yellow_side.png",
tileable_vertical = false}},
groups = {crumbly = 3, soil = 1, not_in_creative_inventory = 1},
drop = "ebiomes:peat",
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
})
core.register_node("ebiomes:peat_dry", {
description = S("Dry Peat"),
tiles = {"ebiomes_peat_dry.png"},
groups = {crumbly = 3, soil = 1},
sounds = default.node_sound_dirt_defaults(),
})
core.register_node("ebiomes:peat_wet", {
description = S("Wet Peat"),
tiles = {"ebiomes_peat_wet.png"},
drop = "ebiomes:peat_wet",
liquid_viscosity = 15,
liquidtype = "source",
liquid_alternative_flowing = "ebiomes:peat_wet",
liquid_alternative_source = "ebiomes:peat_wet",
liquid_renewable = false,
liquid_range = 0,
drowning = 1,
walkable = false,
climbable = false,
groups = {crumbly = 3, soil = 1, liquid = 3, disable_jump = 1},
sounds = default.node_sound_dirt_defaults(),
})
--peat
--Wet peat made from a code saple of ethereal quicksand
core.register_node("ebiomes:peat_wet_with_swamp_moss_green", {
description = S("Wet Peat with Green Swamp Moss"),
tiles = {"ebiomes_swamp_moss_green.png", "ebiomes_peat_wet.png",
{name = "ebiomes_peat_wet.png^ebiomes_swamp_moss_green_side.png",
tileable_vertical = false}},
drop = "ebiomes:peat_wet",
liquid_viscosity = 15,
liquidtype = "source",
liquid_alternative_flowing = "ebiomes:peat_wet_with_swamp_moss_green",
liquid_alternative_source = "ebiomes:peat_wet_with_swamp_moss_green",
liquid_renewable = false,
liquid_range = 0,
drowning = 1,
walkable = false,
climbable = false,
groups = {crumbly = 3, soil = 1, liquid = 3, disable_jump = 1},
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
})
core.register_node("ebiomes:peat_wet_with_swamp_moss_green_footsteps", {
description = S("Wet Peat with Green Swamp Moss and Footsteps"),
tiles = {"ebiomes_swamp_moss_green.png^default_footprint.png", "ebiomes_peat_wet.png",
{name = "ebiomes_peat_wet.png^ebiomes_swamp_moss_green_side.png",
tileable_vertical = false}},
drop = "ebiomes:peat_wet",
liquid_viscosity = 15,
liquidtype = "source",
liquid_alternative_flowing = "ebiomes:peat_wet_with_swamp_moss_green_footsteps",
liquid_alternative_source = "ebiomes:peat_wet_with_swamp_moss_green_footsteps",
liquid_renewable = false,
liquid_range = 0,
drowning = 1,
walkable = false,
climbable = false,
groups = {crumbly = 3, soil = 1, liquid = 3, disable_jump = 1},
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
})
--crafts
core.register_craft({
output = "ebiomes:peat",
recipe = {
{"ebiomes:peat_wet"},
}
})
core.register_craft({
type = "shapeless",
output = "ebiomes:peat_wet",
recipe = {"ebiomes:peat", "group:water_bucket"},
replacements = {{"group:water_bucket", "bucket:bucket_empty"}}
})
core.register_craft({
type = "cooking",
output = "ebiomes:peat_dry",
recipe = "ebiomes:peat",
burntime = 4
})
core.register_craft({
type = "shapeless",
output = "ebiomes:peat",
recipe = {"ebiomes:peat_dry", "group:water_bucket"},
replacements = {{"group:water_bucket", "bucket:bucket_empty"}}
})
stairs.register_stair_and_slab("peat_dry", "ebiomes:peat_dry",
{choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
{"ebiomes_peat_dry.png"},
S("Dry Peat Stair"),
S("Dry Peat Slab"),
default.node_sound_dirt_defaults(),
true,
S("Inner Dry Peat Stair"),
S("Outer Dry Peat Stair")
)
core.register_craftitem("ebiomes:burning_peat", {
description = S("Burning Peat"),
inventory_image = "ebiomes_burning_peat.png"
})
core.register_craft({
type = "shapeless",
output = "ebiomes:burning_peat 2",
recipe = {"ebiomes:peat_dry", "group:wood"},
replacements = {{"group:water_bucket", "bucket:bucket_empty"}}
})
core.register_craft({
type = "fuel",
recipe = "ebiomes:burning_peat",
burntime = 30,
})
if core.get_modpath("bonemeal") ~= nil then
core.register_craft({
-- type = "shapeless",
output = "bonemeal:mulch 9",
recipe = {
{"ebiomes:peat"},
}
})
end
core.register_biome({
name = "bog",
node_water = "ebiomes:swamp_water_source",
node_top = "ebiomes:peat_with_swamp_moss_yellow",
depth_top = 1,
node_filler = "ebiomes:peat_wet",
depth_filler = 2,
node_riverbed = "default:gravel",
depth_riverbed = 2,
node_dungeon = "default:cobble",
node_dungeon_alt = "default:mossycobble",
node_dungeon_stair = "stairs:stair_cobble",
y_max = 6,
y_min = 3,
heat_point = 53,
humidity_point = 100,
})
core.register_decoration({
name = "ebiomes:peat_l1",
deco_type = "simple",
place_on = {"ebiomes:peat_with_swamp_moss_yellow"},
sidelen = 16,
noise_params = {
offset = 0.5,
scale = 0.4,
spread = {x = 250, y = 250, z = 250},
seed = 21,
octaves = 3,
persist = 0.66
},
biomes = {"bog"},
height = 1,
y_min = 1,
y_max = 31000,
place_offset_y = -1,
decoration = "ebiomes:peat_wet_with_swamp_moss_green",
flags = "place_center_x, place_center_z, force_placement",
rotation = "random",
})
if core.settings:get_bool("pl_quagmires", true) then
core.register_decoration({
name = "ebiomes:quagmire_small",
deco_type = "schematic",
place_on = {"ebiomes:peat_with_swamp_moss_yellow"},
sidelen = 16,
noise_params = {
offset = 0.006,
scale = 0.0003,
spread = {x = 250, y = 250, z = 250},
seed = 78,
octaves = 3,
persist = 0.66
},
biomes = {"bog"},
height = 1,
y_min = 1,
y_max = 31000,
place_offset_y = -3,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_quagmire_small_np.mts",
flags = "place_center_x, place_center_z, force_placement",
rotation = "random",
})
core.register_decoration({
name = "ebiomes:quagmire_vsmall",
deco_type = "schematic",
place_on = {"ebiomes:peat_with_swamp_moss_yellow"},
sidelen = 16,
noise_params = {
offset = 0.01,
scale = 0.0009,
spread = {x = 250, y = 250, z = 250},
seed = 76,
octaves = 3,
persist = 0.66
},
biomes = {"bog"},
height = 1,
y_min = 1,
y_max = 31000,
place_offset_y = -3,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_quagmire_vsmall_np.mts",
flags = "place_center_x, place_center_z, force_placement",
rotation = "random",
})
else
core.register_decoration({
name = "ebiomes:quagmire_small",
deco_type = "schematic",
place_on = {"ebiomes:peat_with_swamp_moss_yellow"},
sidelen = 16,
noise_params = {
offset = 0.006,
scale = 0.0003,
spread = {x = 250, y = 250, z = 250},
seed = 78,
octaves = 3,
persist = 0.66
},
biomes = {"bog"},
height = 1,
y_min = 1,
y_max = 31000,
place_offset_y = -3,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_quagmire_small.mts",
flags = "place_center_x, place_center_z, force_placement",
rotation = "random",
})
core.register_decoration({
name = "ebiomes:quagmire_vsmall",
deco_type = "schematic",
place_on = {"ebiomes:peat_with_swamp_moss_yellow"},
sidelen = 16,
noise_params = {
offset = 0.01,
scale = 0.0009,
spread = {x = 250, y = 250, z = 250},
seed = 76,
octaves = 3,
persist = 0.66
},
biomes = {"bog"},
height = 1,
y_min = 1,
y_max = 31000,
place_offset_y = -3,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_quagmire_vsmall.mts",
flags = "place_center_x, place_center_z, force_placement",
rotation = "random",
})
end
core.register_node("ebiomes:reeds", {
description = S("Reeds"),
drawtype = "plantlike",
-- drawtype = "firelike",
tiles = {"ebiomes_reeds.png"},
inventory_image = "ebiomes_reeds.png",
wield_image = "ebiomes_reeds.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 4 / 16, 4 / 16},
},
groups = {snappy = 3, flammable = 2, attached_node = 1},
sounds = default.node_sound_leaves_defaults(),
})
core.register_decoration({
name = "ebiomes:reeds",
deco_type = "simple",
place_on = {"ebiomes:peat_wet_with_swamp_moss_green", "ebiomes:peat_with_swamp_moss_yellow"},
sidelen = 16,
noise_params = {
offset = 0.1,
scale = 0.03,
spread = {x = 100, y = 100, z = 100},
seed = 357,
octaves = 3,
persist = 0.7
},
y_max = 31000,
y_min = 1,
decoration = "ebiomes:reeds",
})
core.register_node("ebiomes:marsh_grass_green", {
description = S("Green Marsh Grass"),
tiles = {"ebiomes_marsh_grass_green.png"},
inventory_image = "ebiomes_marsh_grass_green.png",
wield_image = "ebiomes_marsh_grass_green.png",
drawtype = "plantlike",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, attached_node = 1, flammable = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 4 / 16, 6 / 16},
}
})
core.register_decoration({
name = "ebiomes:marsh_grass_green",
deco_type = "simple",
place_on = {"ebiomes:dirt_with_grass_swamp", "ebiomes:peat_with_swamp_moss_yellow"},
sidelen = 16,
noise_params = {
offset = 0.05,
scale = 0.01,
spread = {x = 100, y = 100, z = 100},
seed = 360,
octaves = 3,
persist = 0.6
},
y_max = 31000,
y_min = 1,
decoration = "ebiomes:marsh_grass_green",
})
core.register_node("ebiomes:marsh_grass_yellow", {
description = S("Yellow Marsh Grass"),
tiles = {"ebiomes_marsh_grass_yellow.png"},
inventory_image = "ebiomes_marsh_grass_yellow.png",
wield_image = "ebiomes_marsh_grass_yellow.png",
drawtype = "plantlike",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, attached_node = 1, flammable = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 4 / 16, 6 / 16},
}
})
core.register_decoration({
name = "ebiomes:marsh_grass_yellow",
deco_type = "simple",
place_on = {"ebiomes:dirt_with_grass_swamp", "ebiomes:peat_with_swamp_moss_yellow"},
sidelen = 16,
noise_params = {
offset = 0.005,
scale = 0.01,
spread = {x = 100, y = 100, z = 100},
seed = 361,
octaves = 3,
persist = 0.6
},
y_max = 31000,
y_min = 1,
decoration = "ebiomes:marsh_grass_yellow",
})
core.register_node("ebiomes:grass_bog_1", {
description = S("Bog Grass"),
drawtype = "plantlike",
waving = 1,
tiles = {"ebiomes_grass_bog_1.png"},
-- Use texture of a taller grass stage in inventory
inventory_image = "ebiomes_grass_bog_3.png",
wield_image = "ebiomes_grass_bog_3.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, flora = 1, attached_node = 1, grass = 1,
normal_grass = 1, flammable = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -5 / 16, 6 / 16},
},
on_place = function(itemstack, placer, pointed_thing)
-- place a random grass node
local stack = ItemStack("ebiomes:grass_bog_" .. math.random(1,5))
local ret = core.item_place(stack, placer, pointed_thing)
return ItemStack("ebiomes:grass_bog_1 " ..
itemstack:get_count() - (1 - ret:get_count()))
end,
})
for i = 2, 5 do
core.register_node("ebiomes:grass_bog_" .. i, {
description = S("Bog Grass"),
drawtype = "plantlike",
waving = 1,
tiles = {"ebiomes_grass_bog_" .. i .. ".png"},
inventory_image = "ebiomes_grass_bog_" .. i .. ".png",
wield_image = "ebiomes_grass_bog_" .. i .. ".png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "ebiomes:grass_bog_1",
groups = {snappy = 3, flora = 1, attached_node = 1,
not_in_creative_inventory = 1, grass = 1, flammable = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16},
},
})
end
for length = 1, 5 do
core.register_decoration({
name = "ebiomes:grass_bog_"..length,
deco_type = "simple",
place_on = {"ebiomes:peat_with_swamp_moss_yellow"},
sidelen = 16,
noise_params = {
offset = 0.05,
scale = 0.01,
spread = {x = 100, y = 100, z = 100},
seed = 329,
octaves = 3,
persist = 0.6
},
y_max = 31000,
y_min = 1,
decoration = "ebiomes:grass_bog_"..length,
})
end
--Folliage
--Biome specific
--Cold deciduous
local function grow_new_blackcurrant(pos)
if not default.can_grow(pos) then
-- try a bit later again
core.get_node_timer(pos):start(math.random(150, 300))
return
end
core.remove_node(pos)
core.place_schematic({x = pos.x-2, y = pos.y, z = pos.z-2}, modpath.."/schematics/ebiomes_blackcurrant_bush.mts", "0", nil, false)
end
core.register_craftitem("ebiomes:blackcurrants", {
description = S("Blackcurants"),
inventory_image = "ebiomes_blackcurrants.png",
groups = {food_blackcurrants = 1, food_berry = 1, eatable = 2},
on_use = core.item_eat(2),
})
core.register_node("ebiomes:blackcurrant_bush_leaves_with_berries", {
description = S("Blackcurrant Bush Leaves with Berries"),
drawtype = "allfaces_optional",
tiles = {"ebiomes_blackcurrant_bush_leaves.png^ebiomes_blackcurrant_overlay.png"},
paramtype = "light",
groups = {snappy = 3, flammable = 2, leaves = 1, dig_immediate = 3},
walkable = false,
drop = "ebiomes:blackcurrants",
sounds = default.node_sound_leaves_defaults(),
node_dig_prediction = "ebiomes:blackcurrant_bush_leaves",
after_dig_node = function(pos, oldnode, oldmetadata, digger)
core.set_node(pos, {name = "ebiomes:blackcurrant_bush_leaves"})
core.get_node_timer(pos):start(math.random(300, 1500))
end,
})
core.register_node("ebiomes:blackcurrant_bush_leaves", {
description = S("Blackcurrant Bush Leaves"),
drawtype = "allfaces_optional",
tiles = {"ebiomes_blackcurrant_bush_leaves.png"},
paramtype = "light",
groups = {snappy = 3, flammable = 2, leaves = 1},
walkable = false,
drop = {
max_items = 1,
items = {
{items = {"ebiomes:blackcurrant_bush_sapling"}, rarity = 5},
{items = {"ebiomes:blackcurrant_bush_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
on_timer = function(pos, elapsed)
if core.get_node_light(pos) < 11 then
core.get_node_timer(pos):start(200)
else
core.set_node(pos, {name = "ebiomes:blackcurrant_bush_leaves_with_berries"})
end
end,
after_place_node = default.after_place_leaves,
})
core.register_node("ebiomes:blackcurrant_bush_sapling", {
description = S("Blackcurrant Bush Sapling"),
drawtype = "plantlike",
tiles = {"ebiomes_blackcurrant_bush_sapling.png"},
inventory_image = "ebiomes_blackcurrant_bush_sapling.png",
wield_image = "ebiomes_blackcurrant_bush_sapling.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
on_timer = grow_new_blackcurrant,
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16}
},
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
attached_node = 1, sapling = 1},
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
core.get_node_timer(pos):start(math.random(300, 1500))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
"ebiomes:blackcurrant_bush_sapling",
-- minp, maxp to be checked, relative to sapling pos
{x = -1, y = 0, z = -1},
{x = 1, y = 1, z = 1},
-- maximum interval of interior volume check
2)
return itemstack
end,
})
core.register_decoration({
name = "ebiomes:blackcurrant_bush",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_cold"},
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = {x = 100, y = 100, z = 100},
seed = 787,
octaves = 3,
persist = 0.7,
},
biomes = {"deciduous_forest_cold"},
y_max = 31000,
y_min = 1,
place_offset_y = 1,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_blackcurrant_bush.mts",
flags = "place_center_x, place_center_z",
})
if core.get_modpath("bonemeal") ~= nil then
bonemeal:add_sapling({
{"ebiomes:blackcurrant_bush_sapling", grow_new_blackcurrant, "soil"},
})
end
local function grow_new_redcurrant(pos)
if not default.can_grow(pos) then
-- try a bit later again
core.get_node_timer(pos):start(math.random(150, 300))
return
end
core.remove_node(pos)
core.place_schematic({x = pos.x-1, y = pos.y, z = pos.z-1}, modpath.."/schematics/ebiomes_redcurrant_bush.mts", "0", nil, false)
end
core.register_craftitem("ebiomes:redcurrants", {
description = S("Redcurants"),
inventory_image = "ebiomes_redcurrants.png",
groups = {food_redcurrants = 1, food_berry = 1, eatable = 2},
on_use = core.item_eat(2),
})
core.register_node("ebiomes:redcurrant_bush_leaves_with_berries", {
description = S("Redcurrant Bush Leaves with Berries"),
drawtype = "allfaces_optional",
tiles = {"ebiomes_redcurrant_bush_leaves.png^ebiomes_redcurrant_overlay.png"},
paramtype = "light",
groups = {snappy = 3, flammable = 2, leaves = 1, dig_immediate = 3},
walkable = false,
drop = "ebiomes:redcurrants",
sounds = default.node_sound_leaves_defaults(),
node_dig_prediction = "ebiomes:redcurrant_bush_leaves",
after_dig_node = function(pos, oldnode, oldmetadata, digger)
core.set_node(pos, {name = "ebiomes:redcurrant_bush_leaves"})
core.get_node_timer(pos):start(math.random(300, 1500))
end,
})
core.register_node("ebiomes:redcurrant_bush_leaves", {
description = S("Redcurrant Bush Leaves"),
drawtype = "allfaces_optional",
tiles = {"ebiomes_redcurrant_bush_leaves.png"},
paramtype = "light",
groups = {snappy = 3, flammable = 2, leaves = 1},
walkable = false,
drop = {
max_items = 1,
items = {
{items = {"ebiomes:redcurrant_bush_sapling"}, rarity = 5},
{items = {"ebiomes:redcurrant_bush_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
on_timer = function(pos, elapsed)
if core.get_node_light(pos) < 11 then
core.get_node_timer(pos):start(200)
else
core.set_node(pos, {name = "ebiomes:redcurrant_bush_leaves_with_berries"})
end
end,
after_place_node = default.after_place_leaves,
})
core.register_node("ebiomes:redcurrant_bush_sapling", {
description = S("Redcurrant Bush Sapling"),
drawtype = "plantlike",
tiles = {"ebiomes_redcurrant_bush_sapling.png"},
inventory_image = "ebiomes_redcurrant_bush_sapling.png",
wield_image = "ebiomes_redcurrant_bush_sapling.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
on_timer = grow_new_redcurrant,
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16}
},
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
attached_node = 1, sapling = 1},
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
core.get_node_timer(pos):start(math.random(300, 1500))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
"ebiomes:redcurrant_bush_sapling",
-- minp, maxp to be checked, relative to sapling pos
{x = -1, y = 0, z = -1},
{x = 1, y = 1, z = 1},
-- maximum interval of interior volume check
2)
return itemstack
end,
})
core.register_decoration({
name = "ebiomes:redcurrant_bush",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_cold"},
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = {x = 100, y = 100, z = 100},
seed = 878,
octaves = 3,
persist = 0.7,
},
biomes = {"deciduous_forest_cold"},
y_max = 31000,
y_min = 1,
place_offset_y = 1,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_redcurrant_bush.mts",
flags = "place_center_x, place_center_z",
})
if core.get_modpath("bonemeal") ~= nil then
bonemeal:add_sapling({
{"ebiomes:redcurrant_bush_sapling", grow_new_redcurrant, "soil"},
})
end
local function grow_new_gooseberry(pos)
if not default.can_grow(pos) then
-- try a bit later again
core.get_node_timer(pos):start(math.random(150, 300))
return
end
core.remove_node(pos)
core.place_schematic({x = pos.x-1, y = pos.y, z = pos.z-1}, modpath.."/schematics/ebiomes_gooseberry_bush.mts", "0", nil, false)
end
core.register_craftitem("ebiomes:gooseberries", {
description = S("Gooseberries"),
inventory_image = "ebiomes_gooseberries.png",
groups = {food_gooseberries = 1, food_berry = 1, eatable = 2},
on_use = core.item_eat(2),
})
core.register_node("ebiomes:gooseberry_bush_leaves_with_berries", {
description = S("Gooseberry Bush Leaves with Berries"),
drawtype = "allfaces_optional",
tiles = {"ebiomes_gooseberry_bush_leaves.png^ebiomes_gooseberry_overlay.png"},
paramtype = "light",
groups = {snappy = 3, flammable = 2, leaves = 1, dig_immediate = 3},
walkable = false,
damage_per_second = 1,
drop = "ebiomes:gooseberries",
sounds = default.node_sound_leaves_defaults(),
node_dig_prediction = "ebiomes:gooseberry_bush_leaves",
after_dig_node = function(pos, oldnode, oldmetadata, digger)
core.set_node(pos, {name = "ebiomes:gooseberry_bush_leaves"})
core.get_node_timer(pos):start(math.random(300, 1500))
end,
})
core.register_node("ebiomes:gooseberry_bush_leaves", {
description = S("Gooseberry Bush Leaves"),
drawtype = "allfaces_optional",
tiles = {"ebiomes_gooseberry_bush_leaves.png"},
paramtype = "light",
groups = {snappy = 3, flammable = 2, leaves = 1},
walkable = false,
damage_per_second = 1,
drop = {
max_items = 1,
items = {
{items = {"ebiomes:gooseberry_bush_sapling"}, rarity = 5},
{items = {"ebiomes:gooseberry_bush_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
on_timer = function(pos, elapsed)
if core.get_node_light(pos) < 11 then
core.get_node_timer(pos):start(200)
else
core.set_node(pos, {name = "ebiomes:gooseberry_bush_leaves_with_berries"})
end
end,
after_place_node = default.after_place_leaves,
})
core.register_node("ebiomes:gooseberry_bush_sapling", {
description = S("Gooseberry Bush Sapling"),
drawtype = "plantlike",
tiles = {"ebiomes_gooseberry_bush_sapling.png"},
inventory_image = "ebiomes_gooseberry_bush_sapling.png",
wield_image = "ebiomes_gooseberry_bush_sapling.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
on_timer = grow_new_gooseberry,
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16}
},
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
attached_node = 1, sapling = 1},
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
core.get_node_timer(pos):start(math.random(300, 1500))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
"ebiomes:gooseberry_bush_sapling",
-- minp, maxp to be checked, relative to sapling pos
{x = -1, y = 0, z = -1},
{x = 1, y = 1, z = 1},
-- maximum interval of interior volume check
2)
return itemstack
end,
})
core.register_decoration({
name = "ebiomes:gooseberry_bush",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_cold"},
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = {x = 100, y = 100, z = 100},
seed = 969,
octaves = 3,
persist = 0.7,
},
biomes = {"deciduous_forest_cold"},
y_max = 31000,
y_min = 1,
place_offset_y = 1,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_gooseberry_bush.mts",
flags = "place_center_x, place_center_z",
})
if core.get_modpath("bonemeal") ~= nil then
bonemeal:add_sapling({
{"ebiomes:gooseberry_bush_sapling", grow_new_gooseberry, "soil"},
})
end
--Bog
core.register_node("ebiomes:cranberry_patch", {
description = S("Cranberry Patch"),
tiles = {"ebiomes_cranberry_patch.png"},
inventory_image = "ebiomes_cranberry_patch.png",
wield_image = "ebiomes_cranberry_patch.png",
drawtype = "plantlike",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, attached_node = 1, flammable = 1},
drop = {
max_items = 2,
items = {
{items = {"ebiomes:cranberries"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer, itemstack)
core.set_node(pos, {name = "ebiomes:cranberry_patch", param2 = 1})
end,
selection_box = {
type = "fixed",
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, -3 / 16, 5 / 16},
}
})
core.register_craftitem("ebiomes:cranberries", {
description = S("Cranberries"),
inventory_image = "ebiomes_cranberries.png",
groups = {food_cranberries = 1, food_berry = 1, eatable = 2},
on_use = core.item_eat(2),
})
core.register_decoration({
name = "ebiomes:cranberry",
deco_type = "simple",
place_on = {"ebiomes:peat_wet_with_swamp_moss_green", "ebiomes:peat_with_swamp_moss_yellow"},
sidelen = 16,
noise_params = {
offset = 0.03,
scale = 0.007,
spread = {x = 100, y = 100, z = 100},
seed = 131,
octaves = 3,
persist = 0.6
},
y_max = 31000,
y_min = 1,
decoration = "ebiomes:cranberry_patch",
})
core.register_node("ebiomes:sundew", {
description = S("Sundew"),
tiles = {"ebiomes_sundew.png"},
inventory_image = "ebiomes_sundew.png",
wield_image = "ebiomes_sundew.png",
drawtype = "plantlike",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, attached_node = 1, flammable = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, -6 / 16, 4 / 16},
}
})
core.register_craft({
output = "dye:red",
recipe = {
{"ebiomes:sundew"}
},
})
core.register_decoration({
name = "ebiomes:sundew",
deco_type = "simple",
place_on = {"ebiomes:peat_wet_with_swamp_moss_green", "ebiomes:peat_with_swamp_moss_yellow"},
sidelen = 16,
noise_params = {
offset = 0.04,
scale = 0.007,
spread = {x = 100, y = 100, z = 100},
seed = 513,
octaves = 3,
persist = 0.6
},
y_max = 31000,
y_min = 1,
decoration = "ebiomes:sundew",
})
core.register_node("ebiomes:marigold", {
description = S("Marsh Marigold"),
tiles = {"ebiomes_marigold.png"},
inventory_image = "ebiomes_marigold.png",
wield_image = "ebiomes_marigold.png",
drawtype = "plantlike",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, attached_node = 1, flammable = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, -6 / 16, 4 / 16},
}
})
core.register_craft({
output = "dye:yellow 4",
recipe = {
{"ebiomes:marigold"}
},
})
core.register_decoration({
name = "ebiomes:marigold",
deco_type = "simple",
place_on = {"ebiomes:peat_wet_with_swamp_moss_green", "ebiomes:peat_with_swamp_moss_yellow"},
sidelen = 16,
noise_params = {
offset = 0.02,
scale = 0.007,
spread = {x = 100, y = 100, z = 100},
seed = 514,
octaves = 3,
persist = 0.6
},
y_max = 31000,
y_min = 1,
decoration = "ebiomes:marigold",
})
core.register_node("ebiomes:marsh_stitchwort", {
description = S("Marsh Stitchwort"),
tiles = {"ebiomes_marsh_stitchwort.png"},
inventory_image = "ebiomes_marsh_stitchwort.png",
wield_image = "ebiomes_marsh_stitchwort.png",
drawtype = "plantlike",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, attached_node = 1, flammable = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, -2 / 16, 5 / 16},
}
})
core.register_craft({
output = "dye:white 4",
recipe = {
{"ebiomes:marsh_stitchwort"}
},
})
core.register_decoration({
name = "ebiomes:marsh_stitchwort",
deco_type = "simple",
place_on = {"ebiomes:dirt_with_grass_swamp", "ebiomes:peat_wet_with_swamp_moss_green", "ebiomes:peat_with_swamp_moss_yellow"},
sidelen = 16,
noise_params = {
offset = 0.008,
scale = 0.007,
spread = {x = 100, y = 100, z = 100},
seed = 515,
octaves = 3,
persist = 0.6
},
y_max = 31000,
y_min = 1,
decoration = "ebiomes:marsh_stitchwort",
})
--Woods
--Willow
core.register_node("ebiomes:willow_tree", {
description = S("Willow Tree"),
tiles = {"ebiomes_willow_tree_top.png", "ebiomes_willow_tree_top.png",
"ebiomes_willow_tree.png"},
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
on_place = core.rotate_node
})
core.register_node("ebiomes:willow_wood", {
description = S("Willow Wood Planks"),
paramtype2 = "facedir",
place_param2 = 0,
tiles = {"ebiomes_willow_wood.png"},
is_ground_content = false,
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1},
sounds = default.node_sound_wood_defaults(),
})
core.register_craft({
output = "ebiomes:willow_wood 4",
recipe = {
{"ebiomes:willow_tree"},
}
})
core.register_node("ebiomes:willow_leaves", {
description = S("Willow Tree Leaves"),
drawtype = "allfaces_optional",
tiles = {"ebiomes_willow_leaves.png"},
waving = 1,
paramtype = "light",
is_ground_content = false,
walkable = false,
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
drop = {
max_items = 1,
items = {
{items = {"ebiomes:willow_sapling"}, rarity = 20},
{items = {"ebiomes:willow_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
default.register_leafdecay({
trunks = {"ebiomes:willow_tree"},
leaves = {"ebiomes:willow_leaves"},
radius = 3,
})
--left this credit but erased it's identicals further down the line
--borrowed from runs cooltrees modpack (baldcypress)
--[[
local function grow_new_baldcypress_tree(pos)
if not default.can_grow(pos) then
-- try a bit later again
core.get_node_timer(pos):start(math.random(240, 600))
return
end
core.remove_node(pos)
core.place_schematic({x = pos.x-4, y = pos.y, z = pos.z-4}, modpath.."/schematics/baldcypress.mts", "0", nil, false)
end
--]]
local function grow_new_willow_tree(pos)
if not default.can_grow(pos) then
-- try a bit later again
core.get_node_timer(pos):start(math.random(150, 300))
return
end
core.remove_node(pos)
core.place_schematic({x = pos.x-3, y = pos.y, z = pos.z-3}, modpath.."/schematics/ebiomes_willow_tree.mts", "0", nil, false)
end
--schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_willow.mts"
core.register_node("ebiomes:willow_sapling", {
description = S("Willow Tree Sapling"),
drawtype = "plantlike",
tiles = {"ebiomes_willow_sapling.png"},
inventory_image = "ebiomes_willow_sapling.png",
wield_image = "ebiomes_willow_sapling.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
on_timer = grow_new_willow_tree,
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16}
},
groups = {snappy = 2, dig_immediate = 3, flammable = 3,
attached_node = 1, sapling = 1},
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
core.get_node_timer(pos):start(math.random(300, 1500))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
"ebiomes:willow_sapling",
-- minp, maxp to be checked, relative to sapling pos
-- minp_relative.y = 1 because sapling pos has been checked
{x = -3, y = 1, z = -3},
{x = 3, y = 11, z = 3},
-- maximum interval of interior volume check
4)
return itemstack
end,
})
core.register_decoration({
name = "ebiomes:willow_tree",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_cold"},
sidelen = 16,
noise_params = {
offset = 0.001,
scale = 0.001,
spread = {x = 250, y = 250, z = 250},
seed = 100,
octaves = 3,
persist = 0.66
},
biomes = {"deciduous_forest_cold"},
y_max = 31000,
y_min = 1,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_willow_tree.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
core.register_decoration({
name = "ebiomes:willow_log",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_cold"},
place_offset_y = 1,
sidelen = 80,
fill_ratio = 0.0009,
biomes = {"deciduous_forest_cold"},
y_max = 31000,
y_min = 4,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_willow_log.mts",
flags = "place_center_x",
rotation = "random",
spawn_by = {"ebiomes:dirt_with_grass_cold"},
num_spawn_by = 8,
})
if core.get_modpath("bonemeal") ~= nil then
bonemeal:add_sapling({
{"ebiomes:willow_sapling", grow_new_willow_tree, "soil"},
})
end
--forms sampled from pigiron mod
stairs.register_stair_and_slab("willow_wood", "ebiomes:willow_wood",
{choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
{"ebiomes_willow_wood.png"},
S("Willow Wood Stair"),
S("Willow Wood Slab"),
default.node_sound_wood_defaults(),
true,
S("Inner Willow Wood Stair"),
S("Outer Willow Wood Stair")
)
default.register_fence("ebiomes:fence_willow_wood", {
description = S("Willow Wood Fence"),
texture = "ebiomes_fence_willow_wood.png",
inventory_image = "default_fence_overlay.png^ebiomes_fence_willow_wood.png^" ..
"default_fence_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_overlay.png^ebiomes_fence_willow_wood.png^" ..
"default_fence_overlay.png^[makealpha:255,126,126",
material = "ebiomes:willow_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
sounds = default.node_sound_wood_defaults()
})
default.register_fence_rail("ebiomes:fence_rail_willow_wood", {
description = S("Willow Wood Fence Rail"),
texture = "ebiomes_fence_rail_willow_wood.png",
inventory_image = "default_fence_rail_overlay.png^ebiomes_fence_rail_willow_wood.png^" ..
"default_fence_rail_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_rail_overlay.png^ebiomes_fence_rail_willow_wood.png^" ..
"default_fence_rail_overlay.png^[makealpha:255,126,126",
material = "ebiomes:willow_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
sounds = default.node_sound_wood_defaults()
})
default.register_mesepost("ebiomes:mese_post_light_willow_wood", {
description = S("Willow Wood Mese Post Light"),
texture = "ebiomes_fence_willow_wood.png",
material = "ebiomes:willow_wood",
})
doors.register_fencegate("ebiomes:gate_willow_wood", {
description = S("Willow Wood Fence Gate"),
texture = "ebiomes_willow_wood.png",
material = "ebiomes:willow_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}
})
core.register_craft({
type = "fuel",
recipe = "ebiomes:gate_willow_wood_closed",
burntime = 9,
})
--Alder
core.register_node("ebiomes:alder_tree", {
description = S("Alder Tree"),
tiles = {"ebiomes_alder_tree_top.png", "ebiomes_alder_tree_top.png",
"ebiomes_alder_tree.png"},
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
on_place = core.rotate_node
})
core.register_node("ebiomes:alder_wood", {
description = S("Alder Wood Planks"),
paramtype2 = "facedir",
place_param2 = 0,
tiles = {"ebiomes_alder_wood.png"},
is_ground_content = false,
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1},
sounds = default.node_sound_wood_defaults(),
})
core.register_craft({
output = "ebiomes:alder_wood 4",
recipe = {
{"ebiomes:alder_tree"},
}
})
core.register_node("ebiomes:alder_leaves", {
description = S("Alder Tree Leaves"),
drawtype = "allfaces_optional",
tiles = {"ebiomes_alder_leaves.png"},
special_tiles = {"ebiomes_alder_leaves_simple.png"},
waving = 1,
paramtype = "light",
is_ground_content = false,
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
drop = {
max_items = 1,
items = {
{items = {"ebiomes:alder_sapling"}, rarity = 20},
{items = {"ebiomes:alder_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
default.register_leafdecay({
trunks = {"ebiomes:alder_tree"},
leaves = {"ebiomes:alder_leaves"},
radius = 3,
})
local function grow_new_alder_tree(pos)
if not default.can_grow(pos) then
-- try a bit later again
core.get_node_timer(pos):start(math.random(150, 300))
return
end
core.remove_node(pos)
core.place_schematic({x = pos.x-3, y = pos.y, z = pos.z-3}, modpath.."/schematics/ebiomes_alder_tree.mts", "0", nil, false)
end
core.register_node("ebiomes:alder_sapling", {
description = S("Alder Tree Sapling"),
drawtype = "plantlike",
tiles = {"ebiomes_alder_sapling.png"},
inventory_image = "ebiomes_alder_sapling.png",
wield_image = "ebiomes_alder_sapling.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
on_timer = grow_new_alder_tree,
selection_box = {
type = "fixed",
fixed = {-2 / 16, -0.5, -2 / 16, 2 / 16, 5 / 16, 2 / 16}
},
groups = {snappy = 2, dig_immediate = 3, flammable = 3,
attached_node = 1, sapling = 1},
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
core.get_node_timer(pos):start(math.random(300, 1500))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
"ebiomes:alder_sapling",
-- minp, maxp to be checked, relative to sapling pos
-- minp_relative.y = 1 because sapling pos has been checked
{x = -3, y = 1, z = -3},
{x = 3, y = 10, z = 3},
-- maximum interval of interior volume check
4)
return itemstack
end,
})
if core.settings:get_bool("light_mapgen", true) then
core.register_decoration({
name = "ebiomes:alder_tree",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_cold"},
sidelen = 16,
noise_params = {
offset = 0.005,
scale = 0.015,
spread = {x = 250, y = 250, z = 250},
seed = 103,
octaves = 3,
persist = 0.66
},
biomes = {"deciduous_forest_cold"},
y_max = 31000,
y_min = 1,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_alder_tree.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
else
core.register_decoration({
name = "ebiomes:alder_tree",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_cold"},
sidelen = 16,
noise_params = {
offset = 0.01,
scale = 0.015,
spread = {x = 250, y = 250, z = 250},
seed = 103,
octaves = 3,
persist = 0.66
},
biomes = {"deciduous_forest_cold"},
y_max = 31000,
y_min = 1,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_alder_tree.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
end
core.register_decoration({
name = "ebiomes:alder_log",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_cold"},
place_offset_y = 1,
sidelen = 80,
fill_ratio = 0.0009,
biomes = {"deciduous_forest_cold"},
y_max = 31000,
y_min = 4,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_alder_log.mts",
flags = "place_center_x",
rotation = "random",
spawn_by = {"ebiomes:dirt_with_grass_cold"},
num_spawn_by = 8,
})
if core.get_modpath("bonemeal") ~= nil then
bonemeal:add_sapling({
{"ebiomes:alder_sapling", grow_new_alder_tree, "soil"},
})
end
stairs.register_stair_and_slab("alder_wood", "ebiomes:alder_wood",
{choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
{"ebiomes_alder_wood.png"},
S("Alder Wood Stair"),
S("Alder Wood Slab"),
default.node_sound_wood_defaults(),
true,
S("Inner Alder Wood Stair"),
S("Outer Alder Wood Stair")
)
default.register_fence("ebiomes:fence_alder_wood", {
description = S("Alder Wood Fence"),
texture = "ebiomes_fence_alder_wood.png",
inventory_image = "default_fence_overlay.png^ebiomes_fence_alder_wood.png^" ..
"default_fence_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_overlay.png^ebiomes_fence_alder_wood.png^" ..
"default_fence_overlay.png^[makealpha:255,126,126",
material = "ebiomes:alder_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
sounds = default.node_sound_wood_defaults()
})
default.register_fence_rail("ebiomes:fence_rail_alder_wood", {
description = S("Alder Wood Fence Rail"),
texture = "ebiomes_fence_rail_alder_wood.png",
inventory_image = "default_fence_rail_overlay.png^ebiomes_fence_rail_alder_wood.png^" ..
"default_fence_rail_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_rail_overlay.png^ebiomes_fence_rail_alder_wood.png^" ..
"default_fence_rail_overlay.png^[makealpha:255,126,126",
material = "ebiomes:alder_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
sounds = default.node_sound_wood_defaults()
})
default.register_mesepost("ebiomes:mese_post_light_alder_wood", {
description = S("Alder Wood Mese Post Light"),
texture = "ebiomes_fence_alder_wood.png",
material = "ebiomes:alder_wood",
})
doors.register_fencegate("ebiomes:gate_alder_wood", {
description = S("Alder Wood Fence Gate"),
texture = "ebiomes_alder_wood.png",
material = "ebiomes:alder_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}
})
core.register_craft({
type = "fuel",
recipe = "ebiomes:gate_alder_wood_closed",
burntime = 9,
})
--Ash
core.register_node("ebiomes:ash_tree", {
description = S("Ash Tree"),
tiles = {"ebiomes_ash_tree_top.png", "ebiomes_ash_tree_top.png",
"ebiomes_ash_tree.png"},
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
on_place = core.rotate_node
})
core.register_node("ebiomes:ash_wood", {
description = S("Ash Wood Planks"),
paramtype2 = "facedir",
place_param2 = 0,
tiles = {"ebiomes_ash_wood.png"},
is_ground_content = false,
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1},
sounds = default.node_sound_wood_defaults(),
})
core.register_craft({
output = "ebiomes:ash_wood 4",
recipe = {
{"ebiomes:ash_tree"},
}
})
core.register_node("ebiomes:ash_leaves", {
description = S("Ash Tree Leaves"),
drawtype = "allfaces_optional",
tiles = {"ebiomes_ash_leaves.png"},
special_tiles = {"ebiomes_ash_leaves_simple.png"},
waving = 1,
paramtype = "light",
is_ground_content = false,
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
drop = {
max_items = 1,
items = {
{items = {"ebiomes:ash_sapling"}, rarity = 20},
{items = {"ebiomes:ash_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
default.register_leafdecay({
trunks = {"ebiomes:ash_tree"},
leaves = {"ebiomes:ash_leaves"},
radius = 3,
})
local function grow_new_ash_tree(pos)
if not default.can_grow(pos) then
-- try a bit later again
core.get_node_timer(pos):start(math.random(150, 300))
return
end
core.remove_node(pos)
core.place_schematic({x = pos.x-4, y = pos.y, z = pos.z-4}, modpath.."/schematics/ebiomes_ash_tree.mts", "0", nil, false)
end
core.register_node("ebiomes:ash_sapling", {
description = S("Ash Tree Sapling"),
drawtype = "plantlike",
tiles = {"ebiomes_ash_sapling.png"},
inventory_image = "ebiomes_ash_sapling.png",
wield_image = "ebiomes_ash_sapling.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
on_timer = grow_new_ash_tree,
selection_box = {
type = "fixed",
fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, 7 / 16, 3 / 16}
},
groups = {snappy = 2, dig_immediate = 3, flammable = 3,
attached_node = 1, sapling = 1},
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
core.get_node_timer(pos):start(math.random(300, 1500))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
"ebiomes:ash_sapling",
-- minp, maxp to be checked, relative to sapling pos
-- minp_relative.y = 1 because sapling pos has been checked
{x = -4, y = 1, z = -4},
{x = 4, y = 11, z = 4},
-- maximum interval of interior volume check
4)
return itemstack
end,
})
if core.settings:get_bool("light_mapgen", true) then
core.register_decoration({
name = "ebiomes:ash_tree",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_cold"},
sidelen = 16,
noise_params = {
offset = 0.005,
scale = 0.01,
spread = {x = 250, y = 250, z = 250},
seed = 102,
octaves = 3,
persist = 0.66
},
biomes = {"deciduous_forest_cold"},
y_max = 31000,
y_min = 1,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_ash_tree.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
else
core.register_decoration({
name = "ebiomes:ash_tree",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_cold"},
sidelen = 16,
noise_params = {
offset = 0.009,
scale = 0.01,
spread = {x = 250, y = 250, z = 250},
seed = 102,
octaves = 3,
persist = 0.66
},
biomes = {"deciduous_forest_cold"},
y_max = 31000,
y_min = 1,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_ash_tree.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
end
core.register_decoration({
name = "ebiomes:ash_log",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_cold"},
place_offset_y = 1,
sidelen = 80,
fill_ratio = 0.0009,
biomes = {"deciduous_forest_cold"},
y_max = 31000,
y_min = 4,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_ash_log.mts",
flags = "place_center_x",
rotation = "random",
spawn_by = {"ebiomes:dirt_with_grass_cold"},
num_spawn_by = 8,
})
if core.get_modpath("bonemeal") ~= nil then
bonemeal:add_sapling({
{"ebiomes:ash_sapling", grow_new_ash_tree, "soil"},
})
end
stairs.register_stair_and_slab("ash_wood", "ebiomes:ash_wood",
{choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
{"ebiomes_ash_wood.png"},
S("Ash Wood Stair"),
S("Ash Wood Slab"),
default.node_sound_wood_defaults(),
true,
S("Inner Ash Wood Stair"),
S("Outer Ash Wood Stair")
)
default.register_fence("ebiomes:fence_ash_wood", {
description = S("Ash Wood Fence"),
texture = "ebiomes_fence_ash_wood.png",
inventory_image = "default_fence_overlay.png^ebiomes_fence_ash_wood.png^" ..
"default_fence_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_overlay.png^ebiomes_fence_ash_wood.png^" ..
"default_fence_overlay.png^[makealpha:255,126,126",
material = "ebiomes:ash_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
sounds = default.node_sound_wood_defaults()
})
default.register_fence_rail("ebiomes:fence_rail_ash_wood", {
description = S("Ash Wood Fence Rail"),
texture = "ebiomes_fence_rail_ash_wood.png",
inventory_image = "default_fence_rail_overlay.png^ebiomes_fence_rail_ash_wood.png^" ..
"default_fence_rail_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_rail_overlay.png^ebiomes_fence_rail_ash_wood.png^" ..
"default_fence_rail_overlay.png^[makealpha:255,126,126",
material = "ebiomes:ash_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
sounds = default.node_sound_wood_defaults()
})
default.register_mesepost("ebiomes:mese_post_light_ash_wood", {
description = S("Ash Wood Mese Post Light"),
texture = "ebiomes_fence_ash_wood.png",
material = "ebiomes:ash_wood",
})
doors.register_fencegate("ebiomes:gate_ash_wood", {
description = S("Ash Wood Fence Gate"),
texture = "ebiomes_ash_wood.png",
material = "ebiomes:ash_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}
})
core.register_craft({
type = "fuel",
recipe = "ebiomes:gate_ash_wood_closed",
burntime = 8,
})
--Birch
core.register_node("ebiomes:birch_tree", {
description = S("Birch Tree"),
tiles = {"ebiomes_birch_tree_top.png", "ebiomes_birch_tree_top.png",
"ebiomes_birch_tree.png"},
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
on_place = core.rotate_node
})
core.register_node("ebiomes:birch_wood", {
description = S("Birch Wood Planks"),
paramtype2 = "facedir",
place_param2 = 0,
tiles = {"ebiomes_birch_wood.png"},
is_ground_content = false,
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1},
sounds = default.node_sound_wood_defaults(),
})
core.register_craft({
output = "ebiomes:birch_wood 4",
recipe = {
{"ebiomes:birch_tree"},
}
})
core.register_node("ebiomes:birch_leaves", {
description = S("Birch Tree Leaves"),
drawtype = "allfaces_optional",
tiles = {"ebiomes_birch_leaves.png"},
special_tiles = {"ebiomes_birch_leaves_simple.png"},
waving = 1,
paramtype = "light",
is_ground_content = false,
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
drop = {
max_items = 1,
items = {
{items = {"ebiomes:birch_sapling"}, rarity = 20},
{items = {"ebiomes:birch_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
default.register_leafdecay({
trunks = {"ebiomes:birch_tree"},
leaves = {"ebiomes:birch_leaves"},
radius = 3,
})
local function grow_new_birch_tree(pos)
if not default.can_grow(pos) then
-- try a bit later again
core.get_node_timer(pos):start(math.random(150, 300))
return
end
core.remove_node(pos)
core.place_schematic({x = pos.x-2, y = pos.y, z = pos.z-2}, modpath.."/schematics/ebiomes_birch_tree.mts", "0", nil, false)
end
core.register_node("ebiomes:birch_sapling", {
description = S("Birch Tree Sapling"),
drawtype = "plantlike",
tiles = {"ebiomes_birch_sapling.png"},
inventory_image = "ebiomes_birch_sapling.png",
wield_image = "ebiomes_birch_sapling.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
on_timer = grow_new_birch_tree,
selection_box = {
type = "fixed",
fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, 0.5, 3 / 16}
},
groups = {snappy = 2, dig_immediate = 3, flammable = 3,
attached_node = 1, sapling = 1},
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
core.get_node_timer(pos):start(math.random(300, 1500))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
"ebiomes:birch_sapling",
-- minp, maxp to be checked, relative to sapling pos
-- minp_relative.y = 1 because sapling pos has been checked
{x = -2, y = 1, z = -2},
{x = 2, y = 13, z = 2},
-- maximum interval of interior volume check
4)
return itemstack
end,
})
if core.settings:get_bool("light_mapgen", true) then
core.register_decoration({
name = "ebiomes:birch_tree",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_cold"},
sidelen = 16,
noise_params = {
offset = 0.006,
scale = 0.003,
spread = {x = 250, y = 250, z = 250},
seed = 104,
octaves = 3,
persist = 0.66
},
biomes = {"deciduous_forest_cold"},
y_max = 31000,
y_min = 1,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_birch_tree.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
else
core.register_decoration({
name = "ebiomes:birch_tree",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_cold"},
sidelen = 16,
noise_params = {
offset = 0.008,
scale = 0.003,
spread = {x = 250, y = 250, z = 250},
seed = 104,
octaves = 3,
persist = 0.66
},
biomes = {"deciduous_forest_cold"},
y_max = 31000,
y_min = 1,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_birch_tree.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
end
core.register_decoration({
name = "ebiomes:birch_log",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_cold"},
place_offset_y = 1,
sidelen = 80,
fill_ratio = 0.0009,
biomes = {"deciduous_forest_cold"},
y_max = 31000,
y_min = 4,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_birch_log.mts",
flags = "place_center_x",
rotation = "random",
spawn_by = {"ebiomes:dirt_with_grass_cold"},
num_spawn_by = 8,
})
if core.get_modpath("bonemeal") ~= nil then
bonemeal:add_sapling({
{"ebiomes:birch_sapling", grow_new_birch_tree, "soil"},
})
end
stairs.register_stair_and_slab("birch_wood", "ebiomes:birch_wood",
{choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
{"ebiomes_birch_wood.png"},
S("Birch Wood Stair"),
S("Birch Wood Slab"),
default.node_sound_wood_defaults(),
true,
S("Inner Birch Wood Stair"),
S("Outer Birch Wood Stair")
)
default.register_fence("ebiomes:fence_birch_wood", {
description = S("Birch Wood Fence"),
texture = "ebiomes_fence_birch_wood.png",
inventory_image = "default_fence_overlay.png^ebiomes_fence_birch_wood.png^" ..
"default_fence_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_overlay.png^ebiomes_fence_birch_wood.png^" ..
"default_fence_overlay.png^[makealpha:255,126,126",
material = "ebiomes:birch_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
sounds = default.node_sound_wood_defaults()
})
default.register_fence_rail("ebiomes:fence_rail_birch_wood", {
description = S("Birch Wood Fence Rail"),
texture = "ebiomes_fence_rail_birch_wood.png",
inventory_image = "default_fence_rail_overlay.png^ebiomes_fence_rail_birch_wood.png^" ..
"default_fence_rail_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_rail_overlay.png^ebiomes_fence_rail_birch_wood.png^" ..
"default_fence_rail_overlay.png^[makealpha:255,126,126",
material = "ebiomes:birch_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
sounds = default.node_sound_wood_defaults()
})
default.register_mesepost("ebiomes:mese_post_light_birch_wood", {
description = S("Birch Wood Mese Post Light"),
texture = "ebiomes_fence_birch_wood.png",
material = "ebiomes:birch_wood",
})
doors.register_fencegate("ebiomes:gate_birch_wood", {
description = S("Birch Wood Fence Gate"),
texture = "ebiomes_birch_wood.png",
material = "ebiomes:birch_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}
})
core.register_craft({
type = "fuel",
recipe = "ebiomes:gate_birch_wood_closed",
burntime = 6,
})
--Swamp
core.register_decoration({
name = "ebiomes:willow_tree_sw",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_swamp"},
sidelen = 16,
noise_params = {
offset = 0.001,
scale = 0.001,
spread = {x = 250, y = 250, z = 250},
seed = 100,
octaves = 3,
persist = 0.66
},
biomes = {"swamp", "swamp_shore"},
y_max = 31000,
y_min = 1,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_willow_tree.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
core.register_decoration({
name = "ebiomes:ash_tree_sw",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_swamp"},
sidelen = 16,
noise_params = {
offset = 0.003,
scale = 0.001,
spread = {x = 250, y = 250, z = 250},
seed = 102,
octaves = 3,
persist = 0.66
},
biomes = {"swamp", "swamp_shore"},
y_max = 31000,
y_min = 1,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_ash_tree.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
--Downy Birch
core.register_node("ebiomes:downy_birch_tree", {
description = S("Downy Birch Tree"),
tiles = {"ebiomes_downy_birch_tree_top.png", "ebiomes_downy_birch_tree_top.png",
"ebiomes_downy_birch_tree.png"},
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
on_place = core.rotate_node
})
core.register_node("ebiomes:downy_birch_wood", {
description = S("Downy Birch Wood Planks"),
paramtype2 = "facedir",
place_param2 = 0,
tiles = {"ebiomes_downy_birch_wood.png"},
is_ground_content = false,
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1},
sounds = default.node_sound_wood_defaults(),
})
core.register_craft({
output = "ebiomes:downy_birch_wood 4",
recipe = {
{"ebiomes:downy_birch_tree"},
}
})
core.register_node("ebiomes:downy_birch_leaves", {
description = S("Downy Birch Tree Leaves"),
drawtype = "allfaces_optional",
tiles = {"ebiomes_downy_birch_leaves.png"},
special_tiles = {"ebiomes_downy_birch_leaves_simple.png"},
waving = 1,
paramtype = "light",
is_ground_content = false,
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
drop = {
max_items = 1,
items = {
{items = {"ebiomes:downy_birch_sapling"}, rarity = 20},
{items = {"ebiomes:downy_birch_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
default.register_leafdecay({
trunks = {"ebiomes:downy_birch_tree"},
leaves = {"ebiomes:downy_birch_leaves"},
radius = 3,
})
local function grow_new_downy_birch_tree(pos)
if not default.can_grow(pos) then
-- try a bit later again
core.get_node_timer(pos):start(math.random(150, 300))
return
end
core.remove_node(pos)
core.place_schematic({x = pos.x-1, y = pos.y, z = pos.z-1}, modpath.."/schematics/ebiomes_downy_birch_tree.mts", "0", nil, false)
end
core.register_node("ebiomes:downy_birch_sapling", {
description = S("Downy Birch Tree Sapling"),
drawtype = "plantlike",
tiles = {"ebiomes_downy_birch_sapling.png"},
inventory_image = "ebiomes_downy_birch_sapling.png",
wield_image = "ebiomes_downy_birch_sapling.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
on_timer = grow_new_downy_birch_tree,
selection_box = {
type = "fixed",
fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, 0.5, 3 / 16}
},
groups = {snappy = 2, dig_immediate = 3, flammable = 3,
attached_node = 1, sapling = 1},
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
core.get_node_timer(pos):start(math.random(300, 1500))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
"ebiomes:downy_birch_sapling",
-- minp, maxp to be checked, relative to sapling pos
-- minp_relative.y = 1 because sapling pos has been checked
{x = -1, y = 1, z = -1},
{x = 1, y = 7, z = 1},
-- maximum interval of interior volume check
4)
return itemstack
end,
})
core.register_decoration({
name = "ebiomes:downy_birch_tree",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_swamp"},
sidelen = 16,
noise_params = {
offset = 0.003,
scale = 0.001,
spread = {x = 250, y = 250, z = 250},
seed = 104,
octaves = 3,
persist = 0.66
},
biomes = {"swamp"},
y_max = 31000,
y_min = 1,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_downy_birch_tree.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
core.register_decoration({
name = "ebiomes:downy_birch_log",
deco_type = "schematic",
place_on = {"ebiomes:dirt_with_grass_swamp"},
place_offset_y = 1,
sidelen = 80,
fill_ratio = 0.0009,
biomes = {"swamp"},
y_max = 31000,
y_min = 4,
schematic = core.get_modpath("ebiomes") .. "/schematics/ebiomes_downy_birch_log.mts",
flags = "place_center_x",
rotation = "random",
spawn_by = {"ebiomes:dirt_with_grass_swamp"},
num_spawn_by = 8,
})
if core.get_modpath("bonemeal") ~= nil then
bonemeal:add_sapling({
{"ebiomes:downy_birch_sapling", grow_new_downy_birch_tree, "soil"},
})
end
stairs.register_stair_and_slab("downy_birch_wood", "ebiomes:downy_birch_wood",
{choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
{"ebiomes_downy_birch_wood.png"},
S("Downy Birch Wood Stair"),
S("Downy Birch Wood Slab"),
default.node_sound_wood_defaults(),
true,
S("Inner Downy Birch Wood Stair"),
S("Outer Downy Birch Wood Stair")
)
default.register_fence("ebiomes:fence_downy_birch_wood", {
description = S("Downy Birch Wood Fence"),
texture = "ebiomes_fence_downy_birch_wood.png",
inventory_image = "default_fence_overlay.png^ebiomes_fence_downy_birch_wood.png^" ..
"default_fence_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_overlay.png^ebiomes_fence_downy_birch_wood.png^" ..
"default_fence_overlay.png^[makealpha:255,126,126",
material = "ebiomes:downy_birch_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
sounds = default.node_sound_wood_defaults()
})
default.register_fence_rail("ebiomes:fence_rail_downy_birch_wood", {
description = S("Downy Birch Wood Fence Rail"),
texture = "ebiomes_fence_rail_downy_birch_wood.png",
inventory_image = "default_fence_rail_overlay.png^ebiomes_fence_rail_downy_birch_wood.png^" ..
"default_fence_rail_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_rail_overlay.png^ebiomes_fence_rail_downy_birch_wood.png^" ..
"default_fence_rail_overlay.png^[makealpha:255,126,126",
material = "ebiomes:downy_birch_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
sounds = default.node_sound_wood_defaults()
})
default.register_mesepost("ebiomes:mese_post_light_downy_birch_wood", {
description = S("Downy Birch Wood Mese Post Light"),
texture = "ebiomes_fence_downy_birch_wood.png",
material = "ebiomes:downy_birch_wood",
})
doors.register_fencegate("ebiomes:gate_downy_birch_wood", {
description = S("Downy Birch Wood Fence Gate"),
texture = "ebiomes_downy_birch_wood.png",
material = "ebiomes:downy_birch_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}
})
core.register_craft({
type = "fuel",
recipe = "ebiomes:gate_downy_birch_wood_closed",
burntime = 6,
})
--Loot
if core.global_exists("dungeon_loot") then
dungeon_loot.register ({
{name = "ebiomes:redcurrants", chance = 0.3, count = {1, 4}},
{name = "ebiomes:blackcurrants", chance = 0.3, count = {1, 4}},
{name = "ebiomes:gooseberries", chance = 0.3, count = {1, 4}},
{name = "ebiomes:cranberries", chance = 0.2, count = {1, 6}},
})
end
--Bonemeal
if core.get_modpath("bonemeal") then
bonemeal:add_deco({
{"ebiomes:dirt_with_grass_cold", {"ebiomes:grass_cold_1", "ebiomes:grass_cold_2", "ebiomes:grass_cold_3", "ebiomes:grass_cold_4", "ebiomes:grass_cold_5"},
{"flowers:dandelion_yellow", "flowers:dandelion_white", "flowers:tulip", "flowers:tulip_black", "flowers:chrysanthemum_green"} }
})
bonemeal:add_deco({
{"ebiomes:dirt_with_grass_swamp", {"ebiomes:grass_swamp_1", "ebiomes:grass_swamp_2", "ebiomes:grass_swamp_3", "ebiomes:grass_swamp_4", "ebiomes:grass_swamp_5"},
{"ebiomes:marsh_stitchwort", "ebiomes:marsh_grass_yellow", "ebiomes:marsh_grass_green"} }
})
bonemeal:add_deco({
{"ebiomes:peat_with_swamp_moss_yellow", {"ebiomes:grass_bog_1", "ebiomes:grass_bog_2", "ebiomes:grass_bog_3", "ebiomes:grass_bog_4", "ebiomes:grass_bog_5", "ebiomes:reeds"},
{"ebiomes:cranberry_patch", "ebiomes:sundew", "ebiomes:marigold", "ebiomes:marsh_stitchwort", "ebiomes:marsh_grass_yellow", "ebiomes:marsh_grass_green"} }
})
bonemeal:add_deco({
{"ebiomes:peat_wet_with_swamp_moss_green", {"ebiomes:reeds"},
{"ebiomes:cranberry_patch", "ebiomes:sundew", "ebiomes:marigold"} }
})
end
--Peripheral mod support
--Moreblocks
--sampled from cool_trees
-- stairsplus/moreblocks
if core.get_modpath("moreblocks") then
stairsplus:register_all("alder_tree", "wood", "ebiomes:alder_wood", {
description = "Alder Wood",
tiles = {"ebiomes_alder_wood.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
stairsplus:register_all("ash_tree", "wood", "ebiomes:ash_wood", {
description = "Ash Wood",
tiles = {"ebiomes_ash_wood.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
stairsplus:register_all("birch_tree", "wood", "ebiomes:birch_wood", {
description = "Birch Wood",
tiles = {"ebiomes_birch_wood.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
stairsplus:register_all("downy_birch_tree", "wood", "ebiomes:downy_birch_wood", {
description = "Downy Birch Wood",
tiles = {"ebiomes_downy_birch_wood.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
stairsplus:register_all("willow_tree", "wood", "ebiomes:willow_wood", {
description = "Willow Wood",
tiles = {"ebiomes_willow_wood.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
--If someone wants glorious peat stuff they may uncomment this. Whether this works righ out of bat, no idea.
--[[
stairsplus:register_all("peat_dry", "soil", "ebiomes:peat_dry", {
description = "Dry Peat",
tiles = {"ebiomes_peat_dry.png"},
groups = {crumbly = 2, oddly_breakable_by_hand = 1},
sounds = default.node_sound_wood_defaults(),
})
--]]
end
-- Support for flowerpot
if core.global_exists("flowerpot") then
flowerpot.register_node("ebiomes:ash_sapling")
flowerpot.register_node("ebiomes:alder_sapling")
flowerpot.register_node("ebiomes:birch_sapling")
flowerpot.register_node("ebiomes:downy_birch_sapling")
flowerpot.register_node("ebiomes:willow_sapling")
flowerpot.register_node("ebiomes:blackcurrant_bush_sapling")
flowerpot.register_node("ebiomes:gooseberry_bush_sapling")
flowerpot.register_node("ebiomes:redcurrant_bush_sapling")
flowerpot.register_node("ebiomes:cranberry_patch")
flowerpot.register_node("ebiomes:marsh_stitchwort") -- All respect to the plant, but lol
flowerpot.register_node("ebiomes:marigold")
flowerpot.register_node("ebiomes:sundew")
end