Ethereal NG 1.20 release for minetest 0.4.14

master
TenPlus1 2016-05-17 21:40:05 +01:00
parent c47c840f2a
commit b1f0ded173
57 changed files with 1932 additions and 1805 deletions

3
.gitignore vendored
View File

@ -1,3 +0,0 @@
+## Generic ignorable patterns and files
+*~
+debug.txt

View File

@ -7,6 +7,16 @@ Ethereal v7 Mapgen mod for Minetest
## Changelog ## Changelog
### 1.20
- Tweaked Ethereal to work with new features and nodes in Minetest 0.4.13+
- Added bones found in dirt and bonemeal to make tree's and crops grow quicker
- Tree's follow default rules where saplings need light to grow
- Using default schematics for apple, pine, acacia and jungle tree's
- Tidied and split code into separate files
- Redid coloured grass spread function to run better
- Added support for moreblock's stairsplus feature
### 1.19 ### 1.19
- Added new biome routine to help restructure biomes - Added new biome routine to help restructure biomes

250
bonemeal.lua Normal file
View File

@ -0,0 +1,250 @@
-- bone item
minetest.register_craftitem("ethereal:bone", {
description = "Bone",
inventory_image = "bone.png",
})
-- bonemeal recipe
minetest.register_craft({
type = "shapeless",
output = 'ethereal:bonemeal 3',
recipe = {'ethereal:bone'},
})
-- add bones to dirt
minetest.override_item("default:dirt", {
drop = {
max_items = 1,
items = {
{
items = {'ethereal:bone', 'default:dirt'},
rarity = 30,
},
{
items = {'default:dirt'},
}
}
},
})
local plants = {
"flowers:dandelion_white",
"flowers:dandelion_yellow",
"flowers:geranium",
"flowers:rose",
"flowers:tulip",
"flowers:viola",
}
local crops = {
{"farming:cotton_", 8},
{"farming:wheat_", 8},
{"farming:tomato_", 8},
{"farming:corn_", 8},
{"farming:melon_", 8},
{"farming:pumpkin_", 8},
{"farming:beanpole_", 5},
{"farming:blueberry_", 4},
{"farming:raspberry_", 4},
{"farming:carrot_", 8},
{"farming:cocoa_", 3},
{"farming:coffee_", 5},
{"farming:cucumber_", 4},
{"farming:potato_", 4},
{"farming:grapes_", 8},
{"farming:rhubarb_", 3},
{"ethereal:strawberry_", 8},
{"ethereal:onion_", 5},
{"farming:barley_", 7},
}
-- growing routine
local function growth(pointed_thing)
local pos = pointed_thing.under
node = minetest.get_node(pos)
if node.name == ""
or node.name == "ignore" then
return
end
minetest.add_particlespawner({
amount = 4,
time = 0.15,
minpos = pos,
maxpos = pos,
minvel = {x = -1, y = 2, z = -1},
maxvel = {x = 1, y = 4, z = 1},
minacc = {x = -1, y = -1, z = -1},
maxacc = {x = 1, y = 1, z = 1},
minexptime = 1,
maxexptime = 1,
minsize = 1,
maxsize = 3,
texture = "bonemeal_particle.png",
})
-- 50/50 chance of growing a sapling
if minetest.get_item_group(node.name, "sapling") > 0 then
if math.random(1, 2) == 1 then
return
end
local under = minetest.get_node({
x = pos.x,
y = pos.y - 1,
z = pos.z
})
-- specific check for palm tree's, so they grow on sand
if node.name == "ethereal:palm_sapling"
and under.name == "default:sand" then
ethereal.grow_palm_tree(pos)
return
end
-- check for soil under sapling
if minetest.get_item_group(under.name, "soil") == 0 then
return
end
-- grow ethereal tree
if node.name == "ethereal:palm_sapling" then
ethereal.grow_palm_tree(pos)
elseif node.name == "ethereal:yellow_tree_sapling" then
ethereal.grow_yellow_tree(pos)
elseif node.name == "ethereal:big_tree_sapling" then
ethereal.grow_big_tree(pos)
elseif node.name == "ethereal:banana_tree_sapling" then
ethereal.grow_banana_tree(pos)
elseif node.name == "ethereal:frost_tree_sapling" then
ethereal.grow_frost_tree(pos)
elseif node.name == "ethereal:mushroom_sapling" then
ethereal.grow_mushroom_tree(pos)
elseif node.name == "ethereal:willow_sapling" then
ethereal.grow_willow_tree(pos)
elseif node.name == "ethereal:redwood_sapling" then
ethereal.grow_redwood_tree(pos)
elseif node.name == "ethereal:orange_tree_sapling" then
ethereal.grow_orange_tree(pos)
elseif node.name == "ethereal:bamboo_sprout" then
ethereal.grow_bamboo_tree(pos)
elseif node.name == "ethereal:birch_sapling" then
ethereal.grow_birch_tree(pos)
-- grow default tree
elseif node.name == "default:sapling" then
default.grow_new_apple_tree(pos)
elseif node.name == "default:junglesapling" then
default.grow_new_jungle_tree(pos)
elseif node.name == "default:pine_sapling" then
default.grow_new_pine_tree(pos)
elseif node.name == "default:acacia_sapling" then
default.grow_new_acacia_tree(pos)
elseif node.name == "default:aspen_sapling" then
default.grow_new_aspen_tree(pos)
end
return
end
local stage = ""
-- grow registered crops
for _, row in pairs(crops) do
if string.find(node.name, row[1]) then
stage = tonumber( node.name:split("_")[2] )
stage = math.min(stage + math.random(1, 4), row[2])
minetest.set_node(pos, {name = row[1] .. stage})
return
end
end
-- grow grass and flowers
if minetest.get_item_group(node.name, "soil") > 0 then
local dirt = minetest.find_nodes_in_area_under_air(
{x = pos.x - 2, y = pos.y - 1, z = pos.z - 2},
{x = pos.x + 2, y = pos.y + 1, z = pos.z + 2},
{"group:soil"})
for _,n in pairs(dirt) do
local pos2 = n
pos2.y = pos2.y + 1
if math.random(0, 5) > 3 then
minetest.swap_node(pos2,
{name = plants[math.random(1, #plants)]})
else
if node.name == "default:dirt_with_dry_grass" then
minetest.swap_node(pos2,
{name = "default:dry_grass_" .. math.random(1, 5)})
else
minetest.swap_node(pos2,
{name = "default:grass_" .. math.random(1, 5)})
end
end
end
end
end
-- bonemeal item
minetest.register_craftitem("ethereal:bonemeal", {
description = "Bone Meal",
inventory_image = "bonemeal.png",
on_use = function(itemstack, user, pointed_thing)
if pointed_thing.type == "node" then
-- Check if node protected
if minetest.is_protected(pointed_thing.under, user:get_player_name()) then
return
end
if not minetest.setting_getbool("creative_mode") then
local item = user:get_wielded_item()
item:take_item()
user:set_wielded_item(item)
end
growth(pointed_thing)
itemstack:take_item()
return itemstack
end
end,
})

46
compatibility.lua Normal file
View File

@ -0,0 +1,46 @@
-- add compatibility for ethereal nodes already in default game or name changed
minetest.register_alias("ethereal:acacia_trunk", "default:acacia_tree")
minetest.register_alias("ethereal:acacia_wood", "default:acacia_wood")
minetest.register_alias("ethereal:fence_acacia", "default:fence_acacia_wood")
minetest.register_alias("ethereal:fence_junglewood", "default:fence_junglewood")
minetest.register_alias("ethereal:fence_pine", "default:fence_pine_wood")
minetest.register_alias("ethereal:acacia_leaves", "default:acacia_leaves")
minetest.register_alias("ethereal:pineleaves", "default:pine_needles")
minetest.register_alias("ethereal:mushroom_craftingitem", "flowers:mushroom_brown")
minetest.register_alias("ethereal:mushroom_plant", "flowers:mushroom_brown")
minetest.register_alias("ethereal:mushroom_soup_cooked", "ethereal:mushroom_soup")
minetest.register_alias("ethereal:mushroom_1", "flowers:mushroom_brown")
minetest.register_alias("ethereal:mushroom_2", "flowers:mushroom_brown")
minetest.register_alias("ethereal:mushroom_3", "flowers:mushroom_brown")
minetest.register_alias("ethereal:mushroom_4", "flowers:mushroom_brown")
minetest.register_alias("ethereal:strawberry_bush", "ethereal:strawberry_7")
minetest.register_alias("ethereal:seed_strawberry", "ethereal:strawberry")
for i = 1, 5 do
minetest.register_alias("ethereal:wild_onion_"..i, "ethereal:onion_"..i)
end
minetest.register_alias("ethereal:onion_7", "ethereal:onion_4")
minetest.register_alias("ethereal:onion_8", "ethereal:onion_5")
minetest.register_alias("ethereal:wild_onion_7", "ethereal:onion_4")
minetest.register_alias("ethereal:wild_onion_8", "ethereal:onion_5")
minetest.register_alias("ethereal:wild_onion_craftingitem", "ethereal:wild_onion_plant")
minetest.register_alias("ethereal:hearty_stew_cooked", "ethereal:hearty_stew")
minetest.register_alias("ethereal:obsidian_brick", "default:obsidianbrick")
minetest.register_alias("ethereal:crystal_topped_dirt", "ethereal:crystal_dirt")
minetest.register_alias("ethereal:fiery_dirt_top", "ethereal:fiery_dirt")
minetest.register_alias("ethereal:gray_dirt_top", "ethereal:gray_dirt")
minetest.register_alias("ethereal:green_dirt_top", "ethereal:green_dirt")
minetest.register_alias("ethereal:tree_sapling", "default:sapling")
minetest.register_alias("ethereal:jungle_tree_sapling", "default:junglesapling")
minetest.register_alias("ethereal:acacia_sapling", "default:acacia_sapling")
minetest.register_alias("ethereal:pine_tree_sapling", "default:pine_sapling")

View File

@ -28,9 +28,8 @@ minetest.register_craftitem("ethereal:crystal_ingot", {
minetest.register_craft({ minetest.register_craft({
output = "ethereal:crystal_ingot", output = "ethereal:crystal_ingot",
recipe = { recipe = {
{"default:mese_crystal", "ethereal:crystal_spike", ""}, {"default:mese_crystal", "ethereal:crystal_spike"},
{"ethereal:crystal_spike", "default:mese_crystal", ""}, {"ethereal:crystal_spike", "default:mese_crystal"},
{"", "", ""},
} }
}) })
@ -82,9 +81,9 @@ minetest.register_tool("ethereal:sword_crystal", {
minetest.register_craft({ minetest.register_craft({
output = "ethereal:sword_crystal", output = "ethereal:sword_crystal",
recipe = { recipe = {
{"", "ethereal:crystal_ingot", ""}, {"ethereal:crystal_ingot"},
{"", "ethereal:crystal_ingot", ""}, {"ethereal:crystal_ingot"},
{"", "default:steel_ingot", ""}, {"default:steel_ingot"},
} }
}) })
@ -186,9 +185,9 @@ minetest.register_tool("ethereal:shovel_crystal", {
minetest.register_craft({ minetest.register_craft({
output = "ethereal:shovel_crystal", output = "ethereal:shovel_crystal",
recipe = { recipe = {
{"", "ethereal:crystal_ingot", ""}, {"ethereal:crystal_ingot"},
{"", "default:steel_ingot", ""}, {"default:steel_ingot"},
{"", "default:steel_ingot", ""}, {"default:steel_ingot"},
} }
}) })

View File

@ -2,4 +2,5 @@ default
farming farming
stairs stairs
flowers flowers
doors
bakedclay? bakedclay?

106
dirt.lua
View File

@ -1,3 +1,4 @@
-- override default dirt (to stop caves cutting away dirt) -- override default dirt (to stop caves cutting away dirt)
minetest.override_item("default:dirt", {is_ground_content = ethereal.cavedirt}) minetest.override_item("default:dirt", {is_ground_content = ethereal.cavedirt})
@ -66,39 +67,54 @@ for n = 1, #dirts do
end end
-- Compatibility with old maps -- re-register dirt types for abm
minetest.register_alias("ethereal:crystal_topped_dirt", "ethereal:crystal_dirt") dirts = {
minetest.register_alias("ethereal:fiery_dirt_top", "ethereal:fiery_dirt") "ethereal:bamboo_dirt", "ethereal:jungle_dirt", "ethereal:grove_dirt",
minetest.register_alias("ethereal:gray_dirt_top", "ethereal:gray_dirt") "ethereal:prairie_dirt", "ethereal:cold_dirt", "ethereal:crystal_dirt",
minetest.register_alias("ethereal:green_dirt_top", "ethereal:green_dirt") "ethereal:mushroom_dirt", "ethereal:fiery_dirt", "ethereal:gray_dirt",
"default:dirt_with_dry_grass"
}
-- check surrounding grass and change dirt to same colour (by Sokomine) -- check surrounding grass and change dirt to same colour
minetest.register_abm({ minetest.register_abm({
nodenames = {"default:dirt_with_grass"}, nodenames = {"default:dirt_with_grass", "default:dirt"},
interval = 5, neighbors = {"air"},
chance = 2, interval = 6,
chance = 65,
catch_up = false, catch_up = false,
action = function(pos, node) action = function(pos, node)
local count_grasses = {} -- not enough light
local curr_max = 0 local above = {x = pos.x, y = pos.y + 1, z = pos.z}
if (minetest.get_node_light(above) or 0) < 13 then
return
end
-- water above grass
local name = minetest.get_node(above).name
local nodef = minetest.registered_nodes[name]
if name == "ignore" or not nodef or nodef.liquidtype ~= "none" then
return
end
local curr_max, num = 0
local curr_type = "ethereal:green_dirt" -- fallback local curr_type = "ethereal:green_dirt" -- fallback
local positions = minetest.find_nodes_in_area( local positions, grasses = minetest.find_nodes_in_area(
{x = (pos.x - 1), y = (pos.y - 2), z = (pos.z - 1)}, {x = (pos.x - 2), y = (pos.y - 2), z = (pos.z - 2)},
{x = (pos.x + 1), y = (pos.y + 2), z = (pos.z + 1)}, {x = (pos.x + 2), y = (pos.y + 2), z = (pos.z + 2)},
"group:ethereal_grass") "group:ethereal_grass")
-- count new grass nodes -- count new grass nodes
for _,p in pairs(positions) do for _,p in pairs(dirts) do
local n = minetest.get_node(p).name num = grasses[p] or 0
count_grasses[n] = (count_grasses[n] or 0) + 1 if num > curr_max then
curr_max = num
-- we found a grass type with more than current max curr_type = p
if count_grasses[n] > curr_max then
curr_max = count_grasses[n]
curr_type = n
end end
end end
@ -114,8 +130,8 @@ minetest.override_item("default:dirt_with_dry_grass", {
-- if grass devoid of light, change to dirt -- if grass devoid of light, change to dirt
minetest.register_abm({ minetest.register_abm({
nodenames = {"group:ethereal_grass"}, nodenames = {"group:ethereal_grass"},
interval = 2, interval = 8,
chance = 20, chance = 40, -- 50
catch_up = false, catch_up = false,
action = function(pos, node) action = function(pos, node)
@ -164,3 +180,45 @@ if not minetest.get_modpath("bakedclay") then
}) })
end end
-- Quicksand (old style, sinking inside shows black instead of yellow effect,
-- works ok with noclip enabled though)
minetest.register_node("ethereal:quicksand", {
description = "Quicksand",
tiles = {"default_sand.png"},
drop = "default:sand",
liquid_viscosity = 15,
liquidtype = "source",
liquid_alternative_flowing = "ethereal:quicksand",
liquid_alternative_source = "ethereal:quicksand",
liquid_renewable = false,
liquid_range = 0,
drowning = 1,
walkable = false,
climbable = false,
post_effect_color = {r = 230, g = 210, b = 160, a = 245},
groups = {crumbly = 3, sand = 1, liquid = 3, disable_jump = 1},
sounds = default.node_sound_sand_defaults(),
})
-- Quicksand (new style, sinking inside shows yellow effect with or without noclip,
-- but old quicksand is shown as black until block placed nearby to update light)
minetest.register_node("ethereal:quicksand2", {
description = "Quicksand",
tiles = {"default_sand.png"},
drawtype = "glasslike",
paramtype = "light",
drop = "default:sand",
liquid_viscosity = 15,
liquidtype = "source",
liquid_alternative_flowing = "ethereal:quicksand2",
liquid_alternative_source = "ethereal:quicksand2",
liquid_renewable = false,
liquid_range = 0,
drowning = 1,
walkable = false,
climbable = false,
post_effect_color = {r = 230, g = 210, b = 160, a = 245},
groups = {crumbly = 3, sand = 1, liquid = 3, disable_jump = 1},
sounds = default.node_sound_sand_defaults(),
})

295
extra.lua
View File

@ -1,29 +1,137 @@
-- vines
minetest.register_node("ethereal:vine", { -- Bamboo Flooring
description = "Vine", minetest.register_node("ethereal:bamboo_floor", {
drawtype = "signlike", description = ("Bamboo Floor"),
tiles = {"vine.png"}, drawtype = 'nodebox',
inventory_image = "vine.png", tiles = { "bamboo_floor.png" },
wield_image = "vine.png", wield_image = "bamboo_floor.png",
inventory_image = "bamboo_floor.png",
paramtype = "light", paramtype = "light",
paramtype2 = "wallmounted", paramtype2 = "wallmounted",
walkable = false, walkable = true,
climbable = true, node_box = {
is_ground_content = false,
selection_box = {
type = "wallmounted", type = "wallmounted",
wall_top = {-0.5, 0.4375, -0.5, 0.5, 0.5, 0.5},
wall_bottom = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
wall_side = {-0.5, -0.5, -0.5, -0.4375, 0.5, 0.5},
}, },
groups = {choppy = 3, oddly_breakable_by_hand = 1}, selection_box = {type = "wallmounted"},
legacy_wallmounted = true, groups = {snappy = 3, choppy = 3 , flammable = 2},
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_wood_defaults(),
})
-- Craft Bamboo into Bamboo Flooring
minetest.register_craft({
output = "ethereal:bamboo_floor 2",
recipe = {
{"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"},
{"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"},
{"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"},
}
})
-- Craft Bamboo into Paper
minetest.register_craft({
output = "default:paper 6",
recipe = {
{"ethereal:bamboo", "ethereal:bamboo"},
{"ethereal:bamboo", "ethereal:bamboo"},
{"ethereal:bamboo", "ethereal:bamboo"},
}
})
-- X pattern craft recipes (5x 'a' in X pattern gives 5 of 'b')
for _,items in pairs({
{"default:cobble", "default:gravel"},
{"default:gravel", "default:dirt"},
{"default:dirt", "default:sand"},
{"default:ice", "default:snow"},
{"ethereal:dry_dirt", "default:desert_sand"},
}) do
local a, b = unpack(items)
minetest.register_craft({
output = b.." 5",
recipe = {
{a, "", a},
{"", a, ""},
{a, "", a},
}
})
end
-- Paper (2x3 string = 4 paper)
minetest.register_craft({
output = "default:paper 4",
recipe = {
{"farming:string", "farming:string"},
{"farming:string", "farming:string"},
{"farming:string", "farming:string"},
}
})
-- Palm Wax
minetest.register_craftitem("ethereal:palm_wax", {
description = "Palm Wax",
inventory_image = "palm_wax.png",
wield_image = "palm_wax.png",
}) })
minetest.register_craft({ minetest.register_craft({
output = "ethereal:vine 2", type = "cooking",
cooktime = 10,
output = "ethereal:palm_wax",
recipe = "ethereal:palmleaves"
})
-- Candle from Wax and String/Cotton
minetest.register_node("ethereal:candle", {
description = "Candle",
drawtype = "plantlike",
inventory_image = "candle_static.png",
wield_image = "candle_static.png",
tiles = {
{
name = "candle.png",
animation={
type="vertical_frames",
aspect_w = 32,
aspect_h = 32,
length = 1.0
}
},
},
paramtype = "light",
light_source = 11,
sunlight_propagates = true,
walkable = false,
groups = {dig_immediate = 3, attached_node = 1},
sounds = default.node_sound_defaults(),
selection_box = {
type = "fixed",
fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }
},
})
minetest.register_craft({
output = "ethereal:candle 2",
recipe = { recipe = {
{"group:leaves", "group:leaves", ""}, {"farming:cotton"},
{"group:leaves", "group:leaves", ""}, {"ethereal:palm_wax"},
{"group:leaves", "group:leaves", ""}, {"ethereal:palm_wax"},
}
})
-- Wooden Bowl
minetest.register_craftitem("ethereal:bowl", {
description = "Bowl",
inventory_image = "bowl.png",
})
minetest.register_craft({
output = "ethereal:bowl",
recipe = {
{"group:wood", "", "group:wood"},
{"", "group:wood", ""},
} }
}) })
@ -109,26 +217,6 @@ minetest.register_craft({
} }
}) })
-- Ladder (Changes default recipe to give 2x ladders instead of only 1)
minetest.register_craft({
output = "default:ladder 2",
recipe = {
{"group:stick", "", "group:stick"},
{"group:stick", "group:stick", "group:stick"},
{"group:stick", "", "group:stick"},
}
})
-- Signs (Changes default recipe to give 4x signs instead of only 1)
minetest.register_craft({
output = "default:sign_wall 4",
recipe = {
{"group:wood", "group:wood", "group:wood"},
{"group:wood", "group:wood", "group:wood"},
{"", "group:stick", ""},
}
})
-- Charcoal Lump -- Charcoal Lump
minetest.register_craftitem("ethereal:charcoal_lump", { minetest.register_craftitem("ethereal:charcoal_lump", {
description = "Lump of Charcoal", description = "Lump of Charcoal",
@ -144,7 +232,7 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = "ethereal:charcoal_lump 4", output = "ethereal:charcoal_lump 2",
type = "cooking", type = "cooking",
recipe = "group:tree", recipe = "group:tree",
cooktime = 4 cooktime = 4
@ -165,106 +253,6 @@ minetest.register_craft({
} }
}) })
-- Obsidian Brick (now in default game so added compatibility for old maps)
minetest.register_alias("ethereal:obsidian_brick", "default:obsidianbrick")
-- Quicksand (old style, sinking inside shows black instead of yellow effect,
-- works ok with noclip enabled though)
minetest.register_node("ethereal:quicksand", {
description = "Quicksand",
tiles = {"default_sand.png"},
drop = "default:sand",
liquid_viscosity = 15,
liquidtype = "source",
liquid_alternative_flowing = "ethereal:quicksand",
liquid_alternative_source = "ethereal:quicksand",
liquid_renewable = false,
liquid_range = 0,
drowning = 1,
walkable = false,
climbable = false,
post_effect_color = {r = 230, g = 210, b = 160, a = 245},
groups = {crumbly = 3, sand = 1, liquid = 3, disable_jump = 1},
sounds = default.node_sound_sand_defaults(),
})
-- Quicksand (new style, sinking inside shows yellow effect with or without noclip,
-- but old quicksand is shown as black until block placed nearby to update light)
minetest.register_node("ethereal:quicksand2", {
description = "Quicksand",
tiles = {"default_sand.png"},
drawtype = "glasslike",
paramtype = "light",
drop = "default:sand",
liquid_viscosity = 15,
liquidtype = "source",
liquid_alternative_flowing = "ethereal:quicksand2",
liquid_alternative_source = "ethereal:quicksand2",
liquid_renewable = false,
liquid_range = 0,
drowning = 1,
walkable = false,
climbable = false,
post_effect_color = {r = 230, g = 210, b = 160, a = 245},
groups = {crumbly = 3, sand = 1, liquid = 3, disable_jump = 1},
sounds = default.node_sound_sand_defaults(),
})
-- Illuminated Cave Shrooms (Red, Green and Blue)
minetest.register_node("ethereal:illumishroom", {
description = "Red Illumishroom",
drawtype = "plantlike",
tiles = { "illumishroom.png" },
inventory_image = "illumishroom.png",
wield_image = "illumishroom.png",
paramtype = "light",
light_source = 5,
sunlight_propagates = true,
walkable = false,
groups = {dig_immediate = 3, attached_node = 1,flammable = 3},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
},
})
minetest.register_node("ethereal:illumishroom2", {
description = "Green Illumishroom",
drawtype = "plantlike",
tiles = { "illumishroom2.png" },
inventory_image = "illumishroom2.png",
wield_image = "illumishroom2.png",
paramtype = "light",
light_source = 5,
sunlight_propagates = true,
walkable = false,
groups = {dig_immediate = 3, attached_node = 1,flammable = 3},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
},
})
minetest.register_node("ethereal:illumishroom3", {
description = "Cyan Illumishroom",
drawtype = "plantlike",
tiles = { "illumishroom3.png" },
inventory_image = "illumishroom3.png",
wield_image = "illumishroom3.png",
paramtype = "light",
light_source = 5,
sunlight_propagates = true,
walkable = false,
groups = {dig_immediate = 3, attached_node = 1,flammable = 3},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
},
})
-- Staff of Light (by Xanthin) -- Staff of Light (by Xanthin)
minetest.register_tool("ethereal:light_staff", { minetest.register_tool("ethereal:light_staff", {
description = "Staff of Light", description = "Staff of Light",
@ -310,32 +298,3 @@ minetest.register_craft({
{"ethereal:illumishroom3", "default:steel_ingot", "ethereal:illumishroom3"} {"ethereal:illumishroom3", "default:steel_ingot", "ethereal:illumishroom3"}
} }
}) })
-- Generate Illumishroom in caves next to coal
minetest.register_on_generated(function(minp, maxp)
if minp.y > -30 or maxp.y < -3000 then
return
end
local bpos
local coal = minetest.find_nodes_in_area_under_air(minp, maxp, "default:stone_with_coal")
for n = 1, #coal do
bpos = {x = coal[n].x, y = coal[n].y + 1, z = coal[n].z }
if math.random(1, 2) == 1 then
if bpos.y > -3000 and bpos.y < -2000 then
minetest.swap_node(bpos, {name = "ethereal:illumishroom3"})
elseif bpos.y > -2000 and bpos.y < -1000 then
minetest.swap_node(bpos, {name = "ethereal:illumishroom2"})
elseif bpos.y > -1000 and bpos.y < -30 then
minetest.swap_node(bpos, {name = "ethereal:illumishroom"})
end
end
end
end)

View File

@ -1,45 +1,72 @@
local fences = {
{"junglewood", "Jungle Wood", "default_junglewood.png", "default:junglewood"},
{"scorched", "Scorched", "scorched_tree.png", "ethereal:scorched_tree"},
{"frostwood", "Frost Wood", "frost_wood.png", "ethereal:frost_wood"},
{"redwood", "Redwood", "redwood_wood.png", "ethereal:redwood_wood"},
{"willow", "Willow", "willow_wood.png", "ethereal:willow_wood"},
{"yellowwood", "Healing Wood", "yellow_wood.png", "ethereal:yellow_wood"},
{"palm", "Palm Wood", "moretrees_palm_wood.png", "ethereal:palm_wood"},
{"banana", "Banana Wood", "banana_wood.png", "ethereal:banana_wood"},
{"mushroom", "Mushroom", "mushroom_trunk.png", "ethereal:mushroom_trunk"},
{"acacia", "Acacia Wood", "moretrees_acacia_wood.png", "ethereal:acacia_wood"},
{"pine", "Pine Wood", "default_pine_wood.png", "default:pinewood"},
{"birch", "Birch Wood", "moretrees_birch_wood.png", "ethereal:birch_wood"},
}
for _, row in pairs(fences) do default.register_fence("ethereal:fence_scorched", {
description = "Scorched Fence",
texture = "scorched_tree.png",
material = "ethereal:scorched_tree",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
minetest.register_node("ethereal:fence_"..row[1], { default.register_fence("ethereal:fence_frostwood", {
description = row[2].." Fence", description = "Frost Fence",
drawtype = "fencelike", texture = "frost_wood.png",
is_ground_content = false, material = "ethereal:frost_wood",
tiles = {row[3]}, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
inventory_image = "default_fence_overlay.png^" .. row[3] sounds = default.node_sound_wood_defaults()
.. "^default_fence_overlay.png^[makealpha:255,126,126", })
wield_image = "default_fence_overlay.png^" .. row[3]
.. "^default_fence_overlay.png^[makealpha:255,126,126",
paramtype = "light",
sunlight_propagates = true,
selection_box = {
type = "fixed",
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
},
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_craft({ default.register_fence("ethereal:fence_redwood", {
output = "ethereal:fence_"..row[1].." 4", description = "Redwood Fence",
recipe = { texture = "redwood_wood.png",
{row[4], "group:stick", row[4]}, material = "ethereal:redwood_wood",
{row[4], "group:stick", row[4]}, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
} sounds = default.node_sound_wood_defaults()
}) })
end default.register_fence("ethereal:fence_willow", {
description = "Willow Fence",
texture = "willow_wood.png",
material = "ethereal:willow_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("ethereal:fence_yellowwood", {
description = "Healing Wood Fence",
texture = "yellow_wood.png",
material = "ethereal:yellow_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("ethereal:fence_palm", {
description = "Palm Fence",
texture = "moretrees_palm_wood.png",
material = "ethereal:palm_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("ethereal:fence_banana", {
description = "Banana Wood Fence",
texture = "banana_wood.png",
material = "ethereal:banana_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("ethereal:fence_mushroom", {
description = "Mushroom Fence",
texture = "mushroom_trunk.png",
material = "ethereal:mushroom_trunk",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("ethereal:fence_birch", {
description = "Birch Fence",
texture = "moretrees_birch_wood.png",
material = "ethereal:birch_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})

View File

@ -85,6 +85,7 @@ minetest.register_craftitem("ethereal:fishing_rod_baited", {
wield_image = "fishing_rod_wield.png", wield_image = "fishing_rod_wield.png",
stack_max = 1, stack_max = 1,
liquids_pointable = true, liquids_pointable = true,
on_use = function (itemstack, user, pointed_thing) on_use = function (itemstack, user, pointed_thing)
if pointed_thing.type ~= "node" then if pointed_thing.type ~= "node" then

View File

@ -2,8 +2,8 @@
minetest.register_abm({ minetest.register_abm({
nodenames = {"group:flora"}, nodenames = {"group:flora"},
neighbors = {"group:soil"}, neighbors = {"group:soil"},
interval = 25, interval = 13, --25,
chance = 15, chance = 96, --15,
catch_up = false, catch_up = false,
action = function(pos, node) action = function(pos, node)
@ -54,7 +54,7 @@ minetest.register_abm({
local fflower = minetest.find_nodes_in_area_under_air( local fflower = minetest.find_nodes_in_area_under_air(
pos0, pos1, {"ethereal:fire_flower"}) pos0, pos1, {"ethereal:fire_flower"})
if #grass > 7 if #grass > 8
and #fflower < 1 then and #fflower < 1 then
grass = grass[math.random(#grass)] grass = grass[math.random(#grass)]

202
food.lua Normal file
View File

@ -0,0 +1,202 @@
-- fix apples hanging in sky when no tree around
minetest.override_item("default:apple", {
drop = "default:apple",
})
-- Banana (Heals one heart when eaten)
minetest.register_node("ethereal:banana", {
description = "Banana",
drawtype = "torchlike",
visual_scale = 1.0,
tiles = {"banana_single.png"},
inventory_image = "banana_single.png",
wield_image = "banana_single.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.5, -0.2, 0.2, 0.2, 0.2}
},
groups = {
fleshy = 3, dig_immediate = 3, flammable = 2,
leafdecay = 1, leafdecay_drop = 1
},
drop = "ethereal:banana",
on_use = minetest.item_eat(2),
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer)
if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:banana", param2 = 1})
end
end,
})
-- Banana Dough
minetest.register_craftitem("ethereal:banana_dough", {
description = "Banana Dough",
inventory_image = "banana_dough.png",
})
minetest.register_craft({
type = "shapeless",
output = "ethereal:banana_dough",
recipe = {"farming:flour", "ethereal:banana"}
})
minetest.register_craft({
type = "cooking",
cooktime = 14,
output = "ethereal:banana_bread",
recipe = "ethereal:banana_dough"
})
-- Orange (Heals 2 hearts when eaten)
minetest.register_node("ethereal:orange", {
description = "Orange",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"farming_orange.png"},
inventory_image = "farming_orange.png",
wield_image = "farming_orange.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.3, -0.2, 0.2, 0.2, 0.2}
},
groups = {
fleshy = 3, dig_immediate = 3, flammable = 2,
leafdecay = 3, leafdecay_drop = 1
},
drop = "ethereal:orange",
on_use = minetest.item_eat(4),
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer)
if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:orange", param2 = 1})
end
end,
})
-- Pine Nuts (Heals 1/2 heart when eaten)
minetest.register_craftitem("ethereal:pine_nuts", {
description = "Pine Nuts",
inventory_image = "pine_nuts.png",
wield_image = "pine_nuts.png",
on_use = minetest.item_eat(1),
})
-- Banana Loaf (Heals 3 hearts when eaten)
minetest.register_craftitem("ethereal:banana_bread", {
description = "Banana Loaf",
inventory_image = "banana_bread.png",
wield_image = "banana_bread.png",
on_use = minetest.item_eat(6),
})
-- Coconut (Gives 4 coconut slices, each heal 1/2 heart)
minetest.register_node("ethereal:coconut", {
description = "Coconut",
drawtype = "plantlike",
walkable = false,
paramtype = "light",
sunlight_propagates = true,
tiles = {"moretrees_coconut.png"},
inventory_image = "moretrees_coconut.png",
wield_image = "moretrees_coconut.png",
selection_box = {
type = "fixed",
fixed = {-0.35, -0.35, -0.35, 0.35, 0.35, 0.35}
},
groups = {
snappy = 1, oddly_breakable_by_hand = 1, cracky = 1,
choppy = 1, flammable = 1, leafdecay = 3, leafdecay_drop = 1
},
drop = "ethereal:coconut_slice 4",
sounds = default.node_sound_wood_defaults(),
})
-- Coconut Slice (Heals half heart when eaten)
minetest.register_craftitem("ethereal:coconut_slice", {
description = "Coconut Slice",
inventory_image = "moretrees_coconut_slice.png",
wield_image = "moretrees_coconut_slice.png",
on_use = minetest.item_eat(1),
})
-- Golden Apple (Found on Healing Tree, heals all 10 hearts)
minetest.register_node("ethereal:golden_apple", {
description = "Golden Apple",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"default_apple_gold.png"},
inventory_image = "default_apple_gold.png",
wield_image = "default_apple_gold.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.3, -0.2, 0.2, 0.2, 0.2}
},
groups = {
fleshy = 3, dig_immediate = 3,
leafdecay = 3,leafdecay_drop = 1
},
drop = "ethereal:golden_apple",
on_use = minetest.item_eat(20),
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer, itemstack)
if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:golden_apple", param2 = 1})
end
end,
})
-- Hearty Stew (Heals 5 hearts - thanks to ZonerDarkRevention for his DokuCraft DeviantArt bowl texture)
minetest.register_craftitem("ethereal:hearty_stew", {
description = "Hearty Stew",
inventory_image = "hearty_stew.png",
wield_image = "hearty_stew.png",
on_use = minetest.item_eat(10, "ethereal:bowl"),
})
minetest.register_craft({
output = "ethereal:hearty_stew",
recipe = {
{"ethereal:wild_onion_plant","ethereal:mushroom_plant", "ethereal:fern_tubers"},
{"","ethereal:mushroom_plant", ""},
{"","ethereal:bowl", ""},
}
})
-- Extra recipe for hearty stew
if farming and farming.mod and farming.mod == "redo" then
minetest.register_craft({
output = "ethereal:hearty_stew",
recipe = {
{"ethereal:wild_onion_plant","ethereal:mushroom_plant", "farming:beans"},
{"","ethereal:mushroom_plant", ""},
{"","ethereal:bowl", ""},
}
})
end
-- Bucket of Cactus Pulp
minetest.register_craftitem("ethereal:bucket_cactus", {
description = "Bucket of Cactus Pulp",
inventory_image = "bucket_cactus.png",
wield_image = "bucket_cactus.png",
stack_max = 1,
on_use = minetest.item_eat(2, "bucket:bucket_empty"),
})
minetest.register_craft({
output = "ethereal:bucket_cactus",
recipe = {
{"bucket:bucket_empty","default:cactus"},
}
})

202
gates.lua
View File

@ -1,136 +1,78 @@
-- Node Box coords
local nb_gap = {
{-1, 0.1875, -0.0625, -0.5, 0.3125, 0.0625},
{-1, -0.1875, -0.0625, -0.5, -0.3125, 0.0625},
{0.5, 0.1875, -0.0625, 1, 0.3125, 0.0625},
{0.5, -0.1875, -0.0625, 1, -0.3125, 0.0625}
}
local nb_pil = { -- register Ethereal wood type gates
{0.5, -0.5, -0.09375, 0.5625, 0.5, 0.09375},
{-0.5625, -0.5, -0.09375, -0.5, 0.5, 0.09375},
{-0.5, -0.3125, -0.0625, -0.375, 0.3125, 0.0625},
{0.375, -0.3125, -0.0625, 0.5, 0.3125, 0.0625}
}
-- Open/Close Gates doors.register_fencegate("ethereal:fencegate_scorched", {
function gate_rightclick(pos, node) description = "Scorched Wood Fence Gate",
texture = "scorched_tree.png",
local split = string.split(node.name, "_") material = "ethereal:scorched_tree",
local sound = "open" groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
local name = "open"
if split[3] == "open" then
sound = "close"
name = "closed"
end
node.name = split[1] .. "_" .. split[2] .. "_" .. name
minetest.swap_node(pos, node)
minetest.sound_play("doors_door_"..sound, {
pos = pos,
gain = 0.3,
max_hear_distance = 10
})
end
local gates = {
{"wood", "Wood", "default_wood.png", "default:wood"},
{"junglewood", "Jungle Wood", "default_junglewood.png", "default:junglewood"},
{"scorched", "Scorched", "scorched_tree.png", "ethereal:scorched_tree"},
{"frostwood", "Frost Wood", "frost_wood.png", "ethereal:frost_wood"},
{"redwood", "Redwood", "redwood_wood.png", "ethereal:redwood_wood"},
{"willow", "Willow", "willow_wood.png", "ethereal:willow_wood"},
{"yellowwood", "Healing Wood", "yellow_wood.png", "ethereal:yellow_wood"},
{"palm", "Palm Wood", "moretrees_palm_wood.png", "ethereal:palm_wood"},
{"banana", "Banana Wood", "banana_wood.png", "ethereal:banana_wood"},
{"mushroom", "Mushroom", "mushroom_trunk.png", "ethereal:mushroom_trunk"},
{"acacia", "Acacia Wood", "moretrees_acacia_wood.png", "ethereal:acacia_wood"},
{"pine", "Pine Wood", "default_pine_wood.png", "default:pinewood"},
{"birch", "Birch Wood", "moretrees_birch_wood.png", "ethereal:birch_wood"},
}
for _, row in pairs(gates) do
minetest.register_node("ethereal:fencegate_"..row[1].."_open", {
tiles = {row[3]},
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
is_ground_content = false,
walkable = true,
groups = {
snappy = 1, choppy = 2, oddly_breakable_by_hand = 2,
flammable = 2, not_in_inventory = 1
},
drop = "ethereal:fencegate_"..row[1].."_closed",
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.3125, 0.4375, -0.375, 0.3125, 0.5},
{0.375, -0.3125, 0.4375, 0.5, 0.3125, 0.5},
{-0.5, 0.1875, 0.0625, -0.375, 0.3125, 0.4375},
{-0.5, -0.1875, 0.0625, -0.375, -0.3125, 0.4375},
{0.375, 0.1875, 0.0625, 0.5, 0.3125, 0.4375},
{0.375, -0.1875, 0.0625, 0.5, -0.3125, 0.4375},
nb_pil[1], nb_pil[2],
nb_pil[3], nb_pil[4],
nb_gap[1], nb_gap[2],
nb_gap[3], nb_gap[4],
}
},
selection_box = {
type = "fixed",
fixed = {
{-0.5, -0.3125, -0.0625, -0.375, 0.3125, 0.5},
{0.375, -0.3125, -0.0625, 0.5, 0.3125, 0.5},
}
},
on_rightclick = gate_rightclick,
}) })
minetest.register_alias("ethereal:"..row[1].."gate_open", "ethereal:fencegate_"..row[1].."_open") doors.register_fencegate("ethereal:fencegate_frostwood", {
description = "Frost Wood Fence Gate",
minetest.register_node("ethereal:fencegate_"..row[1].."_closed", { texture = "frost_wood.png",
description = row[2].." Gate", material = "ethereal:frost_wood",
tiles = {row[3]}, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
inventory_image = "default_gate_overlay.png^" .. row[3]
.. "^default_gate_overlay.png^[makealpha:255,126,126",
wield_image = "default_gate_overlay.png^" .. row[3]
.. "^default_gate_overlay.png^[makealpha:255,126,126",
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
walkable = true,
groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
nb_pil[1], nb_pil[2],
nb_pil[3], nb_pil[4],
{-0.0625, -0.3125, -0.0625, 0.0625, 0.3125, 0.0625},
{-1, 0.1875, -0.0625, 1, 0.3125, 0.0625},
{-1, -0.1875, -0.0625, 1, -0.3125, 0.0625},
}
},
selection_box = {
type = "fixed",
fixed = {{-0.5, -0.3125, -0.0625, 0.5, 0.3125, 0.0625}}
},
on_rightclick = gate_rightclick,
})
minetest.register_alias("ethereal:"..row[1].."gate_closed", "ethereal:fencegate_"..row[1].."_closed")
minetest.register_craft({
output = "ethereal:fencegate_"..row[1].."_closed",
recipe = {
{"group:stick", row[4], "group:stick"},
{"group:stick", row[4], "group:stick"},
}
}) })
end doors.register_fencegate("ethereal:fencegate_redwood", {
description = "Redwood Fence Gate",
texture = "redwood_wood.png",
material = "ethereal:redwood_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
doors.register_fencegate("ethereal:fencegate_willow", {
description = "Willow Wood Fence Gate",
texture = "willow_wood.png",
material = "ethereal:willow_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
doors.register_fencegate("ethereal:fencegate_yellowwood", {
description = "Healing Wood Fence Gate",
texture = "yellow_wood.png",
material = "ethereal:yellow_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
doors.register_fencegate("ethereal:fencegate_palm", {
description = "Palm Wood Fence Gate",
texture = "moretrees_palm_wood.png",
material = "ethereal:palm_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
doors.register_fencegate("ethereal:fencegate_banana", {
description = "Banana Wood Fence Gate",
texture = "banana_wood.png",
material = "ethereal:banana_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
doors.register_fencegate("ethereal:fencegate_mushroom", {
description = "Mushroom Trunk Fence Gate",
texture = "mushroom_trunk.png",
material = "ethereal:mushroom_trunk",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
doors.register_fencegate("ethereal:fencegate_birch", {
description = "Birch Wood Fence Gate",
texture = "moretrees_birch_wood.png",
material = "ethereal:birch_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
-- add compatibility for ethereal's to default wooden gates
minetest.register_alias("ethereal:fencegate_wood_open", "doors:gate_wood_open")
minetest.register_alias("ethereal:fencegate_wood_closed", "doors:gate_wood_closed")
minetest.register_alias("ethereal:fencegate_acacia_open", "doors:gate_acacia_wood_open")
minetest.register_alias("ethereal:fencegate_acacia_closed", "doors:gate_acacia_wood_closed")
minetest.register_alias("ethereal:fencegate_junglewood_open", "doors:gate_junglewood_open")
minetest.register_alias("ethereal:fencegate_junglewood_closed", "doors:gate_junglewood_closed")
minetest.register_alias("ethereal:fencegate_pine_open", "doors:gate_pine_wood_open")
minetest.register_alias("ethereal:fencegate_pine_closed", "doors:gate_pine_wood_closed")

View File

@ -1,6 +1,6 @@
--[[ --[[
Minetest Ethereal Mod 1.19 (23rd March 2016) Minetest Ethereal Mod (17th May 2016)
Created by ChinChow Created by ChinChow
@ -57,12 +57,14 @@ dofile(path .. "/extra.lua")
dofile(path .. "/sealife.lua") dofile(path .. "/sealife.lua")
dofile(path .. "/fences.lua") dofile(path .. "/fences.lua")
dofile(path .. "/gates.lua") dofile(path .. "/gates.lua")
dofile(path .. "/mapgen_v7n.lua") -- 0.4.13+ dofile(path .. "/mapgen.lua")
dofile(path .. "/food.lua")
dofile(path .. "/bonemeal.lua")
dofile(path .. "/compatibility.lua")
dofile(path .. "/stairs.lua")
if minetest.get_modpath("xanadu") then if minetest.get_modpath("xanadu") then
dofile(path .. "/plantpack.lua") dofile(path .. "/plantpack.lua")
else
dofile(path .. "/stairs.lua")
end end
print ("[MOD] Ethereal loaded") print ("[MOD] Ethereal loaded")

View File

@ -1,55 +1,66 @@
-- Leaf style (set in init.lua file)
if ethereal.leaftype == 0 then -- set leaftype (value inside init.lua)
leaftype = "plantlike" local leaftype = "plantlike"
else
if ethereal.leaftype ~= 0 then
leaftype = "allfaces_optional" leaftype = "allfaces_optional"
end end
--= Define leaves for ALL trees (and Mushroom Tops) -- default apple tree leaves
minetest.override_item("default:leaves", {
-- Acacia Leaves
if not minetest.registered_nodes["default:acacia_leaves"] then
minetest.register_node("ethereal:acacia_leaves", {
description = "Acacia Leaves",
drawtype = leaftype, drawtype = leaftype,
tiles = {"moretrees_acacia_leaves.png"},
inventory_image = "moretrees_acacia_leaves.png",
wield_image = "moretrees_acacia_leaves.png",
paramtype = "light",
walkable = ethereal.leafwalk,
visual_scale = 1.2, visual_scale = 1.2,
waving = 1, inventory_image = "default_leaves.png",
groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, wield_image = "default_leaves.png",
walkable = ethereal.leafwalk,
})
-- default jungle tree leaves
minetest.override_item("default:jungleleaves", {
drawtype = leaftype,
visual_scale = 1.2,
inventory_image = "default_jungleleaves.png",
wield_image = "default_jungleleaves.png",
walkable = ethereal.leafwalk,
})
-- default pine tree leaves
minetest.override_item("default:pine_needles", {
drawtype = leaftype,
visual_scale = 1.2,
inventory_image = "default_pine_needles.png",
wield_image = "default_pine_needles.png",
walkable = ethereal.leafwalk,
drop = { drop = {
max_items = 1, max_items = 1,
items = { items = {
{items = {"ethereal:acacia_sapling"}, rarity = 20}, {items = {"default:pine_sapling"}, rarity = 20},
{items = {"ethereal:acacia_leaves"}} {items = {"ethereal:pine_nuts"}, rarity = 5},
{items = {"default:pine_needles"}}
} }
}, },
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
}) })
else
-- default acacia tree leaves
minetest.override_item("default:acacia_leaves", { minetest.override_item("default:acacia_leaves", {
drawtype = leaftype, drawtype = leaftype,
tiles = {"moretrees_acacia_leaves.png"}, -- tiles = {"moretrees_acacia_leaves.png"},
inventory_image = "moretrees_acacia_leaves.png", inventory_image = "default_acacia_leaves.png",
wield_image = "moretrees_acacia_leaves.png", wield_image = "default_acacia_leaves.png",
visual_scale = 1.2, visual_scale = 1.2,
walkable = ethereal.leafwalk, walkable = ethereal.leafwalk,
drop = {
max_items = 1,
items = {
{items = {"ethereal:acacia_sapling"}, rarity = 20},
{items = {"default:acacia_leaves"}}
}
},
}) })
minetest.register_alias("ethereal:acacia_leaves", "default:acacia_leaves")
end
-- Willow Twig -- default aspen tree leaves
minetest.override_item("default:aspen_leaves", {
drawtype = leaftype,
inventory_image = "default_aspen_leaves.png",
wield_image = "default_aspen_leaves.png",
visual_scale = 1.2,
walkable = ethereal.leafwalk,
})
-- willow twig
minetest.register_node("ethereal:willow_twig", { minetest.register_node("ethereal:willow_twig", {
description = "Willow Twig", description = "Willow Twig",
drawtype = "plantlike", drawtype = "plantlike",
@ -72,7 +83,7 @@ minetest.register_node("ethereal:willow_twig", {
after_place_node = default.after_place_leaves, after_place_node = default.after_place_leaves,
}) })
-- Redwood leaves -- redwood leaves
minetest.register_node("ethereal:redwood_leaves", { minetest.register_node("ethereal:redwood_leaves", {
description = "Redwood Leaves", description = "Redwood Leaves",
drawtype = leaftype, drawtype = leaftype,
@ -95,23 +106,7 @@ minetest.register_node("ethereal:redwood_leaves", {
after_place_node = default.after_place_leaves, after_place_node = default.after_place_leaves,
}) })
-- Default Apple Tree Leaves -- orange tree leaves
minetest.override_item("default:leaves", {
drawtype = leaftype,
visual_scale = 1.2,
inventory_image = "default_leaves.png",
wield_image = "default_leaves.png",
walkable = ethereal.leafwalk,
drop = {
max_items = 1,
items = {
{items = {"ethereal:tree_sapling"}, rarity = 15},
{items = {"default:leaves"}}
}
},
})
-- Orange Tree Leaves
minetest.register_node("ethereal:orange_leaves", { minetest.register_node("ethereal:orange_leaves", {
description = "Orange Leaves", description = "Orange Leaves",
drawtype = leaftype, drawtype = leaftype,
@ -134,23 +129,7 @@ minetest.register_node("ethereal:orange_leaves", {
after_place_node = default.after_place_leaves, after_place_node = default.after_place_leaves,
}) })
-- Default Jungle Tree Leaves -- banana tree leaves
minetest.override_item("default:jungleleaves", {
drawtype = leaftype,
visual_scale = 1.2,
inventory_image = "default_jungleleaves.png",
wield_image = "default_jungleleaves.png",
walkable = ethereal.leafwalk,
drop = {
max_items = 1,
items = {
{items = {"ethereal:jungle_tree_sapling"}, rarity = 20},
{items = {"default:jungleleaves"}}
}
},
})
-- Banana Tree Leaves
minetest.register_node("ethereal:bananaleaves", { minetest.register_node("ethereal:bananaleaves", {
description = "Banana Leaves", description = "Banana Leaves",
drawtype = leaftype, drawtype = leaftype,
@ -165,7 +144,7 @@ minetest.register_node("ethereal:bananaleaves", {
drop = { drop = {
max_items = 1, max_items = 1,
items = { items = {
{items = {"ethereal:banana_tree_sapling"}, rarity = 15}, {items = {"ethereal:banana_tree_sapling"}, rarity = 10},
{items = {"ethereal:bananaleaves"}} {items = {"ethereal:bananaleaves"}}
} }
}, },
@ -173,7 +152,7 @@ minetest.register_node("ethereal:bananaleaves", {
after_place_node = default.after_place_leaves, after_place_node = default.after_place_leaves,
}) })
-- Healing Tree Leaves -- healing tree leaves
minetest.register_node("ethereal:yellowleaves", { minetest.register_node("ethereal:yellowleaves", {
description = "Healing Tree Leaves", description = "Healing Tree Leaves",
drawtype = leaftype, drawtype = leaftype,
@ -192,14 +171,14 @@ minetest.register_node("ethereal:yellowleaves", {
{items = {"ethereal:yellowleaves"}} {items = {"ethereal:yellowleaves"}}
} }
}, },
-- Leaves are edible, heal half a heart -- one leaf heals half a heart when eaten
on_use = minetest.item_eat(1), on_use = minetest.item_eat(1),
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves, after_place_node = default.after_place_leaves,
light_source = 9, light_source = 9,
}) })
-- Palm Tree Leaves -- palm tree leaves
minetest.register_node("ethereal:palmleaves", { minetest.register_node("ethereal:palmleaves", {
description = "Palm Leaves", description = "Palm Leaves",
drawtype = leaftype, drawtype = leaftype,
@ -222,7 +201,7 @@ minetest.register_node("ethereal:palmleaves", {
after_place_node = default.after_place_leaves, after_place_node = default.after_place_leaves,
}) })
-- Birch Tree Leaves -- birch tree leaves
minetest.register_node("ethereal:birch_leaves", { minetest.register_node("ethereal:birch_leaves", {
description = "Birch Leaves", description = "Birch Leaves",
drawtype = leaftype, drawtype = leaftype,
@ -245,26 +224,7 @@ minetest.register_node("ethereal:birch_leaves", {
after_place_node = default.after_place_leaves, after_place_node = default.after_place_leaves,
}) })
-- Pine Tree Leaves -- frost tree leaves
minetest.override_item("default:pine_needles", {
drawtype = leaftype,
visual_scale = 1.2,
tiles = {"pine_leaves.png"},
inventory_image = "pine_leaves.png",
wield_image = "pine_leaves.png",
walkable = ethereal.leafwalk,
drop = {
max_items = 1,
items = {
{items = {"ethereal:pine_tree_sapling"}, rarity = 20},
{items = {"ethereal:pine_nuts"}, rarity = 5},
{items = {"default:pine_needles"}}
}
},
})
minetest.register_alias("ethereal:pineleaves", "default:pine_needles")
-- Frost Tree Leaves
minetest.register_node("ethereal:frost_leaves", { minetest.register_node("ethereal:frost_leaves", {
description = "Frost Leaves", description = "Frost Leaves",
drawtype = leaftype, drawtype = leaftype,
@ -288,57 +248,7 @@ minetest.register_node("ethereal:frost_leaves", {
after_place_node = default.after_place_leaves, after_place_node = default.after_place_leaves,
}) })
-- Mushroom Tops -- bamboo stalk leaves
minetest.register_node("ethereal:mushroom", {
description = "Mushroom Cap",
tiles = {"mushroom_block.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
drop = {
max_items = 1,
items = {
{items = {"ethereal:mushroom_sapling"}, rarity = 20},
{items = {"ethereal:mushroom"}}
}
},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_craft({
type = "fuel",
recipe = "ethereal:mushroom",
burntime = 10,
})
-- Mushroom Pore (Spongelike block inside mushrooms that has special properties)
minetest.register_node("ethereal:mushroom_pore", {
description = "Mushroom Pore",
tiles = {"mushroom_pore.png"},
groups = {
snappy = 3, cracky = 3, choppy = 3, oddly_breakable_by_hand = 3,
flammable = 2, disable_jump = 1, fall_damage_add_percent = -100
},
sounds = default.node_sound_dirt_defaults(),
})
-- Hedge Block
minetest.register_node("ethereal:bush", {
description = "Bush",
tiles = {"ethereal_bush.png"},
walkable = true,
groups = {snappy = 3, flammable = 2},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_craft({
output = "ethereal:bush",
recipe = {
{"group:leaves", "group:leaves", "group:leaves"},
{"group:leaves", "group:leaves", "group:leaves"},
{"group:leaves", "group:leaves", "group:leaves"},
}
})
-- Bamboo Leaves
minetest.register_node("ethereal:bamboo_leaves", { minetest.register_node("ethereal:bamboo_leaves", {
description = "Bamboo Leaves", description = "Bamboo Leaves",
drawtype = leaftype, drawtype = leaftype,
@ -360,3 +270,93 @@ minetest.register_node("ethereal:bamboo_leaves", {
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves, after_place_node = default.after_place_leaves,
}) })
-- mushroom tops
minetest.register_node("ethereal:mushroom", {
description = "Mushroom Cap",
tiles = {"mushroom_block.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
drop = {
max_items = 1,
items = {
{items = {"ethereal:mushroom_sapling"}, rarity = 20},
{items = {"ethereal:mushroom"}}
}
},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_craft({
type = "fuel",
recipe = "ethereal:mushroom",
burntime = 10,
})
-- mushroom pore (spongelike material found inside giant shrooms)
minetest.register_node("ethereal:mushroom_pore", {
description = "Mushroom Pore",
tiles = {"mushroom_pore.png"},
groups = {
snappy = 3, cracky = 3, choppy = 3, oddly_breakable_by_hand = 3,
flammable = 2, disable_jump = 1, fall_damage_add_percent = -100
},
sounds = default.node_sound_dirt_defaults(),
})
-- hedge block
minetest.register_node("ethereal:bush", {
description = "Bush",
tiles = {"ethereal_bush.png"},
walkable = true,
groups = {snappy = 3, flammable = 2},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_craft({
output = "ethereal:bush",
recipe = {
{"group:leaves", "group:leaves", "group:leaves"},
{"group:leaves", "ethereal:bamboo_leaves", "group:leaves"},
{"group:leaves", "group:leaves", "group:leaves"},
}
})
-- bush block #2
minetest.register_node("ethereal:bush2", {
drawtype = "allfaces_optional",
description = "Bush #2",
tiles = {"default_aspen_leaves.png"},
paramtype = "light",
walkable = true,
groups = {snappy = 3, flammable = 2},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_craft({
output = "ethereal:bush2",
recipe = {
{"group:leaves", "group:leaves", "group:leaves"},
{"group:leaves", "default:aspen_leaves", "group:leaves"},
{"group:leaves", "group:leaves", "group:leaves"},
}
})
-- bush block #3
minetest.register_node("ethereal:bush3", {
drawtype = "allfaces_optional",
description = "Bush #3",
tiles = {"default_pine_needles.png"},
paramtype = "light",
walkable = true,
groups = {snappy = 3, flammable = 2},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_craft({
output = "ethereal:bush3",
recipe = {
{"group:leaves", "group:leaves", "group:leaves"},
{"group:leaves", "default:pine_needles", "group:leaves"},
{"group:leaves", "group:leaves", "group:leaves"},
}
})

View File

@ -1,50 +1,18 @@
-- clear default mapgen biomes and decorations
-- clear default mapgen biomes, decorations and ores
minetest.clear_registered_biomes() minetest.clear_registered_biomes()
minetest.clear_registered_decorations() minetest.clear_registered_decorations()
--minetest.clear_registered_ores()
-- register ore's local path = minetest.get_modpath("ethereal")
minetest.register_ore({
ore_type = "blob",
ore = "bakedclay:red",
wherein = {"bakedclay:orange"},
clust_scarcity = 4 * 4 * 4,
clust_num_ores = 8,
clust_size = 6,
y_min = -10,
y_max = 71,
noise_params = {
offset = 0.35,
scale = 0.2,
spread = {x = 5, y = 5, z = 5},
seed = -316,
octaves = 1,
persist = 0.5
},
})
minetest.register_ore({ dofile(path .. "/ores.lua")
ore_type = "blob",
ore = "bakedclay:grey",
wherein = {"bakedclay:orange"},
clust_scarcity = 4 * 4 * 4,
clust_num_ores = 8,
clust_size = 6,
y_min = -10,
y_max = 71,
noise_params = {
offset = 0.35,
scale = 0.2,
spread = {x = 5, y = 5, z = 5},
seed = -613,
octaves = 1,
persist = 0.5
},
})
local path = minetest.get_modpath("ethereal") .. "/schematics/" path = path .. "/schematics/"
local dpath = minetest.get_modpath("default") .. "/schematics/"
-- tree schematics -- tree schematics
dofile(path .. "apple_tree.lua")
dofile(path .. "orange_tree.lua") dofile(path .. "orange_tree.lua")
dofile(path .. "banana_tree.lua") dofile(path .. "banana_tree.lua")
dofile(path .. "bamboo_tree.lua") dofile(path .. "bamboo_tree.lua")
@ -95,6 +63,9 @@ add_biome("glacier", "default:snowblock", "default:snowblock", 1,
add_biome("glacier_ocean", "default:snowblock", "default:sand", 1, "default:sand", 3, add_biome("glacier_ocean", "default:snowblock", "default:sand", 1, "default:sand", 3,
nil, nil, nil, nil, nil, -112, -9, 0, 50, ethereal.glacier) nil, nil, nil, nil, nil, -112, -9, 0, 50, ethereal.glacier)
add_biome("clearing", nil, "ethereal:green_dirt", 1, "default:dirt", 3,
nil, nil, nil, nil, nil, 3, 71, 45, 65, 1) -- ADDED
add_biome("bamboo", nil, "ethereal:bamboo_dirt", 1, "default:dirt", 3, add_biome("bamboo", nil, "ethereal:bamboo_dirt", 1, "default:dirt", 3,
nil, nil, nil, nil, nil, 3, 71, 45, 75, ethereal.bamboo) nil, nil, nil, nil, nil, 3, 71, 45, 75, ethereal.bamboo)
@ -240,31 +211,35 @@ add_schem({"ethereal:fiery_dirt"}, 0.01, {"fiery"}, 1, 100, path .. "volcanom.mt
-- large lava crater -- large lava crater
add_schem({"ethereal:fiery_dirt"}, 0.01, {"fiery"}, 1, 100, path .. "volcanol.mts", ethereal.fiery) add_schem({"ethereal:fiery_dirt"}, 0.01, {"fiery"}, 1, 100, path .. "volcanol.mts", ethereal.fiery)
-- jungle tree -- default jungle tree
add_schem({"ethereal:jungle_dirt"}, 0.08, {"junglee"}, 1, 100, path .. "jungletree.mts", ethereal.junglee) add_schem({"ethereal:jungle_dirt"}, 0.08, {"junglee"}, 1, 100, dpath .. "jungle_tree.mts", ethereal.junglee)
-- willow tree -- willow tree
add_schem({"ethereal:gray_dirt"}, 0.02, {"grayness"}, 1, 100, path .. "willow.mts", ethereal.grayness) add_schem({"ethereal:gray_dirt"}, 0.02, {"grayness"}, 1, 100, path .. "willow.mts", ethereal.grayness)
-- pine tree -- pine tree (default for lower elevation and ethereal for higher)
add_schem({"ethereal:cold_dirt"}, 0.025, {"snowy"}, 10, 40, path .. "pinetree.mts", ethereal.snowy) add_schem({"ethereal:cold_dirt"}, 0.025, {"snowy"}, 10, 40, dpath .. "pine_tree.mts", ethereal.snowy)
add_schem({"default:dirt_with_snow"}, 0.025, {"alpine"}, 40, 140, path .. "pinetree.mts", ethereal.alpine) add_schem({"default:dirt_with_snow"}, 0.025, {"alpine"}, 40, 140, path .. "pinetree.mts", ethereal.alpine)
-- apple tree -- default apple tree
add_schem({"ethereal:green_dirt"}, 0.03, {"grassy"}, 1, 100, ethereal.appletree, ethereal.grassy) add_schem({"ethereal:green_dirt"}, 0.02, {"jumble"}, 1, 100, dpath .. "apple_tree.mts", ethereal.grassy)
add_schem({"ethereal:green_dirt"}, 0.03, {"jumble"}, 1, 100, ethereal.appletree, ethereal.jumble) add_schem({"ethereal:green_dirt"}, 0.03, {"grassy"}, 1, 100, dpath .. "apple_tree.mts", ethereal.grassy)
-- big old tree -- big old tree
add_schem({"ethereal:green_dirt"}, 0.0025, {"jumble"}, 1, 100, path .. "bigtree.mts", ethereal.jumble) add_schem({"ethereal:green_dirt"}, 0.001, {"jumble"}, 1, 100, path .. "bigtree.mts", ethereal.jumble)
-- aspen tree
add_schem({"ethereal:green_dirt"}, 0.02, {"grassytwo"}, 1, 50,
minetest.get_modpath("default").."/schematics/aspen_tree.mts", ethereal.jumble)
-- birch tree -- birch tree
add_schem({"ethereal:green_dirt"}, 0.03, {"grassytwo"}, 1, 100, ethereal.birchtree, ethereal.grassytwo) add_schem({"ethereal:green_dirt"}, 0.02, {"grassytwo"}, 50, 100, ethereal.birchtree, ethereal.grassytwo)
-- orange tree -- orange tree
add_schem({"ethereal:prairie_dirt"}, 0.01, {"prairie"}, 1, 100, ethereal.orangetree, ethereal.prairie) add_schem({"ethereal:prairie_dirt"}, 0.01, {"prairie"}, 1, 100, ethereal.orangetree, ethereal.prairie)
-- acacia tree -- default acacia tree
add_schem({"default:dirt_with_dry_grass"}, 0.004, {"savannah"}, 1, 100, path .. "acaciatree.mts", ethereal.savannah) add_schem({"default:dirt_with_dry_grass"}, 0.004, {"savannah"}, 1, 100, dpath .. "acacia_tree.mts", ethereal.savannah)
-- large cactus (by Paramat) -- large cactus (by Paramat)
if ethereal.desert == 1 then if ethereal.desert == 1 then
@ -283,7 +258,7 @@ minetest.register_decoration({
biomes = {"desert"}, biomes = {"desert"},
y_min = 5, y_min = 5,
y_max = 31000, y_max = 31000,
schematic = path.."large_cactus.mts", schematic = dpath.."large_cactus.mts",
flags = "place_center_x", --, place_center_z", flags = "place_center_x", --, place_center_z",
rotation = "random", rotation = "random",
}) })
@ -357,7 +332,7 @@ add_node({"ethereal:crystal_dirt"}, 0.02, {"frost"}, 1, 100, {"ethereal:crystal_
"ethereal:crystalgrass"}, nil, nil, nil, ethereal.frost) "ethereal:crystalgrass"}, nil, nil, nil, ethereal.frost)
-- red shrub -- red shrub
add_node({"ethereal:fiery_dirt"}, 0.12, {"fiery"}, 1, 100, {"ethereal:dry_shrub"}, nil, nil, nil, ethereal.fiery) add_node({"ethereal:fiery_dirt"}, 0.10, {"fiery"}, 1, 100, {"ethereal:dry_shrub"}, nil, nil, nil, ethereal.fiery)
-- fire flower -- fire flower
--add_node({"ethereal:fiery_dirt"}, 0.02, {"fiery"}, 1, 100, {"ethereal:fire_flower"}, nil, nil, nil, ethereal.fiery) --add_node({"ethereal:fiery_dirt"}, 0.02, {"fiery"}, 1, 100, {"ethereal:fire_flower"}, nil, nil, nil, ethereal.fiery)
@ -400,14 +375,14 @@ minetest.register_decoration({
biomes = {row[1]}, biomes = {row[1]},
y_min = 1, y_min = 1,
y_max = 120, y_max = 120,
decoration = {"flowers:mushroom_fertile_brown", "flowers:mushroom_fertile_red"}, decoration = {"flowers:mushroom_brown", "flowers:mushroom_red"},
}) })
end end
end end
-- jungle grass -- jungle grass
add_node({"ethereal:jungle_dirt"}, 0.15, {"junglee"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.junglee) add_node({"ethereal:jungle_dirt"}, 0.10, {"junglee"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.junglee)
add_node({"ethereal:green_dirt"}, 0.15, {"jumble"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.jumble) add_node({"ethereal:green_dirt"}, 0.15, {"jumble"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.jumble)
-- grass -- grass
@ -425,6 +400,8 @@ add_node({"ethereal:grove_dirt"}, 0.35, {"grove"}, 1, 100, {"default:grass_2", "
"default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.grove) "default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.grove)
add_node({"ethereal:bamboo_dirt"}, 0.35, {"bamboo"}, 1, 100, {"default:grass_2", "default:grass_3", add_node({"ethereal:bamboo_dirt"}, 0.35, {"bamboo"}, 1, 100, {"default:grass_2", "default:grass_3",
"default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.bamboo) "default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.bamboo)
add_node({"ethereal:green_dirt"}, 0.25, {"clearing"}, 1, 100, {"default:grass_2", "default:grass_3",
"default:grass_4"}, nil, nil, nil, 1)
-- grass on sand -- grass on sand
add_node({"default:sand"}, 0.25, {"sandclay"}, 3, 3, {"default:grass_2", "default:grass_3"}, nil, nil, nil, ethereal.sandclay) add_node({"default:sand"}, 0.25, {"sandclay"}, 3, 3, {"default:grass_2", "default:grass_3"}, nil, nil, nil, ethereal.sandclay)
@ -486,10 +463,7 @@ add_node({"ethereal:prairie_dirt"}, 0.025, {"prairie"}, 1, 100, {"farming:grapeb
end end
-- is waterlily in game? -- place waterlily in beach areas
if minetest.registered_nodes["flowers:waterlily"] then
-- place in these beach areas
local list = { local list = {
{"desert_ocean", ethereal.desert}, {"desert_ocean", ethereal.desert},
{"plains_ocean", ethereal.plains}, {"plains_ocean", ethereal.plains},
@ -502,7 +476,7 @@ local list = {
for _, row in pairs(list) do for _, row in pairs(list) do
if row[2] == 1 then if row[2] == 1 then
minetest.register_decoration({ minetest.register_decoration({
deco_type = "schematic", deco_type = "schematic",
@ -522,8 +496,36 @@ if row[2] == 1 then
schematic = ethereal.waterlily, schematic = ethereal.waterlily,
rotation = "random", rotation = "random",
}) })
end
end
end end
end -- Generate Illumishroom in caves next to coal
minetest.register_on_generated(function(minp, maxp)
if minp.y > -30 or maxp.y < -3000 then
return
end
local bpos
local coal = minetest.find_nodes_in_area_under_air(minp, maxp, "default:stone_with_coal")
for n = 1, #coal do
bpos = {x = coal[n].x, y = coal[n].y + 1, z = coal[n].z }
if math.random(1, 2) == 1 then
if bpos.y > -3000 and bpos.y < -2000 then
minetest.swap_node(bpos, {name = "ethereal:illumishroom3"})
elseif bpos.y > -2000 and bpos.y < -1000 then
minetest.swap_node(bpos, {name = "ethereal:illumishroom2"})
elseif bpos.y > -1000 and bpos.y < -30 then
minetest.swap_node(bpos, {name = "ethereal:illumishroom"})
end
end
end
end)

View File

@ -1 +1 @@
name = ethereal name = ethereal

View File

@ -1,118 +1,4 @@
-- does flowers:mushroom_red exists?
-- if not then create temporary shroom stuff
if minetest.registered_nodes["flowers:mushroom_red"] then
print ("[Ethereal] Using current mushrooms in flowers mod")
else
print ("[Ethereal] Defining temporary mushrooms")
-- The following code was taken from minetest 0.4.13 dev flowers mod
-- incase players are using older version of minetest
minetest.register_node(":flowers:mushroom_red", {
description = "Red Mushroom",
tiles = {"flowers_mushroom_red.png"},
inventory_image = "flowers_mushroom_red.png",
wield_image = "flowers_mushroom_red.png",
drawtype = "plantlike",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, flammable = 3, attached_node = 1},
sounds = default.node_sound_leaves_defaults(),
on_use = minetest.item_eat(-5),
selection_box = {
type = "fixed",
fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
}
})
minetest.register_node(":flowers:mushroom_brown", {
description = "Brown Mushroom",
tiles = {"flowers_mushroom_brown.png"},
inventory_image = "flowers_mushroom_brown.png",
wield_image = "flowers_mushroom_brown.png",
drawtype = "plantlike",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, flammable = 3, attached_node = 1},
sounds = default.node_sound_leaves_defaults(),
on_use = minetest.item_eat(1),
selection_box = {
type = "fixed",
fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
}
})
-- mushroom spread and death
minetest.register_abm({
nodenames = {"flowers:mushroom_brown", "flowers:mushroom_red"},
interval = 11,
chance = 50,
action = function(pos, node)
if minetest.get_node_light(pos, nil) > 14 then
minetest.remove_node(pos)
return
end
local random = {
x = pos.x + math.random(-2, 2),
y = pos.y + math.random(-1, 1),
z = pos.z + math.random(-2, 2)
}
local random_node = minetest.get_node_or_nil(random)
if not random_node
or random_node.name ~= "air" then
return
end
local node_under = minetest.get_node_or_nil({
x = random.x,
y = random.y - 1,
z = random.z
})
if not node_under then
return
end
if minetest.get_item_group(node_under.name, "soil") ~= 0
and minetest.get_node_light(pos, nil) < 9
and minetest.get_node_light(random, nil) < 9 then
minetest.swap_node(random, {name = node.name})
end
end
})
end
-- these old mushroom related nodes can be simplified now
minetest.register_alias("flowers:mushroom_spores_brown", "flowers:mushroom_brown")
minetest.register_alias("flowers:mushroom_spores_red", "flowers:mushroom_red")
minetest.register_alias("flowers:mushroom_fertile_brown", "flowers:mushroom_brown")
minetest.register_alias("flowers:mushroom_fertile_red", "flowers:mushroom_red")
-- set compatibility with old ethereal shrooms
minetest.register_alias("ethereal:mushroom_craftingitem", "flowers:mushroom_brown")
minetest.register_alias("ethereal:mushroom_plant", "flowers:mushroom_brown")
minetest.register_alias("ethereal:mushroom_soup_cooked", "ethereal:mushroom_soup")
minetest.register_alias("ethereal:mushroom_1", "flowers:mushroom_brown")
minetest.register_alias("ethereal:mushroom_2", "flowers:mushroom_brown")
minetest.register_alias("ethereal:mushroom_3", "flowers:mushroom_brown")
minetest.register_alias("ethereal:mushroom_4", "flowers:mushroom_brown")
-- mushroom soup (Heals 1 heart) -- mushroom soup (Heals 1 heart)
minetest.register_craftitem("ethereal:mushroom_soup", { minetest.register_craftitem("ethereal:mushroom_soup", {
description = "Mushroom Soup", description = "Mushroom Soup",
@ -128,3 +14,12 @@ minetest.register_craft({
{"ethereal:bowl"}, {"ethereal:bowl"},
} }
}) })
-- 4x red mushrooms make mushroom block
minetest.register_craft({
output = "ethereal:mushroom",
recipe = {
{"flowers:mushroom_red", "flowers:mushroom_red"},
{"flowers:mushroom_red", "flowers:mushroom_red"},
}
})

112
onion.lua
View File

@ -1,116 +1,100 @@
-- Wild Onion Plant
-- wild onion
minetest.register_craftitem("ethereal:wild_onion_plant", { minetest.register_craftitem("ethereal:wild_onion_plant", {
description = "Wild Onion", description = "Wild Onion",
groups = {not_in_creative_inventory=1},
inventory_image = "wild_onion.png", inventory_image = "wild_onion.png",
wield_image = "wild_onion.png", wield_image = "wild_onion.png",
on_use = minetest.item_eat(2),
on_place = function(itemstack, placer, pointed_thing) on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "ethereal:wild_onion_1") return farming.place_seed(itemstack, placer, pointed_thing, "ethereal:wild_onion_1")
end end,
on_use = minetest.item_eat(2),
}) })
-- Define Onion growth stages -- Define Onion growth stages
local onion_def = { local crop_def = {
drawtype = "plantlike", drawtype = "plantlike",
tiles = {"ethereal_wild_onion_1.png"}, tiles = {"ethereal_wild_onion_1.png"},
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
walkable = false, walkable = false,
buildable_to = true, buildable_to = true,
drop = { drop = "",
items = {
{items = {"ethereal:wild_onion_plant"}, rarity = 1},
}
},
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5} fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
}, },
groups = { groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
onion = 1, growing = 1, not_in_creative_inventory = 1 growing = 1, not_in_creative_inventory = 1
}, },
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
} }
minetest.register_node("ethereal:onion_1", table.copy(onion_def))
onion_def.tiles[1] = "ethereal_wild_onion_2.png" --stage 1
onion_def.groups.onion = 2 minetest.register_node("ethereal:onion_1", table.copy(crop_def))
minetest.register_node("ethereal:onion_2", table.copy(onion_def))
onion_def.tiles[1] = "ethereal_wild_onion_3.png" --stage 2
onion_def.groups.onion = 3 crop_def.tiles = {"ethereal_wild_onion_2.png"}
onion_def.drop.items[2] = { minetest.register_node("ethereal:onion_2", table.copy(crop_def))
items = {"ethereal:wild_onion_plant 2"}, rarity = 3
--stage 3
crop_def.tiles = {"ethereal_wild_onion_3.png"}
minetest.register_node("ethereal:onion_3", table.copy(crop_def))
--stage 4
crop_def.tiles = {"ethereal_wild_onion_4.png"}
crop_def.drop = {
items = {
{items = {"ethereal:wild_onion_plant"}, rarity = 1},
{items = {"ethereal:wild_onion_plant 2"}, rarity = 3},
}
} }
minetest.register_node("ethereal:onion_3", table.copy(onion_def)) minetest.register_node("ethereal:onion_4", table.copy(crop_def))
onion_def.tiles[1] = "ethereal_wild_onion_4.png" --stage 5
onion_def.groups.onion = 4 crop_def.tiles = {"ethereal_wild_onion_5.png"}
onion_def.drop.items[2] = { crop_def.groups.growing = 0
items = {"ethereal:wild_onion_plant 3"}, rarity = 3 crop_def.drop = {
items = {
{items = {"ethereal:wild_onion_plant 2"}, rarity = 1},
{items = {"ethereal:wild_onion_plant 3"}, rarity = 2},
}
} }
minetest.register_node("ethereal:onion_4", table.copy(onion_def)) minetest.register_node("ethereal:onion_5", table.copy(crop_def))
onion_def.tiles[1] = "ethereal_wild_onion_5.png" -- growing routine if farming redo isn't present
onion_def.groups.onion = 5 if not farming or not farming.mod or farming.mod ~= "redo" then
onion_def.groups.growing = nil
onion_def.drop.items = {
{items = {"ethereal:wild_onion_plant 2"}, rarity = 1},
{items = {"ethereal:wild_onion_plant 3"}, rarity = 2},
}
minetest.register_node("ethereal:onion_5", table.copy(onion_def))
-- Abm for growing Wild Onion
if farming.mod ~= "redo" then
minetest.register_abm({ minetest.register_abm({
nodenames = {"group:onion"}, nodenames = {"ethereal:onion_1", "ethereal:onion_2", "ethereal:onion_3", "ethereal:onion_4"},
neighbors = {"farming:soil_wet"}, neighbors = {"farming:soil_wet"},
interval = 50, interval = 9,
chance = 3, chance = 20,
catch_up = false, catch_up = false,
action = function(pos, node) action = function(pos, node)
-- return if already full grown -- are we on wet soil?
if minetest.get_item_group(node.name, "growing") < 1 then
return
end
-- check if on wet soil
pos.y = pos.y - 1 pos.y = pos.y - 1
if minetest.get_item_group(minetest.get_node(pos).name, "soil") < 3 then if minetest.get_item_group(minetest.get_node(pos).name, "soil") < 3 then
return return
end end
pos.y = pos.y + 1 pos.y = pos.y + 1
-- check light -- do we have enough light?
local light = minetest.get_node_light(pos) local light = minetest.get_node_light(pos)
if not light if not light
or light < 13 then or light < 13 then
return return
end end
-- grow -- grow to next stage
node.name = "ethereal:onion_"..minetest.get_item_group(node.name, "onion") + 1 local num = node.name:split("_")[2]
node.name = "ethereal:onion_" .. tonumber(num + 1)
minetest.swap_node(pos, node) minetest.swap_node(pos, node)
end end
}) })
end end -- END IF
-- Legacy
minetest.register_alias("ethereal:wild_onion_craftingitem", "ethereal:wild_onion_plant")
for i = 1, 5 do
minetest.register_alias("ethereal:wild_onion_"..i, "ethereal:onion_"..i)
end
-- Temporary compatibility lines for Xanadu server
minetest.register_alias("ethereal:onion_7", "ethereal:onion_4")
minetest.register_alias("ethereal:onion_8", "ethereal:onion_5")
minetest.register_alias("ethereal:wild_onion_7", "ethereal:onion_4")
minetest.register_alias("ethereal:wild_onion_8", "ethereal:onion_5")

84
ores.lua Normal file
View File

@ -0,0 +1,84 @@
-- Baked Clay
minetest.register_ore({
ore_type = "blob",
ore = "bakedclay:red",
wherein = {"bakedclay:orange"},
clust_scarcity = 4 * 4 * 4,
clust_num_ores = 8,
clust_size = 6,
y_min = -10,
y_max = 71,
noise_params = {
offset = 0.35,
scale = 0.2,
spread = {x = 5, y = 5, z = 5},
seed = -316,
octaves = 1,
persist = 0.5
},
})
minetest.register_ore({
ore_type = "blob",
ore = "bakedclay:grey",
wherein = {"bakedclay:orange"},
clust_scarcity = 4 * 4 * 4,
clust_num_ores = 8,
clust_size = 6,
y_min = -10,
y_max = 71,
noise_params = {
offset = 0.35,
scale = 0.2,
spread = {x = 5, y = 5, z = 5},
seed = -613,
octaves = 1,
persist = 0.5
},
})
local add_ore = function(a, b, c, d, e, f, g)
minetest.register_ore({
ore_type = "scatter",
ore = a,
wherein = b,
clust_scarcity = c,
clust_num_ores = d,
clust_size = e,
y_min = f,
y_max = g,
})
end
-- Coal
add_ore("default:stone_with_coal", "default:desert_stone", 24*24*24, 27, 6, -31000, -16)
-- Iron
add_ore("default:stone_with_iron", "default:desert_stone", 9*9*9, 5, 3, -63, -16)
add_ore("default:stone_with_iron", "default:desert_stone", 24*24*24, 27, 6, -31000, -64)
--Mese
add_ore("default:stone_with_mese", "default:desert_stone", 14*14*14, 5, 3, -31000, -256)
-- Gold
add_ore("default:stone_with_gold", "default:desert_stone", 15*15*15, 3, 2, -255, -64)
add_ore("default:stone_with_gold", "default:desert_stone", 13*13*13, 5, 3, -31000, -256)
-- Diamond
add_ore("default:stone_with_diamond", "default:desert_stone", 17*17*17, 4, 3, -255, -128)
add_ore("default:stone_with_diamond", "default:desert_stone", 15*15*15, 4, 3, -31000, -256)
-- Copper
add_ore("default:stone_with_copper", "default:desert_stone", 9*9*9, 5, 3, -31000, -64)
-- Coral Sand
add_ore("ethereal:sandy", "default:sand", 10*10*10, 24, 4, -100, -12)

View File

@ -1,3 +1,4 @@
-- override default papyrus to make it walkable -- override default papyrus to make it walkable
minetest.override_item("default:papyrus", {walkable = true, sunlight_propagates = true}) minetest.override_item("default:papyrus", {walkable = true, sunlight_propagates = true})
@ -5,8 +6,8 @@ minetest.override_item("default:papyrus", {walkable = true, sunlight_propagates
minetest.register_abm({ minetest.register_abm({
nodenames = {"default:papyrus", "ethereal:bamboo"}, nodenames = {"default:papyrus", "ethereal:bamboo"},
neighbors = {"group:soil"}, neighbors = {"group:soil"},
interval = 50, interval = 14, --50,
chance = 20, chance = 71, --20,
catch_up = false, catch_up = false,
action = function(pos, node) action = function(pos, node)

View File

@ -1,3 +1,4 @@
-- Fire Flower -- Fire Flower
minetest.register_node("ethereal:fire_flower", { minetest.register_node("ethereal:fire_flower", {
description = "Fire Flower", description = "Fire Flower",
@ -9,6 +10,7 @@ minetest.register_node("ethereal:fire_flower", {
light_source = 5, light_source = 5,
sunlight_propagates = true, sunlight_propagates = true,
walkable = false, walkable = false,
buildable_to = true,
damage_per_second = 2, damage_per_second = 2,
groups = {snappy = 1, oddly_breakable_by_hand = 3, igniter = 2}, groups = {snappy = 1, oddly_breakable_by_hand = 3, igniter = 2},
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
@ -16,6 +18,7 @@ minetest.register_node("ethereal:fire_flower", {
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
}, },
on_punch = function(pos, node, puncher) on_punch = function(pos, node, puncher)
puncher:punch(puncher, 1.0, { puncher:punch(puncher, 1.0, {
@ -28,7 +31,7 @@ minetest.register_node("ethereal:fire_flower", {
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = "ethereal:fire_flower", recipe = "ethereal:fire_flower",
burntime = 40, burntime = 20,
}) })
-- Fire Dust -- Fire Dust
@ -47,9 +50,37 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",
recipe = "ethereal:fire_dust", recipe = "ethereal:fire_dust",
burntime = 20, burntime = 10,
}) })
-- vines
minetest.register_node("ethereal:vine", {
description = "Vine",
drawtype = "signlike",
tiles = {"vine.png"},
inventory_image = "vine.png",
wield_image = "vine.png",
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
climbable = true,
is_ground_content = false,
selection_box = {
type = "wallmounted",
},
groups = {choppy = 3, oddly_breakable_by_hand = 1},
legacy_wallmounted = true,
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_craft({
output = "ethereal:vine 2",
recipe = {
{"group:leaves", "group:leaves"},
{"group:leaves", "group:leaves"},
{"group:leaves", "group:leaves"},
}
})
-- light strings (glowing vine) -- light strings (glowing vine)
minetest.register_node("ethereal:lightstring", { minetest.register_node("ethereal:lightstring", {
@ -191,7 +222,7 @@ function ethereal.add_moss(typ, descr, texture, receipe_item)
minetest.register_craft({ minetest.register_craft({
output = "ethereal:"..typ.."_moss", output = "ethereal:"..typ.."_moss",
recipe = {{"default:dirt", receipe_item }} recipe = {{"default:dirt", receipe_item }}
}) })
end end
@ -201,380 +232,57 @@ ethereal.add_moss( "fiery", "Fiery", "ethereal_grass_fiery_top.png", "ethereal:d
ethereal.add_moss( "gray", "Gray", "ethereal_grass_gray_top.png", "ethereal:snowygrass") ethereal.add_moss( "gray", "Gray", "ethereal_grass_gray_top.png", "ethereal:snowygrass")
ethereal.add_moss( "green", "Green", "default_grass.png", "default:jungleleaves") ethereal.add_moss( "green", "Green", "default_grass.png", "default:jungleleaves")
-- fix apples hanging in sky when no tree around -- Illuminated Cave Shrooms (Red, Green and Blue)
minetest.override_item("default:apple", { minetest.register_node("ethereal:illumishroom", {
drop = "default:apple", description = "Red Illumishroom",
}) drawtype = "plantlike",
tiles = { "illumishroom.png" },
-- Banana (Heals one heart when eaten) inventory_image = "illumishroom.png",
minetest.register_node("ethereal:banana", { wield_image = "illumishroom.png",
description = "Banana",
drawtype = "torchlike",
visual_scale = 1.0,
tiles = {"banana_single.png"},
inventory_image = "banana_single.png",
wield_image = "banana_single.png",
paramtype = "light", paramtype = "light",
light_source = 5,
sunlight_propagates = true, sunlight_propagates = true,
walkable = false, walkable = false,
selection_box = { groups = {dig_immediate = 3, attached_node = 1,flammable = 3},
type = "fixed",
fixed = {-0.2, -0.5, -0.2, 0.2, 0.2, 0.2}
},
groups = {
fleshy = 3, dig_immediate = 3, flammable = 2,
leafdecay = 1, leafdecay_drop = 1
},
drop = "ethereal:banana",
on_use = minetest.item_eat(2),
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer)
if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:banana", param2 = 1})
end
end,
})
-- Banana Dough
minetest.register_craftitem("ethereal:banana_dough", {
description = "Banana Dough",
inventory_image = "banana_dough.png",
})
minetest.register_craft({
type = "shapeless",
output = "ethereal:banana_dough",
recipe = {"farming:flour", "ethereal:banana"}
})
minetest.register_craft({
type = "cooking",
cooktime = 14,
output = "ethereal:banana_bread",
recipe = "ethereal:banana_dough"
})
-- Orange (Heals 2 hearts when eaten)
minetest.register_node("ethereal:orange", {
description = "Orange",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"farming_orange.png"},
inventory_image = "farming_orange.png",
wield_image = "farming_orange.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.3, -0.2, 0.2, 0.2, 0.2}
},
groups = {
fleshy = 3, dig_immediate = 3, flammable = 2,
leafdecay = 3, leafdecay_drop = 1
},
drop = "ethereal:orange",
on_use = minetest.item_eat(4),
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer)
if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:orange", param2 = 1})
end
end,
})
-- Pine Nuts (Heals 1/2 heart when eaten)
minetest.register_craftitem("ethereal:pine_nuts", {
description = "Pine Nuts",
inventory_image = "pine_nuts.png",
wield_image = "pine_nuts.png",
on_use = minetest.item_eat(1),
})
-- Banana Loaf (Heals 3 hearts when eaten)
minetest.register_craftitem("ethereal:banana_bread", {
description = "Banana Loaf",
inventory_image = "banana_bread.png",
wield_image = "banana_bread.png",
on_use = minetest.item_eat(6),
})
-- Coconut (Gives 4 coconut slices, each heal 1/2 heart)
minetest.register_node("ethereal:coconut", {
description = "Coconut",
drawtype = "plantlike",
walkable = false,
paramtype = "light",
sunlight_propagates = true,
tiles = {"moretrees_coconut.png"},
inventory_image = "moretrees_coconut.png",
wield_image = "moretrees_coconut.png",
selection_box = {
type = "fixed",
fixed = {-0.35, -0.35, -0.35, 0.35, 0.35, 0.35}
},
groups = {
snappy = 1, oddly_breakable_by_hand = 1, cracky = 1,
choppy = 1, flammable = 1, leafdecay = 3, leafdecay_drop = 1
},
drop = "ethereal:coconut_slice 4",
sounds = default.node_sound_wood_defaults(),
})
-- Coconut Slice (Heals half heart when eaten)
minetest.register_craftitem("ethereal:coconut_slice", {
description = "Coconut Slice",
inventory_image = "moretrees_coconut_slice.png",
wield_image = "moretrees_coconut_slice.png",
on_use = minetest.item_eat(1),
})
-- Golden Apple (Found on Healing Tree, heals all 10 hearts)
minetest.register_node("ethereal:golden_apple", {
description = "Golden Apple",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"default_apple_gold.png"},
inventory_image = "default_apple_gold.png",
wield_image = "default_apple_gold.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.3, -0.2, 0.2, 0.2, 0.2}
},
groups = {
fleshy = 3, dig_immediate = 3,
leafdecay = 3,leafdecay_drop = 1
},
drop = "ethereal:golden_apple",
on_use = minetest.item_eat(20),
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer, itemstack)
if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:golden_apple", param2 = 1})
end
end,
})
-- Bamboo (thanks to Nelo-slay on DeviantArt for the free Bamboo base image)
minetest.register_node("ethereal:bamboo", {
description = "bamboo",
drawtype = "plantlike",
tiles = {"bamboo.png"},
inventory_image = "bamboo.png",
wield_image = "bamboo.png",
paramtype = "light",
sunlight_propagates = true,
walkable = true,
selection_box = {
type = "fixed",
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
},
groups = {choppy = 3, oddly_breakable_by_hand = 1, flammable = 2, tree = 1},
sounds = default.node_sound_leaves_defaults(),
after_dig_node = function(pos, node, metadata, digger)
default.dig_up(pos, node, digger)
end,
})
minetest.register_craft({
type = "fuel",
recipe = "ethereal:bamboo",
burntime = 1,
})
-- Bamboo Sprout
minetest.register_node("ethereal:bamboo_sprout", {
description = "Bamboo Sprout",
drawtype = "plantlike",
tiles = {"bamboo_sprout.png"},
inventory_image = "bamboo_sprout.png",
wield_image = "bamboo_sprout.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
groups = {
snappy = 3, attached_node = 1, flammable = 2,
dig_immediate = 3, ethereal_sapling = 1
},
sounds = default.node_sound_defaults(),
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
}, },
on_use = minetest.item_eat(-2),
}) })
-- Wooden Bowl (for Mushroom Soup) minetest.register_node("ethereal:illumishroom2", {
minetest.register_craftitem("ethereal:bowl", { description = "Green Illumishroom",
description = "Bowl",
inventory_image = "bowl.png",
})
minetest.register_craft({
output = "ethereal:bowl",
recipe = {
{"group:wood", "", "group:wood"},
{"", "group:wood", ""},
{"", "", ""},
}
})
-- Hearty Stew (Heals 5 hearts - thanks to ZonerDarkRevention for his DokuCraft DeviantArt bowl texture)
minetest.register_craftitem("ethereal:hearty_stew", {
description = "Hearty Stew",
inventory_image = "hearty_stew.png",
wield_image = "hearty_stew.png",
on_use = minetest.item_eat(10, "ethereal:bowl"),
})
minetest.register_alias("ethereal:hearty_stew_cooked", "ethereal:hearty_stew")
minetest.register_craft({
output = "ethereal:hearty_stew",
recipe = {
{"ethereal:wild_onion_plant","ethereal:mushroom_plant", "ethereal:fern_tubers"},
{"","ethereal:mushroom_plant", ""},
{"","ethereal:bowl", ""},
}
})
-- Bamboo Flooring
minetest.register_node("ethereal:bamboo_floor", {
description = ("Bamboo Floor"),
drawtype = 'nodebox',
tiles = { "bamboo_floor.png" },
wield_image = "bamboo_floor.png",
inventory_image = "bamboo_floor.png",
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
node_box = {
type = "wallmounted",
wall_top = {-0.5, 0.4375, -0.5, 0.5, 0.5, 0.5},
wall_bottom = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
wall_side = {-0.5, -0.5, -0.5, -0.4375, 0.5, 0.5},
},
selection_box = {type = "wallmounted"},
groups = {snappy = 3, choppy = 3 , flammable = 2},
sounds = default.node_sound_wood_defaults(),
})
-- Craft Bamboo into Bamboo Flooring
minetest.register_craft({
output = "ethereal:bamboo_floor 2",
recipe = {
{"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"},
{"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"},
{"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"},
}
})
-- Craft Bamboo into Paper
minetest.register_craft({
output = "default:paper 6",
recipe = {
{"ethereal:bamboo", "ethereal:bamboo"},
{"ethereal:bamboo", "ethereal:bamboo"},
{"ethereal:bamboo", "ethereal:bamboo"},
}
})
-- X pattern craft recipes (5x a in X pattern gives 5 b)
for _,items in pairs({
{"default:cobble", "default:gravel"},
{"default:gravel", "default:dirt"},
{"default:dirt", "default:sand"},
{"default:ice", "default:snow"},
{"ethereal:dry_dirt", "default:desert_sand"},
}) do
local a, b = unpack(items)
minetest.register_craft({
output = b.." 5",
recipe = {
{a, "", a},
{"", a, ""},
{a, "", a},
}
})
end
-- Paper (2x3 string = 4 paper)
minetest.register_craft({
output = "default:paper 4",
recipe = {
{"farming:string", "farming:string", ""},
{"farming:string", "farming:string", ""},
{"farming:string", "farming:string", ""},
}
})
-- Bucket of Cactus Pulp
minetest.register_craftitem("ethereal:bucket_cactus", {
description = "Bucket of Cactus Pulp",
inventory_image = "bucket_cactus.png",
wield_image = "bucket_cactus.png",
stack_max = 1,
on_use = minetest.item_eat(2, "bucket:bucket_empty"),
})
minetest.register_craft({
output = "ethereal:bucket_cactus",
recipe = {
{"bucket:bucket_empty","default:cactus"},
}
})
-- Palm Wax
minetest.register_craftitem("ethereal:palm_wax", {
description = "Palm Wax",
inventory_image = "palm_wax.png",
wield_image = "palm_wax.png",
})
minetest.register_craft({
type = "cooking",
cooktime = 10,
output = "ethereal:palm_wax",
recipe = "ethereal:palmleaves"
})
-- Candle from Wax and String/Cotton
minetest.register_node("ethereal:candle", {
description = "Candle",
drawtype = "plantlike", drawtype = "plantlike",
inventory_image = "candle_static.png", tiles = { "illumishroom2.png" },
wield_image = "candle_static.png", inventory_image = "illumishroom2.png",
tiles = { wield_image = "illumishroom2.png",
{
name = "candle.png",
animation={
type="vertical_frames",
aspect_w = 32,
aspect_h = 32,
length = 1.0
}
},
},
paramtype = "light", paramtype = "light",
light_source = 11, light_source = 5,
sunlight_propagates = true, sunlight_propagates = true,
walkable = false, walkable = false,
groups = {dig_immediate = 3, attached_node = 1}, groups = {dig_immediate = 3, attached_node = 1,flammable = 3},
sounds = default.node_sound_defaults(), sounds = default.node_sound_leaves_defaults(),
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 } fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
}, },
}) })
minetest.register_craft({ minetest.register_node("ethereal:illumishroom3", {
output = "ethereal:candle 4", description = "Cyan Illumishroom",
recipe = { drawtype = "plantlike",
{"","farming:cotton"}, tiles = { "illumishroom3.png" },
{"","ethereal:palm_wax"}, inventory_image = "illumishroom3.png",
{"","ethereal:palm_wax"}, wield_image = "illumishroom3.png",
} paramtype = "light",
light_source = 5,
sunlight_propagates = true,
walkable = false,
groups = {dig_immediate = 3, attached_node = 1,flammable = 3},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
},
}) })

View File

@ -11,8 +11,8 @@ minetest.register_decoration({
fill_ratio = 0.005, fill_ratio = 0.005,
biomes = {"desert", "sandstone"}, biomes = {"desert", "sandstone"},
decoration = { decoration = {
"bakedclay:cactus_echinocereus", "bakedclay:cactus_matucana", "xanadu:cactus_echinocereus", "xanadu:cactus_matucana",
"bakedclay:cactus_baseball", "bakedclay:cactus_golden" "xanadu:cactus_baseball", "xanadu:cactus_golden"
}, },
}) })
@ -24,8 +24,8 @@ minetest.register_decoration({
fill_ratio = 0.004, fill_ratio = 0.004,
biomes = {"desert", "sandstone"}, biomes = {"desert", "sandstone"},
decoration = { decoration = {
"bakedclay:desert_kangaroo", "bakedclay:desert_brittle", "xanadu:desert_kangaroo", "xanadu:desert_brittle",
"bakedclay:desert_ocotillo", "bakedclay:desert_whitesage" "xanadu:desert_ocotillo", "xanadu:desert_whitesage"
}, },
}) })
@ -39,8 +39,8 @@ minetest.register_decoration({
fill_ratio = 0.005, fill_ratio = 0.005,
biomes = {"prairie", "grassy", "grassytwo"}, biomes = {"prairie", "grassy", "grassytwo"},
decoration = { decoration = {
"bakedclay:grass_prairie", "bakedclay:grass_cord", "xanadu:grass_prairie", "xanadu:grass_cord",
"bakedclay:grass_wheatgrass", "bakedclay:desert_whitesage" "xanadu:grass_wheatgrass", "xanadu:desert_whitesage"
}, },
}) })
@ -55,8 +55,8 @@ minetest.register_decoration({
fill_ratio = 0.005, fill_ratio = 0.005,
biomes = {"prairie", "grassy", "grassytwo", "bamboo"}, biomes = {"prairie", "grassy", "grassytwo", "bamboo"},
decoration = { decoration = {
"bakedclay:flower_jacobsladder", "bakedclay:flower_thistle", "xanadu:flower_jacobsladder", "xanadu:flower_thistle",
"bakedclay:flower_wildcarrot" "xanadu:flower_wildcarrot"
}, },
}) })
@ -70,8 +70,8 @@ minetest.register_decoration({
fill_ratio = 0.005, fill_ratio = 0.005,
biomes = {"prairie", "grassy", "grassytwo", "grove"}, biomes = {"prairie", "grassy", "grassytwo", "grove"},
decoration = { decoration = {
"bakedclay:flower_delphinium", "bakedclay:flower_celosia", "xanadu:flower_delphinium", "xanadu:flower_celosia",
"bakedclay:flower_daisy", "bakedclay:flower_bluerose" "xanadu:flower_daisy", "xanadu:flower_bluerose"
}, },
}) })
@ -89,7 +89,7 @@ minetest.register_decoration({
"prairie", "grassy", "grassytwo", "grove", "junglee", "prairie", "grassy", "grassytwo", "grove", "junglee",
"grayness", "jumble" "grayness", "jumble"
}, },
decoration = {"bakedclay:shrub_kerria", "bakedclay:shrub_spicebush"}, decoration = {"xanadu:shrub_kerria", "xanadu:shrub_spicebush"},
}) })
--= Jungle Biome --= Jungle Biome
@ -101,9 +101,9 @@ minetest.register_decoration({
fill_ratio = 0.007, fill_ratio = 0.007,
biomes = {"junglee", "jumble"}, biomes = {"junglee", "jumble"},
decoration = { decoration = {
"bakedclay:rainforest_guzmania", "bakedclay:rainforest_devil", "xanadu:rainforest_guzmania", "xanadu:rainforest_devil",
"bakedclay:rainforest_lazarus", "bakedclay:rainforest_lollipop", "xanadu:rainforest_lazarus", "xanadu:rainforest_lollipop",
"bakedclay:mushroom_woolly" "xanadu:mushroom_woolly"
}, },
}) })
@ -119,9 +119,9 @@ minetest.register_decoration({
fill_ratio = 0.005, fill_ratio = 0.005,
biomes = {"snowy", "alpine", "grayness"}, biomes = {"snowy", "alpine", "grayness"},
decoration = { decoration = {
"bakedclay:mountain_edelweiss", "bakedclay:mountain_armeria", "xanadu:mountain_edelweiss", "xanadu:mountain_armeria",
"bakedclay:mountain_bellflower", "bakedclay:mountain_willowherb", "xanadu:mountain_bellflower", "xanadu:mountain_willowherb",
"bakedclay:mountain_bistort" "xanadu:mountain_bistort"
}, },
}) })
@ -135,8 +135,8 @@ minetest.register_decoration({
fill_ratio = 0.005, fill_ratio = 0.005,
biomes = {"mushroom"}, biomes = {"mushroom"},
decoration = { decoration = {
"bakedclay:mushroom_powderpuff", "bakedclay:mushroom_chanterelle", "xanadu:mushroom_powderpuff", "xanadu:mushroom_chanterelle",
"bakedclay:mushroom_parasol" "xanadu:mushroom_parasol"
}, },
}) })
@ -149,8 +149,8 @@ minetest.register_decoration({
fill_ratio = 0.015, fill_ratio = 0.015,
biomes = {"sandclay", "grassy_ocean", "grassy", "grassytwo", "jumble"}, biomes = {"sandclay", "grassy_ocean", "grassy", "grassytwo", "jumble"},
decoration = { decoration = {
"bakedclay:wetlands_cattails", "bakedclay:wetlands_pickerel", "xanadu:wetlands_cattails", "xanadu:wetlands_pickerel",
"bakedclay:wetlands_mannagrass", "bakedclay:wetlands_turtle" "xanadu:wetlands_mannagrass", "xanadu:wetlands_turtle"
}, },
spawn_by = "default:water_source", spawn_by = "default:water_source",
num_spawn_by = 1, num_spawn_by = 1,
@ -166,7 +166,7 @@ minetest.register_decoration({
"ethereal:dirt_with_snow", "ethereal:jungle_dirt", "ethereal:dirt_with_snow", "ethereal:jungle_dirt",
"ethereal:prairie_dirt", "ethereal:grove_dirt", "ethereal:prairie_dirt", "ethereal:grove_dirt",
"ethereal:dry_dirt", "ethereal:fiery_dirt", "default:sand", "ethereal:dry_dirt", "ethereal:fiery_dirt", "default:sand",
"default:desert_sand", "bakedclay:red", "ethereal:bamboo_dirt" "default:desert_sand", "xanadu:red", "ethereal:bamboo_dirt"
}, },
sidelen = 16, sidelen = 16,
fill_ratio = 0.004, fill_ratio = 0.004,
@ -175,16 +175,18 @@ minetest.register_decoration({
"junglee", "grassy", "grassytwo", "jumble", "snowy", "alpine", "junglee", "grassy", "grassytwo", "jumble", "snowy", "alpine",
"fiery", "mesa", "bamboo" "fiery", "mesa", "bamboo"
}, },
decoration = {"bakedclay:spooky_thornbush", "bakedclay:spooky_baneberry"}, decoration = {"xanadu:spooky_thornbush", "xanadu:spooky_baneberry"},
}) })
-- Extra recipe for hearty stew --= Poppy's growing in Clearing Biome in memory of RealBadAngel
minetest.register_craft({ minetest.register_decoration({
output = "ethereal:hearty_stew", deco_type = "simple",
recipe = { place_on = {
{"ethereal:wild_onion_plant","ethereal:mushroom_plant", "farming:beans"}, "ethereal:green_dirt",
{"","ethereal:mushroom_plant", ""}, },
{"","ethereal:bowl", ""}, sidelen = 16,
} fill_ratio = 0.004,
biomes = {"clearing"},
decoration = {"xanadu:poppy"},
}) })

View File

@ -1,3 +1,26 @@
-- Bamboo Sprout
minetest.register_node("ethereal:bamboo_sprout", {
description = "Bamboo Sprout",
drawtype = "plantlike",
tiles = {"bamboo_sprout.png"},
inventory_image = "bamboo_sprout.png",
wield_image = "bamboo_sprout.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
groups = {
snappy = 3, attached_node = 1, flammable = 2,
dig_immediate = 3, ethereal_sapling = 1
},
sounds = default.node_sound_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
},
on_use = minetest.item_eat(-2),
})
-- Register Saplings -- Register Saplings
ethereal.register_sapling = function(name, desc, texture) ethereal.register_sapling = function(name, desc, texture)
@ -5,9 +28,9 @@ ethereal.register_sapling = function(name, desc, texture)
description = desc .. " Tree Sapling", description = desc .. " Tree Sapling",
drawtype = "plantlike", drawtype = "plantlike",
visual_scale = 1.0, visual_scale = 1.0,
tiles = {texture .. "_sapling.png"}, tiles = {texture .. ".png"},
inventory_image = texture .. "_sapling.png", inventory_image = texture .. ".png",
wield_image = texture .. "_sapling.png", wield_image = texture .. ".png",
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
is_ground_content = false, is_ground_content = false,
@ -24,22 +47,18 @@ ethereal.register_sapling = function(name, desc, texture)
}) })
end end
ethereal.register_sapling("ethereal:willow", "Willow", "willow") ethereal.register_sapling("ethereal:willow", "Willow", "willow_sapling")
ethereal.register_sapling("ethereal:yellow_tree", "Healing", "yellow_tree") ethereal.register_sapling("ethereal:yellow_tree", "Healing", "yellow_tree_sapling")
ethereal.register_sapling("ethereal:tree", "Apple", "ethereal_tree") ethereal.register_sapling("ethereal:big_tree", "Big", "ethereal_big_tree_sapling")
ethereal.register_sapling("ethereal:jungle_tree","Jungle", "ethereal_jungle_tree") ethereal.register_sapling("ethereal:banana_tree", "Banana", "banana_tree_sapling")
ethereal.register_sapling("ethereal:pine_tree", "Pine", "ethereal_pine_tree") ethereal.register_sapling("ethereal:frost_tree", "Frost", "ethereal_frost_tree_sapling")
ethereal.register_sapling("ethereal:big_tree", "Big", "ethereal_big_tree") ethereal.register_sapling("ethereal:mushroom", "Mushroom", "ethereal_mushroom_sapling")
ethereal.register_sapling("ethereal:banana_tree", "Banana", "banana_tree") ethereal.register_sapling("ethereal:palm", "Palm", "moretrees_palm_sapling")
ethereal.register_sapling("ethereal:frost_tree", "Frost", "ethereal_frost_tree") ethereal.register_sapling("ethereal:redwood", "Redwood", "redwood_sapling")
ethereal.register_sapling("ethereal:mushroom", "Mushroom", "ethereal_mushroom") ethereal.register_sapling("ethereal:orange_tree", "Orange", "orange_tree_sapling")
ethereal.register_sapling("ethereal:palm", "Palm", "moretrees_palm") ethereal.register_sapling("ethereal:birch", "Birch", "moretrees_birch_sapling")
ethereal.register_sapling("ethereal:redwood", "Redwood", "redwood")
ethereal.register_sapling("ethereal:orange_tree", "Orange", "orange_tree")
ethereal.register_sapling("ethereal:acacia", "Acacia", "moretrees_acacia")
ethereal.register_sapling("ethereal:birch", "Birch", "moretrees_birch")
ethereal.add_tree = function (pos, ofx, ofz, schem) ethereal.add_tree = function (pos, ofx, ofy, ofz, schem)
-- check for schematic -- check for schematic
if not schem then if not schem then
print ("Schematic not found") print ("Schematic not found")
@ -48,13 +67,61 @@ ethereal.add_tree = function (pos, ofx, ofz, schem)
-- remove sapling and place schematic -- remove sapling and place schematic
minetest.swap_node(pos, {name = "air"}) minetest.swap_node(pos, {name = "air"})
minetest.place_schematic( minetest.place_schematic(
{x = pos.x - ofx, y = pos.y, z =pos.z - ofz}, {x = pos.x - ofx, y = pos.y - ofy, z = pos.z - ofz},
schem, "random", {}, false schem, 0, nil, false)
)
end end
local path = minetest.get_modpath("ethereal").."/schematics/" local path = minetest.get_modpath("ethereal").."/schematics/"
-- grow tree functions
function ethereal.grow_yellow_tree(pos)
ethereal.add_tree(pos, 4, 0, 4, path .. "yellowtree.mts")
end
function ethereal.grow_big_tree(pos)
ethereal.add_tree(pos, 4, 0, 4, path .. "bigtree.mts")
end
function ethereal.grow_banana_tree(pos)
ethereal.add_tree(pos, 3, 0, 3, ethereal.bananatree)
end
function ethereal.grow_frost_tree(pos)
ethereal.add_tree(pos, 4, 0, 4, path .. "frosttrees.mts")
end
function ethereal.grow_mushroom_tree(pos)
ethereal.add_tree(pos, 4, 0, 4, path .. "mushroomone.mts")
end
function ethereal.grow_palm_tree(pos)
ethereal.add_tree(pos, 4, 0, 4, path .. "palmtree.mts")
end
function ethereal.grow_willow_tree(pos)
ethereal.add_tree(pos, 5, 0, 5, path .. "willow.mts")
end
function ethereal.grow_redwood_tree(pos)
if math.random(1, 2) == 1 then
ethereal.add_tree(pos, 9, 3, 9, path .. "redwood.mts") -- shinji
else
ethereal.add_tree(pos, 8, 6, 8, path .. "redwood_tree.mts") -- iska
end
end
function ethereal.grow_orange_tree(pos)
ethereal.add_tree(pos, 1, 0, 1, ethereal.orangetree)
end
function ethereal.grow_bamboo_tree(pos)
ethereal.add_tree(pos, 1, 0, 1, ethereal.bambootree)
end
function ethereal.grow_birch_tree(pos)
ethereal.add_tree(pos, 2, 0, 2, ethereal.birchtree)
end
ethereal.grow_sapling = function (pos, node) ethereal.grow_sapling = function (pos, node)
local under = minetest.get_node({ local under = minetest.get_node({
@ -63,68 +130,52 @@ ethereal.grow_sapling = function (pos, node)
z = pos.z z = pos.z
}).name }).name
-- Check if Sapling is growing on correct substrate -- Check if Ethereal Sapling is growing on correct substrate
if node.name == "ethereal:yellow_tree_sapling" if node.name == "ethereal:yellow_tree_sapling"
and under == "default:dirt_with_snow" then and under == "default:dirt_with_snow" then
ethereal.add_tree(pos, 4, 4, path .. "yellowtree.mts") ethereal.grow_yellow_tree(pos)
elseif node.name == "ethereal:tree_sapling"
and under == "ethereal:green_dirt" then
ethereal.add_tree(pos, 1, 1, ethereal.appletree)
elseif node.name == "ethereal:jungle_tree_sapling"
and under == "ethereal:jungle_dirt" then
ethereal.add_tree(pos, 6, 6, path .. "jungletree.mts")
elseif node.name == "ethereal:pine_tree_sapling"
and under == "ethereal:cold_dirt" then
ethereal.add_tree(pos, 3, 3, path .. "pinetree.mts")
elseif node.name == "ethereal:big_tree_sapling" elseif node.name == "ethereal:big_tree_sapling"
and under == "ethereal:green_dirt" then and under == "ethereal:green_dirt" then
ethereal.add_tree(pos, 4, 4, path .. "bigtree.mts") ethereal.grow_big_tree(pos)
elseif node.name == "ethereal:banana_tree_sapling" elseif node.name == "ethereal:banana_tree_sapling"
and under == "ethereal:grove_dirt" then and under == "ethereal:grove_dirt" then
ethereal.add_tree(pos, 3, 3, ethereal.bananatree) ethereal.grow_banana_tree(pos)
elseif node.name == "ethereal:frost_tree_sapling" elseif node.name == "ethereal:frost_tree_sapling"
and under == "ethereal:crystal_dirt" then and under == "ethereal:crystal_dirt" then
ethereal.add_tree(pos, 4, 4, path .. "frosttrees.mts") ethereal.grow_frost_tree(pos)
elseif node.name == "ethereal:mushroom_sapling" elseif node.name == "ethereal:mushroom_sapling"
and under == "ethereal:mushroom_dirt" then and under == "ethereal:mushroom_dirt" then
ethereal.add_tree(pos, 4, 4, path .. "mushroomone.mts") ethereal.grow_mushroom_tree(pos)
elseif node.name == "ethereal:palm_sapling" elseif node.name == "ethereal:palm_sapling"
and under == "default:sand" then and under == "default:sand" then
ethereal.add_tree(pos, 4, 4, path .. "palmtree.mts") ethereal.grow_palm_tree(pos)
elseif node.name == "ethereal:willow_sapling" elseif node.name == "ethereal:willow_sapling"
and under == "ethereal:gray_dirt" then and under == "ethereal:gray_dirt" then
ethereal.add_tree(pos, 5, 5, path .. "willow.mts") ethereal.grow_willow_tree(pos)
elseif node.name == "ethereal:redwood_sapling" elseif node.name == "ethereal:redwood_sapling"
and under == "bakedclay:red" then and under == "bakedclay:red" then
ethereal.add_tree(pos, 9, 9, path .. "redwood.mts") ethereal.grow_redwood_tree(pos)
elseif node.name == "ethereal:orange_tree_sapling" elseif node.name == "ethereal:orange_tree_sapling"
and under == "ethereal:prairie_dirt" then and under == "ethereal:prairie_dirt" then
ethereal.add_tree(pos, 1, 1, ethereal.orangetree) ethereal.grow_orange_tree(pos)
elseif node.name == "ethereal:acacia_sapling"
and under == "default:dirt_with_dry_grass" then
ethereal.add_tree(pos, 5, 5, path .. "acaciatree.mts")
elseif node.name == "ethereal:bamboo_sprout" elseif node.name == "ethereal:bamboo_sprout"
and under == "ethereal:bamboo_dirt" then and under == "ethereal:bamboo_dirt" then
ethereal.add_tree(pos, 1, 1, ethereal.bambootree) ethereal.grow_bamboo_tree(pos)
elseif node.name == "ethereal:birch_sapling" elseif node.name == "ethereal:birch_sapling"
and under == "ethereal:green_dirt" then and under == "ethereal:green_dirt" then
ethereal.add_tree(pos, 2, 2, ethereal.birchtree) ethereal.grow_birch_tree(pos)
end end
end end
-- Grow saplings -- Grow saplings
@ -134,23 +185,13 @@ minetest.register_abm({
chance = 50, chance = 50,
catch_up = false, catch_up = false,
action = function(pos, node) action = function(pos, node)
ethereal.grow_sapling(pos, node)
end,
})
minetest.register_craftitem("ethereal:tree_tool", { local light_level = minetest.get_node_light(pos)
description = "Tree Tool",
inventory_image = "default_stick.png",
on_use = function(itemstack, user, pointed_thing)
if not pointed_thing if not light_level or light_level < 13 then
or pointed_thing.type ~= "node" then
return return
end end
local pos = pointed_thing.under ethereal.grow_sapling(pos, node)
local nod = minetest.get_node(pos)
ethereal.grow_sapling(pos, nod)
end, end,
}) })

View File

@ -1,38 +0,0 @@
-- Apple Tree (built column by column, bottom to top)
local i = "air"
local t = "default:tree"
local l = "default:leaves"
local a = "default:apple"
ethereal.appletree = {
size = {x=3, y=6, z=3},
data = {
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000},
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000},
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000},
{name=l, param1=223}, {name=l, param1=223}, {name=a, param1=050},
{name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255},
{name=l, param1=223}, {name=a, param1=050}, {name=l, param1=223},
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000},
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000},
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000},
{name=l, param1=223}, {name=t, param1=255}, {name=i, param1=223},
{name=l, param1=255}, {name=t, param1=255}, {name=l, param1=255},
{name=l, param1=223}, {name=l, param1=255}, {name=l, param1=223},
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000},
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000},
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000},
{name=a, param1=050}, {name=l, param1=223}, {name=l, param1=223},
{name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255},
{name=l, param1=223}, {name=l, param1=223}, {name=l, param1=223},
},
yslice_prob = {
{ypos=1, prob=127},
},
}

View File

@ -1,73 +1,77 @@
-- Bamboo Tree (built column by column, bottom to top) -- bamboo stalk with leaves
local i = "air" local ai = {name = "air", param1 = 000}
local t = "ethereal:bamboo" local bt = {name = "ethereal:bamboo", param1 = 255}
local l = "ethereal:bamboo_leaves" local lp = {name = "ethereal:bamboo_leaves", param1 = 255}
local lr = {name = "ethereal:bamboo_leaves", param1 = 100}
ethereal.bambootree = { ethereal.bambootree = {
size = {x=3, y=18, z=3},
size = {x = 3, y = 18, z = 3},
data = { data = {
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=l, param1=100}, {name=l, param1=255}, {name=l, param1=100}, lr, lp, lr,
{name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, ai, lp, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, bt, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, bt, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, bt, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, bt, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, bt, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, bt, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, bt, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, bt, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, bt, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, bt, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, bt, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, bt, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, bt, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, bt, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, bt, ai,
{name=l, param1=100}, {name=l, param1=255}, {name=l, param1=100}, lr, lp, lr,
{name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, ai, lp, ai,
{name=i, param1=000}, {name=l, param1=127}, {name=i, param1=000}, ai, lr, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=l, param1=100}, {name=l, param1=255}, {name=l, param1=100}, lr, lp, lr,
{name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, ai, lp, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
}, },
yslice_prob = { yslice_prob = {
{ypos=3, prob=127}, {ypos = 3, prob = 127},
}, },
} }

View File

@ -1,80 +1,85 @@
-- Banana Tree (built column by column, bottom to top) -- banana tree
local i = "air" local ai = {name = "air", param1 = 000}
local t = "ethereal:banana_trunk" local tr = {name = "ethereal:banana_trunk", param1 = 255}
local l = "ethereal:bananaleaves" local lp = {name = "ethereal:bananaleaves", param1 = 255}
local b = "ethereal:banana" local lr = {name = "ethereal:bananaleaves", param1 = 180}
local bp = {name = "ethereal:banana", param1 = 255}
local br = {name = "ethereal:banana", param1 = 070}
ethereal.bananatree = { ethereal.bananatree = {
size = {x=7, y=8, z=7},
size = {x = 7, y = 8, z = 7},
data = { data = {
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=l, param1=180}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, lr, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, lp, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=b, param1=070}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, br, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=b, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, bp, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, lp, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=b, param1=070}, {name=t, param1=255}, {name=b, param1=070}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, br, tr, br, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=b, param1=255}, {name=l, param1=255}, {name=b, param1=255}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, bp, lp, bp, ai, ai,
{name=i, param1=000}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=i, param1=000}, ai, lp, lp, lp, lp, lp, ai,
{name=l, param1=255}, {name=l, param1=180}, {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, {name=l, param1=180}, {name=l, param1=255}, lp, lr, ai, lp, ai, lr, lp,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, tr, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, tr, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, tr, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, tr, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=b, param1=070}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, br, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=b, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, bp, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, lp, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, lp, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=l, param1=180}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, lr, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, lp, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai, ai, ai,
}, },
yslice_prob = { yslice_prob = {
{ypos=1, prob=127}, {ypos = 1, prob = 127},
}, },
} }

Binary file not shown.

View File

@ -1,50 +1,60 @@
-- Birch Tree (built column by column, bottom to top) -- birch tree
local i = "air" local ai = {name = "air", param1 = 000}
local t = "ethereal:birch_trunk" local tr = {name = "ethereal:birch_trunk", param1 = 255}
local l = "ethereal:birch_leaves" local lp = {name = "ethereal:birch_leaves", param1 = 255}
local lr = {name = "ethereal:birch_leaves", param1 = 150}
ethereal.birchtree = {size = {x = 5, y = 7, z = 5}, data = { ethereal.birchtree = {
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, size = {x = 5, y = 7, z = 5},
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000},
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000},
{name=l, param1=150}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=150},
{name=l, param1=150}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=150},
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000},
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000},
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, data = {
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000},
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000},
{name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255},
{name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255},
{name=i, param1=000}, {name=l, param1=150}, {name=l, param1=255}, {name=l, param1=150}, {name=i, param1=000},
{name=i, param1=000}, {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, {name=i, param1=000},
{name=i, param1=000}, {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai,
{name=l, param1=255}, {name=l, param1=255}, {name=t, param1=255}, {name=l, param1=255}, {name=l, param1=255}, lr, lp, lp, lp, lr,
{name=l, param1=255}, {name=l, param1=255}, {name=t, param1=255}, {name=l, param1=255}, {name=l, param1=255}, lr, lp, lp, lp, lr,
{name=i, param1=000}, {name=l, param1=255}, {name=t, param1=255}, {name=l, param1=255}, {name=i, param1=000}, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=i, param1=000}, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai,
{name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, lp, lp, lp, lp, lp,
{name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, lp, lp, lp, lp, lp,
{name=i, param1=000}, {name=l, param1=150}, {name=l, param1=255}, {name=l, param1=150}, {name=i, param1=000}, ai, lr, lp, lr, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, lp, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, tr, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, tr, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, tr, ai, ai,
{name=l, param1=150}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=150}, lp, lp, tr, lp, lp,
{name=l, param1=150}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=150}, lp, lp, tr, lp, lp,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, lp, tr, lp, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, lp, lp, lp, ai,
}, yslice_prob = {{ypos = 1, prob = 127}}} ai, ai, ai, ai, ai,
ai, ai, ai, ai, ai,
ai, ai, ai, ai, ai,
lp, lp, lp, lp, lp,
lp, lp, lp, lp, lp,
ai, lr, lp, lr, ai,
ai, ai, lp, ai, ai,
ai, ai, ai, ai, ai,
ai, ai, ai, ai, ai,
ai, ai, ai, ai, ai,
lr, lp, lp, lp, lr,
lr, lp, lp, lp, lr,
ai, ai, ai, ai, ai,
ai, ai, ai, ai, ai,
},
yslice_prob = {
{ypos = 1, prob = 127}
},
}

View File

@ -1,35 +1,39 @@
-- Bush (built column by column, bottom to top) -- bush
local i = "air" local ai = {name = "air", param1 = 000}
local b = "ethereal:bush" local bp = {name = "ethereal:bush", param1 = 255}
local br = {name = "ethereal:bush", param1 = 100}
ethereal.bush = { ethereal.bush = {
size = {x=5, y=3, z=5},
size = {x = 5, y = 3, z = 5},
data = { data = {
{name=b, param1=100}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=100}, br, bp, bp, bp, br,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai,
{name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, bp, bp, bp, bp, bp,
{name=i, param1=000}, {name=b, param1=100}, {name=b, param1=255}, {name=b, param1=100}, {name=i, param1=000}, ai, br, bp, br, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai,
{name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, bp, bp, bp, bp, bp,
{name=i, param1=000}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=i, param1=000}, ai, bp, bp, bp, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=b, param1=100}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, br, ai, ai,
{name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, bp, bp, bp, bp, bp,
{name=i, param1=000}, {name=b, param1=100}, {name=b, param1=255}, {name=b, param1=100}, {name=i, param1=000}, ai, br, bp, br, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai,
{name=b, param1=100}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=100}, br, bp, bp, bp, br,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai, ai, ai,
}, },
yslice_prob = { yslice_prob = {
{ypos=1, prob=127}, {ypos = 1, prob = 127},
}, },
} }

Binary file not shown.

Binary file not shown.

View File

@ -1,38 +1,42 @@
-- Orange Tree (built column by column, bottom to top) -- orange tree
local i = "air" local ai = {name = "air", param1 = 000}
local t = "default:tree" local lp = {name = "ethereal:orange_leaves", param1 = 255}
local l = "ethereal:orange_leaves" local lr = {name = "ethereal:orange_leaves", param1 = 200}
local o = "ethereal:orange" local tr = {name = "default:tree", param1 = 255}
local of = {name = "ethereal:orange", param1 = 100}
ethereal.orangetree = { ethereal.orangetree = {
size = {x=3, y=6, z=3},
size = {x = 3, y = 6, z = 3},
data = { data = {
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=l, param1=223}, {name=l, param1=223}, {name=o, param1=100}, lr, lr, of,
{name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, lp, lp, lp,
{name=l, param1=223}, {name=o, param1=100}, {name=l, param1=223}, lr, of, lr,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, tr, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, tr, ai,
{name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, ai, tr, ai,
{name=l, param1=223}, {name=t, param1=255}, {name=l, param1=223}, lr, tr, lr,
{name=l, param1=255}, {name=t, param1=255}, {name=l, param1=255}, lp, tr, lp,
{name=l, param1=223}, {name=l, param1=255}, {name=l, param1=223}, lr, lp, lr,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, ai, ai, ai,
{name=o, param1=100}, {name=l, param1=223}, {name=l, param1=223}, of, lr, lr,
{name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, lp, lp, lp,
{name=l, param1=223}, {name=l, param1=223}, {name=l, param1=223}, lr, lr, lr,
}, },
yslice_prob = { yslice_prob = {
{ypos=1, prob=127}, {ypos = 1, prob = 127},
}, },
} }

Binary file not shown.

BIN
schematics/redwood_tree.mts Normal file

Binary file not shown.

Binary file not shown.

View File

@ -1,69 +1,17 @@
-- Waterlily (built column by column, bottom to top) -- waterlily
local a = "default:sand"
local b = "default:water_source"
local c = "flowers:waterlily"
ethereal.waterlily = { ethereal.waterlily = {
size = {x = 1, y = 3, z = 1}, size = {x = 1, y = 3, z = 1},
data = { data = {
{name=a, param1=255}, {name = "default:sand", param1 = 255},
{name=b, param1=255}, {name = "default:water_source", param1 = 255},
{name=c, param1=255}, {name = "flowers:waterlily", param1 = 255},
}, },
} }
if minetest.registered_nodes["flowers:waterlily"] then
minetest.override_item("flowers:waterlily", { minetest.override_item("flowers:waterlily", {
walkable = true, walkable = true,
}) })
else
minetest.register_node(":flowers:waterlily", {
description = "Waterlily",
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
tiles = {"flowers_waterlily.png"},
inventory_image = "flowers_waterlily.png",
wield_image = "flowers_waterlily.png",
liquids_pointable = true,
walkable = true,
buildable_to = true,
groups = {snappy = 3, flower = 1},
sounds = default.node_sound_leaves_defaults(),
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -0.46875, 0.5}
},
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}
},
after_place_node = function(pos, placer, itemstack, pointed_thing)
local find_water = minetest.find_nodes_in_area({x = pos.x - 1, y = pos.y, z = pos.z - 1},
{x = pos.x + 1, y = pos.y, z = pos.z + 1}, "default:water_source")
local find_river_water = minetest.find_nodes_in_area({x = pos.x - 1, y = pos.y, z = pos.z - 1},
{x = pos.x + 1, y = pos.y, z = pos.z + 1}, "default:river_water_source")
if #find_water ~= 0 then
minetest.set_node(pos, {name = "default:water_source"})
pos.y = pos.y + 1
minetest.set_node(pos, {name = "flowers:waterlily", param2 = math.random(0, 3)})
elseif #find_river_water ~= 0 then
minetest.set_node(pos, {name = "default:river_water_source"})
pos.y = pos.y + 1
minetest.set_node(pos, {name = "flowers:waterlily", param2 = math.random(0, 3)})
else
minetest.remove_node(pos)
return true
end
end
})
end

Binary file not shown.

Before

Width:  |  Height:  |  Size: 235 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File

@ -1,3 +1,4 @@
-- Seaweed -- Seaweed
minetest.register_node("ethereal:seaweed", { minetest.register_node("ethereal:seaweed", {
description = "Seaweed", description = "Seaweed",
@ -17,6 +18,9 @@ minetest.register_node("ethereal:seaweed", {
groups = {snappy = 3}, groups = {snappy = 3},
on_use = minetest.item_eat(1), on_use = minetest.item_eat(1),
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
after_dig_node = function(pos, node, metadata, digger)
default.dig_up(pos, node, digger)
end,
}) })
minetest.register_craft( { minetest.register_craft( {
@ -123,25 +127,12 @@ minetest.register_node("ethereal:sandy", {
tiles = {"default_sand.png"}, tiles = {"default_sand.png"},
is_ground_content = true, is_ground_content = true,
groups = { groups = {
crumbly = 3, falling_node = 1, sand = 1, soil = 1, crumbly = 3, falling_node = 1, sand = 1, not_in_creative_inventory = 1
not_in_creative_inventory = 1
}, },
drop = "default:sand", drop = "default:sand",
sounds = default.node_sound_sand_defaults(), sounds = default.node_sound_sand_defaults(),
}) })
-- Register Undersea Sand
minetest.register_ore({
ore_type = "scatter",
ore = "ethereal:sandy",
wherein = "default:sand",
clust_scarcity = 10*10*10,
clust_num_ores = 24,
clust_size = 4,
y_max = -12,
y_min = -100,
})
-- randomly generate coral or seaweed and have seaweed grow up to 14 high -- randomly generate coral or seaweed and have seaweed grow up to 14 high
minetest.register_abm({ minetest.register_abm({
nodenames = {"ethereal:sandy"}, nodenames = {"ethereal:sandy"},

View File

@ -1,25 +1,22 @@
-- Is More Blocks mod installed? -- Stairs Redo
if stairs and stairs.mod and stairs.mod == "redo" then
if not minetest.global_exists("stairsplus") then stairs.register_all("crystal_block", "ethereal:crystal_block",
-- If NOT then register standard stairs
stairs.register_stair_and_slab("crystal_block", "ethereal:crystal_block",
{cracky = 1, level = 2}, {cracky = 1, level = 2},
{"crystal_block.png"}, {"crystal_block.png"},
"Crystal Block Stair", "Crystal Block Stair",
"Crystal Block Slab", "Crystal Block Slab",
default.node_sound_glass_defaults()) default.node_sound_glass_defaults())
stairs.register_stair_and_slab("icebrick", "ethereal:icebrick", stairs.register_all("icebrick", "ethereal:icebrick",
{crumbly = 3, melts = 1}, {crumbly = 3, melts = 1},
{"brick_ice.png"}, {"brick_ice.png"},
"Ice Brick Stair", "Ice Brick Stair",
"Ice Brick Slab", "Ice Brick Slab",
default.node_sound_glass_defaults()) default.node_sound_glass_defaults())
stairs.register_stair_and_slab("snowbrick", "ethereal:snowbrick", stairs.register_all("snowbrick", "ethereal:snowbrick",
{crumbly = 3, melts = 1}, {crumbly = 3, melts = 1},
{"brick_snow.png"}, {"brick_snow.png"},
"Snow Brick Stair", "Snow Brick Stair",
@ -29,79 +26,85 @@ stairs.register_stair_and_slab("snowbrick", "ethereal:snowbrick",
dug = {name = "default_snow_footstep", gain = 0.75}, dug = {name = "default_snow_footstep", gain = 0.75},
})) }))
stairs.register_stair_and_slab("dry_dirt", "ethereal:dry_dirt", stairs.register_all("dry_dirt", "ethereal:dry_dirt",
{crumbly = 3}, {crumbly = 3},
{"ethereal_dry_dirt.png"}, {"ethereal_dry_dirt.png"},
"Dry Dirt Stair", "Dry Dirt Stair",
"Dry Dirt Slab", "Dry Dirt Slab",
default.node_sound_dirt_defaults()) default.node_sound_dirt_defaults())
stairs.register_stair_and_slab("mushroom_trunk", "ethereal:mushroom_trunk", stairs.register_all("mushroom_trunk", "ethereal:mushroom_trunk",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
{"mushroom_trunk.png"}, {"mushroom_trunk.png"},
"Mushroom Trunk Stair", "Mushroom Trunk Stair",
"Mushroom Trunk Slab", "Mushroom Trunk Slab",
default.node_sound_wood_defaults()) default.node_sound_wood_defaults())
stairs.register_stair_and_slab("mushroom", "ethereal:mushroom", stairs.register_all("mushroom", "ethereal:mushroom",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
{"mushroom_block.png"}, {"mushroom_block.png"},
"Mushroom Top Stair", "Mushroom Top Stair",
"Mushroom Top Slab", "Mushroom Top Slab",
default.node_sound_wood_defaults()) default.node_sound_wood_defaults())
stairs.register_stair_and_slab("frost_wood", "ethereal:frost_wood", stairs.register_all("frost_wood", "ethereal:frost_wood",
{choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1}, {choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
{"frost_wood.png"}, {"frost_wood.png"},
"Frost Wood Stair", "Frost Wood Stair",
"Frost Wood Slab", "Frost Wood Slab",
default.node_sound_wood_defaults()) default.node_sound_wood_defaults())
stairs.register_stair_and_slab("yellow_wood", "ethereal:yellow_wood", stairs.register_all("yellow_wood", "ethereal:yellow_wood",
{choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1}, {choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
{"yellow_wood.png"}, {"yellow_wood.png"},
"Healing Wood Stair", "Healing Wood Stair",
"Healing Wood Slab", "Healing Wood Slab",
default.node_sound_wood_defaults()) default.node_sound_wood_defaults())
stairs.register_stair_and_slab("palm_wood", "ethereal:palm_wood", stairs.register_all("palm_wood", "ethereal:palm_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"moretrees_palm_wood.png"}, {"moretrees_palm_wood.png"},
"Palm Wood Stair", "Palm Wood Stair",
"Palm Wood Slab", "Palm Wood Slab",
default.node_sound_wood_defaults()) default.node_sound_wood_defaults())
stairs.register_stair_and_slab("birch_wood", "ethereal:birch_wood", stairs.register_all("birch_wood", "ethereal:birch_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"moretrees_birch_wood.png"}, {"moretrees_birch_wood.png"},
"Birch Wood Stair", "Birch Wood Stair",
"Birch Wood Slab", "Birch Wood Slab",
default.node_sound_wood_defaults()) default.node_sound_wood_defaults())
stairs.register_stair_and_slab("banana_wood", "ethereal:banana_wood", stairs.register_all("banana_wood", "ethereal:banana_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"banana_wood.png"}, {"banana_wood.png"},
"Banana Wood Stair", "Banana Wood Stair",
"Banana Wood Slab", "Banana Wood Slab",
default.node_sound_wood_defaults()) default.node_sound_wood_defaults())
stairs.register_stair_and_slab("willow_wood", "ethereal:willow_wood", stairs.register_all("willow_wood", "ethereal:willow_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"willow_wood.png"}, {"willow_wood.png"},
"Willow Wood Stair", "Willow Wood Stair",
"Willow Wood Slab", "Willow Wood Slab",
default.node_sound_wood_defaults()) default.node_sound_wood_defaults())
stairs.register_stair_and_slab("redwood_wood", "ethereal:redwood_wood", stairs.register_all("redwood_wood", "ethereal:redwood_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"redwood_wood.png"}, {"redwood_wood.png"},
"Redwood stair", "Redwood stair",
"Redwood Slab", "Redwood Slab",
default.node_sound_wood_defaults()) default.node_sound_wood_defaults())
else stairs.register_all("bamboo_wood", "ethereal:bamboo_floor",
{snappy = 3, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"bamboo_floor.png"},
"Bamboo stair",
"Bamboo Slab",
default.node_sound_wood_defaults())
-- if SO then register stairs plus stairs -- Stairs Plus (in More Blocks)
elseif minetest.global_exists("stairsplus") then
stairsplus:register_all("ethereal", "crystal_block", "ethereal:crystal_block", { stairsplus:register_all("ethereal", "crystal_block", "ethereal:crystal_block", {
description = "Crystal block", description = "Crystal block",
@ -197,4 +200,115 @@ stairsplus:register_all("ethereal", "redwood_wood", "ethereal:redwood_wood", {
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
}) })
end -- END IF stairsplus:register_all("ethereal", "bamboo_wood", "ethereal:bamboo_floor", {
description = "Bamboo",
tiles = {"bamboo_floor.png"},
groups = {snappy = 3, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
-- Default Stairs
else
stairs.register_stair_and_slab("crystal_block", "ethereal:crystal_block",
{cracky = 1, level = 2},
{"crystal_block.png"},
"Crystal Block Stair",
"Crystal Block Slab",
default.node_sound_glass_defaults())
stairs.register_stair_and_slab("icebrick", "ethereal:icebrick",
{crumbly = 3, melts = 1},
{"brick_ice.png"},
"Ice Brick Stair",
"Ice Brick Slab",
default.node_sound_glass_defaults())
stairs.register_stair_and_slab("snowbrick", "ethereal:snowbrick",
{crumbly = 3, melts = 1},
{"brick_snow.png"},
"Snow Brick Stair",
"Snow Brick Slab",
default.node_sound_dirt_defaults({
footstep = {name = "default_snow_footstep", gain = 0.25},
dug = {name = "default_snow_footstep", gain = 0.75},
}))
stairs.register_stair_and_slab("dry_dirt", "ethereal:dry_dirt",
{crumbly = 3},
{"ethereal_dry_dirt.png"},
"Dry Dirt Stair",
"Dry Dirt Slab",
default.node_sound_dirt_defaults())
stairs.register_stair_and_slab("mushroom_trunk", "ethereal:mushroom_trunk",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
{"mushroom_trunk.png"},
"Mushroom Trunk Stair",
"Mushroom Trunk Slab",
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("mushroom", "ethereal:mushroom",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
{"mushroom_block.png"},
"Mushroom Top Stair",
"Mushroom Top Slab",
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("frost_wood", "ethereal:frost_wood",
{choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
{"frost_wood.png"},
"Frost Wood Stair",
"Frost Wood Slab",
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("yellow_wood", "ethereal:yellow_wood",
{choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
{"yellow_wood.png"},
"Healing Wood Stair",
"Healing Wood Slab",
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("palm_wood", "ethereal:palm_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"moretrees_palm_wood.png"},
"Palm Wood Stair",
"Palm Wood Slab",
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("birch_wood", "ethereal:birch_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"moretrees_birch_wood.png"},
"Birch Wood Stair",
"Birch Wood Slab",
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("banana_wood", "ethereal:banana_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"banana_wood.png"},
"Banana Wood Stair",
"Banana Wood Slab",
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("willow_wood", "ethereal:willow_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"willow_wood.png"},
"Willow Wood Stair",
"Willow Wood Slab",
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("redwood_wood", "ethereal:redwood_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"redwood_wood.png"},
"Redwood stair",
"Redwood Slab",
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("bamboo_wood", "ethereal:bamboo_floor",
{snappy = 3, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"bamboo_floor.png"},
"Bamboo stair",
"Bamboo Slab",
default.node_sound_wood_defaults())
end

View File

@ -1,16 +1,17 @@
-- Strawberry (can also be planted as seed) -- Strawberry (can also be planted as seed)
minetest.register_craftitem("ethereal:strawberry", { minetest.register_craftitem("ethereal:strawberry", {
description = "Strawberry", description = "Strawberry",
inventory_image = "strawberry.png", inventory_image = "strawberry.png",
wield_image = "strawberry.png", wield_image = "strawberry.png",
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing) on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "ethereal:strawberry_1") return farming.place_seed(itemstack, placer, pointed_thing, "ethereal:strawberry_1")
end, end,
on_use = minetest.item_eat(1),
}) })
-- Define Strawberry Bush growth stages -- Define Strawberry Bush growth stages
minetest.register_node("ethereal:strawberry_1", { local crop_def = {
drawtype = "plantlike", drawtype = "plantlike",
tiles = {"strawberry_1.png"}, tiles = {"strawberry_1.png"},
paramtype = "light", paramtype = "light",
@ -25,206 +26,98 @@ minetest.register_node("ethereal:strawberry_1", {
}, },
groups = { groups = {
snappy = 3, flammable =2, plant = 1, attached_node = 1, snappy = 3, flammable =2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, strawberry = 1, growing = 1 not_in_creative_inventory = 1, growing = 1
}, },
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
}) }
minetest.register_node("ethereal:strawberry_2", { --stage 1
drawtype = "plantlike", minetest.register_node("ethereal:strawberry_1", table.copy(crop_def))
tiles = {"strawberry_2.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
},
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, strawberry = 2, growing = 1
},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("ethereal:strawberry_3", { -- stage 2
drawtype = "plantlike", crop_def.tiles = {"strawberry_2.png"}
tiles = {"strawberry_3.png"}, minetest.register_node("ethereal:strawberry_2", table.copy(crop_def))
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
},
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, strawberry = 3, growing = 1
},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("ethereal:strawberry_4", { -- stage 3
drawtype = "plantlike", crop_def.tiles = {"strawberry_3.png"}
tiles = {"strawberry_4.png"}, minetest.register_node("ethereal:strawberry_3", table.copy(crop_def))
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
},
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, strawberry = 4, growing=1
},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("ethereal:strawberry_5", { -- stage 4
drawtype = "plantlike", crop_def.tiles = {"strawberry_4.png"}
tiles = {"strawberry_5.png"}, minetest.register_node("ethereal:strawberry_4", table.copy(crop_def))
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
},
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, strawberry = 5, growing = 1
},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("ethereal:strawberry_6", { -- stage 5
drawtype = "plantlike", crop_def.tiles = {"strawberry_5.png"}
tiles = {"strawberry_6.png"}, minetest.register_node("ethereal:strawberry_5", table.copy(crop_def))
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = {
items = {
{items = {"ethereal:strawberry 1"},rarity = 2},
{items = {"ethereal:strawberry 2"},rarity = 3},
}
},
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
},
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, strawberry = 6, growing = 1
},
sounds = default.node_sound_leaves_defaults(),
})
-- Mapgen places this stage on map so will use is_ground_content=true -- stage 6
minetest.register_node("ethereal:strawberry_7", { crop_def.tiles = {"strawberry_6.png"}
drawtype = "plantlike", crop_def.drop = {
tiles = {"strawberry_7.png"}, items = {
paramtype = "light", {items = {"ethereal:strawberry 1"},rarity = 2},
sunlight_propagates = true, {items = {"ethereal:strawberry 2"},rarity = 3},
waving = 1, }
walkable = false, }
buildable_to = true, minetest.register_node("ethereal:strawberry_6", table.copy(crop_def))
drop = {
items = {
{items = {"ethereal:strawberry 1"},rarity = 1},
{items = {"ethereal:strawberry 2"},rarity = 3},
}
},
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
},
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, strawberry = 7, growing = 1
},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("ethereal:strawberry_8", { -- stage 7
drawtype = "plantlike", crop_def.tiles = {"strawberry_7.png"}
tiles = {"strawberry_8.png"}, crop_def.drop = {
paramtype = "light", items = {
sunlight_propagates = true, {items = {"ethereal:strawberry 1"},rarity = 1},
waving = 1, {items = {"ethereal:strawberry 2"},rarity = 3},
walkable = false, }
buildable_to = true, }
drop = { minetest.register_node("ethereal:strawberry_7", table.copy(crop_def))
items = {
{items = {"ethereal:strawberry 2"},rarity = 1},
{items = {"ethereal:strawberry 3"},rarity = 3},
}
},
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
},
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, strawberry = 8
},
sounds = default.node_sound_leaves_defaults(),
})
-- Register Alias for backward compatibility with already generated Ethereal worlds -- stage 8
minetest.register_alias("ethereal:strawberry_bush", "ethereal:strawberry_7") crop_def.tiles = {"strawberry_8.png"}
minetest.register_alias("ethereal:seed_strawberry", "ethereal:strawberry") crop_def.groups.growing = 0
crop_def.drop = {
items = {
{items = {"ethereal:strawberry 2"},rarity = 1},
{items = {"ethereal:strawberry 3"},rarity = 3},
}
}
minetest.register_node("ethereal:strawberry_8", table.copy(crop_def))
-- Amb for growing Strawberry Bush -- growing routine if farming redo isn't present
if farming.mod ~= "redo" then if not farming or not farming.mod or farming.mod ~= "redo" then
minetest.register_abm({ minetest.register_abm({
nodenames = {"group:strawberry"}, nodenames = {
"ethereal:strawberry_1", "ethereal:strawberry_2", "ethereal:strawberry_3",
"ethereal:strawberry_4", "ethereal:strawberry_5", "ethereal:strawberry_6",
"ethereal:strawberry_7"
},
neighbors = {"farming:soil_wet"}, neighbors = {"farming:soil_wet"},
interval = 50, interval = 9,
chance = 3, chance = 20,
catch_up = false, catch_up = false,
action = function(pos, node) action = function(pos, node)
-- return if already full grown
if minetest.get_item_group(node.name, "strawberry") == 8 then -- are we on wet soil?
return
end
-- check if on wet soil
pos.y = pos.y - 1 pos.y = pos.y - 1
local n = minetest.get_node(pos) if minetest.get_item_group(minetest.get_node(pos).name, "soil") < 3 then
if minetest.get_item_group(n.name, "soil") < 3 then
return return
end end
pos.y = pos.y + 1 pos.y = pos.y + 1
-- check light -- do we have enough light?
if not minetest.get_node_light(pos) then local light = minetest.get_node_light(pos)
return
end if not light
if minetest.get_node_light(pos) < 13 then or light < 13 then
return return
end end
-- grow -- grow to next stage
local height = minetest.get_item_group(node.name, "strawberry") + 1 local num = node.name:split("_")[2]
minetest.swap_node(pos, {name = "ethereal:strawberry_"..height})
node.name = "ethereal:strawberry_" .. tonumber(num + 1)
minetest.swap_node(pos, node)
end end
}) })
end end -- END IF

BIN
textures/blank.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 B

BIN
textures/bone.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 B

BIN
textures/bonemeal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 682 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 731 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 364 B

View File

@ -1,3 +1,4 @@
-- Ice Brick -- Ice Brick
minetest.register_node("ethereal:icebrick", { minetest.register_node("ethereal:icebrick", {
description = "Ice Brick", description = "Ice Brick",
@ -39,18 +40,6 @@ minetest.register_craft({
} }
}) })
-- Over time Cobble placed in water changes to Mossy Cobble
minetest.register_abm({
nodenames = {"default:cobble"},
neighbors = {"group:water"},
interval = 17,
chance = 100,
catch_up = false,
action = function(pos, node)
minetest.swap_node(pos, {name = "default:mossycobble"})
end
})
-- If Crystal Spike, Crystal Dirt, Snow near Water, change Water to Ice -- If Crystal Spike, Crystal Dirt, Snow near Water, change Water to Ice
minetest.register_abm({ minetest.register_abm({
nodenames = { nodenames = {
@ -154,7 +143,7 @@ minetest.register_abm({
if num > 0 then if num > 0 then
minetest.swap_node(pos, {name = "default:water_flowing"}) minetest.swap_node(pos, {name = "air"})
minetest.add_item(pos, {name = node.name}) minetest.add_item(pos, {name = node.name})
end end

View File

@ -1,40 +1,5 @@
--= Define Trunks and Wood
-- Acacia Trunk (thanks to VanessaE for acacia textures) -- willow trunk
if minetest.registered_nodes["default:acacia_tree"] then
minetest.register_alias("ethereal:acacia_trunk", "default:acacia_tree")
minetest.register_alias("ethereal:acacia_wood", "default:acacia_wood")
print ("using acacia tree in default game")
else
minetest.register_node("ethereal:acacia_trunk", {
description = "Acacia Trunk",
tiles = {
"moretrees_acacia_trunk_top.png",
"moretrees_acacia_trunk_top.png",
"moretrees_acacia_trunk.png"
},
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
paramtype2 = "facedir",
on_place = minetest.rotate_node,
})
-- Acacia Wood
minetest.register_node("ethereal:acacia_wood", {
description = "Acacia Wood",
tiles = {"moretrees_acacia_wood.png"},
is_ground_content = false,
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_craft({
output = "ethereal:acacia_wood 4",
recipe = {{"ethereal:acacia_trunk"}}
})
end
-- Willow Trunk
minetest.register_node("ethereal:willow_trunk", { minetest.register_node("ethereal:willow_trunk", {
description = "Willow Trunk", description = "Willow Trunk",
tiles = { tiles = {
@ -48,7 +13,7 @@ minetest.register_node("ethereal:willow_trunk", {
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
}) })
-- Willow Wood -- willow wood
minetest.register_node("ethereal:willow_wood", { minetest.register_node("ethereal:willow_wood", {
description = "Willow Wood", description = "Willow Wood",
tiles = {"willow_wood.png"}, tiles = {"willow_wood.png"},
@ -62,7 +27,7 @@ minetest.register_craft({
recipe = {{"ethereal:willow_trunk"}} recipe = {{"ethereal:willow_trunk"}}
}) })
-- Redwood Trunk -- redwood trunk
minetest.register_node("ethereal:redwood_trunk", { minetest.register_node("ethereal:redwood_trunk", {
description = "Redwood Trunk", description = "Redwood Trunk",
tiles = { tiles = {
@ -76,7 +41,7 @@ minetest.register_node("ethereal:redwood_trunk", {
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
}) })
-- Redwood Wood -- redwood wood
minetest.register_node("ethereal:redwood_wood", { minetest.register_node("ethereal:redwood_wood", {
description = "Redwood Wood", description = "Redwood Wood",
tiles = {"redwood_wood.png"}, tiles = {"redwood_wood.png"},
@ -90,7 +55,7 @@ minetest.register_craft({
recipe = {{"ethereal:redwood_trunk"}}, recipe = {{"ethereal:redwood_trunk"}},
}) })
-- Frost Trunk -- frost trunk
minetest.register_node("ethereal:frost_tree", { minetest.register_node("ethereal:frost_tree", {
description = "Frost Tree", description = "Frost Tree",
tiles = { tiles = {
@ -104,7 +69,7 @@ minetest.register_node("ethereal:frost_tree", {
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
}) })
-- Frost Wood -- frost wood
minetest.register_node("ethereal:frost_wood", { minetest.register_node("ethereal:frost_wood", {
description = "Frost Wood", description = "Frost Wood",
tiles = {"frost_wood.png"}, tiles = {"frost_wood.png"},
@ -118,7 +83,7 @@ minetest.register_craft({
recipe = {{"ethereal:frost_tree"}} recipe = {{"ethereal:frost_tree"}}
}) })
-- Healing Trunk -- healing trunk
minetest.register_node("ethereal:yellow_trunk", { minetest.register_node("ethereal:yellow_trunk", {
description = "Healing Tree Trunk", description = "Healing Tree Trunk",
tiles = { tiles = {
@ -132,7 +97,7 @@ minetest.register_node("ethereal:yellow_trunk", {
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
}) })
-- Healing Wood -- healing wood
minetest.register_node("ethereal:yellow_wood", { minetest.register_node("ethereal:yellow_wood", {
description = "Healing Tree Wood", description = "Healing Tree Wood",
tiles = {"yellow_wood.png"}, tiles = {"yellow_wood.png"},
@ -146,7 +111,7 @@ minetest.register_craft({
recipe = {{"ethereal:yellow_trunk"}} recipe = {{"ethereal:yellow_trunk"}}
}) })
-- Palm Trunk (thanks to VanessaE for palm textures) -- palm trunk (thanks to VanessaE for palm textures)
minetest.register_node("ethereal:palm_trunk", { minetest.register_node("ethereal:palm_trunk", {
description = "Palm Trunk", description = "Palm Trunk",
tiles = { tiles = {
@ -160,7 +125,7 @@ minetest.register_node("ethereal:palm_trunk", {
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
}) })
-- Palm Wood -- palm wood
minetest.register_node("ethereal:palm_wood", { minetest.register_node("ethereal:palm_wood", {
description = "Palm Wood", description = "Palm Wood",
tiles = {"moretrees_palm_wood.png"}, tiles = {"moretrees_palm_wood.png"},
@ -174,7 +139,7 @@ minetest.register_craft({
recipe = {{"ethereal:palm_trunk"}} recipe = {{"ethereal:palm_trunk"}}
}) })
-- Banana Tree Trunk -- banana trunk
minetest.register_node("ethereal:banana_trunk", { minetest.register_node("ethereal:banana_trunk", {
description = "Banana Trunk", description = "Banana Trunk",
tiles = { tiles = {
@ -188,7 +153,7 @@ minetest.register_node("ethereal:banana_trunk", {
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
}) })
-- Banana Tree Wood -- banana wood
minetest.register_node("ethereal:banana_wood", { minetest.register_node("ethereal:banana_wood", {
description = "Banana Wood", description = "Banana Wood",
tiles = {"banana_wood.png"}, tiles = {"banana_wood.png"},
@ -202,7 +167,7 @@ minetest.register_craft({
recipe = {{"ethereal:banana_trunk"}} recipe = {{"ethereal:banana_trunk"}}
}) })
-- Scorched Trunk -- scorched trunk
minetest.register_node("ethereal:scorched_tree", { minetest.register_node("ethereal:scorched_tree", {
description = "Scorched Tree", description = "Scorched Tree",
tiles = { tiles = {
@ -225,7 +190,7 @@ minetest.register_craft({
} }
}) })
-- Mushroom Trunk -- mushroom trunk
minetest.register_node("ethereal:mushroom_trunk", { minetest.register_node("ethereal:mushroom_trunk", {
description = "Mushroom", description = "Mushroom",
tiles = { tiles = {
@ -239,7 +204,7 @@ minetest.register_node("ethereal:mushroom_trunk", {
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
}) })
-- Birch Trunk (thanks to VanessaE for birch textures) -- birch trunk (thanks to VanessaE for birch textures)
minetest.register_node("ethereal:birch_trunk", { minetest.register_node("ethereal:birch_trunk", {
description = "Birch Trunk", description = "Birch Trunk",
tiles = { tiles = {
@ -253,7 +218,7 @@ minetest.register_node("ethereal:birch_trunk", {
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
}) })
-- Birch Wood -- birch wood
minetest.register_node("ethereal:birch_wood", { minetest.register_node("ethereal:birch_wood", {
description = "Birch Wood", description = "Birch Wood",
tiles = {"moretrees_birch_wood.png"}, tiles = {"moretrees_birch_wood.png"},
@ -266,3 +231,30 @@ minetest.register_craft({
output = "ethereal:birch_wood 4", output = "ethereal:birch_wood 4",
recipe = {{"ethereal:birch_trunk"}} recipe = {{"ethereal:birch_trunk"}}
}) })
-- Bamboo (thanks to Nelo-slay on DeviantArt for the free Bamboo base image)
minetest.register_node("ethereal:bamboo", {
description = "bamboo",
drawtype = "plantlike",
tiles = {"bamboo.png"},
inventory_image = "bamboo.png",
wield_image = "bamboo.png",
paramtype = "light",
sunlight_propagates = true,
walkable = true,
selection_box = {
type = "fixed",
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
},
groups = {choppy = 3, oddly_breakable_by_hand = 1, flammable = 2, tree = 1},
sounds = default.node_sound_leaves_defaults(),
after_dig_node = function(pos, node, metadata, digger)
default.dig_up(pos, node, digger)
end,
})
minetest.register_craft({
type = "fuel",
recipe = "ethereal:bamboo",
burntime = 1,
})