[ethereal] Update to Git commit 2c24961:

https://github.com/tenplus1/ethereal/tree/2c24961
master
AntumDeluge 2017-05-05 10:18:04 -07:00
parent 7e64cc1da8
commit e0b7a7e863
45 changed files with 876 additions and 690 deletions

View File

@ -105,7 +105,7 @@ The game includes the mods from the default [minetest_game](https://github.com/m
* [mywoodslopes][] ([DWYWPL][lic.mywoodslopes]) -- version: [3a1b531 Git][ver.mywoodslopes] *2016-03-23*
* world/
* [bedrock2][] ([WTFPL][lic.bedrock2]) -- version [1.2.0-0378b61 Git][ver.bedrock2]
* [ethereal][] ([WTFPL][lic.ethereal]) -- version [d0b896e Git][ver.ethereal] ([patched][patch.ethereal]) *2016-09-05* ***UPDT***
* [ethereal][] ([WTFPL][lic.ethereal]) -- version [2c24961 Git][ver.ethereal] *2017-04-23*
* [glow][] (GPL)
* [nether][] ([WTFPL / CC BY-SA](mods/world/nether/README.md))
* [worldedge][] ([DWYWPL](mods/world/worldedge/licence.txt))
@ -359,7 +359,7 @@ The game includes the mods from the default [minetest_game](https://github.com/m
[ver.craftguide]: https://github.com/minetest-mods/craftguide/tree/51a00b9
[ver.creeper]: https://github.com/Rui-Minetest/creeper/tree/036666e
[ver.currency]: https://github.com/minetest-mods/currency/tree/d2ea7c3
[ver.ethereal]: https://github.com/tenplus1/ethereal/tree/d0b896e
[ver.ethereal]: https://github.com/tenplus1/ethereal/tree/2c24961
[ver.helicopter]: https://github.com/SokolovPavel/helicopter/tree/10f1433
[ver.hidename]: https://github.com/AntumDeluge/mtmod-hidename/tree/bb52dbc
[ver.home_gui]: https://github.com/cornernote/minetest-home_gui/tree/f6b5001

View File

@ -5,14 +5,31 @@ Ethereal Mapgen mod for Minetest (works on all except v6)
## Forum Topic
- https://forum.minetest.net/viewtopic.php?f=11&t=14638
## Lucky Blocks
35
## Changelog
### 1.22
- Added coral and silver sand to mapgen (0.4.15 only)
- Replaced ethereal:green_dirt with default:dirt_with_grass for mortrees compatibility
- Mesa biomes are now topped with dirt with dry grass (redwood saplings grow on dry grass)
- Added bonemeal support for moretree's saplings
- Added settings.conf file example so that settings remain after mod update
- Added support for Real Torch so that torches near water drop an unlit torch
- Added support for new leafdecay functions (0.4.15 dev)
- Mapgen will use dirt_with_rainforest_litter for jungles if found
- Added bushes to mapgen
### 1.21
- Saplings need clear space above to grow (depending on height of tree)
- Bonemeal changes to suit new sapling growth
- Fixes and tweaks
- Added default Abm overrides
- Added 4 new plants from baked clay mod to mapgen
- Added swamp biome to outskirts of bamboo areas
### 1.20

View File

@ -1,6 +1,57 @@
local S = ethereal.intllib
-- bone item
minetest.register_craftitem("ethereal:bone", {
description = S("Bone"),
inventory_image = "bone.png",
})
-- bonemeal recipes
minetest.register_craft({
type = "shapeless",
output = 'ethereal:bonemeal 2',
recipe = {'ethereal:bone'},
})
minetest.register_craft({
type = "shapeless",
output = 'ethereal:bonemeal 4',
recipe = {'bones:bones'},
})
minetest.register_craft( {
type = "shapeless",
output = "dye:white 2",
recipe = {"ethereal:bonemeal"},
})
-- have animalmaterials bone craft into bonemeal if found
if minetest.get_modpath('animalmaterials') then
minetest.register_craft({
type = "shapeless",
output = 'ethereal:bonemeal 2',
recipe = {'animalmaterials:bone'},
})
end
-- add bones to dirt
minetest.override_item("default:dirt", {
drop = {
max_items = 1,
items = {
{
items = {'ethereal:bone', 'default:dirt'},
rarity = 30,
},
{
items = {'default:dirt'},
}
}
},
})
local plants = {
"flowers:dandelion_white",
"flowers:dandelion_yellow",
@ -31,6 +82,7 @@ local crops = {
{"ethereal:strawberry_", 8},
{"ethereal:onion_", 5},
{"farming:barley_", 7},
{"farming:hemp_", 8},
}
-- check if sapling has enough height room to grow
@ -47,6 +99,25 @@ local function enough_height(pos, height)
end
end
-- moretrees specific function
local function more_tree(pos, object)
if type(object) == "table" and object.axiom then
-- grow L-system tree
minetest.remove_node(pos)
minetest.spawn_tree(pos, object)
elseif type(object) == "string" and minetest.registered_nodes[object] then
-- place node
minetest.set_node(pos, {name = object})
elseif type(object) == "function" then
-- function
object(pos)
end
end
-- growing routine
local function growth(pointed_thing)
@ -74,7 +145,8 @@ local function growth(pointed_thing)
})
-- 50/50 chance of growing a sapling
if minetest.get_item_group(node.name, "sapling") > 0 then
if minetest.get_item_group(node.name, "sapling") > 0
or minetest.get_item_group(node.name, "ethereal_sapling") > 0 then
if math.random(1, 2) == 1 then
return
@ -139,6 +211,41 @@ local function growth(pointed_thing)
elseif node.name == "ethereal:birch_sapling" then
ethereal.grow_birch_tree(pos)
-- grow moretree's sapling
elseif node.name == "moretrees:beech_sapling" then
more_tree(pos, moretrees.spawn_beech_object)
elseif node.name == "moretrees:apple_tree_sapling" then
more_tree(pos, moretrees.spawn_apple_tree_object)
elseif node.name == "moretrees:oak_sapling" then
more_tree(pos, moretrees.spawn_oak_object)
elseif node.name == "moretrees:sequoia_sapling" then
more_tree(pos, moretrees.spawn_sequoia_object)
elseif node.name == "moretrees:birch_sapling" then
--more_tree(pos, moretrees.spawn_birch_object)
moretrees.grow_birch(pos)
elseif node.name == "moretrees:palm_sapling" then
more_tree(pos, moretrees.spawn_palm_object)
elseif node.name == "moretrees:date_palm_sapling" then
more_tree(pos, moretrees.spawn_date_palm_object)
elseif node.name == "moretrees:spruce_sapling" then
--more_tree(pos, moretrees.spawn_spruce_object)
moretrees.grow_spruce(pos)
elseif node.name == "moretrees:cedar_sapling" then
more_tree(pos, moretrees.spawn_cedar_object)
elseif node.name == "moretrees:poplar_sapling" then
more_tree(pos, moretrees.spawn_poplar_object)
elseif node.name == "moretrees:willow_sapling" then
more_tree(pos, moretrees.spawn_willow_object)
elseif node.name == "moretrees:rubber_tree_sapling" then
more_tree(pos, moretrees.spawn_rubber_tree_object)
elseif node.name == "moretrees:fir_sapling" then
--more_tree(pos, moretrees.spawn_fir_object)
if minetest.find_node_near(pos, 1, {"default:snow"}) then
moretrees.grow_fir_snow(pos)
else
moretrees.grow_fir(pos)
end
-- grow default tree
elseif node.name == "default:sapling"
and enough_height(pos, 7) then
@ -222,79 +329,33 @@ local function growth(pointed_thing)
end
end
-- bone item (use "animalmaterials:bone" if available)
local ethereal_bone = 'ethereal:bone'
if minetest.get_modpath('animalmaterials') then
ethereal_bone = 'animalmaterials:bone'
else
minetest.register_craftitem('ethereal:bone', {
description = S('Bone'),
inventory_image = 'bone.png',
})
end
-- bonemeal item
minetest.register_craftitem("ethereal:bonemeal", {
description = S("Bone Meal"),
inventory_image = "bonemeal.png",
on_use = function(itemstack, user, pointed_thing)
if pointed_thing.type == "node" then
-- Check if node protected
if minetest.is_protected(pointed_thing.under, user:get_player_name()) then
return
-- Check if node protected
if minetest.is_protected(pointed_thing.under, user:get_player_name()) then
return
end
if not minetest.setting_getbool("creative_mode") then
local item = user:get_wielded_item()
item:take_item()
user:set_wielded_item(item)
end
growth(pointed_thing)
itemstack:take_item()
return itemstack
end
end,
})
-- bonemeal recipes
minetest.register_craft({
type = "shapeless",
output = 'ethereal:bonemeal 2',
recipe = {ethereal_bone},
})
minetest.register_craft({
type = "shapeless",
output = 'ethereal:bonemeal 4',
recipe = {'bones:bones'},
})
minetest.register_craft( {
type = "shapeless",
output = "dye:white 2",
recipe = {"ethereal:bonemeal"},
})
-- add bones to dirt
minetest.override_item("default:dirt", {
drop = {
max_items = 1,
items = {
{
items = {ethereal_bone, 'default:dirt'},
rarity = 30,
},
{
items = {'default:dirt'},
}
}
},
})

View File

@ -13,11 +13,11 @@ minetest.register_node("ethereal:crystal_spike", {
sunlight_propagates = true,
walkable = false,
damage_per_second = 1,
groups = {cracky = 1, falling_node = 1, puts_out_fire = 1},
groups = {cracky = 1, falling_node = 1, puts_out_fire = 1, cools_lava = 1},
sounds = default.node_sound_glass_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 0.41, 5 / 16},
},
})
@ -36,13 +36,21 @@ minetest.register_craft({
}
})
minetest.register_craft({
output = "ethereal:crystal_ingot",
recipe = {
{"ethereal:crystal_spike", "default:mese_crystal"},
{"default:mese_crystal", "ethereal:crystal_spike"},
}
})
-- Crystal Block
minetest.register_node("ethereal:crystal_block", {
description = S("Crystal Block"),
tiles = {"crystal_block.png"},
light_source = 9,
is_ground_content = false,
groups = {cracky = 1, level = 2, puts_out_fire = 1},
groups = {cracky = 1, level = 2, puts_out_fire = 1, cools_lava = 1},
sounds = default.node_sound_glass_defaults(),
})
@ -78,7 +86,8 @@ minetest.register_tool("ethereal:sword_crystal", {
},
},
damage_groups = {fleshy = 10},
}
},
sound = {breaks = "default_tool_breaks"},
})
minetest.register_craft({
@ -101,12 +110,13 @@ minetest.register_tool("ethereal:axe_crystal", {
groupcaps = {
choppy = {
times = {[1] = 2.00, [2] = 0.80, [3] = 0.40},
uses = 30,
maxlevel = 2
uses = 40,
maxlevel = 3
},
},
damage_groups = {fleshy = 7},
},
sound = {breaks = "default_tool_breaks"},
})
minetest.register_craft({
@ -118,6 +128,15 @@ minetest.register_craft({
}
})
minetest.register_craft({
output = 'ethereal:axe_crystal',
recipe = {
{'ethereal:crystal_ingot', 'ethereal:crystal_ingot'},
{'default:steel_ingot', 'ethereal:crystal_ingot'},
{'default:steel_ingot', ''},
}
})
-- Crystal Pick (This will last a while)
minetest.register_tool("ethereal:pick_crystal", {
description = S("Crystal Pickaxe"),
@ -133,8 +152,9 @@ minetest.register_tool("ethereal:pick_crystal", {
maxlevel = 3
},
},
damage_groups = {fleshy = 7},
damage_groups = {fleshy = 6},
},
sound = {breaks = "default_tool_breaks"},
})
minetest.register_craft({
@ -151,7 +171,7 @@ minetest.register_tool("ethereal:shovel_crystal", {
description = S("Crystal (soft touch) Shovel"),
inventory_image = "crystal_shovel.png",
wield_image = "crystal_shovel.png^[transformR90",
sound = {breaks = "default_tool_breaks"},
on_use = function(itemstack, user, pointed_thing)
if pointed_thing.type ~= "node" then
@ -173,12 +193,20 @@ minetest.register_tool("ethereal:shovel_crystal", {
minetest.remove_node(pointed_thing.under)
nodeupdate(pos)
ethereal.check_falling(pos)
inv:add_item("main", {name = nn})
itemstack:add_wear(65535 / 100) -- 111 uses
if minetest.setting_getbool("creative_mode") then
minetest.sound_play("default_dirt_footstep", {pos = pos, gain = 0.35})
if not inv:contains_item("main", {name = nn}) then
inv:add_item("main", {name = nn})
end
else
inv:add_item("main", {name = nn})
itemstack:add_wear(65535 / 100) -- 111 uses
end
minetest.sound_play("default_dig_crumbly", {pos = pos, gain = 0.4})
return itemstack
end
@ -208,10 +236,11 @@ minetest.register_tool("ethereal:crystal_gilly_staff", {
})
minetest.register_craft({
type = "shapeless",
output = "ethereal:crystal_gilly_staff",
recipe = {
{"ethereal:green_moss", "ethereal:gray_moss", "ethereal:fiery_moss"},
{"ethereal:crystal_moss", "ethereal:crystal_ingot", "ethereal:mushroom_moss"},
{"", "ethereal:crystal_ingot", ""},
}
"ethereal:green_moss", "ethereal:gray_moss", "ethereal:fiery_moss",
"ethereal:crystal_moss", "ethereal:crystal_ingot", "ethereal:mushroom_moss",
"ethereal:crystal_ingot"
},
})

View File

@ -1,9 +1,11 @@
default
farming
farming?
stairs
flowers
doors
bakedclay?
moreblocks?
moretrees?
intllib?
animalmaterials?
lucky_block?
animalmaterials?

View File

@ -4,7 +4,7 @@ local S = ethereal.intllib
-- override default dirt (to stop caves cutting away dirt)
minetest.override_item("default:dirt", {is_ground_content = ethereal.cavedirt})
-- green dirt
--[[ green dirt
minetest.register_node("ethereal:green_dirt", {
description = S("Green Dirt"),
tiles = {
@ -20,8 +20,11 @@ minetest.register_node("ethereal:green_dirt", {
wet = "farming:soil_wet"
},
drop = "default:dirt",
sounds = default.node_sound_dirt_defaults()
})
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
})]]
minetest.register_alias("ethereal:green_dirt", "default:dirt_with_grass")
-- dry dirt
minetest.register_node("ethereal:dry_dirt", {
@ -64,7 +67,9 @@ for n = 1, #dirts do
wet = "farming:soil_wet"
},
drop = "default:dirt",
sounds = default.node_sound_dirt_defaults()
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
})
end
@ -75,7 +80,8 @@ dirts = {
"ethereal:prairie_dirt", "ethereal:cold_dirt", "ethereal:crystal_dirt",
"ethereal:mushroom_dirt", "ethereal:fiery_dirt", "ethereal:gray_dirt",
"default:dirt_with_grass", "default:dirt_with_dry_grass", "ethereal:green_dirt",
"default:dirt_with_snow", "default:dirt_with_dry_grass"
"default:dirt_with_snow", "default:dirt_with_dry_grass",
"default:dirt_with_rainforest_litter"
}
-- check surrounding grass and change dirt to same colour
@ -102,8 +108,9 @@ local grass_spread = function(pos, node)
local positions, grasses = minetest.find_nodes_in_area(
{x = pos.x - 1, y = pos.y - 2, z = pos.z - 1},
{x = pos.x + 1, y = pos.y + 2, z = pos.z + 1},
{"group:ethereal_grass", "default:dirt_with_grass",
"default:dirt_with_dry_grass", "default:dirt_with_snow"})
-- {"group:ethereal_grass", "default:dirt_with_grass",
-- "default:dirt_with_dry_grass", "default:dirt_with_snow"})
dirts)
-- count new grass nodes
for n = 1, #dirts do
@ -147,16 +154,19 @@ end
-- flower spread, also crystal and fire flower regeneration
local flower_spread = function(pos, node)
local light = minetest.get_node_light(pos)
if not light
or light < 13 then
if (minetest.get_node_light(pos) or 0) < 13 then
return
end
local pos0 = {x = pos.x - 4, y = pos.y - 2, z = pos.z - 4}
local pos1 = {x = pos.x + 4, y = pos.y + 2, z = pos.z + 4}
local num = #minetest.find_nodes_in_area_under_air(pos0, pos1, "group:flora")
local num = #minetest.find_nodes_in_area(pos0, pos1, "group:flora")
-- stop flowers spreading too much just below top of map block
if minetest.find_node_near(pos, 2, "ignore") then
return
end
if num > 3
and node.name == "ethereal:crystalgrass" then
@ -167,15 +177,15 @@ local flower_spread = function(pos, node)
if #grass > 4
and not minetest.find_node_near(pos, 4, {"ethereal:crystal_spike"}) then
grass = grass[math.random(#grass)]
pos = grass[math.random(#grass)]
grass.y = grass.y - 1
pos.y = pos.y - 1
if minetest.get_node(grass).name == "ethereal:crystal_dirt" then
if minetest.get_node(pos).name == "ethereal:crystal_dirt" then
grass.y = grass.y + 1
pos.y = pos.y + 1
minetest.swap_node(grass, {name = "ethereal:crystal_spike"})
minetest.swap_node(pos, {name = "ethereal:crystal_spike"})
end
end
@ -190,15 +200,15 @@ local flower_spread = function(pos, node)
if #grass > 8
and not minetest.find_node_near(pos, 4, {"ethereal:fire_flower"}) then
grass = grass[math.random(#grass)]
pos = grass[math.random(#grass)]
grass.y = grass.y - 1
pos.y = pos.y - 1
if minetest.get_node(grass).name == "ethereal:fiery_dirt" then
if minetest.get_node(pos).name == "ethereal:fiery_dirt" then
grass.y = grass.y + 1
pos.y = pos.y + 1
minetest.swap_node(grass, {name = "ethereal:fire_flower"})
minetest.swap_node(pos, {name = "ethereal:fire_flower"})
end
end
@ -213,17 +223,20 @@ local flower_spread = function(pos, node)
if #seedling > 0 then
seedling = seedling[math.random(#seedling)]
seedling.y = seedling.y + 1
pos = seedling[math.random(#seedling)]
light = minetest.get_node_light(seedling)
if not light
or light < 13 then
-- default farming has desert sand as soil, so dont spread on this
if minetest.get_node(pos).name == "default:desert_sand" then
return
end
minetest.swap_node(seedling, {name = node.name})
pos.y = pos.y + 1
if (minetest.get_node_light(pos) or 0) < 13 then
return
end
minetest.swap_node(pos, {name = node.name})
end
end
@ -310,7 +323,7 @@ for _, ab in pairs(minetest.registered_abms) do
elseif label == "Flower spread"
or node1 == "group:flora" then
--ab.interval = 2
--ab.interval = 1
--ab.chance = 1
ab.nodenames = {"group:flora"}
ab.neighbors = {"group:soil"}
@ -398,3 +411,16 @@ minetest.register_node("ethereal:quicksand2", {
groups = {crumbly = 3, sand = 1, liquid = 3, disable_jump = 1},
sounds = default.node_sound_sand_defaults(),
})
-- craft quicksand
minetest.register_craft({
output = "ethereal:quicksand2",
recipe = {
{"group:sand", "group:sand", "group:sand"},
{"group:sand", "group:water_bucket", "group:sand"},
{"group:sand", "group:sand", "group:sand"},
},
replacements = {
{"group:water_bucket", "bucket:bucket_empty"}
}
})

View File

@ -42,6 +42,8 @@ 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},
@ -63,6 +65,8 @@ for n = 1, #cheat do
})
end
end -- END if
-- Paper (2x3 string = 4 paper)
minetest.register_craft({
output = "default:paper 4",
@ -112,7 +116,7 @@ minetest.register_node("ethereal:candle", {
sounds = default.node_sound_defaults(),
selection_box = {
type = "fixed",
fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 }
fixed = { -0.15, -0.5, -0.15, 0.15, 0, 0.15 }
},
})
@ -163,9 +167,9 @@ minetest.register_node("ethereal:stone_ladder", {
minetest.register_craft({
output = "ethereal:stone_ladder 4",
recipe = {
{"default:cobble", "", "default:cobble"},
{"default:cobble", "default:cobble", "default:cobble"},
{"default:cobble", "", "default:cobble"},
{"group:stone", "", "group:stone"},
{"group:stone", "group:stone", "group:stone"},
{"group:stone", "", "group:stone"},
}
})
@ -215,10 +219,9 @@ minetest.register_node("ethereal:glostone", {
})
minetest.register_craft({
type = "shapeless",
output = "ethereal:glostone",
recipe = {
{"default:torch", "default:stone", "dye:yellow"},
}
recipe = {"default:torch", "default:stone", "dye:yellow"}
})
-- Charcoal Lump
@ -262,6 +265,7 @@ minetest.register_tool("ethereal:light_staff", {
description = S("Staff of Light"),
inventory_image = "light_staff.png",
wield_image = "light_staff.png",
sound = {breaks = "default_tool_breaks"},
stack_max = 1,
on_use = function(itemstack, user, pointed_thing)

View File

@ -71,14 +71,14 @@ minetest.register_craft({
})
-- default ethereal fish
local fish = {
ethereal.fish = {
{"ethereal:fish_raw"},
}
-- xanadu server additional fish
if minetest.get_modpath("xanadu") then
fish[2] = {"mobs:clownfish_raw"}
fish[3] = {"mobs:bluefish_raw"}
ethereal.fish[2] = {"mobs:clownfish_raw"}
ethereal.fish[3] = {"mobs:bluefish_raw"}
end
-- Fishing Rod (Baited)
@ -101,7 +101,7 @@ minetest.register_craftitem("ethereal:fishing_rod_baited", {
or node == "default:river_water_source")
and math.random(1, 100) < 5 then
local type = fish[math.random(1, #fish)][1]
local type = ethereal.fish[math.random(1, #ethereal.fish)][1]
local inv = user:get_inventory()
if inv:room_for_item("main", {name = type}) then

View File

@ -1,16 +1,10 @@
local S = ethereal.intllib
-- fix apples hanging in sky when no tree around
minetest.override_item("default:apple", {
drop = "default:apple",
})
-- Banana (Heals one heart when eaten)
minetest.register_node("ethereal:banana", {
description = S("Banana"),
drawtype = "torchlike",
visual_scale = 1.0,
tiles = {"banana_single.png"},
inventory_image = "banana_single.png",
wield_image = "banana_single.png",
@ -19,7 +13,7 @@ minetest.register_node("ethereal:banana", {
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.5, -0.2, 0.2, 0.2, 0.2}
fixed = {-0.31, -0.5, -0.31, 0.31, 0.5, 0.31}
},
groups = {
fleshy = 3, dig_immediate = 3, flammable = 2,
@ -58,7 +52,6 @@ minetest.register_craft({
minetest.register_node("ethereal:orange", {
description = S("Orange"),
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"farming_orange.png"},
inventory_image = "farming_orange.png",
wield_image = "farming_orange.png",
@ -67,7 +60,7 @@ minetest.register_node("ethereal:orange", {
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.3, -0.2, 0.2, 0.2, 0.2}
fixed = {-0.27, -0.37, -0.27, 0.27, 0.44, 0.27}
},
groups = {
fleshy = 3, dig_immediate = 3, flammable = 2,
@ -111,7 +104,7 @@ minetest.register_node("ethereal:coconut", {
wield_image = "moretrees_coconut.png",
selection_box = {
type = "fixed",
fixed = {-0.35, -0.35, -0.35, 0.35, 0.35, 0.35}
fixed = {-0.31, -0.43, -0.31, 0.31, 0.44, 0.31}
},
groups = {
snappy = 1, oddly_breakable_by_hand = 1, cracky = 1,
@ -133,7 +126,6 @@ minetest.register_craftitem("ethereal:coconut_slice", {
minetest.register_node("ethereal:golden_apple", {
description = S("Golden Apple"),
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"default_apple_gold.png"},
inventory_image = "default_apple_gold.png",
wield_image = "default_apple_gold.png",
@ -142,7 +134,7 @@ minetest.register_node("ethereal:golden_apple", {
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.3, -0.2, 0.2, 0.2, 0.2}
fixed = {-0.2, -0.37, -0.2, 0.2, 0.31, 0.2}
},
groups = {
fleshy = 3, dig_immediate = 3,

View File

@ -1,6 +1,6 @@
--[[
Minetest Ethereal Mod (9th August 2016)
Minetest Ethereal Mod (1st March 2017)
Created by ChinChow
@ -8,12 +8,15 @@
]]
ethereal = {}
ethereal = {} -- DO NOT change settings below, use the settings.conf file
ethereal.version = "1.22"
ethereal.leaftype = 0 -- 0 for 2D plantlike, 1 for 3D allfaces
ethereal.leafwalk = false -- true for walkable leaves, false to fall through
ethereal.cavedirt = true -- caves chop through dirt when true
-- Set following to 1 to enable biome or 0 to disable
ethereal.torchdrop = true -- torches drop when touching water
ethereal.papyruswalk = true -- papyrus can be walked on
ethereal.lilywalk = true -- waterlilies can be walked on
ethereal.xcraft = true -- allow cheat crafts for cobble->gravel->dirt->sand, ice->snow, dry dirt->desert sand
ethereal.glacier = 1 -- Ice glaciers with snow
ethereal.bamboo = 1 -- Bamboo with sprouts
ethereal.mesa = 1 -- Mesa red and orange clay with giant redwood
@ -37,6 +40,19 @@ ethereal.plains = 1 -- Dry dirt with scorched trees
ethereal.savannah = 1 -- Dry yellow grass with acacia tree's
ethereal.fiery = 1 -- Red grass with lava craters
ethereal.sandclay = 1 -- Sand areas with clay underneath
ethereal.swamp = 1 -- Swamp areas with vines on tree's, mushrooms, lilly's and clay sand
ethereal.sealife = 1 -- Enable coral and seaweed
ethereal.reefs = 1 -- Enable new 0.4.15 coral reefs in default
local path = minetest.get_modpath("ethereal")
-- Load new settings if found
local input = io.open(path.."/settings.conf", "r")
if input then
dofile(path .. "/settings.conf")
input:close()
input = nil
end
-- Intllib
local S
@ -47,7 +63,8 @@ else
end
ethereal.intllib = S
local path = minetest.get_modpath("ethereal")
-- Falling node function
ethereal.check_falling = minetest.check_for_falling or nodeupdate
dofile(path .. "/plantlife.lua")
dofile(path .. "/mushroom.lua")
@ -55,8 +72,9 @@ dofile(path .. "/onion.lua")
dofile(path .. "/crystal.lua")
dofile(path .. "/water.lua")
dofile(path .. "/dirt.lua")
dofile(path .. "/leaves.lua")
dofile(path .. "/food.lua")
dofile(path .. "/wood.lua")
dofile(path .. "/leaves.lua")
dofile(path .. "/sapling.lua")
dofile(path .. "/strawberry.lua")
dofile(path .. "/fishing.lua")
@ -65,10 +83,17 @@ dofile(path .. "/sealife.lua")
dofile(path .. "/fences.lua")
dofile(path .. "/gates.lua")
dofile(path .. "/mapgen.lua")
dofile(path .. "/food.lua")
dofile(path .. "/bonemeal.lua")
dofile(path .. "/compatibility.lua")
dofile(path .. "/stairs.lua")
dofile(path .. "/lucky_block.lua")
-- Use bonemeal mod instead of ethereal's own if found
if minetest.get_modpath("bonemeal") then
minetest.register_alias("ethereal:bone", "bonemeal:bone")
minetest.register_alias("ethereal:bonemeal", "bonemeal:bonemeal")
else
dofile(path .. "/bonemeal.lua")
end
if minetest.get_modpath("xanadu") then
dofile(path .. "/plantpack.lua")

View File

@ -11,7 +11,7 @@ end
-- default apple tree leaves
minetest.override_item("default:leaves", {
drawtype = leaftype,
visual_scale = 1.2,
visual_scale = 1.4,
inventory_image = "default_leaves.png",
wield_image = "default_leaves.png",
walkable = ethereal.leafwalk,
@ -20,7 +20,7 @@ minetest.override_item("default:leaves", {
-- default jungle tree leaves
minetest.override_item("default:jungleleaves", {
drawtype = leaftype,
visual_scale = 1.2,
visual_scale = 1.4,
inventory_image = "default_jungleleaves.png",
wield_image = "default_jungleleaves.png",
walkable = ethereal.leafwalk,
@ -29,7 +29,7 @@ minetest.override_item("default:jungleleaves", {
-- default pine tree leaves
minetest.override_item("default:pine_needles", {
drawtype = leaftype,
visual_scale = 1.2,
visual_scale = 1.4,
inventory_image = "default_pine_needles.png",
wield_image = "default_pine_needles.png",
walkable = ethereal.leafwalk,
@ -46,10 +46,9 @@ minetest.override_item("default:pine_needles", {
-- default acacia tree leaves
minetest.override_item("default:acacia_leaves", {
drawtype = leaftype,
-- tiles = {"moretrees_acacia_leaves.png"},
inventory_image = "default_acacia_leaves.png",
wield_image = "default_acacia_leaves.png",
visual_scale = 1.2,
visual_scale = 1.4,
walkable = ethereal.leafwalk,
})
@ -58,7 +57,7 @@ minetest.override_item("default:aspen_leaves", {
drawtype = leaftype,
inventory_image = "default_aspen_leaves.png",
wield_image = "default_aspen_leaves.png",
visual_scale = 1.2,
visual_scale = 1.4,
walkable = ethereal.leafwalk,
})
@ -71,7 +70,7 @@ minetest.register_node("ethereal:willow_twig", {
wield_image = "willow_twig.png",
paramtype = "light",
walkable = ethereal.leafwalk,
visual_scale = 1.2,
visual_scale = 1.4,
waving = 1,
groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2},
drop = {
@ -89,7 +88,7 @@ minetest.register_node("ethereal:willow_twig", {
minetest.register_node("ethereal:redwood_leaves", {
description = S("Redwood Leaves"),
drawtype = leaftype,
visual_scale = 1.2,
visual_scale = 1.4,
tiles = {"redwood_leaves.png"},
inventory_image = "redwood_leaves.png",
wield_image = "redwood_leaves.png",
@ -112,7 +111,7 @@ minetest.register_node("ethereal:redwood_leaves", {
minetest.register_node("ethereal:orange_leaves", {
description = S("Orange Leaves"),
drawtype = leaftype,
visual_scale = 1.2,
visual_scale = 1.4,
tiles = {"orange_leaves.png"},
inventory_image = "orange_leaves.png",
wield_image = "orange_leaves.png",
@ -135,7 +134,7 @@ minetest.register_node("ethereal:orange_leaves", {
minetest.register_node("ethereal:bananaleaves", {
description = S("Banana Leaves"),
drawtype = leaftype,
visual_scale = 1.2,
visual_scale = 1.4,
tiles = {"banana_leaf.png"},
inventory_image = "banana_leaf.png",
wield_image = "banana_leaf.png",
@ -158,7 +157,7 @@ minetest.register_node("ethereal:bananaleaves", {
minetest.register_node("ethereal:yellowleaves", {
description = S("Healing Tree Leaves"),
drawtype = leaftype,
visual_scale = 1.2,
visual_scale = 1.4,
tiles = {"yellow_leaves.png"},
inventory_image = "yellow_leaves.png",
wield_image = "yellow_leaves.png",
@ -184,7 +183,7 @@ minetest.register_node("ethereal:yellowleaves", {
minetest.register_node("ethereal:palmleaves", {
description = S("Palm Leaves"),
drawtype = leaftype,
visual_scale = 1.2,
visual_scale = 1.4,
tiles = {"moretrees_palm_leaves.png"},
inventory_image = "moretrees_palm_leaves.png",
wield_image = "moretrees_palm_leaves.png",
@ -207,7 +206,7 @@ minetest.register_node("ethereal:palmleaves", {
minetest.register_node("ethereal:birch_leaves", {
description = S("Birch Leaves"),
drawtype = leaftype,
visual_scale = 1.2,
visual_scale = 1.4,
tiles = {"moretrees_birch_leaves.png"},
inventory_image = "moretrees_birch_leaves.png",
wield_image = "moretrees_birch_leaves.png",
@ -230,7 +229,7 @@ minetest.register_node("ethereal:birch_leaves", {
minetest.register_node("ethereal:frost_leaves", {
description = S("Frost Leaves"),
drawtype = leaftype,
visual_scale = 1.2,
visual_scale = 1.4,
tiles = {"ethereal_frost_leaves.png"},
inventory_image = "ethereal_frost_leaves.png",
wield_image = "ethereal_frost_leaves.png",
@ -254,7 +253,7 @@ minetest.register_node("ethereal:frost_leaves", {
minetest.register_node("ethereal:bamboo_leaves", {
description = S("Bamboo Leaves"),
drawtype = leaftype,
visual_scale = 1.2,
visual_scale = 1.4,
tiles = {"bamboo_leaves.png"},
inventory_image = "bamboo_leaves.png",
wield_image = "bamboo_leaves.png",
@ -305,6 +304,12 @@ minetest.register_node("ethereal:mushroom_pore", {
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_craft({
type = "fuel",
recipe = "ethereal:mushroom_pore",
burntime = 3,
})
-- hedge block
minetest.register_node("ethereal:bush", {
description = S("Bush"),
@ -323,6 +328,12 @@ minetest.register_craft({
}
})
minetest.register_craft({
type = "fuel",
recipe = "ethereal:bush",
burntime = 1,
})
-- bush block #2
minetest.register_node("ethereal:bush2", {
drawtype = "allfaces_optional",
@ -343,6 +354,12 @@ minetest.register_craft({
}
})
minetest.register_craft({
type = "fuel",
recipe = "ethereal:bush2",
burntime = 1,
})
-- bush block #3
minetest.register_node("ethereal:bush3", {
drawtype = "allfaces_optional",
@ -362,3 +379,68 @@ minetest.register_craft({
{"group:leaves", "group:leaves", "group:leaves"},
}
})
minetest.register_craft({
type = "fuel",
recipe = "ethereal:bush3",
burntime = 1,
})
-- compatibility check for new mt version with leafdecay function
if minetest.registered_nodes["default:dirt_with_rainforest_litter"] then
default.register_leafdecay({
trunks = {"default:tree"},
leaves = {"default:apple", "default:leaves", "ethereal:orange", "ethereal:orange_leaves"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:willow_trunk"},
leaves = {"ethereal:willow_twig"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:redwood_trunk"},
leaves = {"ethereal:redwood_leaves"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:frost_tree"},
leaves = {"ethereal:frost_leaves"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:yellow_trunk"},
leaves = {"ethereal:yellowleaves", "ethereal:golden_apple"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:palm_trunk"},
leaves = {"ethereal:palmleaves", "ethereal:coconut"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:banana_trunk"},
leaves = {"ethereal:bananaleaves", "ethereal:banana"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:birch_trunk"},
leaves = {"ethereal:birch_leaves"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:bamboo"},
leaves = {"ethereal:bamboo_leaves"},
radius = 2
})
end

View File

@ -1,220 +0,0 @@
# German Translation for ethereal mod
# Deutsche Übersetzung der ethereal Mod
# last update: 2016/May/25
# Author: Xanthin
#bonemeal.lua
Bone = Knochen
Bone Meal = Knochenmehl
#crystal.lua
Crystal Spike = Kristallnadel
Crystal Ingot = Kristallbarren
Crystal Block = Kristallblock
Crystal Sword = Kristallschwert
Crystal Axe = Kristallaxt
Crystal Pickaxe = Kristallspitzhacke
Crystal (soft touch) Shovel = Kristallschaufel (Behutsamkeit)
Crystal Gilly Staff = Kristallener Gilly-Stab
#dirt.lua
Green Dirt = Grüne Erde
Dried Dirt = Vertrocknete Erde
Bamboo Dirt = Bambuserde
Jungle Dirt = Tropenerde
Grove Dirt = Hainerde
Prairie Dirt = Prärieerde
Cold Dirt = Kalte Erde
Crystal Dirt = Kristallerde
Mushroom Dirt = Pilzerde
Fiery Dirt = Feuerrote Erde
Gray Dirt = Graue Erde
Red Baked Clay = Roter gebrannter Ton
Orange Baked Clay = Oranger gebrannter Ton
Grey Baked Clay = Grauer gebrannter Ton
Quicksand = Treibsand
#extra.lua
Bamboo Floor = Bambusboden
Palm Wax = Palmwachs
Candle = Kerze
Bowl = Schale
Stone Ladder = Steinleiter
Paper Wall = Papierwand
Glo Stone = Leuchtstein
Lump of Charcoal = Holzkohlestück
Staff of Light = Stab des Lichts
#fences.lua
Scorched Fence = Verbrannter Zaun
Frost Fence = Frostzaun
Redwood Fence = Mammutbaumzaun
Willow Fence = Weidenzaun
Healing Wood Fence = Lebensholzzaun
Palm Fence = Palmzaun
Banana Wood Fence = Bananenholzzaun
Mushroom Fence = Pilzzaun
Birch Fence = Birkenzaun
#fishing.lua
Raw Fish = Roher Fisch
Cooked Fish = Gekochter Fisch
Sashimi = Sashimi
Worm = Wurm
Fishing Rod = Angelrute
Baited Fishing Rod = Angelrute mit Köder
Inventory full, Fish Got Away! = Inventar voll, Fisch entkam!
#food.lua
Banana = Banane
Banana Dough = Bananenteig
Orange = Orange
Pine Nuts = Pinienkerne
Banana Loaf = Bananenbrot
Coconut = Kokosnuss
Coconut Slice = Kokosscheibe
Golden Apple = Goldener Apfel
Hearty Stew = Deftiger Eintopf
Bucket of Cactus Pulp = Eimer Kaktusmark
#gates.lua
Scorched Wood Fence Gate = Verbranntes Holzzauntor
Frost Wood Fence Gate = Frostholzzauntor
Redwood Fence Gate = Mammutbaumzauntor
Willow Wood Fence Gate = Weidenholztor
Healing Wood Fence Gate = Lebensholzzauntor
Palm Wood Fence Gate = Palmholzzauntor
Banana Wood Fence Gate = Bananenholzzauntor
Mushroom Trunk Fence Gate = Pilzstammzauntor
Birch Wood Fence Gate = Birkenholzzauntor
#init.lua
[MOD] Ethereal loaded = [MOD] Ethereal geladen
#leaves.lua
Willow Twig = Weidenrute
Redwood Leaves = Mammutbaumlaub
Orange Leaves = Orangenlaub
Banana Leaves = Bananenblätter
Healing Tree Leaves = Lebensbaumlaub
Palm Leaves = Palmenblätter
Birch Leaves = Birkenlaub
Frost Leaves = Frostlaub
Bamboo Leaves = Bambuslaub
Mushroom Cap = Pilzkappe
Mushroom Pore = Pilzpore
Bush = Busch
Bush #2 = Busch #2
Bush #3 = Busch #3
#mushroom.lua
Mushroom Soup = Pilzsuppe
#onion.lua
Wild Onion = Wilde Zwiebel
#plantlife.lua
Fire Flower = Feuerblume
Fire Dust = Feuerstaub
Vine = Weinrebe
Light String Vine = Leuchtschnurrebe
Fern = Farn
Fern Tubers = Farnsporenkapseln
Fiery Dry Shrub = Feuerroter vertrockneter Strauch
Snowy Grass = Verschneites Gras
Crystal Grass = Kristallgras
Crystal Moss = Kristallmoos
Mushroom Moss = Pilzmoos
Fiery Moss = Feuerrotes Moos
Gray Moss = Graues Moos
Green Moss = Grünes Moos
Red Illumishroom = Roter Leuchtpilz
Green Illumishroom = Grüner Leuchtpilz
Cyan Illumishroom = Türkiser Leuchtpilz
#sapling.lua
Bamboo Sprout = Bambussprosse
Willow Tree Sapling = Weidenbaumsetzling
Healing Tree Sapling = Lebensbaumsetzling
Apple Tree Sapling = Apfelbaumsetzling
Jungle Tree Sapling = Tropenbaumsetzling
Pine Tree Sapling = Piniensetzling
Big Tree Sapling = Großer-Baum-Setzling
Banana Tree Sapling = Bananensetzling
Frost Tree Sapling = Frostbaumsetzling
Mushroom Tree Sapling = Pilzbaumsetzling
Palm Tree Sapling = Palmensetzling
Redwood Tree Sapling = Mammutbaumsetzling
Orange Tree Sapling = Orangenbaumsetzling
Acacia Tree Sapling = Akaziensetzling
Birch Tree Sapling = Birkensetzling
Schematic not found = Schema nicht gefunden
#sealife.lua
Seaweed = Seetang
Blue Coral = Blaue Koralle
Orange Coral = Orange Koralle
Pink Coral = Rosa Koralle
Green Coral = Grüne Koralle
Sandy = Sandy
#stairs.lua
Crystal Block Stair = Kristallblocktreppe
Crystal Block Slab = Kristallblockplatte
Ice Brick Stair = Eisziegeltreppe
Ice Brick Slab = Eisziegelplatte
Snow Brick Stair = Schneeziegeltreppe
Snow Brick Slab = Schneeziegelplatte
Dry Dirt Stair = Vertrocknete Erdtreppe
Dry Dirt Slab = vertrocknete Erdplatte
Mushroom Trunk Stair = Pilzstammtreppe
Mushroom Trunk Slab = Pilzstammplatte
Mushroom Top Stair = Pilzkappentreppe
Mushroom Top Slab = Pilzkappenplatte
Frost Wood Stair = Frostholztreppe
Frost Wood Slab = Frostholzplatte
Healing Wood Stair = Lebensholztreppe
Healing Wood Slab = Lebensholzplatte
Palm Wood Stair = Palmholztreppe
Palm Wood Slab = Palmholzplatte
Birch Wood Stair = Birkenholztreppe
Birch Wood Slab = Birkenholzplatte
Banana Wood Stair = Bananenholztreppe
Banana Wood Slab = Bananenholzplatte
Willow Wood Stair = Weidenholztreppe
Willow Wood Slab = Weidenholzplatte
Redwood Stair = Mammutbaumtreppe
Redwood Slab = Mammutbaumplatte
Bamboo Stair = Bambustreppe
Bamboo Slab = Bambusplatte
Dry Dirt = Vertrocknete Erde
Mushroom Trunk = Pilzstamm
Mushroom Top = Pilzkappe
Healing Wood = Lebensholz
Redwood = Mammutbaum
#strawberry.lua
Strawberry = Erdbeere
#water.lua
Ice Brick = Eisziegel
Snow Brick = Schneeziegel
#wood.lua
Willow Trunk = Weidenstamm
Willow Wood = Weidenholz
Redwood Trunk = Mammutbaumstamm
Redwood Wood = Mammutbaumholz
Frost Tree = Frostbaum
Frost Wood = Frostholz
Healing Tree Trunk = Lebensbaumstamm
Healing Tree Wood = Lebensbaumholz
Palm Trunk = Palmstamm
Palm Wood = Palmholz
Banana Trunk = Bananenstamm
Banana Wood = Bananenholz
Scorched Tree = Verbrannter Baum
Mushroom = Pilz
Birch Trunk = Birkenstamm
Birch Wood = Birkenholz
Bamboo = Bambus

View File

@ -1,218 +0,0 @@
# Template for translations of ethereal mod
# last update: 2016/May/25
#bonemeal.lua
Bone =
Bone Meal =
#crystal.lua
Crystal Spike =
Crystal Ingot =
Crystal Block =
Crystal Sword =
Crystal Axe =
Crystal Pickaxe =
Crystal (soft touch) Shovel =
Crystal Gilly Staff =
#dirt.lua
Green Dirt =
Dried Dirt =
Bamboo Dirt =
Jungle Dirt =
Grove Dirt =
Prairie Dirt =
Cold Dirt =
Crystal Dirt =
Mushroom Dirt =
Fiery Dirt =
Gray Dirt =
Red Baked Clay =
Orange Baked Clay =
Grey Baked Clay =
Quicksand =
#extra.lua
Bamboo Floor =
Palm Wax =
Candle =
Bowl =
Stone Ladder =
Paper Wall =
Glo Stone =
Lump of Charcoal =
Staff of Light =
#fences.lua
Scorched Fence =
Frost Fence =
Redwood Fence =
Willow Fence =
Healing Wood Fence =
Palm Fence =
Banana Wood Fence =
Mushroom Fence =
Birch Fence =
#fishing.lua
Raw Fish =
Cooked Fish =
Sashimi =
Worm =
Fishing Rod =
Baited Fishing Rod =
Inventory full, Fish Got Away! =
#food.lua
Banana =
Banana Dough =
Orange =
Pine Nuts =
Banana Loaf =
Coconut =
Coconut Slice =
Golden Apple =
Hearty Stew =
Bucket of Cactus Pulp =
#gates.lua
Scorched Wood Fence Gate =
Frost Wood Fence Gate =
Redwood Fence Gate =
Willow Wood Fence Gate =
Healing Wood Fence Gate =
Palm Wood Fence Gate =
Banana Wood Fence Gate =
Mushroom Trunk Fence Gate =
Birch Wood Fence Gate =
#init.lua
[MOD] Ethereal loaded =
#leaves.lua
Willow Twig =
Redwood Leaves =
Orange Leaves =
Banana Leaves =
Healing Tree Leaves =
Palm Leaves =
Birch Leaves =
Frost Leaves =
Bamboo Leaves =
Mushroom Cap =
Mushroom Pore =
Bush =
Bush #2 =
Bush #3 =
#mushroom.lua
Mushroom Soup =
#onion.lua
Wild Onion =
#plantlife.lua
Fire Flower =
Fire Dust =
Vine =
Light String Vine =
Fern =
Fern Tubers =
Fiery Dry Shrub =
Snowy Grass =
Crystal Grass =
Crystal Moss =
Mushroom Moss =
Fiery Moss =
Gray Moss =
Green Moss =
Red Illumishroom =
Green Illumishroom =
Cyan Illumishroom =
#sapling.lua
Bamboo Sprout =
Willow Tree Sapling =
Healing Tree Sapling =
Apple Tree Sapling =
Jungle Tree Sapling =
Pine Tree Sapling =
Big Tree Sapling =
Banana Tree Sapling =
Frost Tree Sapling =
Mushroom Tree Sapling =
Palm Tree Sapling =
Redwood Tree Sapling =
Orange Tree Sapling =
Acacia Tree Sapling =
Birch Tree Sapling =
Schematic not found =
#sealife.lua
Seaweed =
Blue Coral =
Orange Coral =
Pink Coral =
Green Coral =
Sandy =
#stairs.lua
Crystal Block Stair =
Crystal Block Slab =
Ice Brick Stair =
Ice Brick Slab =
Snow Brick Stair =
Snow Brick Slab =
Dry Dirt Stair =
Dry Dirt Slab =
Mushroom Trunk Stair =
Mushroom Trunk Slab =
Mushroom Top Stair =
Mushroom Top Slab =
Frost Wood Stair =
Frost Wood Slab =
Healing Wood Stair =
Healing Wood Slab =
Palm Wood Stair =
Palm Wood Slab =
Birch Wood Stair =
Birch Wood Slab =
Banana Wood Stair =
Banana Wood Slab =
Willow Wood Stair =
Willow Wood Slab =
Redwood Stair =
Redwood Slab =
Bamboo Stair =
Bamboo Slab =
Dry Dirt =
Mushroom Trunk =
Mushroom Top =
Healing Wood =
Redwood =
#strawberry.lua
Strawberry =
#water.lua
Ice Brick =
Snow Brick =
#wood.lua
Willow Trunk =
Willow Wood =
Redwood Trunk =
Redwood Wood =
Frost Tree =
Frost Wood =
Healing Tree Trunk =
Healing Tree Wood =
Palm Trunk =
Palm Wood =
Banana Trunk =
Banana Wood =
Scorched Tree =
Mushroom =
Birch Trunk =
Birch Wood =
Bamboo =

View File

@ -0,0 +1,59 @@
-- add lucky blocks
if minetest.get_modpath("lucky_block") then
local epath = minetest.get_modpath("ethereal") .. "/schematics/"
lucky_block:add_schematics({
{"pinetree", epath .. "pinetree.mts", {x = 3, y = 0, z = 3}},
{"palmtree", epath .. "palmtree.mts", {x = 4, y = 0, z = 4}},
{"bananatree", ethereal.bananatree, {x = 3, y = 0, z = 3}},
{"orangetree", ethereal.orangetree, {x = 1, y = 0, z = 1}},
{"birchtree", ethereal.birchtree, {x = 2, y = 0, z = 2}},
})
lucky_block:add_blocks({
{"nod", "ethereal:crystal_spike", 1},
{"sch", "pinetree", 0, false},
{"dro", {"ethereal:orange"}, 10},
{"sch", "appletree", 0, false},
{"dro", {"ethereal:strawberry"}, 10},
{"sch", "bananatree", 0, false},
{"sch", "orangetree", 0, false},
{"dro", {"ethereal:banana"}, 10},
{"sch", "acaciatree", 0, false},
{"dro", {"ethereal:golden_apple"}, 3},
{"sch", "palmtree", 0, false},
{"dro", {"ethereal:tree_sapling", "ethereal:orange_tree_sapling", "ethereal:banana_tree_sapling"}, 10},
{"dro", {"ethereal:green_dirt", "ethereal:prairie_dirt", "ethereal:grove_dirt", "ethereal:cold_dirt"}, 10},
{"dro", {"ethereal:axe_crystal"}, 1},
{"nod", "ethereal:fire_flower", 1},
{"dro", {"ethereal:sword_crystal"}, 1},
{"dro", {"ethereal:pick_crystal"}, 1},
{"sch", "birchtree", 0, false},
{"dro", {"ethereal:fish_raw"}, 1},
{"dro", {"ethereal:shovel_crystal"}, 1},
{"dro", {"ethereal:fishing_rod_baited"}, 1},
{"exp"},
{"dro", {"ethereal:fire_dust"}, 2},
})
if minetest.get_modpath("3d_armor") then
lucky_block:add_blocks({
{"dro", {"3d_armor:helmet_crystal"}, 1},
{"dro", {"3d_armor:chestplate_crystal"}, 1},
{"dro", {"3d_armor:leggings_crystal"}, 1},
{"dro", {"3d_armor:boots_crystal"}, 1},
{"lig"},
})
end
if minetest.get_modpath("shields") then
lucky_block:add_blocks({
{"dro", {"shields:shield_crystal"}, 1},
{"exp"},
})
end
end -- END IF

View File

@ -57,11 +57,45 @@ add_biome("desert", nil, "default:desert_sand", 1, "default:desert_sand", 3,
add_biome("desert_ocean", nil, "default:sand", 1, "default:sand", 2,
"default:desert_stone", nil, nil, nil, nil, -192, 3, 35, 20, ethereal.desert)
add_biome("glacier", "default:snowblock", "default:snowblock", 1,
"default:snowblock", 3, "default:ice", "default:ice", 10, -8, 31000, 0, 50, ethereal.glacier)
if ethereal.glacier == 1 then
minetest.register_biome({
name = "glacier",
node_dust = "default:snowblock",
node_top = "default:snowblock",
depth_top = 1,
node_filler = "default:snowblock",
depth_filler = 3,
node_stone = "default:ice",
node_water_top = "default:ice",
depth_water_top = 10,
--node_water = "",
node_river_water = "default:ice",
node_riverbed = "default:gravel",
depth_riverbed = 2,
y_min = -8,
y_max = 31000,
heat_point = 0,
humidity_point = 50,
})
add_biome("glacier_ocean", "default:snowblock", "default:sand", 1, "default:sand", 3,
nil, nil, nil, nil, nil, -112, -9, 0, 50, ethereal.glacier)
minetest.register_biome({
name = "glacier_ocean",
node_dust = "default:snowblock",
node_top = "default:sand",
depth_top = 1,
node_filler = "default:sand",
depth_filler = 3,
--node_stone = "",
--node_water_top = "",
--depth_water_top = ,
--node_water = "",
--node_river_water = "",
y_min = -112,
y_max = -9,
heat_point = 0,
humidity_point = 50,
})
end
add_biome("clearing", nil, "ethereal:green_dirt", 1, "default:dirt", 3,
nil, nil, nil, nil, nil, 3, 71, 45, 65, 1) -- ADDED
@ -72,7 +106,8 @@ add_biome("bamboo", nil, "ethereal:bamboo_dirt", 1, "default:dirt", 3,
add_biome("bamboo_ocean", nil, "default:sand", 1, "default:sand", 2,
nil, nil, nil, nil, nil, -192, 2, 45, 75, ethereal.bamboo)
add_biome("mesa", nil, "bakedclay:orange", 1, "bakedclay:orange", 15,
--add_biome("mesa", nil, "bakedclay:orange", 1, "bakedclay:orange", 15,
add_biome("mesa", nil, "default:dirt_with_dry_grass", 1, "bakedclay:orange", 15,
nil, nil, nil, nil, nil, 1, 71, 25, 28, ethereal.mesa)
add_biome("mesa_ocean", nil, "default:sand", 1, "default:sand", 2,
@ -102,8 +137,13 @@ add_biome("caves", nil, "default:desert_stone", 3, "air", 8,
add_biome("grayness", nil, "ethereal:gray_dirt", 1, "default:dirt", 3,
nil, nil, nil, nil, nil, 2, 41, 15, 30, ethereal.grayness)
add_biome("grayness_ocean", nil, "default:sand", 1, "default:sand", 2,
nil, nil, nil, nil, nil, -192, 1, 15, 30, ethereal.grayness)
if minetest.registered_nodes["default:silver_sand"] then
add_biome("grayness_ocean", nil, "default:silver_sand", 2, "default:sand", 2,
nil, nil, nil, nil, nil, -192, 1, 15, 30, ethereal.grayness)
else
add_biome("grayness_ocean", nil, "default:sand", 1, "default:sand", 2,
nil, nil, nil, nil, nil, -192, 1, 15, 30, ethereal.grayness)
end
add_biome("grassytwo", nil, "ethereal:green_dirt", 1, "default:dirt", 3,
nil, nil, nil, nil, nil, 1, 91, 15, 40, ethereal.grassytwo)
@ -123,8 +163,13 @@ add_biome("jumble", nil, "ethereal:green_dirt", 1, "default:dirt", 3,
add_biome("jumble_ocean", nil, "default:sand", 1, "default:sand", 2,
nil, nil, nil, nil, nil, -192, 1, 25, 50, ethereal.jumble)
add_biome("junglee", nil, "ethereal:jungle_dirt", 1, "default:dirt", 3,
nil, nil, nil, nil, nil, 1, 71, 30, 60, ethereal.junglee)
if minetest.registered_nodes["default:dirt_with_rainforest_litter"] then
add_biome("junglee", nil, "default:dirt_with_rainforest_litter", 1, "default:dirt", 3,
nil, nil, nil, nil, nil, 1, 71, 30, 60, ethereal.junglee)
else
add_biome("junglee", nil, "ethereal:jungle_dirt", 1, "default:dirt", 3,
nil, nil, nil, nil, nil, 1, 71, 30, 60, ethereal.junglee)
end
add_biome("junglee_ocean", nil, "default:sand", 1, "default:sand", 2,
nil, nil, nil, nil, nil, -192, 1, 30, 60, ethereal.junglee)
@ -171,6 +216,12 @@ add_biome("fiery_ocean", nil, "default:sand", 1, "default:sand", 2,
add_biome("sandclay", nil, "default:sand", 3, "default:clay", 2,
nil, nil, nil, nil, nil, 1, 11, 65, 2, ethereal.sandclay)
add_biome("swamp", nil, "ethereal:green_dirt", 1, "default:dirt", 3,
nil, nil, nil, nil, nil, 1, 7, 80, 90, ethereal.swamp)
add_biome("swamp_ocean", nil, "default:sand", 2, "default:clay", 2,
nil, nil, nil, nil, nil, -192, 1, 80, 90, ethereal.swamp)
--= schematic decorations
local add_schem = function(a, b, c, d, e, f, g)
@ -191,7 +242,8 @@ local add_schem = function(a, b, c, d, e, f, g)
end
-- redwood tree
add_schem({"bakedclay:orange"}, 0.0025, {"mesa"}, 1, 100, path .. "redwood.mts", ethereal.mesa)
--add_schem({"bakedclay:orange"}, 0.0025, {"mesa"}, 1, 100, path .. "redwood.mts", ethereal.mesa)
add_schem({"default:dirt_with_dry_grass"}, 0.0025, {"mesa"}, 1, 100, path .. "redwood.mts", ethereal.mesa)
-- banana tree
add_schem({"ethereal:grove_dirt"}, 0.015, {"grove"}, 1, 100, ethereal.bananatree, ethereal.grove)
@ -212,7 +264,7 @@ add_schem({"ethereal:fiery_dirt"}, 0.01, {"fiery"}, 1, 100, path .. "volcanom.mt
add_schem({"ethereal:fiery_dirt"}, 0.01, {"fiery"}, 1, 100, path .. "volcanol.mts", ethereal.fiery)
-- default jungle tree
add_schem({"ethereal:jungle_dirt"}, 0.08, {"junglee"}, 1, 100, dpath .. "jungle_tree.mts", ethereal.junglee)
add_schem({"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"}, 0.08, {"junglee"}, 1, 100, dpath .. "jungle_tree.mts", ethereal.junglee)
-- willow tree
add_schem({"ethereal:gray_dirt"}, 0.02, {"grayness"}, 1, 100, path .. "willow.mts", ethereal.grayness)
@ -278,6 +330,55 @@ add_schem({"ethereal:bamboo_dirt"}, 0.025, {"bamboo"}, 1, 100, ethereal.bambootr
-- bush
add_schem({"ethereal:bamboo_dirt"}, 0.08, {"bamboo"}, 1, 100, ethereal.bush, ethereal.bamboo)
-- vine tree
add_schem({"ethereal:green_dirt"}, 0.02, {"swamp"}, 1, 100, path .. "vinetree.mts", ethereal.swamp)
-- bushes
if minetest.registered_nodes["default:acacia_bush_stem"] then
minetest.register_decoration({
deco_type = "schematic",
place_on = {"default:dirt_with_grass", "default:dirt_with_snow"},
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = {x = 100, y = 100, z = 100},
seed = 137,
octaves = 3,
persist = 0.7,
},
biomes = {"grassy", "grassytwo", "jumble"},
y_min = 1,
y_max = 31000,
schematic = dpath .. "/bush.mts",
flags = "place_center_x, place_center_z",
})
-- Acacia bush
minetest.register_decoration({
deco_type = "schematic",
place_on = {"default:dirt_with_dry_grass"},
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = {x = 100, y = 100, z = 100},
seed = 90155,
octaves = 3,
persist = 0.7,
},
biomes = {"savannah", "mesa"},
y_min = 1,
y_max = 31000,
schematic = dpath .. "/acacia_bush.mts",
flags = "place_center_x, place_center_z",
})
end
--= simple decorations
local add_node = function(a, b, c, d, e, f, g, h, i, j)
@ -312,6 +413,8 @@ add_node({"bakedclay:red", "bakedclay:orange"}, 0.015, {"mesa"}, 1, 100, {"defau
-- dry grass
add_node({"default:dirt_with_dry_grass"}, 0.25, {"savannah"}, 1, 100, {"default:dry_grass_2",
"default:dry_grass_3", "default:dry_grass_4", "default:dry_grass_5"}, nil, nil, nil, ethereal.savannah)
add_node({"default:dirt_with_dry_grass"}, 0.10, {"mesa"}, 1, 100, {"default:dry_grass_2",
"default:dry_grass_3", "default:dry_grass_4", "default:dry_grass_5"}, nil, nil, nil, ethereal.mesa)
-- flowers & strawberry
add_node({"ethereal:green_dirt"}, 0.025, {"grassy"}, 1, 100, {"flowers:dandelion_white",
@ -348,11 +451,12 @@ add_node({"default:desert_sand"}, 0.005, {"desert"}, 1, 100, {"default:cactus"},
add_node({"ethereal:mushroom_dirt"}, 0.01, {"mushroom"}, 1, 100, {"flowers:mushroom_fertile_red"}, nil, nil, nil, ethereal.mushroom)
local list = {
{"junglee", "ethereal:jungle_dirt", ethereal.junglee},
{"grassy", "ethereal:green_dirt", ethereal.grassy},
{"grassytwo", "ethereal:green_dirt", ethereal.grassytwo},
{"prairie", "ethereal:prairie_dirt", ethereal.prairie},
{"mushroom", "ethereal:mushroom_dirt", ethereal.mushroom}
{"junglee", {"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"}, ethereal.junglee},
{"grassy", {"ethereal:green_dirt"}, ethereal.grassy},
{"grassytwo", {"ethereal:green_dirt"}, ethereal.grassytwo},
{"prairie", {"ethereal:prairie_dirt"}, ethereal.prairie},
{"mushroom", {"ethereal:mushroom_dirt"}, ethereal.mushroom},
{"swamp", {"ethereal:green_dirt"}, ethereal.swamp},
}
-- wild red and brown mushrooms
@ -361,7 +465,7 @@ for _, row in pairs(list) do
if row[3] == 1 then
minetest.register_decoration({
deco_type = "simple",
place_on = {row[2]},
place_on = row[2],
sidelen = 16,
noise_params = {
offset = 0,
@ -381,8 +485,9 @@ end
end
-- jungle grass
add_node({"ethereal:jungle_dirt"}, 0.10, {"junglee"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.junglee)
add_node({"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"}, 0.10, {"junglee"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.junglee)
add_node({"ethereal:green_dirt"}, 0.15, {"jumble"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.jumble)
add_node({"ethereal:green_dirt"}, 0.25, {"swamp"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.swamp)
-- grass
add_node({"ethereal:green_dirt"}, 0.35, {"grassy"}, 1, 100, {"default:grass_2", "default:grass_3",
@ -391,7 +496,7 @@ add_node({"ethereal:green_dirt"}, 0.35, {"grassytwo"}, 1, 100, {"default:grass_2
"default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.grassytwo)
add_node({"ethereal:green_dirt"}, 0.35, {"jumble"}, 1, 100, {"default:grass_2", "default:grass_3",
"default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.jumble)
add_node({"ethereal:jungle_dirt"}, 0.35, {"junglee"}, 1, 100, {"default:grass_2", "default:grass_3",
add_node({"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"}, 0.35, {"junglee"}, 1, 100, {"default:grass_2", "default:grass_3",
"default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.junglee)
add_node({"ethereal:prairie_dirt"}, 0.35, {"prairie"}, 1, 100, {"default:grass_2", "default:grass_3",
"default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.prairie)
@ -399,15 +504,15 @@ add_node({"ethereal:grove_dirt"}, 0.35, {"grove"}, 1, 100, {"default:grass_2", "
"default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.grove)
add_node({"ethereal:bamboo_dirt"}, 0.35, {"bamboo"}, 1, 100, {"default:grass_2", "default:grass_3",
"default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.bamboo)
add_node({"ethereal:green_dirt"}, 0.25, {"clearing"}, 1, 100, {"default:grass_2", "default:grass_3",
add_node({"ethereal:green_dirt"}, 0.35, {"clearing", "swamp"}, 1, 100, {"default:grass_3",
"default:grass_4"}, nil, nil, nil, 1)
-- grass on sand
add_node({"default:sand"}, 0.25, {"sandclay"}, 3, 3, {"default:grass_2", "default:grass_3"}, nil, nil, nil, ethereal.sandclay)
add_node({"default:sand"}, 0.25, {"sandclay"}, 3, 4, {"default:grass_2", "default:grass_3"}, nil, nil, nil, ethereal.sandclay)
-- ferns
add_node({"ethereal:grove_dirt"}, 0.2, {"grove"}, 1, 100, {"ethereal:fern"}, nil, nil, nil, ethereal.grove)
add_node({"ethereal:green_dirt"}, 0.1, {"swamp"}, 1, 100, {"ethereal:fern"}, nil, nil, nil, ethereal.swamp)
-- snow
add_node({"ethereal:cold_dirt"}, 0.8, {"snowy"}, 4, 40, {"default:snow"}, nil, nil, nil, ethereal.snowy)
@ -421,7 +526,8 @@ add_node({"ethereal:prairie_dirt"}, 0.25, {"prairie"}, 1, 100, {"ethereal:onion_
-- papyrus
add_node({"ethereal:green_dirt"}, 0.1, {"grassy"}, 1, 1, {"default:papyrus"}, 4, "default:water_source", 1, ethereal.grassy)
add_node({"ethereal:jungle_dirt"}, 0.1, {"junglee"}, 1, 1, {"default:papyrus"}, 4, "default:water_source", 1, ethereal.junglee)
add_node({"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"}, 0.1, {"junglee"}, 1, 1, {"default:papyrus"}, 4, "default:water_source", 1, ethereal.junglee)
add_node({"ethereal:green_dirt"}, 0.1, {"swamp"}, 1, 1, {"default:papyrus"}, 4, "default:water_source", 1, ethereal.swamp)
--= Farming Redo plants
@ -430,7 +536,7 @@ if farming and farming.mod and farming.mod == "redo" then
print ("[MOD] Ethereal - Farming Redo detected and in use")
-- potato
add_node({"ethereal:jungle_dirt"}, 0.035, {"junglee"}, 1, 100, {"farming:potato_3"}, nil, nil, nil, ethereal.junglee)
add_node({"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"}, 0.035, {"junglee"}, 1, 100, {"farming:potato_3"}, nil, nil, nil, ethereal.junglee)
-- carrot, cucumber, potato, tomato, corn, coffee, raspberry, rhubarb
add_node({"ethereal:green_dirt"}, 0.05, {"grassytwo"}, 1, 100, {"farming:carrot_7", "farming:cucumber_4",
@ -447,7 +553,7 @@ add_node({"ethereal:prairie_dirt"}, 0.05, {"prairie"}, 1, 100, {"farming:carrot_
"farming:raspberry_4", "farming:rhubarb_3", "farming:blueberry_4"}, nil, nil, nil, ethereal.prairie)
-- melon and pumpkin
add_node({"ethereal:jungle_dirt"}, 0.015, {"junglee"}, 1, 1, {"farming:melon_8", "farming:pumpkin_8"}, nil, "default:water_source", 1, ethereal.junglee)
add_node({"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"}, 0.015, {"junglee"}, 1, 1, {"farming:melon_8", "farming:pumpkin_8"}, nil, "default:water_source", 1, ethereal.junglee)
add_node({"ethereal:green_dirt"}, 0.015, {"grassy"}, 1, 1, {"farming:melon_8", "farming:pumpkin_8"}, nil, "default:water_source", 1, ethereal.grassy)
add_node({"ethereal:green_dirt"}, 0.015, {"grassytwo"}, 1, 1, {"farming:melon_8", "farming:pumpkin_8"}, nil, "default:water_source", 1, ethereal.grassytwo)
add_node({"ethereal:green_dirt"}, 0.015, {"jumble"}, 1, 1, {"farming:melon_8", "farming:pumpkin_8"}, nil, "default:water_source", 1, ethereal.jumble)
@ -460,6 +566,28 @@ add_node({"ethereal:green_dirt"}, 0.025, {"grassytwo"}, 1, 100, {"farming:grapeb
add_node({"ethereal:green_dirt"}, 0.025, {"grassy"}, 1, 100, {"farming:grapebush"}, nil, nil, nil, ethereal.grassy)
add_node({"ethereal:prairie_dirt"}, 0.025, {"prairie"}, 1, 100, {"farming:grapebush"}, nil, nil, nil, ethereal.prairie)
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "ethereal:prairie_dirt",
"default:dirt_with_rainforest_litter",
},
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.06,
spread = {x = 100, y = 100, z = 100},
seed = 420,
octaves = 3,
persist = 0.6
},
y_min = 5,
y_max = 35,
decoration = "farming:hemp_7",
spawn_by = "group:tree",
num_spawn_by = 1,
})
end
-- place waterlily in beach areas
@ -471,6 +599,7 @@ local list = {
{"mesa_ocean", ethereal.mesa},
{"grove_ocean", ethereal.grove},
{"grassy_ocean", ethereal.grassy},
{"swamp_ocean", ethereal.swamp},
}
for _, row in pairs(list) do
@ -528,3 +657,118 @@ minetest.register_on_generated(function(minp, maxp)
end
end
end)
-- coral reef (0.4.15 only)
if ethereal.reefs == 1 and minetest.registered_nodes["default:coral_orange"] then
-- override corals so crystal shovel can pick them up intact
minetest.override_item("default:coral_skeleton", {groups = {crumbly = 3}})
minetest.override_item("default:coral_orange", {groups = {crumbly = 3}})
minetest.override_item("default:coral_brown", {groups = {crumbly = 3}})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"default:sand"},
noise_params = {
offset = -0.15,
scale = 0.1,
spread = {x = 100, y = 100, z = 100},
seed = 7013,
octaves = 3,
persist = 1,
},
biomes = {
"desert_ocean",
"grove_ocean",
},
y_min = -8,
y_max = -2,
schematic = dpath .. "corals.mts",
flags = "place_center_x, place_center_z",
rotation = "random",
})
end
-- is baked clay mod active? add new flowers if so
if minetest.get_modpath("bakedclay") then
minetest.register_decoration({
deco_type = "simple",
place_on = {
"ethereal:prairie_grass", "ethereal:green_dirt",
"ethereal:grove_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.004,
spread = {x = 100, y = 100, z = 100},
seed = 7133,
octaves = 3,
persist = 0.6
},
y_min = 10,
y_max = 90,
decoration = "bakedclay:delphinium",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {
"ethereal:prairie_grass", "ethereal:green_dirt",
"ethereal:grove_dirt", "ethereal:bamboo_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.004,
spread = {x = 100, y = 100, z = 100},
seed = 7134,
octaves = 3,
persist = 0.6
},
y_min = 15,
y_max = 90,
decoration = "bakedclay:thistle",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"},
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.01,
spread = {x = 100, y = 100, z = 100},
seed = 7135,
octaves = 3,
persist = 0.6
},
y_min = 1,
y_max = 90,
decoration = "bakedclay:lazarus",
spawn_by = "default:jungletree",
num_spawn_by = 1,
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"ethereal:green_dirt", "default:sand"},
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.009,
spread = {x = 100, y = 100, z = 100},
seed = 7136,
octaves = 3,
persist = 0.6
},
y_min = 1,
y_max = 15,
decoration = "bakedclay:mannagrass",
spawn_by = "group:water",
num_spawn_by = 1,
})
end

View File

@ -18,7 +18,7 @@ minetest.register_node("ethereal:fire_flower", {
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 1 / 2, 5 / 16},
},
on_punch = function(pos, node, puncher)
@ -118,7 +118,7 @@ minetest.register_craft({
minetest.register_node("ethereal:fern", {
description = S("Fern"),
drawtype = "plantlike",
visual_scale = 1.2,
visual_scale = 1.4,
tiles = {"fern.png"},
inventory_image = "fern.png",
wield_image = "fern.png",
@ -138,7 +138,7 @@ minetest.register_node("ethereal:fern", {
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 0.67, 5 / 16},
},
})
@ -153,7 +153,6 @@ minetest.register_craftitem("ethereal:fern_tubers", {
minetest.register_node("ethereal:dry_shrub", {
description = S("Fiery Dry Shrub"),
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"ethereal_dry_shrub.png"},
inventory_image = "ethereal_dry_shrub.png",
wield_image = "ethereal_dry_shrub.png",
@ -166,7 +165,7 @@ minetest.register_node("ethereal:dry_shrub", {
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 4 / 16, 5 / 16},
},
})
@ -187,7 +186,7 @@ minetest.register_node("ethereal:snowygrass", {
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 5 / 16, 5 / 16},
},
})
@ -208,7 +207,7 @@ minetest.register_node("ethereal:crystalgrass", {
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 5 / 16, 5 / 16},
},
})
@ -219,12 +218,14 @@ function ethereal.add_moss(typ, descr, texture, receipe_item)
description = S(descr .. " Moss"),
tiles = {texture},
groups = {crumbly = 3},
sounds = default.node_sound_dirt_defaults()
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.4}})
})
minetest.register_craft({
type = "shapeless",
output = "ethereal:"..typ.."_moss",
recipe = {{"default:dirt", receipe_item }}
recipe = {"default:dirt", receipe_item }
})
end
@ -249,7 +250,7 @@ minetest.register_node("ethereal:illumishroom", {
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.47, 6 / 16},
},
})
@ -267,7 +268,7 @@ minetest.register_node("ethereal:illumishroom2", {
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.47, 6 / 16},
},
})
@ -285,6 +286,6 @@ minetest.register_node("ethereal:illumishroom3", {
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.47, 6 / 16},
},
})

View File

@ -81,7 +81,7 @@ minetest.register_decoration({
place_on = {
"ethereal:prairie_grass", "ethereal:green_dirt",
"ethereal:grove_dirt", "ethereal:jungle_grass",
"ethereal:gray_dirt"
"ethereal:gray_dirt", "default:dirt_with_rainforest_litter"
},
sidelen = 16,
fill_ratio = 0.005,
@ -96,7 +96,7 @@ minetest.register_decoration({
minetest.register_decoration({
deco_type = "simple",
place_on = {"ethereal:jungle_dirt", "ethereal:green_dirt"},
place_on = {"ethereal:jungle_dirt", "ethereal:green_dirt", "default:dirt_with_rainforest_litter"},
sidelen = 16,
fill_ratio = 0.007,
biomes = {"junglee", "jumble"},
@ -144,10 +144,10 @@ minetest.register_decoration({
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:sand", "default:green_dirt"},
place_on = {"default:sand", "ethereal:green_dirt"},
sidelen = 16,
fill_ratio = 0.015,
biomes = {"sandclay", "grassy_ocean", "grassy", "grassytwo", "jumble"},
biomes = {"sandclay", "grassy_ocean", "grassy", "grassytwo", "jumble", "swamp"},
decoration = {
"xanadu:wetlands_cattails", "xanadu:wetlands_pickerel",
"xanadu:wetlands_mannagrass", "xanadu:wetlands_turtle"
@ -166,7 +166,8 @@ minetest.register_decoration({
"ethereal:dirt_with_snow", "ethereal:jungle_dirt",
"ethereal:prairie_dirt", "ethereal:grove_dirt",
"ethereal:dry_dirt", "ethereal:fiery_dirt", "default:sand",
"default:desert_sand", "xanadu:red", "ethereal:bamboo_dirt"
"default:desert_sand", "xanadu:red", "ethereal:bamboo_dirt",
"default:dirt_with_rainforest_litter"
},
sidelen = 16,
fill_ratio = 0.004,

View File

@ -13,14 +13,14 @@ minetest.register_node("ethereal:bamboo_sprout", {
walkable = false,
groups = {
snappy = 3, attached_node = 1, flammable = 2,
dig_immediate = 3, sapling = 1
dig_immediate = 3, ethereal_sapling = 1
},
sounds = default.node_sound_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 0, 4 / 16}
},
on_use = minetest.item_eat(-2),
on_use = minetest.item_eat(2),
grown_height = 11,
})
@ -30,7 +30,6 @@ ethereal.register_sapling = function(name, desc, texture, height)
minetest.register_node(name .. "_sapling", {
description = S(desc .. " Tree Sapling"),
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {texture .. ".png"},
inventory_image = texture .. ".png",
wield_image = texture .. ".png",
@ -40,13 +39,13 @@ ethereal.register_sapling = function(name, desc, texture, height)
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
},
groups = {
snappy = 2, dig_immediate = 3, flammable = 2,
ethereal_sapling = 1, sapling = 1, attached_node = 1
ethereal_sapling = 1, attached_node = 1, sapling = 1
},
sounds = default.node_sound_defaults(),
sounds = default.node_sound_leaves_defaults(),
grown_height = height,
})
end
@ -165,7 +164,8 @@ ethereal.grow_sapling = function (pos, node)
ethereal.grow_yellow_tree(pos)
elseif node.name == "ethereal:big_tree_sapling"
and under == "ethereal:green_dirt" then
--and under == "ethereal:green_dirt" then
and under == "default:dirt_with_grass" then
ethereal.grow_big_tree(pos)
elseif node.name == "ethereal:banana_tree_sapling"
@ -189,7 +189,8 @@ ethereal.grow_sapling = function (pos, node)
ethereal.grow_willow_tree(pos)
elseif node.name == "ethereal:redwood_sapling"
and under == "bakedclay:red" then
--and under == "bakedclay:red" then
and under == "default:dirt_with_dry_grass" then
ethereal.grow_redwood_tree(pos)
elseif node.name == "ethereal:orange_tree_sapling"
@ -201,7 +202,8 @@ ethereal.grow_sapling = function (pos, node)
ethereal.grow_bamboo_tree(pos)
elseif node.name == "ethereal:birch_sapling"
and under == "ethereal:green_dirt" then
--and under == "ethereal:green_dirt" then
and under == "default:dirt_with_grass" then
ethereal.grow_birch_tree(pos)
end
@ -225,3 +227,11 @@ minetest.register_abm({
ethereal.grow_sapling(pos, node)
end,
})
--[[ burn saplings
minetest.register_craft({
type = "fuel",
recipe = "group:ethereal_sapling",
burntime = 10,
})
]]

View File

@ -76,7 +76,10 @@ ethereal.bambootree = {
},
}
minetest.override_item("default:papyrus", {
walkable = true,
sunlight_propagates = true
})
if ethereal.papyruswalk == true then
minetest.override_item("default:papyrus", {
walkable = true,
sunlight_propagates = true
})
end

Binary file not shown.

View File

@ -12,6 +12,9 @@ ethereal.waterlily = {
},
}
minetest.override_item("flowers:waterlily", {
walkable = true,
})
if ethereal.lilywalk == true then
minetest.override_item("flowers:waterlily", {
walkable = true,
})
end

View File

@ -41,7 +41,7 @@ minetest.register_node("ethereal:coral2", {
paramtype = "light",
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 1 / 4, 6 / 16},
},
light_source = 3,
groups = {snappy = 3},
@ -64,7 +64,7 @@ minetest.register_node("ethereal:coral3", {
paramtype = "light",
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 1 / 4, 6 / 16},
},
light_source = 3,
groups = {snappy = 3},
@ -87,7 +87,7 @@ minetest.register_node("ethereal:coral4", {
paramtype = "light",
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 8 / 16, 6 / 16},
},
light_source = 3,
groups = {snappy = 3},
@ -110,7 +110,7 @@ minetest.register_node("ethereal:coral5", {
paramtype = "light",
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 3 / 16, 6 / 16},
},
light_source = 3,
groups = {snappy = 3},
@ -136,6 +136,7 @@ minetest.register_node("ethereal:sandy", {
})
-- randomly generate coral or seaweed and have seaweed grow up to 14 high
if ethereal.sealife == 1 then
minetest.register_abm({
label = "Grow coral/seaweed",
nodenames = {"ethereal:sandy"},
@ -185,3 +186,4 @@ minetest.register_abm({
end,
})
end

View File

@ -0,0 +1,41 @@
--[[
Ethereal Settings can be changed here and kept even after the mod
has been updated
--]]
ethereal.leaftype = 0 -- 0 for 2D plantlike, 1 for 3D allfaces
ethereal.leafwalk = false -- true for walkable leaves, false to fall through
ethereal.cavedirt = true -- caves chop through dirt when true
ethereal.torchdrop = true -- torches drop when touching water
ethereal.papyruswalk = true -- papyrus can be walked on
ethereal.lilywalk = true -- waterlilies can be walked on
ethereal.xcraft = true -- allow cheat crafts for cobble->gravel->dirt->sand, ice->snow, dry dirt->desert sand
-- Set following to 1 to enable biome or 0 to disable
ethereal.glacier = 1 -- Ice glaciers with snow
ethereal.bamboo = 1 -- Bamboo with sprouts
ethereal.mesa = 1 -- Mesa red and orange clay with giant redwood
ethereal.alpine = 1 -- Snowy grass
ethereal.healing = 1 -- Snowy peaks with healing trees
ethereal.snowy = 1 -- Cold grass with pine trees and snow spots
ethereal.frost = 1 -- Blue dirt with blue/pink frost trees
ethereal.grassy = 1 -- Green grass with flowers and trees
ethereal.caves = 1 -- Desert stone ares with huge caverns underneath
ethereal.grayness = 1 -- Grey grass with willow trees
ethereal.grassytwo = 1 -- Sparse trees with old trees and flowers
ethereal.prairie = 1 -- Flowery grass with many plants and flowers
ethereal.jumble = 1 -- Green grass with trees and jungle grass
ethereal.junglee = 1 -- Jungle grass with tall jungle trees
ethereal.desert = 1 -- Desert sand with cactus
ethereal.grove = 1 -- Banana groves and ferns
ethereal.mushroom = 1 -- Purple grass with giant mushrooms
ethereal.sandstone = 1 -- Sandstone with smaller cactus
ethereal.quicksand = 1 -- Quicksand banks
ethereal.plains = 1 -- Dry dirt with scorched trees
ethereal.savannah = 1 -- Dry yellow grass with acacia tree's
ethereal.fiery = 1 -- Red grass with lava craters
ethereal.sandclay = 1 -- Sand areas with clay underneath
ethereal.swamp = 1 -- Swamp areas with vines on tree's, mushrooms, lilly's and clay sand
ethereal.sealife = 1 -- Enable coral and seaweed
ethereal.reefs = 1 -- Enable new coral reefs in default

View File

@ -5,21 +5,21 @@ local S = ethereal.intllib
if stairs and stairs.mod and stairs.mod == "redo" then
stairs.register_all("crystal_block", "ethereal:crystal_block",
{cracky = 1, level = 2},
{cracky = 1, level = 2, puts_out_fire = 1, cools_lava = 1},
{"crystal_block.png"},
S("Crystal Block Stair"),
S("Crystal Block Slab"),
default.node_sound_glass_defaults())
stairs.register_all("icebrick", "ethereal:icebrick",
{crumbly = 3, melts = 1},
{cracky = 3, puts_out_fire = 1, cools_lava = 1},
{"brick_ice.png"},
S("Ice Brick Stair"),
S("Ice Brick Slab"),
default.node_sound_glass_defaults())
stairs.register_all("snowbrick", "ethereal:snowbrick",
{crumbly = 3, melts = 1},
{crumbly = 3, puts_out_fire = 1, cools_lava = 1},
{"brick_snow.png"},
S("Snow Brick Stair"),
S("Snow Brick Slab"),
@ -31,8 +31,8 @@ stairs.register_all("snowbrick", "ethereal:snowbrick",
stairs.register_all("dry_dirt", "ethereal:dry_dirt",
{crumbly = 3},
{"ethereal_dry_dirt.png"},
S("Dry Dirt Stair"),
S("Dry Dirt Slab"),
S("Dried Dirt Stair"),
S("Dried Dirt Slab"),
default.node_sound_dirt_defaults())
stairs.register_all("mushroom_trunk", "ethereal:mushroom_trunk",
@ -111,21 +111,21 @@ elseif minetest.global_exists("stairsplus") then
stairsplus:register_all("ethereal", "crystal_block", "ethereal:crystal_block", {
description = S("Crystal block"),
tiles = {"crystal_block.png"},
groups = {cracky = 1, falling_node = 1, puts_out_fire = 1},
groups = {cracky = 1, falling_node = 1, puts_out_fire = 1, cools_lava = 1},
sounds = default.node_sound_glass_defaults(),
})
stairsplus:register_all("ethereal", "icebrick", "ethereal:icebrick", {
description = S("Ice Brick"),
tiles = {"brick_ice.png"},
groups = {crumbly = 3, melts = 1},
groups = {cracky = 3, puts_out_fire = 1, cools_lava = 1},
sounds = default.node_sound_glass_defaults(),
})
stairsplus:register_all("ethereal", "snowbrick", "ethereal:snowbrick", {
description = S("Snow Brick"),
tiles = {"brick_snow.png"},
groups = {crumbly = 3, melts = 1},
groups = {crumbly = 3, puts_out_fire = 1, cools_lava = 1},
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_snow_footstep", gain = 0.25},
dug = {name = "default_snow_footstep", gain = 0.75},
@ -133,7 +133,7 @@ stairsplus:register_all("ethereal", "snowbrick", "ethereal:snowbrick", {
})
stairsplus:register_all("ethereal", "dry_dirt", "ethereal:dry_dirt", {
description = S("Dry Dirt"),
description = S("Dried Dirt"),
tiles = {"ethereal_dry_dirt.png"},
groups = {crumbly = 3},
sounds = default.node_sound_dirt_defaults(),
@ -213,34 +213,35 @@ stairsplus:register_all("ethereal", "bamboo_wood", "ethereal:bamboo_floor", {
else
stairs.register_stair_and_slab("crystal_block", "ethereal:crystal_block",
{cracky = 1, level = 2},
{cracky = 1, level = 2, puts_out_fire = 1, cools_lava = 1},
{"crystal_block.png"},
S("Crystal Block Stair"),
S("Crystal Block Slab"),
default.node_sound_glass_defaults())
stairs.register_stair_and_slab("icebrick", "ethereal:icebrick",
{crumbly = 3, melts = 1},
{cracky = 3, puts_out_fire = 1, cools_lava = 1},
{"brick_ice.png"},
S("Ice Brick Stair"),
S("Ice Brick Slab"),
default.node_sound_glass_defaults())
stairs.register_stair_and_slab("snowbrick", "ethereal:snowbrick",
{crumbly = 3, melts = 1},
{crumbly = 3, puts_out_fire = 1, cools_lava = 1},
{"brick_snow.png"},
S("Snow Brick Stair"),
S("Snow Brick Slab"),
default.node_sound_dirt_defaults({
footstep = {name = "default_snow_footstep", gain = 0.25},
dug = {name = "default_snow_footstep", gain = 0.75},
footstep = {name = "default_snow_footstep", gain = 0.15},
dug = {name = "default_snow_footstep", gain = 0.2},
dig = {name = "default_snow_footstep", gain = 0.2}
}))
stairs.register_stair_and_slab("dry_dirt", "ethereal:dry_dirt",
{crumbly = 3},
{"ethereal_dry_dirt.png"},
S("Dry Dirt Stair"),
S("Dry Dirt Slab"),
S("Dried Dirt Stair"),
S("Dried Dirt Slab"),
default.node_sound_dirt_defaults())
stairs.register_stair_and_slab("mushroom_trunk", "ethereal:mushroom_trunk",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 188 B

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 473 B

After

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 754 B

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 469 B

After

Width:  |  Height:  |  Size: 557 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 716 B

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 559 B

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 735 B

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 515 B

After

Width:  |  Height:  |  Size: 535 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 677 B

After

Width:  |  Height:  |  Size: 316 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 384 B

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 467 B

After

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 749 B

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 B

After

Width:  |  Height:  |  Size: 527 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 601 B

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 565 B

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 702 B

After

Width:  |  Height:  |  Size: 316 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 465 B

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 829 B

After

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -8,7 +8,7 @@ minetest.register_node("ethereal:icebrick", {
paramtype = "light",
freezemelt = "default:water_source",
is_ground_content = false,
groups = {cracky = 3, melts = 1},
groups = {cracky = 3, puts_out_fire = 1, cools_lava = 1},
sounds = default.node_sound_glass_defaults(),
})
@ -27,10 +27,11 @@ minetest.register_node("ethereal:snowbrick", {
paramtype = "light",
freezemelt = "default:water_source",
is_ground_content = false,
groups = {crumbly = 3, melts = 1},
groups = {crumbly = 3, puts_out_fire = 1, cools_lava = 1},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_snow_footstep", gain = 0.25},
dug = {name="default_snow_footstep", gain = 0.75},
footstep = {name = "default_snow_footstep", gain = 0.15},
dug = {name = "default_snow_footstep", gain = 0.2},
dig = {name = "default_snow_footstep", gain = 0.2},
}),
})
@ -73,7 +74,7 @@ minetest.register_abm({
},
neighbors = {
"fire:basic_fire", "default:lava_source", "default:lava_flowing",
"default:furnace_active", "default:torch"
"default:furnace_active", "group:torch", "default:torch"
},
interval = 5,
chance = 4,
@ -99,7 +100,7 @@ minetest.register_abm({
minetest.swap_node(pos, {name = "default:dirt_with_grass"})
end
nodeupdate(pos)
ethereal.check_falling(pos)
end,
})
@ -121,10 +122,21 @@ minetest.register_abm({
end,
})
-- If torch touching water then drop as item
-- If torch touching water then drop as item (when enabled)
if ethereal.torchdrop == true then
local torch_drop = "default:torch"
local drop_sound = "fire_extinguish_flame"
if minetest.get_modpath("real_torch") then
torch_drop = "real_torch:torch"
drop_sound = "real_torch_extinguish"
end
minetest.register_abm({
label = "Ethereal drop torch",
nodenames = {"default:torch"},
nodenames = {"default:torch", "default:torch_wall", "default:torch_ceiling",
"real_torch:torch", "real_torch:torch_wall", "real_torch:torch_ceiling"},
neighbors = {"group:water"},
interval = 5,
chance = 1,
@ -136,21 +148,30 @@ minetest.register_abm({
{x = pos.x + 1, y = pos.y, z = pos.z},
{"group:water"})
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"})
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
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"})
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.swap_node(pos, {name = "air"})
minetest.set_node(pos, {name = "air"})
minetest.add_item(pos, {name = node.name})
minetest.sound_play({name = drop_sound, gain = 0.2},
{pos = pos, max_hear_distance = 10})
minetest.add_item(pos, {name = torch_drop})
end
end,
})
end