tidy code, add recipe to cut coconut if farming redo found

This commit is contained in:
tenplus1 2022-09-30 17:26:44 +01:00
parent 3ddde145a7
commit 9fc06da19d
45 changed files with 1416 additions and 1334 deletions

View File

@ -29,4 +29,5 @@ You may also use a table that not only adds an item but the biome it can be foun
ethereal.add_item("", "", {"ethereal:crystal_spike", "frost"}) ethereal.add_item("", "", {"ethereal:crystal_spike", "frost"})
Please note that only Ethereal biome names can be used for specific finds. Please note that only Ethereal biome names can be used for specific finds, unless mod
specifically adds ethereal as an optional dependency.

View File

@ -101,6 +101,7 @@ add_biome("mesa_ocean", -192, 1, 25, 28, ethereal.mesa,
tmp = "default:dirt_with_coniferous_litter" tmp = "default:dirt_with_coniferous_litter"
if not minetest.registered_nodes[tmp] then if not minetest.registered_nodes[tmp] then
tmp = "ethereal:cold_dirt" tmp = "ethereal:cold_dirt"
end end
@ -135,6 +136,7 @@ add_biome("caves", 4, 41, 15, 25, ethereal.caves,
tmp = "default:silver_sand" tmp = "default:silver_sand"
if not minetest.registered_nodes[tmp] then if not minetest.registered_nodes[tmp] then
tmp = "default:sand" tmp = "default:sand"
end end
@ -166,8 +168,8 @@ add_biome("jumble", 1, 71, 25, 50, ethereal.jumble,
add_biome("jumble_ocean", -192, 1, 25, 50, ethereal.jumble, add_biome("jumble_ocean", -192, 1, 25, 50, ethereal.jumble,
nil, "default:sand", 1, "default:sand", 2) nil, "default:sand", 1, "default:sand", 2)
tmp = "default:dirt_with_rainforest_litter" tmp = "default:dirt_with_rainforest_litter"
if not minetest.registered_nodes[tmp] then if not minetest.registered_nodes[tmp] then
tmp = "ethereal:jungle_dirt" tmp = "ethereal:jungle_dirt"
end end
@ -216,9 +218,9 @@ add_biome("plains", 3, 25, 65, 25, ethereal.plains,
add_biome("plains_ocean", -192, 2, 55, 25, ethereal.plains, add_biome("plains_ocean", -192, 2, 55, 25, ethereal.plains,
nil, "default:sand", 1, "default:sand", 2) nil, "default:sand", 1, "default:sand", 2)
tmp = "default:dry_dirt_with_dry_grass" tmp = "default:dry_dirt_with_dry_grass"
tmp2 = "default:dry_dirt" tmp2 = "default:dry_dirt"
if not minetest.registered_nodes[tmp] then if not minetest.registered_nodes[tmp] then
tmp = "default:dirt_with_dry_grass" tmp = "default:dirt_with_dry_grass"
tmp2 = "default:dirt" tmp2 = "default:dirt"
@ -230,7 +232,6 @@ add_biome("savanna", 3, 50, 55, 25, ethereal.savanna,
add_biome("savanna_ocean", -192, 1, 55, 25, ethereal.savanna, add_biome("savanna_ocean", -192, 1, 55, 25, ethereal.savanna,
nil, "default:sand", 1, "default:sand", 2) nil, "default:sand", 1, "default:sand", 2)
add_biome("fiery", 5, 20, 75, 10, ethereal.fiery, add_biome("fiery", 5, 20, 75, 10, ethereal.fiery,
nil, "ethereal:fiery_dirt", 1, "default:dirt", 3) nil, "ethereal:fiery_dirt", 1, "default:dirt", 3)
@ -264,12 +265,12 @@ if ethereal.glacier == 1 then
node_river_water = "default:ice", node_river_water = "default:ice",
node_riverbed = "default:gravel", node_riverbed = "default:gravel",
depth_riverbed = 2, depth_riverbed = 2,
node_dungeon = "ethereal:icebrick",--"default:ice", node_dungeon = "ethereal:icebrick",
node_dungeon_stair = "stairs:stair_ice", node_dungeon_stair = "stairs:stair_ice",
y_min = -8, y_min = -8,
y_max = 31000, y_max = 31000,
heat_point = 0, heat_point = 0,
humidity_point = 50, humidity_point = 50
}) })
minetest.register_biome({ minetest.register_biome({
@ -282,10 +283,11 @@ if ethereal.glacier == 1 then
y_min = -112, y_min = -112,
y_max = -9, y_max = -9,
heat_point = 0, heat_point = 0,
humidity_point = 50, humidity_point = 50
}) })
end end
if ethereal.tundra == 1 and minetest.registered_nodes["default:permafrost"] then if ethereal.tundra == 1 and minetest.registered_nodes["default:permafrost"] then
minetest.register_biome({ minetest.register_biome({
@ -296,7 +298,7 @@ if ethereal.tundra == 1 and minetest.registered_nodes["default:permafrost"] then
y_max = 180, y_max = 180,
y_min = 47, y_min = 47,
heat_point = 0, heat_point = 0,
humidity_point = 40, humidity_point = 40
}) })
minetest.register_biome({ minetest.register_biome({
@ -311,7 +313,7 @@ if ethereal.tundra == 1 and minetest.registered_nodes["default:permafrost"] then
y_max = 46, y_max = 46,
y_min = 2, y_min = 2,
heat_point = 0, heat_point = 0,
humidity_point = 40, humidity_point = 40
}) })
minetest.register_biome({ minetest.register_biome({
@ -326,7 +328,7 @@ if ethereal.tundra == 1 and minetest.registered_nodes["default:permafrost"] then
y_max = 1, y_max = 1,
y_min = -3, y_min = -3,
heat_point = 0, heat_point = 0,
humidity_point = 40, humidity_point = 40
}) })
minetest.register_biome({ minetest.register_biome({
@ -341,6 +343,6 @@ if ethereal.tundra == 1 and minetest.registered_nodes["default:permafrost"] then
y_max = -4, y_max = -4,
y_min = -112, y_min = -112,
heat_point = 0, heat_point = 0,
humidity_point = 40, humidity_point = 40
}) })
end end

View File

@ -1,6 +1,7 @@
local S = ethereal.intllib local S = ethereal.intllib
-- Crystal Spike (Hurts if you touch it) -- Crystal Spike (Hurts if you touch it)
-- thanks to ZonerDarkRevention for his DokuCraft DeviantArt crystal texture -- thanks to ZonerDarkRevention for his DokuCraft DeviantArt crystal texture
minetest.register_node("ethereal:crystal_spike", { minetest.register_node("ethereal:crystal_spike", {
@ -17,15 +18,14 @@ minetest.register_node("ethereal:crystal_spike", {
groups = {cracky = 1, falling_node = 1, puts_out_fire = 1, cools_lava = 1}, groups = {cracky = 1, falling_node = 1, puts_out_fire = 1, cools_lava = 1},
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
selection_box = { selection_box = {
type = "fixed", type = "fixed", fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 0, 5 / 16}
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 0, 5 / 16},
}, },
node_box = { node_box = {
type = "fixed", type = "fixed", fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 0, 5 / 16}
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 0, 5 / 16},
} }
}) })
-- Crystal Ingot -- Crystal Ingot
minetest.register_craftitem("ethereal:crystal_ingot", { minetest.register_craftitem("ethereal:crystal_ingot", {
description = S("Crystal Ingot"), description = S("Crystal Ingot"),
@ -97,6 +97,7 @@ minetest.register_craft({
replacements = {{"bucket:bucket_water", "bucket:bucket_empty"}} replacements = {{"bucket:bucket_water", "bucket:bucket_empty"}}
}) })
-- Crystal Block -- Crystal Block
minetest.register_node("ethereal:crystal_block", { minetest.register_node("ethereal:crystal_block", {
description = S("Crystal Block"), description = S("Crystal Block"),
@ -121,6 +122,7 @@ minetest.register_craft({
recipe = {{"ethereal:crystal_block"}} recipe = {{"ethereal:crystal_block"}}
}) })
-- Crystal Sword (Powerful wee beastie) -- Crystal Sword (Powerful wee beastie)
minetest.register_tool("ethereal:sword_crystal", { minetest.register_tool("ethereal:sword_crystal", {
description = S("Crystal Sword"), description = S("Crystal Sword"),
@ -134,9 +136,9 @@ minetest.register_tool("ethereal:sword_crystal", {
times = {[1] = 1.70, [2] = 0.70, [3] = 0.25}, times = {[1] = 1.70, [2] = 0.70, [3] = 0.25},
uses = 50, uses = 50,
maxlevel = 3 maxlevel = 3
}, }
}, },
damage_groups = {fleshy = 10}, damage_groups = {fleshy = 10}
}, },
groups = {sword = 1}, groups = {sword = 1},
sound = {breaks = "default_tool_breaks"} sound = {breaks = "default_tool_breaks"}
@ -151,6 +153,7 @@ minetest.register_craft({
} }
}) })
-- Crystal Axe -- Crystal Axe
minetest.register_tool("ethereal:axe_crystal", { minetest.register_tool("ethereal:axe_crystal", {
description = S("Crystal Axe"), description = S("Crystal Axe"),
@ -190,6 +193,7 @@ minetest.register_craft({
} }
}) })
-- Crystal Pick (This will last a while) -- Crystal Pick (This will last a while)
minetest.register_tool("ethereal:pick_crystal", { minetest.register_tool("ethereal:pick_crystal", {
description = S("Crystal Pickaxe"), description = S("Crystal Pickaxe"),
@ -220,6 +224,8 @@ minetest.register_craft({
} }
}) })
-- dig override for crystal shovel's soft touch ability
local old_handle_node_drops = minetest.handle_node_drops local old_handle_node_drops = minetest.handle_node_drops
function minetest.handle_node_drops(pos, drops, digger) function minetest.handle_node_drops(pos, drops, digger)
@ -269,6 +275,7 @@ minetest.register_craft({
} }
}) })
-- Crystal Gilly Staff (replenishes air supply when used) -- Crystal Gilly Staff (replenishes air supply when used)
minetest.register_tool("ethereal:crystal_gilly_staff", { minetest.register_tool("ethereal:crystal_gilly_staff", {
description = S("Crystal Gilly Staff"), description = S("Crystal Gilly Staff"),
@ -276,6 +283,7 @@ minetest.register_tool("ethereal:crystal_gilly_staff", {
wield_image = "ethereal_crystal_gilly_staff.png", wield_image = "ethereal_crystal_gilly_staff.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
if user:get_breath() < 10 then if user:get_breath() < 10 then
user:set_breath(10) user:set_breath(10)
end end
@ -292,6 +300,7 @@ minetest.register_craft({
}, },
}) })
-- Add [toolranks] mod support if found -- Add [toolranks] mod support if found
if minetest.get_modpath("toolranks") then if minetest.get_modpath("toolranks") then

View File

@ -657,36 +657,19 @@ if minetest.get_modpath("butterflies") then
num_spawn_by = 1 num_spawn_by = 1
}) })
-- restart butterfly functions when generated -- restart butterfly timers
minetest.register_lbm({
name = ":butterflies:butterfly_timer",
nodenames = {
"butterflies:butterfly_white", "butterflies:butterfly_red",
"butterflies:butterfly_violet"
},
run_at_every_load = false,
-- get decoration ID action = function(pos)
local butterflies = minetest.get_decoration_id("butterflies:butterfly") minetest.get_node_timer(pos):start(5)
minetest.set_gen_notify({decoration = true}, {butterflies})
-- start nodetimers
minetest.register_on_generated(function(minp, maxp, blockseed)
local gennotify = minetest.get_mapgen_object("gennotify")
local poslist = {}
for _, pos in ipairs(gennotify["decoration#" .. butterflies] or {}) do
local deco_pos = {x = pos.x, y = pos.y + 3, z = pos.z}
table.insert(poslist, deco_pos)
end end
})
if #poslist ~= 0 then
for i = 1, #poslist do
local pos = poslist[i]
minetest.get_node_timer(pos):start(1)
end
end
end)
end end
@ -712,36 +695,16 @@ if minetest.get_modpath("fireflies") then
decoration = "fireflies:hidden_firefly" decoration = "fireflies:hidden_firefly"
}) })
-- restart firefly functions when generated -- restart firefly timers
minetest.register_lbm({
name = ":fireflies:firefly_timer",
nodenames = {"fireflies:firefly", "fireflies:hidden_firefly"},
run_at_every_load = false,
-- get decoration IDs action = function(pos)
local firefly_low = minetest.get_decoration_id("fireflies:firefly_low") minetest.get_node_timer(pos):start(5)
minetest.set_gen_notify({decoration = true}, {firefly_low, firefly_high})
-- start nodetimers
minetest.register_on_generated(function(minp, maxp, blockseed)
local gennotify = minetest.get_mapgen_object("gennotify")
local poslist = {}
for _, pos in ipairs(gennotify["decoration#" .. firefly_low] or {}) do
local firefly_low_pos = {x = pos.x, y = pos.y + 3, z = pos.z}
table.insert(poslist, firefly_low_pos)
end end
})
if #poslist ~= 0 then
for i = 1, #poslist do
local pos = poslist[i]
minetest.get_node_timer(pos):start(1)
end
end
end)
end end

View File

@ -1,11 +1,13 @@
local S = ethereal.intllib local S = ethereal.intllib
-- 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})
minetest.register_alias("ethereal:green_dirt", "default:dirt_with_grass") minetest.register_alias("ethereal:green_dirt", "default:dirt_with_grass")
-- dry dirt -- dry dirt
minetest.register_node("ethereal:dry_dirt", { minetest.register_node("ethereal:dry_dirt", {
description = S("Dried Dirt"), description = S("Dried Dirt"),
@ -22,6 +24,8 @@ minetest.register_craft({
cooktime = 3, cooktime = 3,
}) })
-- register ethereal dirt types
local dirts = { local dirts = {
"Bamboo", "Jungle", "Grove", "Prairie", "Cold", "Bamboo", "Jungle", "Grove", "Prairie", "Cold",
"Crystal", "Mushroom", "Fiery", "Gray" "Crystal", "Mushroom", "Fiery", "Gray"
@ -32,28 +36,27 @@ for n = 1, #dirts do
local desc = dirts[n] local desc = dirts[n]
local name = desc:lower() local name = desc:lower()
minetest.register_node("ethereal:"..name.."_dirt", { minetest.register_node("ethereal:" .. name .. "_dirt", {
description = S(desc.." Dirt"), description = S(desc .. " Dirt"),
tiles = { tiles = {
"ethereal_grass_"..name.."_top.png", "ethereal_grass_" .. name .. "_top.png",
"default_dirt.png", "default_dirt.png",
{ {
name = "default_dirt.png^ethereal_grass_" name = "default_dirt.png^ethereal_grass_" .. name .. "_side.png",
.. name .."_side.png",
tileable_vertical = false tileable_vertical = false
} }
}, },
is_ground_content = ethereal.cavedirt, is_ground_content = ethereal.cavedirt,
groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1},
soil = { soil = {
base = "ethereal:"..name.."_dirt", base = "ethereal:" .. name .. "_dirt",
dry = "farming:soil", dry = "farming:soil",
wet = "farming:soil_wet" wet = "farming:soil_wet"
}, },
drop = "default:dirt", drop = "default:dirt",
sounds = default.node_sound_dirt_defaults({ sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25}, footstep = {name = "default_grass_footstep", gain = 0.25}
}), })
}) })
end end
@ -150,6 +153,7 @@ local flower_spread = function(pos, node)
end end
end end
-- grow papyrus up to 4 high and bamboo up to 8 high -- grow papyrus up to 4 high and bamboo up to 8 high
local grow_papyrus = function(pos, node) local grow_papyrus = function(pos, node)
@ -197,6 +201,7 @@ local grow_papyrus = function(pos, node)
end end
-- loop through active abm's -- loop through active abm's
for _, ab in pairs(minetest.registered_abms) do for _, ab in pairs(minetest.registered_abms) do
@ -232,6 +237,7 @@ for _, ab in pairs(minetest.registered_abms) do
end end
end end
-- If Baked Clay mod not active, make Red, Orange and Grey nodes -- If Baked Clay mod not active, make Red, Orange and Grey nodes
if not minetest.get_modpath("bakedclay") then if not minetest.get_modpath("bakedclay") then
@ -260,6 +266,7 @@ if not minetest.get_modpath("bakedclay") then
}) })
end end
-- Quicksand (old style, sinking inside shows black instead of yellow effect, -- Quicksand (old style, sinking inside shows black instead of yellow effect,
-- works ok with noclip enabled though) -- works ok with noclip enabled though)
minetest.register_node("ethereal:quicksand", { minetest.register_node("ethereal:quicksand", {

166
extra.lua
View File

@ -1,6 +1,7 @@
local S = ethereal.intllib local S = ethereal.intllib
-- Etherium Dust -- Etherium Dust
minetest.register_craftitem("ethereal:etherium_dust", { minetest.register_craftitem("ethereal:etherium_dust", {
description = S("Etherium Dust"), description = S("Etherium Dust"),
@ -25,6 +26,7 @@ minetest.register_node("ethereal:stone_with_etherium_ore", {
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
-- Bamboo Flooring -- Bamboo Flooring
minetest.register_node("ethereal:bamboo_floor", { minetest.register_node("ethereal:bamboo_floor", {
description = S("Bamboo Floor"), description = S("Bamboo Floor"),
@ -46,7 +48,6 @@ minetest.register_node("ethereal:bamboo_floor", {
sounds = default.node_sound_wood_defaults() sounds = default.node_sound_wood_defaults()
}) })
-- Craft Bamboo into Bamboo Flooring
minetest.register_craft({ minetest.register_craft({
output = "ethereal:bamboo_floor 2", output = "ethereal:bamboo_floor 2",
recipe = { recipe = {
@ -55,13 +56,6 @@ minetest.register_craft({
} }
}) })
minetest.register_craft({
output = "ethereal:bamboo_block",
recipe = {
{"ethereal:bamboo_floor"},
{"ethereal:bamboo_floor"}
}
})
-- Bamboo Block -- Bamboo Block
minetest.register_node("ethereal:bamboo_block", { minetest.register_node("ethereal:bamboo_block", {
@ -72,6 +66,14 @@ minetest.register_node("ethereal:bamboo_block", {
sounds = default.node_sound_wood_defaults() sounds = default.node_sound_wood_defaults()
}) })
minetest.register_craft({
output = "ethereal:bamboo_block",
recipe = {
{"ethereal:bamboo_floor"},
{"ethereal:bamboo_floor"}
}
})
minetest.register_craft({ minetest.register_craft({
output = "ethereal:bamboo_block", output = "ethereal:bamboo_block",
recipe = { recipe = {
@ -81,7 +83,8 @@ minetest.register_craft({
} }
}) })
-- Craft Bamboo into Paper
-- Paper recipes
minetest.register_craft({ minetest.register_craft({
output = "default:paper 6", output = "default:paper 6",
recipe = { recipe = {
@ -91,33 +94,6 @@ minetest.register_craft({
} }
}) })
if ethereal.xcraft == true then
-- X pattern craft recipes (5x 'a' in X pattern gives 5 of 'b')
local cheat = {
{"default:cobble", "default:gravel", 5},
{"default:gravel", "default:dirt", 5},
{"default:dirt", "default:sand", 5},
{"default:ice", "default:snow", 20},
{"ethereal:dry_dirt", "default:desert_sand", 5},
{"default:stone", "default:silver_sandstone", 5}
}
for n = 1, #cheat do
minetest.register_craft({
output = cheat[n][2] .. " " .. cheat[n][3],
recipe = {
{cheat[n][1], "", cheat[n][1]},
{"", cheat[n][1], ""},
{cheat[n][1], "", cheat[n][1]}
}
})
end
end -- END if
-- Paper (2x3 string = 4 paper)
minetest.register_craft({ minetest.register_craft({
output = "default:paper 2", output = "default:paper 2",
recipe = { recipe = {
@ -125,6 +101,43 @@ minetest.register_craft({
} }
}) })
-- 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"}
}
})
-- X pattern craft recipes (5x 'a' in X pattern gives 5 of 'b')
if ethereal.xcraft == true then
local cheat = {
{"default:cobble", "default:gravel", 5},
{"default:gravel", "default:dirt", 5},
{"default:dirt", "default:sand", 5},
{"default:ice", "default:snow", 20},
{"ethereal:dry_dirt", "default:desert_sand", 5},
{"default:stone", "default:silver_sandstone", 5}
}
for n = 1, #cheat do
minetest.register_craft({
output = cheat[n][2] .. " " .. cheat[n][3],
recipe = {
{cheat[n][1], "", cheat[n][1]},
{"", cheat[n][1], ""},
{cheat[n][1], "", cheat[n][1]}
}
})
end
end
-- Palm Wax -- Palm Wax
minetest.register_craftitem("ethereal:palm_wax", { minetest.register_craftitem("ethereal:palm_wax", {
description = S("Palm Wax"), description = S("Palm Wax"),
@ -142,42 +155,43 @@ minetest.register_craft({
local function add_candle(col, dcol) local function add_candle(col, dcol)
local rcol = "" local rcol = ""
if col ~= "" then
rcol = col
col = "_" .. col
end
minetest.register_node("ethereal:candle" .. col, {
description = S(dcol .. "Candle"),
drawtype = "plantlike",
inventory_image = "ethereal_candle" .. col .. "_static.png",
wield_image = "ethereal_candle" .. col .. "_static.png",
tiles = {
{
name = "ethereal_candle" .. col .. ".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 = {candle = 1, 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, 0.15 }
}
})
if col ~= "" then if col ~= "" then
rcol = col
col = "_" .. col
end
minetest.register_node("ethereal:candle" .. col, {
description = S(dcol .. "Candle"),
drawtype = "plantlike",
inventory_image = "ethereal_candle" .. col .. "_static.png",
wield_image = "ethereal_candle" .. col .. "_static.png",
tiles = {
{
name = "ethereal_candle" .. col .. ".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 = {candle = 1, 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, 0.15 }
}
})
if col ~= "" then
minetest.register_craft({ minetest.register_craft({
output = "ethereal:candle" .. col, output = "ethereal:candle" .. col,
recipe = { recipe = {
@ -203,6 +217,7 @@ add_candle("red", "Red ")
add_candle("violet", "Violet ") add_candle("violet", "Violet ")
add_candle("yellow", "Yellow ") add_candle("yellow", "Yellow ")
-- white candle recipe -- white candle recipe
minetest.register_craft({ minetest.register_craft({
output = "ethereal:candle", output = "ethereal:candle",
@ -221,6 +236,7 @@ minetest.register_craft({
} }
}) })
-- Wooden Bowl -- Wooden Bowl
minetest.register_craftitem("ethereal:bowl", { minetest.register_craftitem("ethereal:bowl", {
description = S("Bowl"), description = S("Bowl"),
@ -240,6 +256,7 @@ if not minetest.registered_items["farming:bowl"] then
}) })
end end
-- stone Ladder -- stone Ladder
minetest.register_node("ethereal:stone_ladder", { minetest.register_node("ethereal:stone_ladder", {
description = S("Stone Ladder"), description = S("Stone Ladder"),
@ -270,6 +287,7 @@ minetest.register_craft({
} }
}) })
-- Paper Wall -- Paper Wall
minetest.register_node("ethereal:paper_wall", { minetest.register_node("ethereal:paper_wall", {
drawtype = "nodebox", drawtype = "nodebox",
@ -305,6 +323,7 @@ minetest.register_craft({
} }
}) })
-- Glostone (A little bit of light decoration) -- Glostone (A little bit of light decoration)
minetest.register_node("ethereal:glostone", { minetest.register_node("ethereal:glostone", {
description = S("Glo Stone"), description = S("Glo Stone"),
@ -316,7 +335,6 @@ minetest.register_node("ethereal:glostone", {
}) })
minetest.register_craft({ minetest.register_craft({
-- type = "shapeless",
output = "ethereal:glostone", output = "ethereal:glostone",
recipe = { recipe = {
{"", "default:torch", ""}, {"", "default:torch", ""},
@ -325,6 +343,7 @@ minetest.register_craft({
} }
}) })
-- Charcoal Lump -- Charcoal Lump
minetest.register_craftitem("ethereal:charcoal_lump", { minetest.register_craftitem("ethereal:charcoal_lump", {
description = S("Lump of Charcoal"), description = S("Lump of Charcoal"),
@ -360,6 +379,8 @@ minetest.register_craft({
} }
}) })
-- staff of light alternative node list
ethereal.lightstaff_recipes = { ethereal.lightstaff_recipes = {
["nether:rack"] = "nether:glowstone", ["nether:rack"] = "nether:glowstone",
["nether:rack_deep"] = "nether:glowstone_deep" ["nether:rack_deep"] = "nether:glowstone_deep"
@ -369,10 +390,11 @@ ethereal.lightstaff_recipes = {
minetest.register_tool("ethereal:light_staff", { minetest.register_tool("ethereal:light_staff", {
description = S("Staff of Light"), description = S("Staff of Light"),
inventory_image = "ethereal_light_staff.png", inventory_image = "ethereal_light_staff.png",
light_source = 13, -- used by other mods light_source = 13,
wield_image = "ethereal_light_staff.png", wield_image = "ethereal_light_staff.png",
sound = {breaks = "default_tool_breaks"}, sound = {breaks = "default_tool_breaks"},
stack_max = 1, stack_max = 1,
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

@ -86,15 +86,12 @@ if door_mod then
}, },
description = S("Sakura Wood Door"), description = S("Sakura Wood Door"),
inventory_image = "ethereal_sakura_door_inv.png", inventory_image = "ethereal_sakura_door_inv.png",
groups = { groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
snappy = 1, choppy = 2, oddly_breakable_by_hand = 2,
flammable = 2
},
sound_open = "doors_glass_door_open", sound_open = "doors_glass_door_open",
sound_close = "doors_glass_door_close", sound_close = "doors_glass_door_close",
recipe = { recipe = {
{"group:stick", "default:paper"}, {"group:stick", "default:paper"},
{"default:paper", "group:stick"}, {"default:paper", "group:stick"},
{"ethereal:sakura_wood", "ethereal:sakura_wood"} {"ethereal:sakura_wood", "ethereal:sakura_wood"}
} }
}) })

View File

@ -1,6 +1,6 @@
--[[ --[[
This fishing routine is inspired by the great work Rootyjr did for MineClone2 This fishing routine is inspired by the great work Rootyjr did for MineClone2
]]-- ]]--
@ -44,9 +44,9 @@ local bonus_items = {
} }
local default_item = "default:dirt" local default_item = "default:dirt"
local random = math.random -- yup we use this a lot local random = math.random -- yup we use this a lot
-- add item function -- add item function
ethereal.add_item = function(fish, junk, bonus) ethereal.add_item = function(fish, junk, bonus)
@ -529,7 +529,7 @@ minetest.register_craftitem("ethereal:worm", {
minetest.register_craft({ minetest.register_craft({
output = "ethereal:worm", output = "ethereal:worm",
recipe = { recipe = {
{"default:dirt","default:dirt"} {"default:dirt", "default:dirt"}
} }
}) })

View File

@ -41,9 +41,7 @@ end
local function set_flight(user, set) local function set_flight(user, set)
if not user then return end local name = user and user:get_player_name() ; if not name then return end
local name = user:get_player_name()
local privs = minetest.get_player_privs(name) local privs = minetest.get_player_privs(name)
privs.fly = set privs.fly = set
@ -109,10 +107,8 @@ minetest.register_on_joinplayer(function(player)
-- wait 2 seconds before doing flight checks on player -- wait 2 seconds before doing flight checks on player
minetest.after(2.0, function(player) minetest.after(2.0, function(player)
if not player then return end
-- get player name and timer -- get player name and timer
local name = player:get_player_name() ; if not name then return end local name = player and player:get_player_name() ; if not name then return end
local timer = get_timer(player) local timer = get_timer(player)
-- if timer is blank and player can already fly then default and return -- if timer is blank and player can already fly then default and return

135
food.lua
View File

@ -1,6 +1,7 @@
local S = ethereal.intllib local S = ethereal.intllib
-- Banana (Heals one heart when eaten) -- Banana (Heals one heart when eaten)
minetest.register_node("ethereal:banana", { minetest.register_node("ethereal:banana", {
description = S("Banana"), description = S("Banana"),
@ -22,7 +23,9 @@ minetest.register_node("ethereal:banana", {
drop = "ethereal:banana", drop = "ethereal:banana",
on_use = minetest.item_eat(2), on_use = minetest.item_eat(2),
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer) after_place_node = function(pos, placer)
if placer:is_player() then if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:banana", param2 = 1}) minetest.set_node(pos, {name = "ethereal:banana", param2 = 1})
end end
@ -50,6 +53,7 @@ minetest.register_node("ethereal:banana_bunch", {
drop = "ethereal:banana_bunch", drop = "ethereal:banana_bunch",
on_use = minetest.item_eat(6), on_use = minetest.item_eat(6),
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer) after_place_node = function(pos, placer)
if placer:is_player() then if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:banana_bunch", param2 = 1}) minetest.set_node(pos, {name = "ethereal:banana_bunch", param2 = 1})
@ -86,6 +90,7 @@ minetest.register_craft({
recipe = "ethereal:banana_dough" recipe = "ethereal:banana_dough"
}) })
-- Orange (Heals 2 hearts when eaten) -- Orange (Heals 2 hearts when eaten)
minetest.register_node("ethereal:orange", { minetest.register_node("ethereal:orange", {
description = S("Orange"), description = S("Orange"),
@ -107,13 +112,16 @@ minetest.register_node("ethereal:orange", {
drop = "ethereal:orange", drop = "ethereal:orange",
on_use = minetest.item_eat(4), on_use = minetest.item_eat(4),
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer) after_place_node = function(pos, placer)
if placer:is_player() then if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:orange", param2 = 1}) minetest.set_node(pos, {name = "ethereal:orange", param2 = 1})
end end
end, end
}) })
-- Pine Nuts (Heals 1/2 heart when eaten) -- Pine Nuts (Heals 1/2 heart when eaten)
minetest.register_craftitem("ethereal:pine_nuts", { minetest.register_craftitem("ethereal:pine_nuts", {
description = S("Pine Nuts"), description = S("Pine Nuts"),
@ -132,7 +140,15 @@ minetest.register_craftitem("ethereal:banana_bread", {
on_use = minetest.item_eat(6) on_use = minetest.item_eat(6)
}) })
-- Coconut (Gives 4 coconut slices, each heal 1/2 heart)
-- coconut settings if farming redo found
local fredo = minetest.get_modpath("farming") and farming and farming.mod
and farming.mod == "redo"
local cdrp = fredo and "ethereal:coconut" or "ethereal:coconut_slice 4"
local cgrp = fredo and {3, 2} or {1, 1}
-- Coconut (drops 4x coconut slice by default, whole coconut if farming redo found)
minetest.register_node("ethereal:coconut", { minetest.register_node("ethereal:coconut", {
description = S("Coconut"), description = S("Coconut"),
drawtype = "plantlike", drawtype = "plantlike",
@ -147,11 +163,19 @@ minetest.register_node("ethereal:coconut", {
fixed = {-0.31, -0.43, -0.31, 0.31, 0.44, 0.31} fixed = {-0.31, -0.43, -0.31, 0.31, 0.44, 0.31}
}, },
groups = { groups = {
food_coconut = 1, snappy = 1, oddly_breakable_by_hand = 1, cracky = 1, food_coconut = 1, snappy = cgrp[1], oddly_breakable_by_hand = cgrp[2],
choppy = 1, flammable = 1, leafdecay = 3, leafdecay_drop = 1 cracky = cgrp[1], choppy = cgrp[1], flammable = 1,
leafdecay = 3, leafdecay_drop = 1
}, },
drop = "ethereal:coconut_slice 4", drop = cdrp,
sounds = default.node_sound_wood_defaults() sounds = default.node_sound_wood_defaults(),
after_place_node = function(pos, placer)
if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:coconut", param2 = 1})
end
end
}) })
-- Coconut Slice (Heals half heart when eaten) -- Coconut Slice (Heals half heart when eaten)
@ -163,6 +187,17 @@ minetest.register_craftitem("ethereal:coconut_slice", {
on_use = minetest.item_eat(1) on_use = minetest.item_eat(1)
}) })
-- coconut slice recipe (farming redo)
if fredo then
minetest.register_craft({
output = "ethereal:coconut_slice 4",
recipe = {{"farming:cutting_board", "ethereal:coconut"}},
replacements = {{"farming:cutting_board", "farming:cutting_board"}}
})
end
-- coconut slice into whole coconut
minetest.register_craft({ minetest.register_craft({
output = "ethereal:coconut", output = "ethereal:coconut",
recipe = { recipe = {
@ -171,6 +206,7 @@ minetest.register_craft({
} }
}) })
-- Golden Apple (Found on Healing Tree, heals all 10 hearts) -- Golden Apple (Found on Healing Tree, heals all 10 hearts)
minetest.register_node("ethereal:golden_apple", { minetest.register_node("ethereal:golden_apple", {
description = S("Golden Apple"), description = S("Golden Apple"),
@ -190,21 +226,28 @@ minetest.register_node("ethereal:golden_apple", {
leafdecay = 3,leafdecay_drop = 1 leafdecay = 3,leafdecay_drop = 1
}, },
drop = "ethereal:golden_apple", drop = "ethereal:golden_apple",
sounds = default.node_sound_leaves_defaults(),
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
if user then if user then
user:set_hp(20) user:set_hp(20)
return minetest.do_item_eat(2, nil, itemstack, user, pointed_thing) return minetest.do_item_eat(2, nil, itemstack, user, pointed_thing)
end end
end, end,
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer, itemstack) after_place_node = function(pos, placer, itemstack)
if placer:is_player() then if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:golden_apple", param2 = 1}) minetest.set_node(pos, {name = "ethereal:golden_apple", param2 = 1})
end end
end end
}) })
-- Hearty Stew (Heals 5 hearts - thanks to ZonerDarkRevention for his DokuCraft DeviantArt bowl texture) -- Hearty Stew (Heals 5 hearts)
-- thanks to ZonerDarkRevention for his DokuCraft DeviantArt bowl texture)
minetest.register_craftitem("ethereal:hearty_stew", { minetest.register_craftitem("ethereal:hearty_stew", {
description = S("Hearty Stew"), description = S("Hearty Stew"),
inventory_image = "ethereal_hearty_stew.png", inventory_image = "ethereal_hearty_stew.png",
@ -222,17 +265,19 @@ minetest.register_craft({
}) })
-- Extra recipe for hearty stew -- Extra recipe for hearty stew
if farming and farming.mod and farming.mod == "redo" then if fredo then
minetest.register_craft({
output = "ethereal:hearty_stew", minetest.register_craft({
recipe = { output = "ethereal:hearty_stew",
{"group:food_onion","flowers:mushroom_brown", "group:food_beans"}, recipe = {
{"","flowers:mushroom_brown", ""}, {"group:food_onion","flowers:mushroom_brown", "group:food_beans"},
{"","group:food_bowl", ""} {"","flowers:mushroom_brown", ""},
} {"","group:food_bowl", ""}
}) }
})
end end
-- Bucket of Cactus Pulp -- Bucket of Cactus Pulp
minetest.register_craftitem("ethereal:bucket_cactus", { minetest.register_craftitem("ethereal:bucket_cactus", {
description = S("Bucket of Cactus Pulp"), description = S("Bucket of Cactus Pulp"),
@ -260,18 +305,18 @@ minetest.register_craftitem("ethereal:firethorn_jelly", {
if minetest.registered_items["farming:bowl"] then if minetest.registered_items["farming:bowl"] then
minetest.register_craft({ minetest.register_craft({
output = "ethereal:firethorn_jelly", output = "ethereal:firethorn_jelly",
recipe = { recipe = {
{"farming:mortar_pestle","vessels:glass_bottle", ""}, {"farming:mortar_pestle","vessels:glass_bottle", ""},
{"ethereal:firethorn", "ethereal:firethorn", "ethereal:firethorn"}, {"ethereal:firethorn", "ethereal:firethorn", "ethereal:firethorn"},
{"bucket:bucket_water", "bucket:bucket_water", "bucket:bucket_water"} {"bucket:bucket_water", "bucket:bucket_water", "bucket:bucket_water"}
}, },
replacements = { replacements = {
{"bucket:bucket_water", "bucket:bucket_empty 3"}, {"bucket:bucket_water", "bucket:bucket_empty 3"},
{"farming:mortar_pestle", "farming:mortar_pestle"} {"farming:mortar_pestle", "farming:mortar_pestle"}
} }
}) })
end end
@ -296,7 +341,9 @@ minetest.register_node("ethereal:lemon", {
drop = "ethereal:lemon", drop = "ethereal:lemon",
on_use = minetest.item_eat(3), on_use = minetest.item_eat(3),
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer) after_place_node = function(pos, placer)
if placer:is_player() then if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:lemon", param2 = 1}) minetest.set_node(pos, {name = "ethereal:lemon", param2 = 1})
end end
@ -351,6 +398,7 @@ minetest.register_craft({
} }
}) })
-- Olive -- Olive
minetest.register_node("ethereal:olive", { minetest.register_node("ethereal:olive", {
description = S("Olive"), description = S("Olive"),
@ -373,7 +421,9 @@ minetest.register_node("ethereal:olive", {
drop = "ethereal:olive", drop = "ethereal:olive",
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 = function(pos, placer) after_place_node = function(pos, placer)
if placer:is_player() then if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:olive", param2 = 1}) minetest.set_node(pos, {name = "ethereal:olive", param2 = 1})
end end
@ -400,6 +450,7 @@ minetest.register_craft({
} }
}) })
-- Kappa Maki (sushi with cucumber) -- Kappa Maki (sushi with cucumber)
minetest.register_craftitem("ethereal:sushi_kappamaki", { minetest.register_craftitem("ethereal:sushi_kappamaki", {
description = S("Kappa Maki Sushi"), description = S("Kappa Maki Sushi"),
@ -414,6 +465,7 @@ minetest.register_craft({
} }
}) })
-- Nigiri (sushi with raw fish) -- Nigiri (sushi with raw fish)
minetest.register_craftitem("ethereal:sushi_nigiri", { minetest.register_craftitem("ethereal:sushi_nigiri", {
description = S("Nigiri Sushi"), description = S("Nigiri Sushi"),
@ -428,6 +480,7 @@ minetest.register_craft({
} }
}) })
-- Tamago (sushi with sweet egg) -- Tamago (sushi with sweet egg)
minetest.register_craftitem("ethereal:sushi_tamago", { minetest.register_craftitem("ethereal:sushi_tamago", {
description = S("Tamago Sushi"), description = S("Tamago Sushi"),
@ -442,12 +495,16 @@ minetest.register_craft({
} }
}) })
-- Fugu (prepared pufferfish) -- Fugu (prepared pufferfish)
minetest.register_craftitem("ethereal:fugu", { minetest.register_craftitem("ethereal:fugu", {
description = S("Fugusashi"), description = S("Fugusashi"),
inventory_image = "ethereal_fugu.png", inventory_image = "ethereal_fugu.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
if user then if user then
if math.random(12) == 1 then if math.random(12) == 1 then
return minetest.do_item_eat(-16, nil, itemstack, user, pointed_thing) return minetest.do_item_eat(-16, nil, itemstack, user, pointed_thing)
else else
@ -468,6 +525,7 @@ minetest.register_craft({
} }
}) })
-- Teriyaki Chicken -- Teriyaki Chicken
minetest.register_craftitem("ethereal:teriyaki_chicken", { minetest.register_craftitem("ethereal:teriyaki_chicken", {
description = S("Teriyaki Chicken"), description = S("Teriyaki Chicken"),
@ -487,6 +545,7 @@ minetest.register_craft({
} }
}) })
-- Teriyaki Beef -- Teriyaki Beef
minetest.register_craftitem("ethereal:teriyaki_beef", { minetest.register_craftitem("ethereal:teriyaki_beef", {
description = S("Teriyaki Beef"), description = S("Teriyaki Beef"),
@ -506,3 +565,21 @@ minetest.register_craft({
{"group:food_saucepan", "farming:saucepan"} {"group:food_saucepan", "farming:saucepan"}
} }
}) })
-- mushroom soup (Heals 1 heart)
minetest.register_craftitem("ethereal:mushroom_soup", {
description = S("Mushroom Soup"),
inventory_image = "ethereal_mushroom_soup.png",
groups = {drink = 1},
on_use = minetest.item_eat(5, "ethereal:bowl")
})
minetest.register_craft({
output = "ethereal:mushroom_soup",
recipe = {
{"group:food_mushroom"},
{"group:food_mushroom"},
{"group:food_bowl"}
}
})

View File

@ -7,7 +7,7 @@
]] ]]
ethereal = {version = "20220424"} ethereal = {version = "20220930"}
local function setting(stype, name, default) local function setting(stype, name, default)
@ -75,12 +75,14 @@ local path = minetest.get_modpath("ethereal")
-- Load settings.conf file if found -- Load settings.conf file if found
local input = io.open(path.."/settings.conf", "r") local input = io.open(path.."/settings.conf", "r")
if input then if input then
dofile(path .. "/settings.conf") dofile(path .. "/settings.conf")
input:close() input:close()
input = nil input = nil
end end
-- Intllib -- Intllib
local S local S
if minetest.get_translator then if minetest.get_translator then
@ -96,6 +98,7 @@ else
end end
ethereal.intllib = S ethereal.intllib = S
-- Falling node function -- Falling node function
ethereal.check_falling = minetest.check_for_falling or nodeupdate ethereal.check_falling = minetest.check_for_falling or nodeupdate
@ -105,8 +108,8 @@ function ethereal.check_creative(name)
return creative_mode_cache or minetest.check_player_privs(name, {creative = true}) return creative_mode_cache or minetest.check_player_privs(name, {creative = true})
end end
dofile(path .. "/plantlife.lua") dofile(path .. "/plantlife.lua")
dofile(path .. "/mushroom.lua")
dofile(path .. "/onion.lua") dofile(path .. "/onion.lua")
dofile(path .. "/crystal.lua") dofile(path .. "/crystal.lua")
dofile(path .. "/water.lua") dofile(path .. "/water.lua")
@ -127,12 +130,17 @@ dofile(path .. "/schems.lua")
dofile(path .. "/decor.lua") dofile(path .. "/decor.lua")
dofile(path .. "/compatibility.lua") dofile(path .. "/compatibility.lua")
dofile(path .. "/stairs.lua") dofile(path .. "/stairs.lua")
dofile(path .. "/lucky_block.lua")
-- add flight if enabled
if ethereal.flight then if ethereal.flight then
dofile(path .. "/flight.lua") dofile(path .. "/flight.lua")
end end
-- add lucky blocks if mod active
if minetest.get_modpath("lucky_block") then
dofile(path .. "/lucky_block.lua")
end
-- Set bonemeal aliases -- Set bonemeal aliases
if minetest.get_modpath("bonemeal") then if minetest.get_modpath("bonemeal") then
minetest.register_alias("ethereal:bone", "bonemeal:bone") minetest.register_alias("ethereal:bone", "bonemeal:bone")
@ -146,4 +154,5 @@ if minetest.get_modpath("xanadu") then
dofile(path .. "/plantpack.lua") dofile(path .. "/plantpack.lua")
end end
print ("[MOD] Ethereal loaded") print ("[MOD] Ethereal loaded")

View File

@ -1,6 +1,7 @@
local S = ethereal.intllib local S = ethereal.intllib
-- set leaftype (value inside init.lua) -- set leaftype (value inside init.lua)
local leaftype = "plantlike" local leaftype = "plantlike"
local leafscale = 1.4 local leafscale = 1.4
@ -486,83 +487,84 @@ minetest.register_craft({
burntime = 1 burntime = 1
}) })
-- compatibility check for new mt version with leafdecay function -- compatibility check for new mt version with leafdecay function
if minetest.registered_nodes["default:dirt_with_rainforest_litter"] then if minetest.registered_nodes["default:dirt_with_rainforest_litter"] then
default.register_leafdecay({ default.register_leafdecay({
trunks = {"default:tree"}, trunks = {"default:tree"},
leaves = { leaves = {
"default:apple", "default:leaves", "default:apple", "default:leaves",
"ethereal:orange", "ethereal:orange_leaves", "ethereal:orange", "ethereal:orange_leaves",
"ethereal:lemon", "ethereal:lemon_leaves", "ethereal:lemon", "ethereal:lemon_leaves",
"ethereal:vine" "ethereal:vine"
}, },
radius = 3 radius = 3
}) })
default.register_leafdecay({ default.register_leafdecay({
trunks = {"ethereal:willow_trunk"}, trunks = {"ethereal:willow_trunk"},
leaves = {"ethereal:willow_twig"}, leaves = {"ethereal:willow_twig"},
radius = 3 radius = 3
}) })
default.register_leafdecay({ default.register_leafdecay({
trunks = {"ethereal:redwood_trunk"}, trunks = {"ethereal:redwood_trunk"},
leaves = {"ethereal:redwood_leaves"}, leaves = {"ethereal:redwood_leaves"},
radius = 3 radius = 3
}) })
default.register_leafdecay({ default.register_leafdecay({
trunks = {"ethereal:frost_tree"}, trunks = {"ethereal:frost_tree"},
leaves = {"ethereal:frost_leaves"}, leaves = {"ethereal:frost_leaves"},
radius = 3 radius = 3
}) })
default.register_leafdecay({ default.register_leafdecay({
trunks = {"ethereal:yellow_trunk"}, trunks = {"ethereal:yellow_trunk"},
leaves = {"ethereal:yellowleaves", "ethereal:golden_apple"}, leaves = {"ethereal:yellowleaves", "ethereal:golden_apple"},
radius = 3 radius = 3
}) })
default.register_leafdecay({ default.register_leafdecay({
trunks = {"ethereal:palm_trunk"}, trunks = {"ethereal:palm_trunk"},
leaves = {"ethereal:palmleaves", "ethereal:coconut"}, leaves = {"ethereal:palmleaves", "ethereal:coconut"},
radius = 3 radius = 3
}) })
default.register_leafdecay({ default.register_leafdecay({
trunks = {"ethereal:banana_trunk"}, trunks = {"ethereal:banana_trunk"},
leaves = {"ethereal:bananaleaves", "ethereal:banana", "ethereal:banana_bunch"}, leaves = {"ethereal:bananaleaves", "ethereal:banana", "ethereal:banana_bunch"},
radius = 3 radius = 3
}) })
default.register_leafdecay({ default.register_leafdecay({
trunks = {"ethereal:birch_trunk"}, trunks = {"ethereal:birch_trunk"},
leaves = {"ethereal:birch_leaves"}, leaves = {"ethereal:birch_leaves"},
radius = 3 radius = 3
}) })
default.register_leafdecay({ default.register_leafdecay({
trunks = {"ethereal:bamboo"}, trunks = {"ethereal:bamboo"},
leaves = {"ethereal:bamboo_leaves"}, leaves = {"ethereal:bamboo_leaves"},
radius = 2 radius = 2
}) })
default.register_leafdecay({ default.register_leafdecay({
trunks = {"ethereal:sakura_trunk"}, trunks = {"ethereal:sakura_trunk"},
leaves = {"ethereal:sakura_leaves", "ethereal:sakura_leaves2"}, leaves = {"ethereal:sakura_leaves", "ethereal:sakura_leaves2"},
radius = 3 radius = 3
}) })
default.register_leafdecay({ default.register_leafdecay({
trunks = {"ethereal:olive_trunk"}, trunks = {"ethereal:olive_trunk"},
leaves = {"ethereal:olive_leaves", "ethereal:olive"}, leaves = {"ethereal:olive_leaves", "ethereal:olive"},
radius = 3 radius = 3
}) })
default.register_leafdecay({ default.register_leafdecay({
trunks = {"ethereal:mushroom_trunk"}, trunks = {"ethereal:mushroom_trunk"},
leaves = {"ethereal:mushroom", "ethereal:mushroom_pore"}, leaves = {"ethereal:mushroom", "ethereal:mushroom_pore"},
radius = 3 radius = 3
}) })
end end

View File

@ -1,8 +1,4 @@
-- add lucky blocks
if minetest.get_modpath("lucky_block") then
local epath = minetest.get_modpath("ethereal") .. "/schematics/" local epath = minetest.get_modpath("ethereal") .. "/schematics/"
lucky_block:add_schematics({ lucky_block:add_schematics({
@ -94,20 +90,20 @@ lucky_block:add_blocks({
}) })
if minetest.get_modpath("3d_armor") then if minetest.get_modpath("3d_armor") then
lucky_block:add_blocks({
{"dro", {"3d_armor:helmet_crystal"}}, lucky_block:add_blocks({
{"dro", {"3d_armor:chestplate_crystal"}}, {"dro", {"3d_armor:helmet_crystal"}},
{"dro", {"3d_armor:leggings_crystal"}}, {"dro", {"3d_armor:chestplate_crystal"}},
{"dro", {"3d_armor:boots_crystal"}}, {"dro", {"3d_armor:leggings_crystal"}},
{"lig"} {"dro", {"3d_armor:boots_crystal"}},
}) {"lig"}
})
end end
if minetest.get_modpath("shields") then if minetest.get_modpath("shields") then
lucky_block:add_blocks({
{"dro", {"shields:shield_crystal"}},
{"exp"}
})
end
end -- END IF lucky_block:add_blocks({
{"dro", {"shields:shield_crystal"}},
{"exp"}
})
end

View File

@ -1,28 +0,0 @@
local S = ethereal.intllib
-- mushroom soup (Heals 1 heart)
minetest.register_craftitem("ethereal:mushroom_soup", {
description = S("Mushroom Soup"),
inventory_image = "ethereal_mushroom_soup.png",
groups = {drink = 1},
on_use = minetest.item_eat(5, "ethereal:bowl")
})
minetest.register_craft({
output = "ethereal:mushroom_soup",
recipe = {
{"group:food_mushroom"},
{"group:food_mushroom"},
{"group:food_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"}
}
})

View File

@ -1,20 +1,23 @@
local S = ethereal.intllib local S = ethereal.intllib
-- wild onion -- wild onion
minetest.register_craftitem("ethereal:wild_onion_plant", { minetest.register_craftitem("ethereal:wild_onion_plant", {
description = S("Wild Onion"), description = S("Wild Onion"),
inventory_image = "ethereal_wild_onion.png", inventory_image = "ethereal_wild_onion.png",
wield_image = "ethereal_wild_onion.png", wield_image = "ethereal_wild_onion.png",
groups = {food_onion = 1, flammable = 2}, groups = {food_onion = 1, flammable = 2},
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 crop_def = { local def = {
drawtype = "plantlike", drawtype = "plantlike",
tiles = {"ethereal_wild_onion_1.png"}, tiles = {"ethereal_wild_onion_1.png"},
paramtype = "light", paramtype = "light",
@ -30,44 +33,45 @@ local crop_def = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 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()
} }
--stage 1 --stage 1
minetest.register_node("ethereal:onion_1", table.copy(crop_def)) minetest.register_node("ethereal:onion_1", table.copy(def))
--stage 2 --stage 2
crop_def.tiles = {"ethereal_wild_onion_2.png"} def.tiles = {"ethereal_wild_onion_2.png"}
minetest.register_node("ethereal:onion_2", table.copy(crop_def)) minetest.register_node("ethereal:onion_2", table.copy(def))
--stage 3 --stage 3
crop_def.tiles = {"ethereal_wild_onion_3.png"} def.tiles = {"ethereal_wild_onion_3.png"}
minetest.register_node("ethereal:onion_3", table.copy(crop_def)) minetest.register_node("ethereal:onion_3", table.copy(def))
--stage 4 --stage 4
crop_def.tiles = {"ethereal_wild_onion_4.png"} def.tiles = {"ethereal_wild_onion_4.png"}
crop_def.drop = { def.drop = {
items = { items = {
{items = {"ethereal:wild_onion_plant"}, rarity = 1}, {items = {"ethereal:wild_onion_plant"}, rarity = 1},
{items = {"ethereal:wild_onion_plant 2"}, rarity = 3}, {items = {"ethereal:wild_onion_plant 2"}, rarity = 3},
} }
} }
minetest.register_node("ethereal:onion_4", table.copy(crop_def)) minetest.register_node("ethereal:onion_4", table.copy(def))
--stage 5 --stage 5
crop_def.tiles = {"ethereal_wild_onion_5.png"} def.tiles = {"ethereal_wild_onion_5.png"}
crop_def.groups.growing = nil def.groups.growing = nil
crop_def.selection_box = { def.selection_box = {
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -2.5/16, 0.5} fixed = {-0.5, -0.5, -0.5, 0.5, -2.5/16, 0.5}
} }
crop_def.drop = { def.drop = {
items = { items = {
{items = {"ethereal:wild_onion_plant 2"}, rarity = 1}, {items = {"ethereal:wild_onion_plant 2"}, rarity = 1},
{items = {"ethereal:wild_onion_plant 3"}, rarity = 2}, {items = {"ethereal:wild_onion_plant 3"}, rarity = 2},
} }
} }
minetest.register_node("ethereal:onion_5", table.copy(crop_def)) minetest.register_node("ethereal:onion_5", table.copy(def))
-- growing routine if farming redo isn't present -- growing routine if farming redo isn't present
@ -94,6 +98,7 @@ else
interval = 11, interval = 11,
chance = 20, chance = 20,
catch_up = false, catch_up = false,
action = function(pos, node) action = function(pos, node)
-- are we on wet soil? -- are we on wet soil?

View File

@ -4,12 +4,12 @@
local add_stratum = function(y_min, y_max, node) local add_stratum = function(y_min, y_max, node)
minetest.register_ore({ minetest.register_ore({
ore_type = "stratum", ore_type = "stratum",
ore = node, ore = node,
wherein = {"bakedclay:orange"}, wherein = {"bakedclay:orange"},
clust_scarcity = 1, clust_scarcity = 1,
y_max = y_max, y_max = y_max,
y_min = y_min, y_min = y_min,
biomes = {"mesa"} biomes = {"mesa"}
}) })
end end

View File

@ -1,6 +1,7 @@
local S = ethereal.intllib local S = ethereal.intllib
-- Firethorn (poisonous when eaten raw, must be crushed and washed in flowing water 1st) -- Firethorn (poisonous when eaten raw, must be crushed and washed in flowing water 1st)
minetest.register_node("ethereal:firethorn", { minetest.register_node("ethereal:firethorn", {
description = S("Firethorn Shrub"), description = S("Firethorn Shrub"),
@ -21,6 +22,7 @@ minetest.register_node("ethereal:firethorn", {
} }
}) })
-- Fire Flower -- Fire Flower
minetest.register_node("ethereal:fire_flower", { minetest.register_node("ethereal:fire_flower", {
description = S("Fire Flower"), description = S("Fire Flower"),
@ -56,6 +58,7 @@ minetest.register_craft({
burntime = 20 burntime = 20
}) })
-- Fire Dust -- Fire Dust
minetest.register_craftitem("ethereal:fire_dust", { minetest.register_craftitem("ethereal:fire_dust", {
description = S("Fire Dust"), description = S("Fire Dust"),
@ -73,6 +76,7 @@ minetest.register_craft({
burntime = 10 burntime = 10
}) })
-- vines -- vines
minetest.register_node("ethereal:vine", { minetest.register_node("ethereal:vine", {
description = S("Vine"), description = S("Vine"),
@ -102,6 +106,7 @@ minetest.register_craft({
} }
}) })
-- light strings (glowing vine) -- light strings (glowing vine)
minetest.register_node("ethereal:lightstring", { minetest.register_node("ethereal:lightstring", {
description = S("Light String Vine"), description = S("Light String Vine"),
@ -132,6 +137,7 @@ minetest.register_craft({
} }
}) })
-- Fern (boston) -- Fern (boston)
minetest.register_node("ethereal:fern", { minetest.register_node("ethereal:fern", {
description = S("Fern"), description = S("Fern"),
@ -168,6 +174,7 @@ minetest.register_craftitem("ethereal:fern_tubers", {
on_use = minetest.item_eat(1) on_use = minetest.item_eat(1)
}) })
-- Red Shrub (not flammable) -- Red Shrub (not flammable)
minetest.register_node("ethereal:dry_shrub", { minetest.register_node("ethereal:dry_shrub", {
description = S("Fiery Dry Shrub"), description = S("Fiery Dry Shrub"),
@ -188,6 +195,7 @@ minetest.register_node("ethereal:dry_shrub", {
} }
}) })
-- Grey Shrub (not Flammable - too cold to burn) -- Grey Shrub (not Flammable - too cold to burn)
minetest.register_node("ethereal:snowygrass", { minetest.register_node("ethereal:snowygrass", {
description = S("Snowy Grass"), description = S("Snowy Grass"),
@ -209,6 +217,7 @@ minetest.register_node("ethereal:snowygrass", {
} }
}) })
-- Crystal Shrub (not Flammable - too cold to burn) -- Crystal Shrub (not Flammable - too cold to burn)
minetest.register_node("ethereal:crystalgrass", { minetest.register_node("ethereal:crystalgrass", {
description = S("Crystal Grass"), description = S("Crystal Grass"),
@ -230,6 +239,7 @@ minetest.register_node("ethereal:crystalgrass", {
} }
}) })
-- Define Moss Types (Has grass textures on all sides) -- Define Moss Types (Has grass textures on all sides)
local add_moss = function(typ, descr, texture, receipe_item) local add_moss = function(typ, descr, texture, receipe_item)
@ -242,69 +252,40 @@ local add_moss = function(typ, descr, texture, receipe_item)
}) })
minetest.register_craft({ minetest.register_craft({
type = "shapeless",
output = "ethereal:" .. typ .. "_moss", output = "ethereal:" .. typ .. "_moss",
recipe = {"default:dirt", receipe_item} recipe = {{"default:dirt", receipe_item}}
}) })
end end
add_moss( "crystal", "Crystal", "ethereal_grass_crystal_top.png", "ethereal:frost_leaves") add_moss("crystal", "Crystal", "ethereal_grass_crystal_top.png", "ethereal:frost_leaves")
add_moss( "mushroom", "Mushroom", "ethereal_grass_mushroom_top.png", "ethereal:mushroom") add_moss("mushroom", "Mushroom", "ethereal_grass_mushroom_top.png", "ethereal:mushroom")
add_moss( "fiery", "Fiery", "ethereal_grass_fiery_top.png", "ethereal:dry_shrub") add_moss("fiery", "Fiery", "ethereal_grass_fiery_top.png", "ethereal:dry_shrub")
add_moss( "gray", "Gray", "ethereal_grass_gray_top.png", "ethereal:snowygrass") add_moss("gray", "Gray", "ethereal_grass_gray_top.png", "ethereal:snowygrass")
add_moss( "green", "Green", "default_grass.png", "default:jungleleaves") add_moss("green", "Green", "default_grass.png", "default:jungleleaves")
-- Illuminated Cave Shrooms (Red, Green and Blue) -- Illuminated Cave Shrooms (Red, Green and Blue)
minetest.register_node("ethereal:illumishroom", { local add_shroom = function(name, desc, ad)
description = S("Red Illumishroom"),
drawtype = "plantlike",
tiles = {"ethereal_illumishroom_red.png"},
inventory_image = "ethereal_illumishroom_red.png",
wield_image = "ethereal_illumishroom_red.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 = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.47, 6 / 16}
}
})
minetest.register_node("ethereal:illumishroom2", { minetest.register_node("ethereal:illumishroom" .. ad, {
description = S("Green Illumishroom"), description = S(desc .. " Illumishroom"),
drawtype = "plantlike", drawtype = "plantlike",
tiles = {"ethereal_illumishroom_green.png"}, tiles = {"ethereal_illumishroom_" .. name .. ".png"},
inventory_image = "ethereal_illumishroom_green.png", inventory_image = "ethereal_illumishroom_" .. name .. ".png",
wield_image = "ethereal_illumishroom_green.png", wield_image = "ethereal_illumishroom_" .. name .. ".png",
paramtype = "light", paramtype = "light",
light_source = 5, light_source = 5,
sunlight_propagates = true, sunlight_propagates = true,
walkable = false, walkable = false,
groups = {dig_immediate = 3, attached_node = 1, flammable = 3}, groups = {dig_immediate = 3, attached_node = 1, flammable = 3},
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.47, 6 / 16} fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.47, 6 / 16}
} }
}) })
end
minetest.register_node("ethereal:illumishroom3", { add_shroom("red", "Red", "")
description = S("Cyan Illumishroom"), add_shroom("green", "Green", "2")
drawtype = "plantlike", add_shroom("cyan", "Cyan", "3")
tiles = {"ethereal_illumishroom_cyan.png"},
inventory_image = "ethereal_illumishroom_cyan.png",
wield_image = "ethereal_illumishroom_cyan.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 = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.47, 6 / 16}
}
})

View File

@ -96,7 +96,10 @@ minetest.register_decoration({
minetest.register_decoration({ minetest.register_decoration({
deco_type = "simple", deco_type = "simple",
place_on = {"ethereal:jungle_dirt", "default:dirt_with_grass", "default:dirt_with_rainforest_litter"}, place_on = {
"ethereal:jungle_dirt", "default:dirt_with_grass",
"default:dirt_with_rainforest_litter"
},
sidelen = 16, sidelen = 16,
fill_ratio = 0.007, fill_ratio = 0.007,
biomes = {"junglee", "jumble"}, biomes = {"junglee", "jumble"},

View File

@ -1,6 +1,7 @@
local S = ethereal.intllib local S = ethereal.intllib
-- Bamboo Sprout -- Bamboo Sprout
minetest.register_node("ethereal:bamboo_sprout", { minetest.register_node("ethereal:bamboo_sprout", {
description = S("Bamboo Sprout"), description = S("Bamboo Sprout"),
@ -24,6 +25,7 @@ minetest.register_node("ethereal:bamboo_sprout", {
grown_height = 11 grown_height = 11
}) })
-- Register Saplings -- Register Saplings
local register_sapling = function(name, desc, texture, height) local register_sapling = function(name, desc, texture, height)
@ -68,21 +70,25 @@ register_sapling("ethereal:olive_tree", "Olive", "ethereal_olive_tree_sapling",
local add_tree = function (pos, ofx, ofy, ofz, schem, replace) local add_tree = function (pos, ofx, ofy, ofz, schem, replace)
-- check for schematic -- check for schematic
if not schem then if not schem then
print (S("Schematic not found")) print (S("Schematic not found"))
return return
end end
-- 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(
{x = pos.x - ofx, y = pos.y - ofy, z = pos.z - ofz}, minetest.place_schematic({x = pos.x - ofx, y = pos.y - ofy, z = pos.z - ofz},
schem, 0, replace, false) schem, 0, replace, false)
end end
local path = minetest.get_modpath("ethereal") .. "/schematics/" local path = minetest.get_modpath("ethereal") .. "/schematics/"
-- grow tree functions -- grow tree functions
function ethereal.grow_yellow_tree(pos) function ethereal.grow_yellow_tree(pos)
add_tree(pos, 4, 0, 4, ethereal.yellowtree) add_tree(pos, 4, 0, 4, ethereal.yellowtree)
end end
@ -92,10 +98,11 @@ function ethereal.grow_big_tree(pos)
end end
function ethereal.grow_banana_tree(pos) function ethereal.grow_banana_tree(pos)
if math.random(3) == 1
and minetest.find_node_near(pos, 1, {"farming:soil_wet"}) then if math.random(3) == 1 and minetest.find_node_near(pos, 1, {"farming:soil_wet"}) then
add_tree(pos, 3, 0, 3, ethereal.bananatree, add_tree(pos, 3, 0, 3, ethereal.bananatree,
{{"ethereal:banana", "ethereal:banana_bunch"}}) {{"ethereal:banana", "ethereal:banana_bunch"}})
else else
add_tree(pos, 3, 0, 3, ethereal.bananatree) add_tree(pos, 3, 0, 3, ethereal.bananatree)
end end
@ -140,8 +147,9 @@ end
function ethereal.grow_sakura_tree(pos) function ethereal.grow_sakura_tree(pos)
if math.random(10) == 1 then if math.random(10) == 1 then
add_tree(pos, 4, 0, 3, ethereal.sakura_tree, add_tree(pos, 4, 0, 3, ethereal.sakura_tree,
{{"ethereal:sakura_leaves", "ethereal:sakura_leaves2"}}) {{"ethereal:sakura_leaves", "ethereal:sakura_leaves2"}})
else else
add_tree(pos, 4, 0, 3, ethereal.sakura_tree) add_tree(pos, 4, 0, 3, ethereal.sakura_tree)
end end
@ -155,6 +163,7 @@ function ethereal.grow_olive_tree(pos)
add_tree(pos, 3, 0, 3, ethereal.olivetree) add_tree(pos, 3, 0, 3, ethereal.olivetree)
end end
-- check if sapling has enough height room to grow -- check if sapling has enough height room to grow
local enough_height = function(pos, height) local enough_height = function(pos, height)
@ -169,13 +178,10 @@ local enough_height = function(pos, height)
end end
end end
local grow_sapling = function(pos, node) local grow_sapling = function(pos, node)
local under = minetest.get_node({ local under = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}).name
x = pos.x,
y = pos.y - 1,
z = pos.z
}).name
if not minetest.registered_nodes[node.name] then if not minetest.registered_nodes[node.name] then
return return

View File

@ -12,7 +12,7 @@ ethereal.bambootree = {
{ypos = 0, prob = 127}, {ypos = 0, prob = 127},
{ypos = 1, prob = 127}, {ypos = 1, prob = 127},
{ypos = 2, prob = 127}, {ypos = 2, prob = 127},
{ypos = 3, prob = 127}, {ypos = 3, prob = 127}
}, },
data = { data = {

View File

@ -10,7 +10,7 @@ ethereal.bigtree = {
yslice_prob = { yslice_prob = {
{ypos = 0, prob = 127}, {ypos = 0, prob = 127},
{ypos = 1, prob = 127}, {ypos = 1, prob = 127}
}, },
data = { data = {

View File

@ -10,7 +10,7 @@ ethereal.birchtree = {
yslice_prob = { yslice_prob = {
{ypos = 0, prob = 127}, {ypos = 0, prob = 127},
{ypos = 3, prob = 127}, {ypos = 3, prob = 127}
}, },
data = { data = {

View File

@ -9,7 +9,7 @@ ethereal.bush = {
yslice_prob = { yslice_prob = {
{ypos = 0, prob = 127}, {ypos = 0, prob = 127},
{ypos = 2, prob = 127}, {ypos = 2, prob = 127}
}, },
data = { data = {

View File

@ -15,7 +15,7 @@ ethereal.frosttrees = {
{ypos = 4, prob = 127}, {ypos = 4, prob = 127},
{ypos = 5, prob = 127}, {ypos = 5, prob = 127},
{ypos = 13, prob = 127}, -- leaves {ypos = 13, prob = 127}, -- leaves
{ypos = 15, prob = 127}, {ypos = 15, prob = 127}
}, },
data = { data = {

View File

@ -11,55 +11,55 @@ ethereal.lemontree = {
yslice_prob = { yslice_prob = {
{ypos = 0, prob = 127}, {ypos = 0, prob = 127},
{ypos = 3, prob = 127}, {ypos = 3, prob = 127}
}, },
data = { data = {
_,_,_,_,_, _,_,_,_,_,
_,_,_,_,_, _,_,_,_,_,
_,_,_,_,_,
_,_,e,_,_,
_,L,L,L,e,
e,L,L,l,_,
_,l,L,L,_,
_,_,l,_,_,
_,_,_,_,_,
_,_,_,_,_, _,_,_,_,_,
_,_,_,_,_, _,_,e,_,_,
_,L,L,l,_, _,L,L,L,e,
l,L,l,L,L, e,L,L,l,_,
L,l,L,L,L, _,l,L,L,_,
L,L,L,l,L, _,_,l,_,_,
_,L,L,L,_,
_,_,_,_,_,
_,_,T,_,_, _,_,_,_,_,
_,_,_,_,_,
_,L,L,l,_,
l,L,l,L,L,
L,l,L,L,L,
L,L,L,l,L,
_,L,L,L,_,
_,_,T,_,_, _,_,T,_,_,
_,_,T,_,_, _,_,T,_,_,
l,e,T,l,l, _,_,T,_,_,
L,L,T,L,l, l,e,T,l,l,
l,L,T,L,L, L,L,T,L,l,
L,L,L,l,L, l,L,T,L,L,
l,L,L,L,l, L,L,L,l,L,
l,L,L,L,l,
_,_,_,_,_,
_,_,_,_,_, _,_,_,_,_,
_,_,_,_,_,
_,L,L,L,_,
L,l,L,L,L,
L,L,L,L,L,
L,L,L,L,l,
_,l,L,L,_,
_,_,_,_,_,
_,_,_,_,_, _,_,_,_,_,
_,_,_,_,_, _,_,_,_,_,
_,_,l,_,_, _,L,L,L,_,
e,L,L,l,_, L,l,L,L,L,
_,l,L,L,_, L,L,L,L,L,
_,L,L,L,e, L,L,L,L,l,
_,_,l,_,_, _,l,L,L,_,
_,_,_,_,_,
_,_,_,_,_,
_,_,_,_,_,
_,_,l,_,_,
e,L,L,l,_,
_,l,L,L,_,
_,L,L,L,e,
_,_,l,_,_,
} }
} }

View File

@ -11,7 +11,7 @@ ethereal.mushroomone = {
yslice_prob = { yslice_prob = {
{ypos = 0, prob = 127}, {ypos = 0, prob = 127},
{ypos = 1, prob = 127}, {ypos = 1, prob = 127},
{ypos = 7, prob = 127}, {ypos = 7, prob = 127}
}, },
data = { data = {

View File

@ -8,81 +8,77 @@ ethereal.olivetree = {
size = {x = 8, y = 9, z = 7}, size = {x = 8, y = 9, z = 7},
data = { data = {
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,L,_,_,_,_,L,_, _,L,_,_,_,_,L,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,L,_,L,L,o,_, _,_,L,_,L,L,o,_,
L,T,L,L,o,L,T,L, L,T,L,L,o,L,T,L,
_,L,_,_,_,_,L,_, _,L,_,_,_,_,L,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,T,_,_,_,_, _,_,_,T,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,L,T,L,_,T,L,_, _,L,T,L,_,T,L,_,
_,L,L,_,L,L,L,_, _,L,L,_,L,L,L,_,
_,_,_,L,L,_,_,_, _,_,_,L,L,_,_,_,
_,_,o,L,L,_,_,_, _,_,o,L,L,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_, _,_,_,T,T,_,_,_,
_,_,L,T,T,_,_,_, _,_,L,T,T,_,_,_,
_,o,L,T,T,T,L,_, _,o,L,T,T,T,L,_,
_,L,L,T,T,L,o,_, _,L,L,T,T,L,o,_,
_,_,L,T,T,L,_,_, _,_,L,T,T,L,_,_,
_,_,L,T,T,L,_,_, _,_,L,T,T,L,_,_,
_,_,_,L,L,_,_,_, _,_,_,L,L,_,_,_,
_,_,_,_,T,_,_,_, _,_,_,_,T,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,L,_,_,_, _,_,_,_,L,_,_,_,
_,_,L,T,L,L,_,_, _,_,L,T,L,L,_,_,
_,_,L,L,T,L,_,_, _,_,L,L,T,L,_,_,
_,_,_,L,L,L,_,_, _,_,_,L,L,L,_,_,
_,_,L,L,L,_,_,_, _,_,L,L,L,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,o,L,_,_,_,_, _,_,o,L,_,_,_,_,
_,L,T,L,L,o,_,_, _,L,T,L,L,o,_,_,
_,_,L,_,L,T,L,_, _,_,L,_,L,T,L,_,
_,_,o,_,_,L,_,_, _,_,o,_,_,L,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,L,_,_,_,_,_, _,_,L,_,_,_,_,_,
_,_,_,_,_,L,_,_, _,_,_,_,_,L,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,
} }
} }

View File

@ -10,7 +10,7 @@ ethereal.orangetree = {
size = {x = 5, y = 6, z = 5}, size = {x = 5, y = 6, z = 5},
yslice_prob = { yslice_prob = {
{ypos = 0, prob = 127}, {ypos = 0, prob = 127}
}, },
data = { data = {

View File

@ -11,7 +11,7 @@ ethereal.palmtree = {
size = {x = 9, y = 9, z = 9}, size = {x = 9, y = 9, z = 9},
yslice_prob = { yslice_prob = {
{ypos = 3, prob = 127}, {ypos = 3, prob = 127}
}, },
data = { data = {

View File

@ -9,7 +9,7 @@ ethereal.pinetree = {
yslice_prob = { yslice_prob = {
{ypos = 0, prob = 127}, {ypos = 0, prob = 127},
{ypos = 4, prob = 127}, {ypos = 4, prob = 127}
}, },
data = { data = {

View File

@ -12,208 +12,208 @@ ethereal.redwood_small_tree = {
{ypos = 1, prob = 127}, {ypos = 1, prob = 127},
{ypos = 2, prob = 127}, {ypos = 2, prob = 127},
{ypos = 3, prob = 127}, {ypos = 3, prob = 127},
{ypos = 4, prob = 127}, {ypos = 4, prob = 127}
}, },
data = { data = {
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,L,L,T,L,L, _,_,_,_,L,L,T,L,L,
_,_,_,_,_,L,L,L,_, _,_,_,_,_,L,L,L,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,L,L,L,L,_,_,_,_, _,L,L,L,L,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,L,L,_,_,_,_, _,_,_,L,L,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,T,_,_, _,_,_,_,_,_,T,_,_,
_,_,_,_,L,L,T,L,L, _,_,_,_,L,L,T,L,L,
_,_,_,_,_,L,L,L,_, _,_,_,_,_,L,L,L,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
L,L,L,L,L,L,_,_,_, L,L,L,L,L,L,_,_,_,
_,_,L,L,_,_,_,_,_, _,_,L,L,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,L,L,L,L,_,_, _,_,_,L,L,L,L,_,_,
_,_,_,L,L,L,_,_,_, _,_,_,L,L,L,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,T,T,_,_, _,_,_,_,_,T,T,_,_,
_,_,_,_,_,L,L,_,L, _,_,_,_,_,L,L,_,L,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
L,L,T,T,L,L,_,_,_, L,L,T,T,L,L,_,_,_,
_,L,L,L,_,_,_,_,_, _,L,L,L,_,_,_,_,_,
_,_,_,_,L,_,_,_,_, _,_,_,_,L,_,_,_,_,
_,L,L,L,L,L,L,_,_, _,L,L,L,L,L,L,_,_,
_,_,L,L,L,L,L,_,_, _,_,L,L,L,L,L,_,_,
_,_,_,L,L,L,_,_,_, _,_,_,L,L,L,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,L,L, _,_,_,_,T,_,_,L,L,
_,_,_,_,T,_,_,_,L, _,_,_,_,T,_,_,_,L,
_,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_,
_,L,L,T,T,_,_,_,_, _,L,L,T,T,_,_,_,_,
_,L,_,_,T,_,_,_,_, _,L,_,_,T,_,_,_,_,
_,_,_,L,T,L,_,_,_, _,_,_,L,T,L,_,_,_,
_,L,L,L,L,L,L,L,_, _,L,L,L,L,L,L,L,_,
_,L,L,L,L,L,L,L,_, _,L,L,L,L,L,L,L,_,
_,_,L,L,L,L,L,_,_, _,_,L,L,L,L,L,_,_,
_,_,_,_,L,_,_,_,_, _,_,_,_,L,_,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_,
_,_,_,T,T,T,T,T,T, _,_,_,T,T,T,T,T,T,
_,_,_,T,T,T,_,L,T, _,_,_,T,T,T,_,L,T,
_,_,_,T,T,T,_,_,L, _,_,_,T,T,T,_,_,L,
L,L,L,T,T,T,_,_,_, L,L,L,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,L,T,T,T,L,_,_, _,_,L,T,T,T,L,_,_,
_,L,L,L,T,L,L,L,_, _,L,L,L,T,L,L,L,_,
_,L,L,L,L,L,L,L,_, _,L,L,L,L,L,L,L,_,
_,_,L,L,L,L,L,_,_, _,_,L,L,L,L,L,_,_,
_,_,_,L,L,L,_,_,_, _,_,_,L,L,L,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_,
_,_,_,T,T,T,_,_,_, _,_,_,T,T,T,_,_,_,
_,_,_,T,T,_,_,_,L, _,_,_,T,T,_,_,_,L,
_,T,T,T,T,_,_,_,L, _,T,T,T,T,_,_,_,L,
L,L,L,_,T,_,_,_,_, L,L,L,_,T,_,_,_,_,
L,L,_,_,T,L,L,L,L, L,L,_,_,T,L,L,L,L,
_,_,_,_,T,_,_,_,_, _,_,_,_,T,_,_,_,_,
_,_,_,L,T,L,_,_,_, _,_,_,L,T,L,_,_,_,
_,L,L,L,L,L,L,L,_, _,L,L,L,L,L,L,L,_,
_,L,L,L,L,L,L,_,_, _,L,L,L,L,L,L,_,_,
_,_,_,L,L,L,_,_,_, _,_,_,L,L,L,_,_,_,
_,_,_,_,L,L,_,_,_, _,_,_,_,L,L,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,T,_,_,_,_,_,_,_, _,T,_,_,_,_,_,_,_,
T,T,L,L,T,T,T,_,_, T,T,L,L,T,T,T,_,_,
L,L,_,_,L,L,T,L,L, L,L,_,_,L,L,T,L,L,
_,_,_,_,_,L,L,L,_, _,_,_,_,_,L,L,L,_,
_,_,_,_,L,_,_,_,_, _,_,_,_,L,_,_,_,_,
_,_,L,L,L,L,L,_,_, _,_,L,L,L,L,L,_,_,
_,_,L,L,L,L,L,_,_, _,_,L,L,L,L,L,_,_,
_,_,_,L,_,_,_,_,_, _,_,_,L,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
L,L,L,L,_,_,_,_,_, L,L,L,L,_,_,_,_,_,
L,L,_,_,L,L,T,L,L, L,L,_,_,L,L,T,L,L,
_,_,_,_,_,L,L,L,_, _,_,_,_,_,L,L,L,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,L,L,L,_,_,_, _,_,_,L,L,L,_,_,_,
_,_,_,L,L,_,_,_,_, _,_,_,L,L,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
L,L,L,_,_,_,_,_,_, L,L,L,_,_,_,_,_,_,
_,_,_,_,L,L,L,L,L, _,_,_,_,L,L,L,L,L,
_,_,_,_,_,_,L,_,_, _,_,_,_,_,_,L,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,L,L,_,_,_, _,_,_,_,L,L,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@ ethereal.sakura_tree = {
yslice_prob = { yslice_prob = {
{ypos = 0, prob = 127}, {ypos = 0, prob = 127},
{ypos = 3, prob = 127}, {ypos = 3, prob = 127},
{ypos = 8, prob = 127}, {ypos = 8, prob = 127}
}, },
data = { data = {
@ -92,5 +92,5 @@ _,_,_,P,P,P,_,_,_,_,
_,_,_,_,P,_,_,_,_,_, _,_,_,_,P,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_, _,_,_,_,_,_,_,_,_,_,
}, }
} }

View File

@ -12,7 +12,7 @@ ethereal.vinetree = {
size = {x = 7, y = 7, z = 7}, size = {x = 7, y = 7, z = 7},
yslice_prob = { yslice_prob = {
{ypos = 0, prob = 127}, {ypos = 0, prob = 127}
}, },
data = { data = {

View File

@ -13,7 +13,7 @@ ethereal.volcanol = {
yslice_prob = { yslice_prob = {
{ypos = 0, prob = 127}, {ypos = 0, prob = 127},
{ypos = 1, prob = 127}, {ypos = 1, prob = 127},
{ypos = 2, prob = 127}, {ypos = 2, prob = 127}
}, },
data = { data = {

View File

@ -9,7 +9,7 @@ ethereal.volcanom = {
size = {x = 6, y = 2, z = 6}, size = {x = 6, y = 2, z = 6},
yslice_prob = { yslice_prob = {
{ypos = 0, prob = 127}, {ypos = 0, prob = 127}
}, },
data = { data = {

View File

@ -2,16 +2,19 @@
-- waterlily -- waterlily
ethereal.waterlily = { ethereal.waterlily = {
size = {x = 1, y = 3, z = 1}, size = {x = 1, y = 3, z = 1},
data = { data = {
{name = "default:sand", param1 = 255}, {name = "default:sand", param1 = 255},
{name = "default:water_source", param1 = 255}, {name = "default:water_source", param1 = 255},
{name = "flowers:waterlily", param1 = 255}, {name = "flowers:waterlily", param1 = 255},
}, }
} }
if ethereal.lilywalk == true then if ethereal.lilywalk == true then
minetest.override_item("flowers:waterlily", { minetest.override_item("flowers:waterlily", {

View File

@ -10,7 +10,7 @@ ethereal.willow = {
yslice_prob = { yslice_prob = {
{ypos = 0, prob = 127}, {ypos = 0, prob = 127},
{ypos = 1, prob = 127}, {ypos = 1, prob = 127}
}, },
data = { data = {

View File

@ -12,7 +12,7 @@ ethereal.yellowtree = {
yslice_prob = { yslice_prob = {
{ypos = 0, prob = 254}, {ypos = 0, prob = 254},
{ypos = 3, prob = 254}, {ypos = 3, prob = 254},
{ypos = 5, prob = 254}, {ypos = 5, prob = 254}
}, },
data = { data = {

View File

@ -163,6 +163,7 @@ add_schem({"ethereal:grove_dirt"}, 0.002, {"mediterranean"}, 5, 35,
-- default large cactus -- default large cactus
if ethereal.desert == 1 then if ethereal.desert == 1 then
minetest.register_decoration({ minetest.register_decoration({
deco_type = "schematic", deco_type = "schematic",
place_on = {"default:desert_sand"}, place_on = {"default:desert_sand"},

View File

@ -1,6 +1,7 @@
local S = ethereal.intllib local S = ethereal.intllib
-- Seaweed -- Seaweed
minetest.register_node("ethereal:seaweed", { minetest.register_node("ethereal:seaweed", {
description = S("Seaweed"), description = S("Seaweed"),
@ -20,6 +21,7 @@ minetest.register_node("ethereal:seaweed", {
groups = {food_seaweed = 1, snappy = 3, flammable = 3}, groups = {food_seaweed = 1, snappy = 3, flammable = 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) after_dig_node = function(pos, node, metadata, digger)
default.dig_up(pos, node, digger) default.dig_up(pos, node, digger)
end end
@ -31,6 +33,7 @@ minetest.register_craft( {
recipe = {"ethereal:seaweed"} recipe = {"ethereal:seaweed"}
}) })
-- agar powder -- agar powder
minetest.register_craftitem("ethereal:agar_powder", { minetest.register_craftitem("ethereal:agar_powder", {
description = S("Agar Powder"), description = S("Agar Powder"),
@ -50,6 +53,7 @@ minetest.register_craft({
} }
}) })
-- Blue Coral -- Blue Coral
minetest.register_node("ethereal:coral2", { minetest.register_node("ethereal:coral2", {
description = S("Blue Glow Coral"), description = S("Blue Glow Coral"),
@ -72,6 +76,7 @@ minetest.register_craft( {
recipe = {{"ethereal:coral2"}} recipe = {{"ethereal:coral2"}}
}) })
-- Orange Coral -- Orange Coral
minetest.register_node("ethereal:coral3", { minetest.register_node("ethereal:coral3", {
description = S("Orange Glow Coral"), description = S("Orange Glow Coral"),
@ -94,6 +99,7 @@ minetest.register_craft( {
recipe = {{"ethereal:coral3"}} recipe = {{"ethereal:coral3"}}
}) })
-- Pink Coral -- Pink Coral
minetest.register_node("ethereal:coral4", { minetest.register_node("ethereal:coral4", {
description = S("Pink Glow Coral"), description = S("Pink Glow Coral"),
@ -116,6 +122,7 @@ minetest.register_craft( {
recipe = {{"ethereal:coral4"}} recipe = {{"ethereal:coral4"}}
}) })
-- Green Coral -- Green Coral
minetest.register_node("ethereal:coral5", { minetest.register_node("ethereal:coral5", {
description = S("Green Glow Coral"), description = S("Green Glow Coral"),
@ -138,7 +145,8 @@ minetest.register_craft( {
recipe = {{"ethereal:coral5"}} recipe = {{"ethereal:coral5"}}
}) })
-- Undersea Sand
-- Undersea Sand (used for growing seaweed and corals)
minetest.register_node("ethereal:sandy", { minetest.register_node("ethereal:sandy", {
description = S("Sandy"), description = S("Sandy"),
tiles = {"default_sand.png"}, tiles = {"default_sand.png"},
@ -150,64 +158,66 @@ minetest.register_node("ethereal:sandy", {
sounds = default.node_sound_sand_defaults() sounds = default.node_sound_sand_defaults()
}) })
-- 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
if ethereal.sealife == 1 then if ethereal.sealife == 1 then
minetest.register_abm({ minetest.register_abm({
label = "Grow coral/seaweed", label = "Grow coral/seaweed",
nodenames = {"ethereal:sandy"}, nodenames = {"ethereal:sandy"},
neighbors = {"group:water"}, neighbors = {"group:water"},
interval = 15, interval = 15,
chance = 10, chance = 10,
catch_up = false, catch_up = false,
action = function(pos, node) action = function(pos, node)
local sel = math.random(6) local sel = math.random(6)
pos.y = pos.y + 1 pos.y = pos.y + 1
local nod = minetest.get_node(pos).name local nod = minetest.get_node(pos).name
if nod == "default:water_source" if nod == "default:water_source"
and sel == 6 then and sel == 6 then
minetest.swap_node(pos, {name = "ethereal:sponge_wet"}) minetest.swap_node(pos, {name = "ethereal:sponge_wet"})
return return
end
if nod == "default:water_source"
and sel > 1 then
minetest.swap_node(pos, {name = "ethereal:coral" .. sel})
return
end
if nod == "ethereal:seaweed"
or sel == 1 then
local height = 0
local high = 14
while height < high
and minetest.get_node(pos).name == "ethereal:seaweed" do
height = height + 1
pos.y = pos.y + 1
end end
if pos.y < 1 if nod == "default:water_source"
and height < high and sel > 1 then
and minetest.get_node(pos).name == "default:water_source" then
minetest.swap_node(pos, {name = "ethereal:seaweed"}) minetest.swap_node(pos, {name = "ethereal:coral" .. sel})
return
end
if nod == "ethereal:seaweed"
or sel == 1 then
local height = 0
local high = 14
while height < high
and minetest.get_node(pos).name == "ethereal:seaweed" do
height = height + 1
pos.y = pos.y + 1
end
if pos.y < 1
and height < high
and minetest.get_node(pos).name == "default:water_source" then
minetest.swap_node(pos, {name = "ethereal:seaweed"})
end
end end
end end
end })
})
end end
-- sponges
-- sponge nodes
minetest.register_node("ethereal:sponge_air", { minetest.register_node("ethereal:sponge_air", {
drawtype = "airlike", drawtype = "airlike",
@ -220,6 +230,12 @@ minetest.register_node("ethereal:sponge_air", {
groups = {not_in_creative_inventory = 1} groups = {not_in_creative_inventory = 1}
}) })
minetest.register_node("ethereal:sponge_wet", {
description = S("Wet sponge"),
tiles = {"ethereal_sponge_wet.png"},
groups = {crumbly = 3},
sounds = default.node_sound_sand_defaults()
})
minetest.register_node("ethereal:sponge", { minetest.register_node("ethereal:sponge", {
description = S("Sponge"), description = S("Sponge"),
@ -259,14 +275,6 @@ minetest.register_node("ethereal:sponge", {
end end
}) })
minetest.register_node("ethereal:sponge_wet", {
description = S("Wet sponge"),
tiles = {"ethereal_sponge_wet.png"},
groups = {crumbly = 3},
sounds = default.node_sound_sand_defaults()
})
-- cook wet sponge into dry sponge -- cook wet sponge into dry sponge
minetest.register_craft({ minetest.register_craft({
type = "cooking", type = "cooking",

View File

@ -22,7 +22,7 @@ local do_stair = function(description, name, node, groups, texture, sound)
description = S(description), description = S(description),
tiles = texture, tiles = texture,
groups = groups, groups = groups,
sounds = sound, sounds = sound
}) })
-- aliases need to be set for previous stairs to avoid unknown nodes -- aliases need to be set for previous stairs to avoid unknown nodes

View File

@ -1,20 +1,23 @@
local S = ethereal.intllib local S = ethereal.intllib
-- 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 = S("Strawberry"), description = S("Strawberry"),
inventory_image = "ethereal_strawberry.png", inventory_image = "ethereal_strawberry.png",
wield_image = "ethereal_strawberry.png", wield_image = "ethereal_strawberry.png",
groups = {food_strawberry = 1, food_berry = 1, flammable = 2}, groups = {food_strawberry = 1, food_berry = 1, flammable = 2},
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
local crop_def = { local def = {
drawtype = "plantlike", drawtype = "plantlike",
tiles = {"ethereal_strawberry_1.png"}, tiles = {"ethereal_strawberry_1.png"},
paramtype = "light", paramtype = "light",
@ -35,58 +38,58 @@ local crop_def = {
} }
--stage 1 --stage 1
minetest.register_node("ethereal:strawberry_1", table.copy(crop_def)) minetest.register_node("ethereal:strawberry_1", table.copy(def))
-- stage 2 -- stage 2
crop_def.tiles = {"ethereal_strawberry_2.png"} def.tiles = {"ethereal_strawberry_2.png"}
minetest.register_node("ethereal:strawberry_2", table.copy(crop_def)) minetest.register_node("ethereal:strawberry_2", table.copy(def))
-- stage 3 -- stage 3
crop_def.tiles = {"ethereal_strawberry_3.png"} def.tiles = {"ethereal_strawberry_3.png"}
minetest.register_node("ethereal:strawberry_3", table.copy(crop_def)) minetest.register_node("ethereal:strawberry_3", table.copy(def))
-- stage 4 -- stage 4
crop_def.tiles = {"ethereal_strawberry_4.png"} def.tiles = {"ethereal_strawberry_4.png"}
minetest.register_node("ethereal:strawberry_4", table.copy(crop_def)) minetest.register_node("ethereal:strawberry_4", table.copy(def))
-- stage 5 -- stage 5
crop_def.tiles = {"ethereal_strawberry_5.png"} def.tiles = {"ethereal_strawberry_5.png"}
minetest.register_node("ethereal:strawberry_5", table.copy(crop_def)) minetest.register_node("ethereal:strawberry_5", table.copy(def))
-- stage 6 -- stage 6
crop_def.tiles = {"ethereal_strawberry_6.png"} def.tiles = {"ethereal_strawberry_6.png"}
crop_def.drop = { def.drop = {
items = { items = {
{items = {"ethereal:strawberry 1"}, rarity = 2}, {items = {"ethereal:strawberry 1"}, rarity = 2},
{items = {"ethereal:strawberry 2"}, rarity = 3} {items = {"ethereal:strawberry 2"}, rarity = 3}
} }
} }
minetest.register_node("ethereal:strawberry_6", table.copy(crop_def)) minetest.register_node("ethereal:strawberry_6", table.copy(def))
-- stage 7 -- stage 7
crop_def.tiles = {"ethereal_strawberry_7.png"} def.tiles = {"ethereal_strawberry_7.png"}
crop_def.drop = { def.drop = {
items = { items = {
{items = {"ethereal:strawberry 1"}, rarity = 1}, {items = {"ethereal:strawberry 1"}, rarity = 1},
{items = {"ethereal:strawberry 2"}, rarity = 3} {items = {"ethereal:strawberry 2"}, rarity = 3}
} }
} }
minetest.register_node("ethereal:strawberry_7", table.copy(crop_def)) minetest.register_node("ethereal:strawberry_7", table.copy(def))
-- stage 8 -- stage 8 (final)
crop_def.tiles = {"ethereal_strawberry_8.png"} def.tiles = {"ethereal_strawberry_8.png"}
crop_def.groups.growing = nil def.groups.growing = nil
crop_def.selection_box = { def.selection_box = {
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -2.5/16, 0.5} fixed = {-0.5, -0.5, -0.5, 0.5, -2.5/16, 0.5}
} }
crop_def.drop = { def.drop = {
items = { items = {
{items = {"ethereal:strawberry 2"}, rarity = 1}, {items = {"ethereal:strawberry 2"}, rarity = 1},
{items = {"ethereal:strawberry 3"}, rarity = 3} {items = {"ethereal:strawberry 3"}, rarity = 3}
} }
} }
minetest.register_node("ethereal:strawberry_8", table.copy(crop_def)) minetest.register_node("ethereal:strawberry_8", table.copy(def))
-- growing routine if farming redo isn't present -- growing routine if farming redo isn't present
@ -114,6 +117,7 @@ else
interval = 9, interval = 9,
chance = 20, chance = 20,
catch_up = false, catch_up = false,
action = function(pos, node) action = function(pos, node)
-- are we on wet soil? -- are we on wet soil?

View File

@ -1,6 +1,7 @@
local S = ethereal.intllib local S = ethereal.intllib
-- Ice Brick -- Ice Brick
minetest.register_node("ethereal:icebrick", { minetest.register_node("ethereal:icebrick", {
description = S("Ice Brick"), description = S("Ice Brick"),
@ -19,6 +20,7 @@ minetest.register_craft({
} }
}) })
-- Snow Brick -- Snow Brick
minetest.register_node("ethereal:snowbrick", { minetest.register_node("ethereal:snowbrick", {
description = S("Snow Brick"), description = S("Snow Brick"),
@ -41,6 +43,7 @@ minetest.register_craft({
} }
}) })
-- If Crystal Spike, Snow near Water, change Water to Ice -- If Crystal Spike, Snow near Water, change Water to Ice
minetest.register_abm({ minetest.register_abm({
label = "Ethereal freeze water", label = "Ethereal freeze water",
@ -52,6 +55,7 @@ minetest.register_abm({
interval = 15, interval = 15,
chance = 4, chance = 4,
catch_up = false, catch_up = false,
action = function(pos, node) action = function(pos, node)
local near = minetest.find_node_near(pos, 1, local near = minetest.find_node_near(pos, 1,
@ -60,9 +64,10 @@ minetest.register_abm({
if near then if near then
minetest.swap_node(near, {name = "default:ice"}) minetest.swap_node(near, {name = "default:ice"})
end end
end, end
}) })
-- If Heat Source near Ice or Snow then melt. -- If Heat Source near Ice or Snow then melt.
minetest.register_abm({ minetest.register_abm({
label = "Ethereal melt snow/ice", label = "Ethereal melt snow/ice",
@ -78,6 +83,7 @@ minetest.register_abm({
interval = 5, interval = 5,
chance = 4, chance = 4,
catch_up = false, catch_up = false,
action = function(pos, node) action = function(pos, node)
local water_node = "default:water" local water_node = "default:water"
@ -90,19 +96,20 @@ minetest.register_abm({
or node.name == "default:snowblock" or node.name == "default:snowblock"
or node.name == "ethereal:icebrick" or node.name == "ethereal:icebrick"
or node.name == "ethereal:snowbrick" then or node.name == "ethereal:snowbrick" then
minetest.swap_node(pos, {name = water_node.."_source"}) minetest.swap_node(pos, {name = water_node .. "_source"})
elseif node.name == "default:snow" then elseif node.name == "default:snow" then
minetest.swap_node(pos, {name = water_node.."_flowing"}) minetest.swap_node(pos, {name = water_node .. "_flowing"})
elseif node.name == "default:dirt_with_snow" then elseif node.name == "default:dirt_with_snow" then
minetest.swap_node(pos, {name = "default:dirt_with_grass"}) minetest.swap_node(pos, {name = "default:dirt_with_grass"})
end end
ethereal.check_falling(pos) ethereal.check_falling(pos)
end, end
}) })
-- If Water Source near Dry Dirt, change to normal Dirt -- If Water Source near Dry Dirt, change to normal Dirt
minetest.register_abm({ minetest.register_abm({
label = "Ethereal wet dry dirt", label = "Ethereal wet dry dirt",
@ -114,6 +121,7 @@ minetest.register_abm({
interval = 15, interval = 15,
chance = 2, chance = 2,
catch_up = false, catch_up = false,
action = function(pos, node) action = function(pos, node)
if node.name == "ethereal:dry_dirt" if node.name == "ethereal:dry_dirt"
@ -127,46 +135,47 @@ minetest.register_abm({
end end
}) })
-- when enabled, drop torches that are touching water -- when enabled, drop torches that are touching water
if ethereal.torchdrop == true and not minetest.get_modpath("real_torch") then if ethereal.torchdrop == true and not minetest.get_modpath("real_torch") then
minetest.register_abm({ minetest.register_abm({
label = "Ethereal drop torch", label = "Ethereal drop torch",
nodenames = {"default:torch", "default:torch_wall", "default:torch_ceiling"}, nodenames = {"default:torch", "default:torch_wall", "default:torch_ceiling"},
neighbors = {"group:water"}, neighbors = {"group:water"},
interval = 5, interval = 5,
chance = 1, chance = 1,
catch_up = false, catch_up = false,
action = function(pos, node)
local num = #minetest.find_nodes_in_area( action = function(pos, node)
{x = pos.x - 1, y = pos.y, z = pos.z},
{x = pos.x + 1, y = pos.y, z = pos.z},
{"group:water"})
if num == 0 then local num = #minetest.find_nodes_in_area(
num = num + #minetest.find_nodes_in_area( {x = pos.x - 1, y = pos.y, z = pos.z},
{x = pos.x, y = pos.y, z = pos.z - 1}, {x = pos.x + 1, y = pos.y, z = pos.z}, {"group:water"})
{x = pos.x, y = pos.y, z = pos.z + 1},
{"group:water"}) if num == 0 then
num = num + #minetest.find_nodes_in_area(
{x = pos.x, y = pos.y, z = pos.z - 1},
{x = pos.x, y = pos.y, z = pos.z + 1}, {"group:water"})
end
if num == 0 then
num = num + #minetest.find_nodes_in_area(
{x = pos.x, y = pos.y + 1, z = pos.z},
{x = pos.x, y = pos.y + 1, z = pos.z}, {"group:water"})
end
if num > 0 then
minetest.set_node(pos, {name = "air"})
minetest.sound_play("fire_extinguish_flame",
{pos = pos, gain = 0.2, max_hear_distance = 10}, true)
minetest.add_item(pos, {name = "default:torch"})
end
end end
})
if num == 0 then
num = num + #minetest.find_nodes_in_area(
{x = pos.x, y = pos.y + 1, z = pos.z},
{x = pos.x, y = pos.y + 1, z = pos.z},
{"group:water"})
end
if num > 0 then
minetest.set_node(pos, {name = "air"})
minetest.sound_play("fire_extinguish_flame",
{pos = pos, gain = 0.2, max_hear_distance = 10})
minetest.add_item(pos, {name = "default:torch"})
end
end
})
end end

View File

@ -1,6 +1,7 @@
local S = ethereal.intllib local S = ethereal.intllib
-- sakura trunk -- sakura trunk
minetest.register_node("ethereal:sakura_trunk", { minetest.register_node("ethereal:sakura_trunk", {
description = S("Sakura Trunk"), description = S("Sakura Trunk"),
@ -31,6 +32,7 @@ minetest.register_craft({
recipe = {{"ethereal:sakura_trunk"}} recipe = {{"ethereal:sakura_trunk"}}
}) })
-- willow trunk -- willow trunk
minetest.register_node("ethereal:willow_trunk", { minetest.register_node("ethereal:willow_trunk", {
description = S("Willow Trunk"), description = S("Willow Trunk"),
@ -61,6 +63,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 = S("Redwood Trunk"), description = S("Redwood Trunk"),
@ -91,6 +94,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 = S("Frost Tree"), description = S("Frost Tree"),
@ -121,6 +125,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 = S("Healing Tree Trunk"), description = S("Healing Tree Trunk"),
@ -151,6 +156,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 = S("Palm Trunk"), description = S("Palm Trunk"),
@ -181,6 +187,7 @@ minetest.register_craft({
recipe = {{"ethereal:palm_trunk"}} recipe = {{"ethereal:palm_trunk"}}
}) })
-- banana trunk -- banana trunk
minetest.register_node("ethereal:banana_trunk", { minetest.register_node("ethereal:banana_trunk", {
description = S("Banana Trunk"), description = S("Banana Trunk"),
@ -211,6 +218,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 = S("Scorched Tree"), description = S("Scorched Tree"),
@ -234,6 +242,7 @@ minetest.register_craft({
} }
}) })
-- mushroom trunk -- mushroom trunk
minetest.register_node("ethereal:mushroom_trunk", { minetest.register_node("ethereal:mushroom_trunk", {
description = S("Mushroom"), description = S("Mushroom"),
@ -248,6 +257,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 = S("Birch Trunk"), description = S("Birch Trunk"),
@ -278,6 +288,7 @@ minetest.register_craft({
recipe = {{"ethereal:birch_trunk"}} recipe = {{"ethereal:birch_trunk"}}
}) })
-- Bamboo (thanks to Nelo-slay on DeviantArt for the free Bamboo base image) -- Bamboo (thanks to Nelo-slay on DeviantArt for the free Bamboo base image)
minetest.register_node("ethereal:bamboo", { minetest.register_node("ethereal:bamboo", {
description = S("Bamboo"), description = S("Bamboo"),
@ -294,6 +305,7 @@ minetest.register_node("ethereal:bamboo", {
}, },
groups = {choppy = 3, oddly_breakable_by_hand = 1, flammable = 2}, groups = {choppy = 3, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
after_dig_node = function(pos, node, metadata, digger) after_dig_node = function(pos, node, metadata, digger)
default.dig_up(pos, node, digger) default.dig_up(pos, node, digger)
end end
@ -305,6 +317,7 @@ minetest.register_craft({
burntime = 2 burntime = 2
}) })
-- olive trunk -- olive trunk
minetest.register_node("ethereal:olive_trunk", { minetest.register_node("ethereal:olive_trunk", {
description = S("Olive Trunk"), description = S("Olive Trunk"),