readd ethereal, adjust hudbar text.

master
MeseCraft 2020-12-26 03:17:40 -06:00
parent 9bbe2aad30
commit dc6bbb5e07
277 changed files with 5625 additions and 2197 deletions

View File

@ -1,3 +1,3 @@
local path = minetest.get_modpath("decorations_sea")
dofile(path .. "/nodes.lua")
dofile(path .. "/mapgen.lua")
dofile(path .. "/mapgen.lua")

View File

@ -6,10 +6,15 @@ Ethereal Mapgen mod for Minetest (works on all except v6)
- https://forum.minetest.net/viewtopic.php?f=11&t=14638
## Lucky Blocks
42
45
## Changelog
### 1.28
- Added new Meditteranean biome with Lemon and Olive trees (thanks Felfa)
- Added Candied Lemon and Olive Oil items and recipe
### 1.27
- Added Etherium ore and dust
@ -17,6 +22,9 @@ Ethereal Mapgen mod for Minetest (works on all except v6)
- Added sponges that spawn near coral, dry sponge in furnace to soak up water
- Added new savanna dirt and decorations
- Use default grass abms
- Split and re-write mapgen files for tidier generation
- Giant Mushroom tops now decay when trunk removed
- Added Blue Marble to grey biomes and Blue Marble Tile recipe
### 1.26

347
mods/ethereal/biomes.lua Normal file
View File

@ -0,0 +1,347 @@
-- clear default mapgen biomes, decorations but keep ores
--minetest.clear_registered_biomes()
--minetest.clear_registered_decorations()
--minetest.clear_registered_ores()
local S = ethereal.intllib
-- Blue Marble Nodes
minetest.register_node("ethereal:blue_marble", {
description = S("Blue Marble"),
tiles = {"ethereal_blue_marble.png"},
groups = {cracky = 1, stone = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("ethereal:blue_marble_tile", {
description = S("Blue Marble Tile"),
tiles = {"ethereal_blue_marble_tile.png"},
groups = {cracky = 1, stone = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = "ethereal:blue_marble_tile 9",
recipe = {
{"ethereal:blue_marble", "ethereal:blue_marble", "ethereal:blue_marble"},
{"ethereal:blue_marble", "ethereal:blue_marble", "ethereal:blue_marble"},
{"ethereal:blue_marble", "ethereal:blue_marble", "ethereal:blue_marble"},
}
})
-- helper strings
local tmp, tmp2
-- helper function
local add_biome = function(a, l, m, n, o, p, b, c, d, e, f, g, nd, na, ns)
-- if not 1 then biome disabled, don't add
if p ~= 1 then return end
minetest.register_biome({
name = a,
node_dust = b,
node_top = c,
depth_top = d,
node_filler = e,
depth_filler = f,
node_stone = g,
-- node_water_top = h,
-- depth_water_top = i,
-- node_water = j,
-- node_river_water = k,
y_min = l,
y_max = m,
heat_point = n,
humidity_point = o,
node_dungeon = nd or "default:cobble",
node_dungeon_alt = (nd and "") or "default:mossycobble",
node_dungeon_stair = ns or "stairs:stair_cobble",
})
end
-- always registered biomes
add_biome("mountain", 140, 31000, 50, 50, 1,
nil, "default:snow", 1, "default:snowblock", 2)
add_biome("clearing", 3, 71, 45, 65, 1,
nil, "default:dirt_with_grass", 1, "default:dirt", 3)
add_biome("underground", -31000, -192, 50, 50, 1,
nil, nil, nil, nil, nil)
-- biomes with disable setting
tmp = "default:desert_stone"
add_biome("desert", 3, 23, 35, 20, ethereal.desert,
nil, "default:desert_sand", 1, "default:desert_sand", 3, tmp,
"default:desert_stone", nil, "stairs:stair_desert_stone")
add_biome("desert_ocean", -192, 3, 35, 20, ethereal.desert,
nil, "default:sand", 1, "default:sand", 2, tmp,
"default:desert_stone", nil, "stairs:stair_desert_stone")
add_biome("bamboo", 25, 70, 45, 75, ethereal.bamboo,
nil, "ethereal:bamboo_dirt", 1, "default:dirt", 3)
add_biome("sakura", 3, 25, 45, 75, ethereal.sakura,
nil, "ethereal:bamboo_dirt", 1, "default:dirt", 3)
add_biome("sakura_ocean", -192, 2, 45, 75, ethereal.sakura,
nil, "default:sand", 1, "default:sand", 2)
add_biome("mesa", 1, 71, 25, 28, ethereal.mesa,
nil, "default:dirt_with_dry_grass", 1, "bakedclay:orange", 15)
add_biome("mesa_ocean", -192, 1, 25, 28, ethereal.mesa,
nil, "default:sand", 1, "default:sand", 2)
tmp = "default:dirt_with_coniferous_litter"
if not minetest.registered_nodes[tmp] then
tmp = "ethereal:cold_dirt"
end
add_biome("snowy", 4, 40, 10, 40, ethereal.snowy,
nil, tmp, 1, "default:dirt", 2)
add_biome("alpine", 40, 140, 10, 40, ethereal.alpine,
nil, "default:dirt_with_snow", 1, "default:dirt", 2)
add_biome("frost", 1, 71, 10, 40, ethereal.frost,
nil, "ethereal:crystal_dirt", 1, "default:dirt", 3)
add_biome("frost_ocean", -192, 1, 10, 40, ethereal.frost,
nil, "default:sand", 1, "default:sand", 2)
add_biome("grassy", 3, 91, 13, 40, ethereal.grassy,
nil, "default:dirt_with_grass", 1, "default:dirt", 3)
add_biome("grassy_ocean", -31000, 3, 13, 40, ethereal.grassy,
nil, "default:sand", 2, "default:gravel", 1)
add_biome("caves", 4, 41, 15, 25, ethereal.caves,
nil, "default:desert_stone", 3, "air", 8)
tmp = "default:silver_sand"
if not minetest.registered_nodes[tmp] then
tmp = "default:sand"
end
add_biome("grayness", 2, 41, 15, 30, ethereal.grayness,
nil, "ethereal:gray_dirt", 1, "default:dirt", 3)
add_biome("grayness_ocean", -28, 1, 15, 30, ethereal.grayness,
nil, tmp, 2, "default:sand", 2, "ethereal:blue_marble")
add_biome("grassytwo", 1, 91, 15, 40, ethereal.grassytwo,
nil, "default:dirt_with_grass", 1, "default:dirt", 3)
add_biome("grassytwo_ocean", -192, 1, 15, 40, ethereal.grassytwo,
nil, "default:sand", 1, "default:sand", 2)
add_biome("prairie", 3, 26, 20, 40, ethereal.prairie,
nil, "ethereal:prairie_dirt", 1, "default:dirt", 3)
add_biome("prairie_ocean", -192, 1, 20, 40, ethereal.prairie,
nil, "default:sand", 1, "default:sand", 2)
add_biome("jumble", 1, 71, 25, 50, ethereal.jumble,
nil, "default:dirt_with_grass", 1, "default:dirt", 3)
add_biome("jumble_ocean", -192, 1, 25, 50, ethereal.jumble,
nil, "default:sand", 1, "default:sand", 2)
tmp = "default:dirt_with_rainforest_litter"
if not minetest.registered_nodes[tmp] then
tmp = "ethereal:jungle_dirt"
end
add_biome("junglee", 1, 71, 30, 60, ethereal.junglee,
nil, tmp, 1, "default:dirt", 3)
add_biome("junglee_ocean", -192, 1, 30, 60, ethereal.junglee,
nil, "default:sand", 1, "default:sand", 2)
add_biome("grove", 3, 23, 45, 35, ethereal.grove,
nil, "ethereal:grove_dirt", 1, "default:dirt", 3)
add_biome("grove_ocean", -192, 2, 45, 35, ethereal.grove,
nil, "default:sand", 1, "default:sand", 2)
add_biome("mediterranean", 3, 50, 20, 45, ethereal.mediterranean,
nil, "ethereal:grove_dirt", 1, "default:dirt", 3)
add_biome("mushroom", 3, 50, 45, 55, ethereal.mushroom,
nil, "ethereal:mushroom_dirt", 1, "default:dirt", 3)
add_biome("mushroom_ocean", -192, 2, 45, 55, ethereal.mushroom,
nil, "default:sand", 1, "default:sand", 2)
add_biome("sandstone", 3, 23, 50, 20, ethereal.sandstone,
nil, "default:sandstone", 1, "default:sandstone", 1, "default:sandstone",
"default:sandstone", nil, "stairs:stair_sandstone")
add_biome("sandstone_ocean", -192, 2, 50, 20, ethereal.sandstone,
nil, "default:sand", 1, "default:sand", 2, "default:sandstone",
"default:sandstone", nil, "stairs:stair_sandstone")
add_biome("quicksand", 1, 1, 50, 38, ethereal.quicksand,
nil, "ethereal:quicksand2", 3, "default:gravel", 1)
add_biome("plains", 3, 25, 65, 25, ethereal.plains,
nil, "ethereal:dry_dirt", 1, "default:dirt", 3)
add_biome("plains_ocean", -192, 2, 55, 25, ethereal.plains,
nil, "default:sand", 1, "default:sand", 2)
tmp = "default:dry_dirt_with_dry_grass"
tmp2 = "default:dry_dirt"
if not minetest.registered_nodes[tmp] then
tmp = "default:dirt_with_dry_grass"
tmp2 = "default:dirt"
end
add_biome("savanna", 3, 50, 55, 25, ethereal.savanna,
nil, tmp, 1, tmp2, 3)
add_biome("savanna_ocean", -192, 1, 55, 25, ethereal.savanna,
nil, "default:sand", 1, "default:sand", 2)
add_biome("fiery", 5, 20, 75, 10, ethereal.fiery,
nil, "ethereal:fiery_dirt", 1, "default:dirt", 3)
add_biome("fiery_ocean", -192, 4, 75, 10, ethereal.fiery,
nil, "default:sand", 1, "default:sand", 2)
add_biome("sandclay", 1, 11, 65, 2, ethereal.sandclay,
nil, "default:sand", 3, "default:clay", 2)
add_biome("swamp", 1, 7, 80, 90, ethereal.swamp,
nil, "default:dirt_with_grass", 1, "default:dirt", 3)
add_biome("swamp_ocean", -192, 1, 80, 90, ethereal.swamp,
nil, "default:sand", 2, "default:clay", 2)
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_river_water = "default:ice",
node_riverbed = "default:gravel",
depth_riverbed = 2,
node_dungeon = "default:ice",
node_dungeon_stair = "stairs:stair_ice",
y_min = -8,
y_max = 31000,
heat_point = 0,
humidity_point = 50,
})
minetest.register_biome({
name = "glacier_ocean",
node_dust = "default:snowblock",
node_top = "default:sand",
depth_top = 1,
node_filler = "default:sand",
depth_filler = 3,
y_min = -112,
y_max = -9,
heat_point = 0,
humidity_point = 50,
})
end
if ethereal.tundra and minetest.registered_nodes["default:permafrost"] then
minetest.register_biome({
name = "tundra_highland",
node_dust = "default:snow",
node_riverbed = "default:gravel",
depth_riverbed = 2,
y_max = 180,
y_min = 47,
heat_point = 0,
humidity_point = 40,
})
minetest.register_biome({
name = "tundra",
node_top = "default:permafrost_with_stones",
depth_top = 1,
node_filler = "default:permafrost",
depth_filler = 1,
node_riverbed = "default:gravel",
depth_riverbed = 2,
vertical_blend = 4,
y_max = 46,
y_min = 2,
heat_point = 0,
humidity_point = 40,
})
minetest.register_biome({
name = "tundra_beach",
node_top = "default:gravel",
depth_top = 1,
node_filler = "default:gravel",
depth_filler = 2,
node_riverbed = "default:gravel",
depth_riverbed = 2,
vertical_blend = 1,
y_max = 1,
y_min = -3,
heat_point = 0,
humidity_point = 40,
})
minetest.register_biome({
name = "tundra_ocean",
node_top = "default:sand",
depth_top = 1,
node_filler = "default:sand",
depth_filler = 3,
node_riverbed = "default:gravel",
depth_riverbed = 2,
vertical_blend = 1,
y_max = -4,
y_min = -112,
heat_point = 0,
humidity_point = 40,
})
end

View File

@ -225,7 +225,8 @@ local old_handle_node_drops = minetest.handle_node_drops
function minetest.handle_node_drops(pos, drops, digger)
-- are we holding Crystal Shovel?
if digger:get_wielded_item():get_name() ~= "ethereal:shovel_crystal" then
if not digger
or digger:get_wielded_item():get_name() ~= "ethereal:shovel_crystal" then
return old_handle_node_drops(pos, drops, digger)
end
@ -268,29 +269,6 @@ minetest.register_craft({
}
})
-- Crystal Gilly Staff (replenishes air supply when used)
minetest.register_tool("ethereal:crystal_gilly_staff", {
description = S("Crystal Gilly Staff"),
inventory_image = "crystal_gilly_staff.png",
wield_image = "crystal_gilly_staff.png",
on_use = function(itemstack, user, pointed_thing)
if user:get_breath() < 10 then
user:set_breath(10)
end
end,
})
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"
},
})
-- Add [toolranks] mod support if found
if minetest.get_modpath("toolranks") then

737
mods/ethereal/decor.lua Normal file
View File

@ -0,0 +1,737 @@
if minetest.registered_nodes["farming:cotton_wild"] then
minetest.register_decoration({
name = "farming:cotton_wild",
deco_type = "simple",
place_on = {"default:dry_dirt_with_dry_grass"},
sidelen = 16,
noise_params = {
offset = -0.1,
scale = 0.1,
spread = {x = 50, y = 50, z = 50},
seed = 4242,
octaves = 3,
persist = 0.7
},
biomes = {"savanna"},
y_max = 31000,
y_min = 1,
decoration = "farming:cotton_wild",
})
end
-- water pools in swamp areas if 5.0 detected
if minetest.registered_nodes["default:permafrost"] then
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:dirt_with_grass"},
place_offset_y = -1,
sidelen = 16,
fill_ratio = 0.01,
biomes = {"swamp"},
y_max = 2,
y_min = 1,
flags = "force_placement",
decoration = "default:water_source",
spawn_by = "default:dirt_with_grass",
num_spawn_by = 8,
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:dirt_with_grass"},
place_offset_y = -1,
sidelen = 16,
fill_ratio = 0.1,
biomes = {"swamp"},
y_max = 2,
y_min = 1,
flags = "force_placement",
decoration = "default:water_source",
spawn_by = {"default:dirt_with_grass", "default:water_source"},
num_spawn_by = 8,
})
end
if minetest.registered_nodes["default:dry_dirt_with_dry_grass"] then
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:dry_dirt_with_dry_grass"},
sidelen = 4,
noise_params = {
offset = -1.5,
scale = -1.5,
spread = {x = 200, y = 200, z = 200},
seed = 329,
octaves = 4,
persist = 1.0
},
biomes = {"savanna"},
y_max = 31000,
y_min = 1,
decoration = "default:dry_dirt",
place_offset_y = -1,
flags = "force_placement",
})
end
-- helper string
local tmp
-- helper function
local add_node = function(a, b, c, d, e, f, g, h, i, j)
if j ~= 1 then return end
minetest.register_decoration({
deco_type = "simple",
place_on = a,
sidelen = 80,
fill_ratio = b,
biomes = c,
y_min = d,
y_max = e,
decoration = f,
height_max = g,
spawn_by = h,
num_spawn_by = i,
})
end
--firethorn shrub
add_node({"default:snowblock"}, 0.001, {"glacier"}, 1, 30,
{"ethereal:firethorn"}, nil, nil, nil, ethereal.glacier)
-- scorched tree
add_node({"ethereal:dry_dirt"}, 0.006, {"plains"}, 1, 100,
{"ethereal:scorched_tree"}, 6, nil, nil, ethereal.plains)
-- dry shrub
add_node({"ethereal:dry_dirt"}, 0.015, {"plains"}, 1, 100,
{"default:dry_shrub"}, nil, nil, nil, ethereal.plains)
add_node({"default:sand"}, 0.015, {"grassy_ocean"}, 1, 100,
{"default:dry_shrub"}, nil, nil, nil, ethereal.grassy)
add_node({"default:desert_sand"}, 0.015, {"desert"}, 1, 100,
{"default:dry_shrub"}, nil, nil, nil, ethereal.desert)
add_node({"default:sandstone"}, 0.015, {"sandstone"}, 1, 100,
{"default:dry_shrub"}, nil, nil, nil, ethereal.sandstone)
add_node({"bakedclay:red", "bakedclay:orange"}, 0.015, {"mesa"}, 1, 100,
{"default:dry_shrub"}, nil, nil, nil, ethereal.mesa)
-- dry grass
add_node({"default:dry_dirt_with_dry_grass",
"default:dirt_with_dry_grass"}, 0.25, {"savanna"}, 1, 100,
{"default:dry_grass_2", "default:dry_grass_3", "default:dry_grass_4",
"default:dry_grass_5"}, nil, nil, nil, ethereal.savanna)
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)
add_node({"default:desert_stone"}, 0.005, {"caves"}, 5, 40,
{"default:dry_grass_2", "default:dry_grass_3", "default:dry_shrub"},
nil, nil, nil, ethereal.caves)
-- flowers & strawberry
add_node({"default:dirt_with_grass"}, 0.025, {"grassy"}, 1, 100,
{"flowers:dandelion_white", "flowers:dandelion_yellow",
"flowers:geranium", "flowers:rose", "flowers:tulip",
"flowers:viola", "ethereal:strawberry_7"}, nil, nil, nil,
ethereal.grassy)
add_node({"default:dirt_with_grass"}, 0.025, {"grassytwo"}, 1, 100,
{"flowers:dandelion_white", "flowers:dandelion_yellow",
"flowers:geranium", "flowers:rose", "flowers:tulip",
"flowers:viola", "ethereal:strawberry_7"}, nil, nil, nil,
ethereal.grassytwo)
-- prairie flowers & strawberry
add_node({"ethereal:prairie_dirt"}, 0.035, {"prairie"}, 1, 100,
{"flowers:dandelion_white", "flowers:dandelion_yellow",
"flowers:geranium", "flowers:rose", "flowers:tulip",
"flowers:viola", "ethereal:strawberry_7",
"flowers:chrysanthemum_green", "flowers:tulip_black"}, nil, nil, nil,
ethereal.prairie)
-- crystal spike & crystal grass
add_node({"ethereal:crystal_dirt"}, 0.02, {"frost"}, 1, 100,
{"ethereal:crystal_spike", "ethereal:crystalgrass"}, nil, nil, nil,
ethereal.frost)
-- red shrub
add_node({"ethereal:fiery_dirt"}, 0.10, {"fiery"}, 1, 100,
{"ethereal:dry_shrub"}, nil, nil, nil, ethereal.fiery)
-- snowy grass
add_node({"ethereal:gray_dirt"}, 0.05, {"grayness"}, 1, 100,
{"ethereal:snowygrass"}, nil, nil, nil, ethereal.grayness)
add_node({"ethereal:cold_dirt", "default:dirt_with_coniferous_litter"}, 0.05,
{"snowy"}, 1, 100, {"ethereal:snowygrass"}, nil, nil, nil, ethereal.snowy)
-- cactus
add_node({"default:sandstone"}, 0.0025, {"sandstone"}, 1, 100,
{"default:cactus"}, 3, nil, nil, ethereal.sandstone)
add_node({"default:desert_sand"}, 0.005, {"desert"}, 1, 100,
{"default:cactus"}, 4, nil, nil, ethereal.desert)
-- wild red mushroom
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", "default:dirt_with_rainforest_litter"}, ethereal.junglee},
{"grassy", {"default:dirt_with_grass"}, ethereal.grassy},
{"grassytwo", {"default:dirt_with_grass"}, ethereal.grassytwo},
{"prairie", {"ethereal:prairie_dirt"}, ethereal.prairie},
{"mushroom", {"ethereal:mushroom_dirt"}, ethereal.mushroom},
{"swamp", {"default:dirt_with_grass"}, ethereal.swamp},
}
-- wild red and brown mushrooms
for _, row in pairs(list) do
if row[3] == 1 then
minetest.register_decoration({
deco_type = "simple",
place_on = row[2],
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.009,
spread = {x = 200, y = 200, z = 200},
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = {row[1]},
y_min = 1,
y_max = 120,
decoration = {"flowers:mushroom_brown", "flowers:mushroom_red"},
})
end
end
-- jungle grass
add_node({"ethereal:jungle_dirt", "default:dirt_with_rainforest_litter"},
0.10, {"junglee"}, 1, 100, {"default:junglegrass"}, nil, nil, nil,
ethereal.junglee)
add_node({"default:dirt_with_grass"}, 0.15, {"jumble"}, 1, 100,
{"default:junglegrass"}, nil, nil, nil, ethereal.jumble)
add_node({"default:dirt_with_grass"}, 0.25, {"swamp"}, 1, 100,
{"default:junglegrass"}, nil, nil, nil, ethereal.swamp)
-- grass
add_node({"default:dirt_with_grass"}, 0.35, {"grassy"}, 1, 100,
{"default:grass_2", "default:grass_3", "default:grass_4",
"default:grass_5"}, nil, nil, nil, ethereal.grassy)
add_node({"default:dirt_with_grass"}, 0.35, {"grassytwo"}, 1, 100,
{"default:grass_2", "default:grass_3", "default:grass_4",
"default:grass_5"}, nil, nil, nil, ethereal.grassytwo)
add_node({"default:dirt_with_grass"}, 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", "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)
add_node({"ethereal:grove_dirt"}, 0.35, {"grove"}, 1, 100,
{"default:grass_2", "default:grass_3", "default:grass_4",
"default:grass_5"}, nil, nil, nil, ethereal.grove)
add_node({"ethereal:grove_dirt"}, 0.35, {"mediterranean"}, 1, 100,
{"default:grass_2", "default:grass_3", "default:grass_4",
"default:grass_5"}, nil, nil, nil, ethereal.mediterranean)
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({"default:dirt_with_grass"}, 0.35, {"clearing", "swamp"},
1, 100, {"default:grass_3", "default:grass_4"}, nil, nil, nil, 1)
add_node({"ethereal:bamboo_dirt"}, 0.35, {"sakura"}, 1, 100,
{"default:grass_2", "default:grass_3", "default:grass_4",
"default:grass_5"}, nil, nil, nil, ethereal.sakura)
-- grass on sand
if minetest.registered_nodes["default:marram_grass_1"] then
add_node({"default:sand"}, 0.25, {"sandclay"}, 3, 4, {"default:marram_grass_1",
"default:marram_grass_2", "default:marram_grass_3"}, nil, nil, nil,
ethereal.sandclay)
else
add_node({"default:sand"}, 0.25, {"sandclay"}, 3, 4, {"default:grass_2",
"default:grass_3"}, nil, nil, nil, ethereal.sandclay)
end
-- ferns
add_node({"ethereal:grove_dirt"}, 0.2, {"grove"}, 1, 100, {"ethereal:fern"},
nil, nil, nil, ethereal.grove)
add_node({"default:dirt_with_grass"}, 0.1, {"swamp"}, 1, 100,
{"ethereal:fern"}, nil, nil, nil, ethereal.swamp)
-- snow
add_node({"ethereal:cold_dirt", "default:dirt_with_coniferous_litter"},
0.8, {"snowy"}, 4, 40, {"default:snow"}, nil, nil, nil, ethereal.snowy)
add_node({"default:dirt_with_snow"}, 0.8, {"alpine"}, 40, 140,
{"default:snow"}, nil, nil, nil, ethereal.alpine)
-- wild onion
add_node({"default:dirt_with_grass", "ethereal:prairie_dirt"}, 0.25,
{"grassy", "grassytwo", "jumble", "prairie"}, 1, 100,
{"ethereal:onion_4"}, nil, nil, nil, 1)
-- papyrus
add_node({"default:dirt_with_grass"}, 0.1, {"grassy"}, 1, 1,
{"default:papyrus"}, 4, "default:water_source", 1, ethereal.grassy)
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({"default:dirt_with_grass"}, 0.1, {"swamp"}, 1, 1,
{"default:papyrus"}, 4, "default:water_source", 1, ethereal.swamp)
--= Farming Redo plants
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", "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({"default:dirt_with_grass"}, 0.05, {"grassytwo"}, 1, 100,
{"farming:carrot_7", "farming:cucumber_4", "farming:potato_3", "farming:vanilla_7",
"farming:tomato_7", "farming:corn_8", "farming:coffee_5", "farming:blackberry_4",
"farming:raspberry_4", "farming:rhubarb_3", "farming:blueberry_4",
"farming:cabbage_6", "farming:lettuce_5"}, nil, nil, nil, ethereal.grassytwo)
add_node({"default:dirt_with_grass"}, 0.05, {"grassy"}, 1, 100,
{"farming:carrot_7", "farming:cucumber_4", "farming:potato_3", "farming:vanilla_7",
"farming:tomato_7", "farming:corn_8", "farming:coffee_5", "farming:blackberry_4",
"farming:raspberry_4", "farming:rhubarb_3", "farming:blueberry_4",
"farming:beetroot_5"}, nil, nil, nil, ethereal.grassy)
add_node({"default:dirt_with_grass"}, 0.05, {"jumble"}, 1, 100,
{"farming:carrot_7", "farming:cucumber_4", "farming:potato_3", "farming:vanilla_7",
"farming:tomato_7", "farming:corn_8", "farming:coffee_5", "farming:blackberry_4",
"farming:raspberry_4", "farming:rhubarb_3", "farming:blueberry_4",
"farming:cabbage_6", "farming:lettuce_5"}, nil, nil, nil, ethereal.jumble)
add_node({"ethereal:prairie_dirt"}, 0.05, {"prairie"}, 1, 100,
{"farming:carrot_7", "farming:cucumber_4", "farming:potato_3",
"farming:tomato_7", "farming:corn_8", "farming:coffee_5", "farming:blackberry_4",
"farming:raspberry_4", "farming:rhubarb_3", "farming:blueberry_4",
"farming:pea_5", "farming:beetroot_5"}, nil, nil, nil, ethereal.prairie)
-- melon and pumpkin
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({"default:dirt_with_grass"}, 0.015, {"grassy"}, 1, 1,
{"farming:melon_8", "farming:pumpkin_8"}, nil, "default:water_source",
1, ethereal.grassy)
add_node({"default:dirt_with_grass"}, 0.015, {"grassytwo"}, 1, 1,
{"farming:melon_8", "farming:pumpkin_8"}, nil, "default:water_source",
1, ethereal.grassytwo)
add_node({"default:dirt_with_grass"}, 0.015, {"jumble"}, 1, 1,
{"farming:melon_8", "farming:pumpkin_8"}, nil, "default:water_source",
1, ethereal.jumble)
-- mint
add_node({"default:dirt_with_grass", "default:dirt_with_coniferous_grass",
"ethereal:bamboo_dirt"}, 0.003, nil, 1, 75, "farming:mint_4", nil,
"group:water", 1, 1)
-- green beans
add_node({"default:dirt_with_grass"}, 0.035, {"grassytwo"}, 1, 100,
{"farming:beanbush"}, nil, nil, nil, ethereal.grassytwo)
-- grape bushel
add_node({"default:dirt_with_grass"}, 0.025, {"grassytwo"}, 1, 100,
{"farming:grapebush"}, nil, nil, nil, ethereal.grassytwo)
add_node({"default:dirt_with_grass"}, 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.09,
spread = {x = 100, y = 100, z = 100},
seed = 760,
octaves = 3,
persist = 0.6
},
y_min = 5,
y_max = 35,
decoration = {
"farming:chili_8", "farming:garlic_5", "farming:pepper_5", "farming:pepper_6",
"farming:onion_5", "farming:hemp_7", "farming:pepper_7", "farming:soy_5"
},
spawn_by = "group:tree",
num_spawn_by = 1,
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:dirt_with_dry_grass"},
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.06,
spread = {x = 100, y = 100, z = 100},
seed = 917,
octaves = 3,
persist = 0.6
},
y_min = 18,
y_max = 30,
decoration = {"farming:pineapple_8", "farming:soy_5"},
})
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", "default:dirt_with_grass",
"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", "default:dirt_with_grass",
"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 = {"default:dirt_with_grass", "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
if ethereal.desert and minetest.get_modpath("wine") then
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:desert_sand"},
sidelen = 16,
fill_ratio = 0.001,
biomes = {"desert"},
decoration = {"wine:blue_agave"},
})
end
if ethereal.snowy and minetest.registered_nodes["default:fern_1"] then
local function register_fern_decoration(seed, length)
minetest.register_decoration({
name = "default:fern_" .. length,
deco_type = "simple",
place_on = {
"ethereal:cold_dirt", "default:dirt_with_coniferous_litter"},
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.2,
spread = {x = 100, y = 100, z = 100},
seed = seed,
octaves = 3,
persist = 0.7
},
y_max = 31000,
y_min = 6,
decoration = "default:fern_" .. length,
})
end
register_fern_decoration(14936, 3)
register_fern_decoration(801, 2)
register_fern_decoration(5, 1)
end
if ethereal.tundra and minetest.registered_nodes["default:permafrost"] then
-- Tundra moss
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:permafrost_with_stones"},
sidelen = 4,
noise_params = {
offset = -0.8,
scale = 2.0,
spread = {x = 100, y = 100, z = 100},
seed = 53995,
octaves = 3,
persist = 1.0
},
biomes = {"tundra"},
y_max = 50,
y_min = 2,
decoration = "default:permafrost_with_moss",
place_offset_y = -1,
flags = "force_placement",
})
-- Tundra patchy snow
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:permafrost_with_moss",
"default:permafrost_with_stones",
"default:stone",
"default:gravel"
},
sidelen = 4,
noise_params = {
offset = 0,
scale = 1.0,
spread = {x = 100, y = 100, z = 100},
seed = 172555,
octaves = 3,
persist = 1.0
},
biomes = {"tundra", "tundra_beach"},
y_max = 50,
y_min = 1,
decoration = "default:snow",
})
end
if minetest.get_modpath("butterflies") then
minetest.register_decoration({
name = "butterflies:butterfly",
deco_type = "simple",
place_on = {"default:dirt_with_grass", "ethereal:prairie_dirt"},
place_offset_y = 2,
sidelen = 80,
fill_ratio = 0.005,
biomes = {"grassy", "grassytwo", "prairie", "jumble"},
y_max = 31000,
y_min = 1,
decoration = {
"butterflies:butterfly_white",
"butterflies:butterfly_red",
"butterflies:butterfly_violet"
},
spawn_by = "group:flower",
num_spawn_by = 1
})
end
if minetest.get_modpath("fireflies") then
minetest.register_decoration({
name = "fireflies:firefly_low",
deco_type = "simple",
place_on = {
"default:dirt_with_grass",
"default:dirt_with_coniferous_litter",
"default:dirt_with_rainforest_litter",
"default:dirt",
"ethereal:cold_dirt",
},
place_offset_y = 2,
sidelen = 80,
fill_ratio = 0.0005,
biomes = {"grassy", "grassytwo", "snowy", "junglee", "swamp"},
y_max = 31000,
y_min = -1,
decoration = "fireflies:hidden_firefly",
})
end
-- Coral Reef (Minetest 5.0)
if minetest.registered_nodes["default:coral_green"] then
minetest.register_decoration({
name = "default:corals",
deco_type = "simple",
place_on = {"default:sand"},
place_offset_y = -1,
sidelen = 4,
noise_params = {
offset = -4,
scale = 4,
spread = {x = 50, y = 50, z = 50},
seed = 7013,
octaves = 3,
persist = 0.7,
},
biomes = {
"desert_ocean",
"savanna_ocean",
"junglee_ocean",
},
y_max = -2,
y_min = -8,
flags = "force_placement",
decoration = {
"default:coral_green", "default:coral_pink",
"default:coral_cyan", "default:coral_brown",
"default:coral_orange", "default:coral_skeleton",
},
})
-- Kelp
minetest.register_decoration({
name = "default:kelp",
deco_type = "simple",
place_on = {"default:sand"},
place_offset_y = -1,
sidelen = 16,
noise_params = {
offset = -0.04,
scale = 0.1,
spread = {x = 200, y = 200, z = 200},
seed = 87112,
octaves = 3,
persist = 0.7
},
biomes = {
"frost_ocean", "grassy_ocean", "sandstone_ocean", "swamp_ocean"},
y_max = -5,
y_min = -10,
flags = "force_placement",
decoration = "default:sand_with_kelp",
param2 = 48,
param2_max = 96,
})
end
local random = math.random
-- Generate Illumishroom in caves on top of coal
minetest.register_on_generated(function(minp, maxp)
if minp.y > -30 or maxp.y < -3000 then
return
end
local bpos
local coal = minetest.find_nodes_in_area_under_air(
minp, maxp, "default:stone_with_coal")
for n = 1, #coal do
if random(2) == 1 then
bpos = {x = coal[n].x, y = coal[n].y + 1, z = coal[n].z}
if bpos.y > -3000 and bpos.y < -2000 then
minetest.swap_node(bpos, {name = "ethereal:illumishroom3"})
elseif bpos.y > -2000 and bpos.y < -1000 then
minetest.swap_node(bpos, {name = "ethereal:illumishroom2"})
elseif bpos.y > -1000 and bpos.y < -30 then
minetest.swap_node(bpos, {name = "ethereal:illumishroom"})
end
end
end
end)

View File

@ -277,7 +277,7 @@ minetest.register_node("ethereal:quicksand", {
-- but old quicksand is shown as black until block placed nearby to update light)
minetest.register_node("ethereal:quicksand2", {
description = S("Quicksand"),
tiles = {"default_sand.png"},
tiles = {"default_sand.png^[colorize:#00004F10"},
drawtype = "glasslike",
paramtype = "light",
drop = "default:sand",

View File

@ -92,6 +92,7 @@ local cheat = {
{"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
@ -110,11 +111,9 @@ end -- END if
-- Paper (2x3 string = 4 paper)
minetest.register_craft({
output = "default:paper 4",
output = "default:paper 2",
recipe = {
{"farming:string", "farming:string"},
{"farming:string", "farming:string"},
{"farming:string", "farming:string"},
{"farming:cotton", "farming:cotton", "farming:cotton"}
}
})
@ -164,7 +163,7 @@ minetest.register_node("ethereal:candle", {
minetest.register_craft({
output = "ethereal:candle 2",
recipe = {
{"farming:cotton"},
{"farming:string"},
{"ethereal:palm_wax"},
{"ethereal:palm_wax"},
}
@ -303,51 +302,4 @@ minetest.register_craft({
{"ethereal:charcoal_lump"},
{"default:stick"},
}
})
-- Staff of Light (by Xanthin)
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)
if pointed_thing.type ~= "node" then
return
end
local pos = pointed_thing.under
local pname = user:get_player_name()
if minetest.is_protected(pos, pname) then
minetest.record_protection_violation(pos, pname)
return
end
local node = minetest.get_node(pos).name
if node == "default:stone"
or node == "default:desert_stone" then
minetest.swap_node(pos, {name = "ethereal:glostone"})
if not ethereal.check_creative(user:get_player_name()) then
itemstack:add_wear(65535 / 149) -- 150 uses
end
return itemstack
end
end,
})
minetest.register_craft({
output = "ethereal:light_staff",
recipe = {
{"ethereal:illumishroom", "default:mese_crystal", "ethereal:illumishroom"},
{"ethereal:illumishroom2", "default:steel_ingot", "ethereal:illumishroom2"},
{"ethereal:illumishroom3", "default:steel_ingot", "ethereal:illumishroom3"}
}
})
})

View File

@ -29,6 +29,47 @@ minetest.register_node("ethereal:banana", {
end,
})
-- Banana Bunch
minetest.register_node("ethereal:banana_bunch", {
description = S("Banana Bunch"),
drawtype = "torchlike",
tiles = {"banana_bunch.png"},
inventory_image = "banana_bunch.png",
wield_image = "banana_bunch.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.31, -0.5, -0.31, 0.31, 0.5, 0.31}
},
groups = {
fleshy = 3, dig_immediate = 3, flammable = 2,
leafdecay = 1, leafdecay_drop = 1
},
drop = "ethereal:banana_bunch",
on_use = minetest.item_eat(6),
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer)
if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:banana_bunch", param2 = 1})
end
end,
})
-- Bunch to Single
minetest.register_craft({
type = "shapeless",
output = "ethereal:banana 3",
recipe = {"ethereal:banana_bunch"}
})
minetest.register_craft({
type = "shapeless",
output = "ethereal:banana_bunch",
recipe = {"ethereal:banana", "ethereal:banana", "ethereal:banana"}
})
-- Banana Dough
minetest.register_craftitem("ethereal:banana_dough", {
description = S("Banana Dough"),
@ -194,6 +235,7 @@ minetest.register_craftitem("ethereal:bucket_cactus", {
inventory_image = "bucket_cactus.png",
wield_image = "bucket_cactus.png",
stack_max = 1,
groups = {vessel = 1, drink = 1},
on_use = minetest.item_eat(2, "bucket:bucket_empty"),
})
@ -230,3 +272,102 @@ minetest.register_craft({
},
})
end
-- Lemon
minetest.register_node("ethereal:lemon", {
description = S("Lemon"),
drawtype = "plantlike",
tiles = {"lemon.png"},
inventory_image = "lemon_fruit.png",
wield_image = "lemon_fruit.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.27, -0.37, -0.27, 0.27, 0.44, 0.27}
},
groups = {
food_lemon = 1, fleshy = 3, dig_immediate = 3, flammable = 2,
leafdecay = 3, leafdecay_drop = 1
},
drop = "ethereal:lemon",
on_use = minetest.item_eat(3),
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer)
if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:lemon", param2 = 1})
end
end,
})
-- Candied Lemon
minetest.register_craftitem("ethereal:candied_lemon", {
description = S("Candied Lemon"),
inventory_image = "ethereal_candied_lemon.png",
wield_image = "ethereal_candied_lemon.png",
groups = {food_candied_lemon = 1},
on_use = minetest.item_eat(5),
})
minetest.register_craft({
type = "shapeless",
output = "ethereal:candied_lemon",
recipe = {
"farming:baking_tray", "ethereal:lemon", "group:food_sugar"
},
replacements = {
{"farming:baking_tray", "farming:baking_tray"}
},
})
-- Olive
minetest.register_node("ethereal:olive", {
description = S("Olive"),
drawtype = "plantlike",
tiles = {"olive.png"},
inventory_image = "olive_fruit.png",
wield_image = "olive_fruit.png",
visual_scale = 0.2,
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.1, -0.5, -0.1, 0.1, -0.3, 0.1}
},
groups = {
fleshy = 3, dig_immediate = 3, flammable = 2,
leafdecay = 3, leafdecay_drop = 1
},
drop = "ethereal:olive",
on_use = minetest.item_eat(1),
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer)
if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:olive", param2 = 1})
end
end,
})
-- Olive Oil
minetest.register_craftitem("ethereal:olive_oil", {
description = S("Olive Oil"),
inventory_image = "ethereal_olive_oil.png",
wield_image = "ethereal_olive_oil.png",
groups = {food_oil = 1, food_olive_oil = 1, vessel = 1},
})
minetest.register_craft({
type = "shapeless",
output = "ethereal:olive_oil",
recipe = {
"farming:juicer", "vessels:glass_bottle",
"ethereal:olive", "ethereal:olive", "ethereal:olive",
"ethereal:olive", "ethereal:olive", "ethereal:olive"
},
replacements = {
{"farming:juicer", "farming:juicer"}
},
})

124
mods/ethereal/init.lua Normal file
View File

@ -0,0 +1,124 @@
--[[
Minetest Ethereal Mod
Created by ChinChow
Updated by TenPlus1
]]
-- DO NOT change settings below, use the settings.conf file instead
ethereal = {
version = "1.28",
leaftype = minetest.settings:get('ethereal.leaftype') or 0,
leafwalk = minetest.settings:get_bool('ethereal.leafwalk', false),
cavedirt = minetest.settings:get_bool('ethereal.cavedirt', true),
torchdrop = minetest.settings:get_bool('ethereal.torchdrop', true),
papyruswalk = minetest.settings:get_bool('ethereal.papyruswalk', true),
lilywalk = minetest.settings:get_bool('ethereal.lilywalk', true),
xcraft = minetest.settings:get_bool('ethereal.xcraft', true),
glacier = minetest.settings:get('ethereal.glacier') or 1,
bamboo = minetest.settings:get('ethereal.bamboo') or 1,
mesa = minetest.settings:get('ethereal.mesa') or 1,
alpine = minetest.settings:get('ethereal.alpine') or 1,
healing = minetest.settings:get('ethereal.healing') or 1,
snowy = minetest.settings:get('ethereal.snowy') or 1,
frost = minetest.settings:get('ethereal.frost') or 1,
grassy = minetest.settings:get('ethereal.grassy') or 1,
caves = minetest.settings:get('ethereal.caves') or 1,
grayness = minetest.settings:get('ethereal.grayness') or 1,
grassytwo = minetest.settings:get('ethereal.grassytwo') or 1,
prairie = minetest.settings:get('ethereal.prairie') or 1,
jumble = minetest.settings:get('ethereal.jumble') or 1,
junglee = minetest.settings:get('ethereal.junglee') or 1,
desert = minetest.settings:get('ethereal.desert') or 1,
grove = minetest.settings:get('ethereal.grove') or 1,
mushroom = minetest.settings:get('ethereal.mushroom') or 1,
sandstone = minetest.settings:get('ethereal.sandstone') or 1,
quicksand = minetest.settings:get('ethereal.quicksand') or 1,
plains = minetest.settings:get('ethereal.plains') or 1,
savanna = minetest.settings:get('ethereal.savanna') or 1,
fiery = minetest.settings:get('ethereal.fiery') or 1,
sandclay = minetest.settings:get('ethereal.sandclay') or 1,
swamp = minetest.settings:get('ethereal.swamp') or 1,
sealife = minetest.settings:get('ethereal.sealife') or 1,
reefs = minetest.settings:get('ethereal.reefs') or 1,
sakura = minetest.settings:get('ethereal.sakura') or 1,
tundra = minetest.settings:get('ethereal.tundra') or 1,
mediterranean = minetest.settings:get('ethereal.mediterranean') or 1
}
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
if minetest.get_translator then
S = minetest.get_translator("ethereal")
elseif minetest.global_exists("intllib") then
if intllib.make_gettext_pair then
S = intllib.make_gettext_pair()
else
S = intllib.Getter()
end
else
S = function(s) return s end
end
ethereal.intllib = S
-- Falling node function
ethereal.check_falling = minetest.check_for_falling or nodeupdate
-- creative check
local creative_mode_cache = minetest.settings:get_bool("creative_mode")
function ethereal.check_creative(name)
return creative_mode_cache or minetest.check_player_privs(name, {creative = true})
end
dofile(path .. "/plantlife.lua")
dofile(path .. "/mushroom.lua")
dofile(path .. "/onion.lua")
dofile(path .. "/crystal.lua")
dofile(path .. "/water.lua")
dofile(path .. "/dirt.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")
dofile(path .. "/extra.lua")
dofile(path .. "/sealife.lua")
dofile(path .. "/fences.lua")
dofile(path .. "/gates.lua")
dofile(path .. "/biomes.lua")
dofile(path .. "/ores.lua")
dofile(path .. "/schems.lua")
dofile(path .. "/decor.lua")
dofile(path .. "/compatibility.lua")
dofile(path .. "/stairs.lua")
-- Set bonemeal aliases
if minetest.get_modpath("bonemeal") then
minetest.register_alias("ethereal:bone", "bonemeal:bone")
minetest.register_alias("ethereal:bonemeal", "bonemeal:bonemeal")
else -- or return to where it came from
minetest.register_alias("ethereal:bone", "default:dirt")
minetest.register_alias("ethereal:bonemeal", "default:dirt")
end
if minetest.get_modpath("xanadu") then
dofile(path .. "/plantpack.lua")
end
print (S("[MOD] Ethereal loaded"))

View File

@ -3,15 +3,17 @@ local S = ethereal.intllib
-- set leaftype (value inside init.lua)
local leaftype = "plantlike"
local leafscale = 1.4
if ethereal.leaftype ~= 0 then
leaftype = "allfaces_optional"
leafscale = 1.0
end
-- default apple tree leaves
minetest.override_item("default:leaves", {
drawtype = leaftype,
visual_scale = 1.4,
visual_scale = leafscale,
inventory_image = "default_leaves.png",
wield_image = "default_leaves.png",
walkable = ethereal.leafwalk,
@ -26,7 +28,7 @@ minetest.register_craft({
-- default jungle tree leaves
minetest.override_item("default:jungleleaves", {
drawtype = leaftype,
visual_scale = 1.4,
visual_scale = leafscale,
inventory_image = "default_jungleleaves.png",
wield_image = "default_jungleleaves.png",
walkable = ethereal.leafwalk,
@ -35,7 +37,7 @@ minetest.override_item("default:jungleleaves", {
-- default pine tree leaves
minetest.override_item("default:pine_needles", {
drawtype = leaftype,
visual_scale = 1.4,
visual_scale = leafscale,
inventory_image = "default_pine_needles.png",
wield_image = "default_pine_needles.png",
walkable = ethereal.leafwalk,
@ -54,7 +56,7 @@ minetest.override_item("default:acacia_leaves", {
drawtype = leaftype,
inventory_image = "default_acacia_leaves.png",
wield_image = "default_acacia_leaves.png",
visual_scale = 1.4,
visual_scale = leafscale,
walkable = ethereal.leafwalk,
})
@ -63,7 +65,7 @@ minetest.override_item("default:aspen_leaves", {
drawtype = leaftype,
inventory_image = "default_aspen_leaves.png",
wield_image = "default_aspen_leaves.png",
visual_scale = 1.4,
visual_scale = leafscale,
walkable = ethereal.leafwalk,
})
@ -76,7 +78,7 @@ minetest.register_node("ethereal:willow_twig", {
wield_image = "willow_twig.png",
paramtype = "light",
walkable = ethereal.leafwalk,
visual_scale = 1.4,
visual_scale = leafscale,
waving = 1,
groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2},
drop = {
@ -94,7 +96,7 @@ minetest.register_node("ethereal:willow_twig", {
minetest.register_node("ethereal:redwood_leaves", {
description = S("Redwood Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
visual_scale = leafscale,
tiles = {"redwood_leaves.png"},
inventory_image = "redwood_leaves.png",
wield_image = "redwood_leaves.png",
@ -117,7 +119,7 @@ minetest.register_node("ethereal:redwood_leaves", {
minetest.register_node("ethereal:orange_leaves", {
description = S("Orange Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
visual_scale = leafscale,
tiles = {"orange_leaves.png"},
inventory_image = "orange_leaves.png",
wield_image = "orange_leaves.png",
@ -140,7 +142,7 @@ minetest.register_node("ethereal:orange_leaves", {
minetest.register_node("ethereal:bananaleaves", {
description = S("Banana Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
visual_scale = leafscale,
tiles = {"banana_leaf.png"},
inventory_image = "banana_leaf.png",
wield_image = "banana_leaf.png",
@ -163,7 +165,7 @@ minetest.register_node("ethereal:bananaleaves", {
minetest.register_node("ethereal:yellowleaves", {
description = S("Healing Tree Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
visual_scale = leafscale,
tiles = {"yellow_leaves.png"},
inventory_image = "yellow_leaves.png",
wield_image = "yellow_leaves.png",
@ -189,7 +191,7 @@ minetest.register_node("ethereal:yellowleaves", {
minetest.register_node("ethereal:palmleaves", {
description = S("Palm Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
visual_scale = leafscale,
tiles = {"moretrees_palm_leaves.png"},
inventory_image = "moretrees_palm_leaves.png",
wield_image = "moretrees_palm_leaves.png",
@ -212,7 +214,7 @@ minetest.register_node("ethereal:palmleaves", {
minetest.register_node("ethereal:birch_leaves", {
description = S("Birch Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
visual_scale = leafscale,
tiles = {"moretrees_birch_leaves.png"},
inventory_image = "moretrees_birch_leaves.png",
wield_image = "moretrees_birch_leaves.png",
@ -235,7 +237,7 @@ minetest.register_node("ethereal:birch_leaves", {
minetest.register_node("ethereal:frost_leaves", {
description = S("Frost Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
visual_scale = leafscale,
tiles = {"ethereal_frost_leaves.png"},
inventory_image = "ethereal_frost_leaves.png",
wield_image = "ethereal_frost_leaves.png",
@ -259,7 +261,7 @@ minetest.register_node("ethereal:frost_leaves", {
minetest.register_node("ethereal:bamboo_leaves", {
description = S("Bamboo Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
visual_scale = leafscale,
tiles = {"bamboo_leaves.png"},
inventory_image = "bamboo_leaves.png",
wield_image = "bamboo_leaves.png",
@ -282,7 +284,7 @@ minetest.register_node("ethereal:bamboo_leaves", {
minetest.register_node("ethereal:sakura_leaves", {
description = S("Sakura Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
visual_scale = leafscale,
tiles = {"ethereal_sakura_leaves.png"},
inventory_image = "ethereal_sakura_leaves.png",
wield_image = "ethereal_sakura_leaves.png",
@ -304,7 +306,7 @@ minetest.register_node("ethereal:sakura_leaves", {
minetest.register_node("ethereal:sakura_leaves2", {
description = S("Sakura Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
visual_scale = leafscale,
tiles = {"ethereal_sakura_leaves2.png"},
inventory_image = "ethereal_sakura_leaves2.png",
wield_image = "ethereal_sakura_leaves2.png",
@ -323,11 +325,57 @@ minetest.register_node("ethereal:sakura_leaves2", {
after_place_node = default.after_place_leaves,
})
-- lemon tree leaves
minetest.register_node("ethereal:lemon_leaves", {
description = S("Lemon Tree Leaves"),
drawtype = leaftype,
visual_scale = leafscale,
tiles = {"lemon_leaves.png"},
inventory_image = "lemon_leaves.png",
wield_image = "lemon_leaves.png",
paramtype = "light",
walkable = ethereal.leafwalk,
waving = 1,
groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2},
drop = {
max_items = 1,
items = {
{items = {"ethereal:lemon_tree_sapling"}, rarity = 25},
{items = {"ethereal:lemon_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
-- olive tree leaves
minetest.register_node("ethereal:olive_leaves", {
description = S("Olive Tree Leaves"),
drawtype = leaftype,
visual_scale = leafscale,
tiles = {"olive_leaves.png"},
inventory_image = "olive_leaves.png",
wield_image = "olive_leaves.png",
paramtype = "light",
walkable = ethereal.leafwalk,
waving = 1,
groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2},
drop = {
max_items = 1,
items = {
{items = {"ethereal:olive_tree_sapling"}, rarity = 25},
{items = {"ethereal:olive_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
-- mushroom tops
minetest.register_node("ethereal:mushroom", {
description = S("Mushroom Cap"),
tiles = {"mushroom_block.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, leafdecay = 3},
drop = {
max_items = 1,
items = {
@ -350,7 +398,8 @@ minetest.register_node("ethereal:mushroom_pore", {
tiles = {"mushroom_pore.png"},
groups = {
snappy = 3, cracky = 3, choppy = 3, oddly_breakable_by_hand = 3,
flammable = 2, disable_jump = 1, fall_damage_add_percent = -100
flammable = 2, disable_jump = 1, fall_damage_add_percent = -100,
leafdecay = 3
},
sounds = default.node_sound_dirt_defaults(),
})
@ -443,8 +492,11 @@ 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", "ethereal:vine"},
"default:apple", "default:leaves",
"ethereal:orange", "ethereal:orange_leaves",
"ethereal:lemon", "ethereal:lemon_leaves",
"ethereal:vine"
},
radius = 3
})
@ -480,7 +532,7 @@ default.register_leafdecay({
default.register_leafdecay({
trunks = {"ethereal:banana_trunk"},
leaves = {"ethereal:bananaleaves", "ethereal:banana"},
leaves = {"ethereal:bananaleaves", "ethereal:banana", "ethereal:banana_bunch"},
radius = 3
})
@ -502,4 +554,15 @@ default.register_leafdecay({
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:olive_trunk"},
leaves = {"ethereal:olive_leaves", "ethereal:olive"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:mushroom_trunk"},
leaves = {"ethereal:mushroom", "ethereal:mushroom_pore"},
radius = 3
})
end

View File

@ -19,3 +19,11 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Textures by Felfa (CC0)
olive*.png
lemon*.png
Notice: Most texture authors are written inside code as comments, anything with no name
I have more than likely created myself :)

View File

@ -0,0 +1,163 @@
# textdomain:ethereal
Agar Powder=Agarpulver
Baited Fishing Rod=Angel mit Köder
Bamboo=Bambus
Bamboo Block=Bambusblock
Bamboo Floor=Bambusboden
Bamboo Leaves=Bambusblätter
Bamboo Slab=Bambusplatte
Bamboo Sprout=Bambussprosse
Bamboo stair=Bambustreppe
Banana=Banane
Banana Bunch=Bananenbündel
Banana Dough=Bananenteig
Banana Leaves=Bananenblätter
Banana Loaf=Bananenbrot
Banana Trunk=Bananenstamm
Banana Wood=Bananenholz
Banana Wood Fence=Bananenholzzaun
Banana Wood Fence Gate=Bananenholzzauntor
Banana Wood Slab=Bananenholzplatte
Banana Wood Stair=Bananenholztreppe
Birch Fence=Birkenzaun
Birch Leaves=Birkenblätter
Birch Trunk=Birkenstamm
Birch Wood=Birkenholz
Birch Wood Fence Gate=Birkenholzzauntor
Blue Glow Coral=Blaue Leuchtende Koralle
Bowl=Schale
Bucket of Cactus Pulp=Eimer Kaktusmark
Bush=Busch
Bush #2=Busch #2
Bush #3=Busch #3
Candle=Kerze
Coconut=Kokosnuss
Coconut Slice=Kokosscheibe
Cooked Fish=Gekochter Fisch
Crystal Axe=Kristallaxt
Crystal Block=Kristallblock
Crystal Block Slab=Kristallblockplatte
Crystal Block Stair=Kristallblocktreppe
Crystal Gilly Staff=Kristallener Gilly-Stab
Crystal Grass=Kristallgras
Crystal Ingot=Kristallbarren
Crystal Pickaxe=Kristallspitzhacke
Crystal Spike=Kristallnadel
Crystal Sword=Kristallschwert
Crystal block=Kristallblock
Cyan Illumishroom=Türkiser Leuchtpilz
Dried Dirt=Vertrocknete Erde
Dried Dirt Slab=Vertrocknete Erdplatte
Dried Dirt Stair=Vertrocknete Erdtreppe
Etherium Dust=Etheriumstaub
Etherium Ore=Etheriumerz
Fern=Farn
Fern Tubers=Farnsporenkapseln
Fiery Dry Shrub=Feuerroter vertrockneter Strauch
Fire Dust=Feuerstaub
Fire Flower=Feuerblume
Firethorn Jelly=Feuerdorngelee
Firethorn Shrub=Feuerdornbusch
Fishing Rod (Right-Click with rod to bait with worm from inventory)=Angel (Rechtsklick mit Angel, um Wurm aus Inventar als Köder zu benutzen)
Frost Fence=Frostzaun
Frost Leaves=Frostblätter
Frost Tree=Frostbaum
Frost Wood=Frostholz
Frost Wood Fence Gate=Frostholzzauntor
Frost Wood Slab=Frostholzplatte
Frost Wood Stair=Frostholztreppe
Glo Stone=Leuchtstein
Golden Apple=Goldener Apfel
Green Glow Coral=Grüne Leuchtende Koralle
Green Illumishroom=Grüner Leuchtpilz
Grey Baked Clay=Grauer gebrannter Ton
Healing Tree Leaves=Lebensbaumblätter
Healing Tree Trunk=Lebensbaumstamm
Healing Tree Wood=Lebensbaumholz
Healing Wood=Lebensholz
Healing Wood Fence=Lebensholzzaun
Healing Wood Fence Gate=Lebensholzzauntor
Healing Wood Slab=Lebensholzplatte
Healing Wood Stair=Lebensholztreppe
Hearty Stew=Deftiger Eintopf
Ice Brick=Eisziegel
Ice Brick Slab=Eisziegelplatte
Ice Brick Stair=Eisziegeltreppe
Inventory full, Fish Got Away!=Inventar voll, Fisch entkam!
Light String Vine=Leuchtschnurrebe
Lump of Charcoal=Holzkohleklumpen
Mushroom=Pilz
Mushroom Cap=Pilzkappe
Mushroom Fence=Pilzzaun
Mushroom Pore=Pilzpore
Mushroom Soup=Pilzsuppe
Mushroom Top=Pilzkappe
Mushroom Top Slab=Pilzkappenplatte
Mushroom Top Stair=Pilzkappentreppe
Mushroom Trunk=Pilzstamm
Mushroom Trunk Fence Gate=Pilzstammzauntor
Mushroom Trunk Slab=Pilzstammplatte
Mushroom Trunk Stair=Pilzstammtreppe
Orange=Orange
Orange Baked Clay=Orange gebrannter Ton
Orange Glow Coral=Orange Leuchtende Koralle
Orange Leaves=Orangenblätter
Palm Fence=Palmzaun
Palm Leaves=Palmenblätter
Palm Trunk=Palmstamm
Palm Wax=Palmwachs
Palm Wood=Palmholz
Palm Wood Fence Gate=Palmholzzauntor
Palm Wood Slab=Palmholzplatte
Palm Wood Stair=Palmholztreppe
Paper Wall=Papierwand
Pine Nuts=Kiefernkerne
Pink Glow Coral=Rosa Leuchtende Koralle
Quicksand=Treibsand
Raw Fish=Roher Fisch
Red Baked Clay=Roter gebrannter Ton
Red Illumishroom=Roter Leuchtpilz
Redwood=Mammutbaum
Redwood Fence=Mammutbaumzaun
Redwood Fence Gate=Mammutbaumzauntor
Redwood Leaves=Mammutbaumblätter
Redwood Slab=Mammutbaumplatte
Redwood Trunk=Mammutbaumstamm
Redwood Wood=Mammutbaumholz
Redwood stair=Mammutbaumtreppe
Sakura=Sakura
Sakura Fence=Sakurazaun
Sakura Leaves=Sakurablätter
Sakura Trunk=Sakurastamm
Sakura Wood=Sakuraholz
Sakura Wood Door=Sakuraholztür
Sakura Wood Fence Gate=Sakuraholzzauntor
Sakura Wood Slab=Sakuraholzplatte
Sakura Wood Stair=Sakuraholztreppe
Sandy=Sandy
Sashimi=Sashimi
Schematic not found=Schematic nicht gefunden
Scorched Fence=Verbrannter Zaun
Scorched Tree=Verbrannter Baum
Scorched Wood Fence Gate=Verbranntes Holzzauntor
Seaweed=Seetang
Snow Brick=Schneeziegel
Snow Brick Slab=Schneeziegelplatte
Snow Brick Stair=Schneeziegeltreppe
Snowy Grass=Verschneites Gras
Sponge=Schwamm
Staff of Light=Stab des Lichts
Stone Ladder=Steinleiter
Strawberry=Erdbeere
Vine=Liane
Wet sponge=Nasser Schwamm
Wild Onion=Wildzwiebel
Willow Fence=Weidenzaun
Willow Trunk=Weidenstamm
Willow Twig=Weidenrute
Willow Wood=Weidenholz
Willow Wood Fence Gate=Weidenholztor
Willow Wood Slab=Weidenholzplatte
Willow Wood Stair=Weidenholztreppe
Worm=Wurm
[MOD] Ethereal loaded=[MOD] Ethereal geladen

View File

@ -0,0 +1,163 @@
# textdomain:ethereal
#Agar Powder=
#Baited Fishing Rod=
#Bamboo=
#Bamboo Block=
#Bamboo Floor=
#Bamboo Leaves=
#Bamboo Slab=
#Bamboo Sprout=
#Bamboo stair=
#Banana=
#Banana Bunch=
#Banana Dough=
#Banana Leaves=
#Banana Loaf=
#Banana Trunk=
#Banana Wood=
#Banana Wood Fence=
#Banana Wood Fence Gate=
#Banana Wood Slab=
#Banana Wood Stair=
#Birch Fence=
#Birch Leaves=
#Birch Trunk=
#Birch Wood=
#Birch Wood Fence Gate=
#Blue Glow Coral=
#Bowl=
#Bucket of Cactus Pulp=
#Bush=
#Bush #2=
#Bush #3=
#Candle=
#Coconut=
#Coconut Slice=
#Cooked Fish=
#Crystal Axe=
#Crystal Block=
#Crystal Block Slab=
#Crystal Block Stair=
#Crystal Gilly Staff=
#Crystal Grass=
#Crystal Ingot=
#Crystal Pickaxe=
#Crystal Spike=
#Crystal Sword=
#Crystal block=
#Cyan Illumishroom=
#Dried Dirt=
#Dried Dirt Slab=
#Dried Dirt Stair=
#Etherium Dust=
#Etherium Ore=
#Fern=
#Fern Tubers=
#Fiery Dry Shrub=
#Fire Dust=
#Fire Flower=
#Firethorn Jelly=
#Firethorn Shrub=
#Fishing Rod (Right-Click with rod to bait with worm from inventory)=
#Frost Fence=
#Frost Leaves=
#Frost Tree=
#Frost Wood=
#Frost Wood Fence Gate=
#Frost Wood Slab=
#Frost Wood Stair=
#Glo Stone=
#Golden Apple=
#Green Glow Coral=
#Green Illumishroom=
#Grey Baked Clay=
#Healing Tree Leaves=
#Healing Tree Trunk=
#Healing Tree Wood=
#Healing Wood=
#Healing Wood Fence=
#Healing Wood Fence Gate=
#Healing Wood Slab=
#Healing Wood Stair=
#Hearty Stew=
#Ice Brick=
#Ice Brick Slab=
#Ice Brick Stair=
#Inventory full, Fish Got Away!=
#Light String Vine=
#Lump of Charcoal=
#Mushroom=
#Mushroom Cap=
#Mushroom Fence=
#Mushroom Pore=
#Mushroom Soup=
#Mushroom Top=
#Mushroom Top Slab=
#Mushroom Top Stair=
#Mushroom Trunk=
#Mushroom Trunk Fence Gate=
#Mushroom Trunk Slab=
#Mushroom Trunk Stair=
#Orange=
#Orange Baked Clay=
#Orange Glow Coral=
#Orange Leaves=
#Palm Fence=
#Palm Leaves=
#Palm Trunk=
#Palm Wax=
#Palm Wood=
#Palm Wood Fence Gate=
#Palm Wood Slab=
#Palm Wood Stair=
#Paper Wall=
#Pine Nuts=
#Pink Glow Coral=
#Quicksand=
#Raw Fish=
#Red Baked Clay=
#Red Illumishroom=
#Redwood=
#Redwood Fence=
#Redwood Fence Gate=
#Redwood Leaves=
#Redwood Slab=
#Redwood Trunk=
#Redwood Wood=
#Redwood stair=
#Sakura=
#Sakura Fence=
#Sakura Leaves=
#Sakura Trunk=
#Sakura Wood=
#Sakura Wood Door=
#Sakura Wood Fence Gate=
#Sakura Wood Slab=
#Sakura Wood Stair=
#Sandy=
#Sashimi=
#Schematic not found=
#Scorched Fence=
#Scorched Tree=
#Scorched Wood Fence Gate=
#Seaweed=
#Snow Brick=
#Snow Brick Slab=
#Snow Brick Stair=
#Snowy Grass=
#Sponge=
#Staff of Light=
#Stone Ladder=
#Strawberry=
#Vine=
#Wet sponge=
#Wild Onion=
#Willow Fence=
#Willow Trunk=
#Willow Twig=
#Willow Wood=
#Willow Wood Fence Gate=
#Willow Wood Slab=
#Willow Wood Stair=
#Worm=
#[MOD] Ethereal loaded=

View File

@ -0,0 +1,163 @@
# textdomain:ethereal
Agar Powder=Poudre d'agar
Baited Fishing Rod=Canne à pêche avec appât
Bamboo=Bambou
Bamboo Block=Bloc de bambou
Bamboo Floor=Plancher de bambou
Bamboo Leaves=Feuilles de bambou
Bamboo Slab=Dalle de bambou
Bamboo Sprout=Germe de bambou
Bamboo stair=Marche de bambou
Banana=Banane
Banana Bunch=Régime de banane
Banana Dough=Pâte de banande
Banana Leaves=Feuilles de bananier
Banana Loaf=Pain aux bananes
Banana Trunk=Tronc de bananier
Banana Wood=Bois de bananier
Banana Wood Fence=Clôture en bananier
Banana Wood Fence Gate=Porte de clôture en bananier
Banana Wood Slab=Dalle de bois de bananier
Banana Wood Stair=Marche en bois de bananier
Birch Fence=Clôture en bouleau
Birch Leaves=Feuilles de bouleau
Birch Trunk=Tronc de bouleau
Birch Wood=Bois de bouleau
Birch Wood Fence Gate=Porte de clôture en bouleau
Blue Glow Coral=Corail lueur bleu
Bowl=Bol
Bucket of Cactus Pulp=Seau de pâte de cactus
Bush=Arbuste
Bush #2=Arbuste #2
Bush #3=Arbuste #3
Candle=Chandelle
Coconut=Noix de coco
Coconut Slice=Tranche de noix de coco
Cooked Fish=Poisson cuit
Crystal Axe=Hâche de crystal
Crystal Block=Bloc de crystal
Crystal Block Slab=Dalle de crystal
Crystal Block Stair=Marche de crystal
Crystal Gilly Staff=Baton de crystal
Crystal Grass=Herbe de crystal
Crystal Ingot=Lingot de crystal
Crystal Pickaxe=Pioche de crystal
Crystal Spike=Pic de crystal
Crystal Sword=Épée de crystal
Crystal block=Bloc de crystal
Cyan Illumishroom=Luminochampignon cyan
Dried Dirt=Terre sèche
Dried Dirt Slab=Dalle de terre sèche
Dried Dirt Stair=Marche de terre sèche
Etherium Dust=Poudre céleste
Etherium Ore=Minerai céleste
Fern=Fougère
Fern Tubers=Tubercules de fougère
Fiery Dry Shrub=Arbuste ardent sec
Fire Dust=Poudre de feu
Fire Flower=Fleur de feu
Firethorn Jelly=Gelée d'épinafeu
Firethorn Shrub=Arbuste épinafeu
Fishing Rod (Right-Click with rod to bait with worm from inventory)=Canne à pèche (Clic droit avec canne pour ajouter l'appât à partir de l'inventaire)
Frost Fence=Clôture de givrier
Frost Leaves=Feuilles de givrier
Frost Tree=Givrier
Frost Wood=Bois de givrier
Frost Wood Fence Gate=Porte de clôture en givrier
Frost Wood Slab=Dalle de givrier
Frost Wood Stair=Marche en givrier
Glo Stone=Pierre luminescente
Golden Apple=Pomme dorée
Green Glow Coral=Corail lueur vert
Green Illumishroom=Luminochampignon vert
Grey Baked Clay=Terre cuite grise
Healing Tree Leaves=Feuilles de soignantier
Healing Tree Trunk=Tronc de soignantier
Healing Tree Wood=Bois de soignantier
Healing Wood=Bois soignant
Healing Wood Fence=Clôture en soignantier
Healing Wood Fence Gate=Porte de clôture en soignantier
Healing Wood Slab=Dalle de soignantier
Healing Wood Stair=Marche en soignantier
Hearty Stew=Ragoût copieux
Ice Brick=Brique de glace
Ice Brick Slab=Dalle en briques de glace
Ice Brick Stair=Marche en briques de glace
Inventory full, Fish Got Away!=Inventaire plein, un poisson s'est échappé !
Light String Vine=Vigne en girlande de lumières
Lump of Charcoal=Morceau de charbon de bois
Mushroom=Champignon
Mushroom Cap=Dessus de champignon
Mushroom Fence=Clôture en champignon
Mushroom Pore=Pore de champignon
Mushroom Soup=Soupe aux champignons
Mushroom Top=Tête de champignon
Mushroom Top Slab=Dalle en tête de champignon
Mushroom Top Stair=Marche en tête de champignon
Mushroom Trunk=Tronc de champignon
Mushroom Trunk Fence Gate=Porte de clôture en champignon
Mushroom Trunk Slab=Dalle de champignon
Mushroom Trunk Stair=Marche en champignon
Orange=Orange
Orange Baked Clay=Terre cuite orange
Orange Glow Coral=Corail lueur orange
Orange Leaves=Feuilles orange
Palm Fence=Clôture de palmier
Palm Leaves=Feuilles de palmier
Palm Trunk=Tronc de palmier
Palm Wax=Cire de palmier
Palm Wood=Bois de palmier
Palm Wood Fence Gate=Porte de clôture en palmier
Palm Wood Slab=Dalle de palmier
Palm Wood Stair=Marche en palmier
Paper Wall=Mûr de papier
Pine Nuts=Pignon de pin
Pink Glow Coral=Corail lueur rose
Quicksand=Sables mouvants
Raw Fish=Poisson cru
Red Baked Clay=Terre cuite rouge
Red Illumishroom=Luminochampignon rouge
Redwood=Séquoia
Redwood Fence=Clôture en séquoia
Redwood Fence Gate=Porte de clôture en séquoia
Redwood Leaves=Feuilles de séquoia
Redwood Slab=Dalle de séquoia
Redwood Trunk=Tronc de séquoia
Redwood Wood=Bois de séquoia
Redwood stair=Marche en séquoia
Sakura=Sakura
Sakura Fence=Clôture en sakura
Sakura Leaves=Feuilles de sakura
Sakura Trunk=Tronc de sakura
Sakura Wood=Bois de sakura
Sakura Wood Door=Porte en sakura
Sakura Wood Fence Gate=Porte de clôture en sakura
Sakura Wood Slab=Dalle de sakura
Sakura Wood Stair=Marche de sakura
Sandy=Sable de mer
Sashimi=Sashimi
Schematic not found=Schéma introuvable
Scorched Fence=Clôture brûlée
Scorched Tree=Arbre brûlé
Scorched Wood Fence Gate=Porte de clôture en bois brûlé
Seaweed=Algues
Snow Brick=Brique de neige
Snow Brick Slab=Dalle en briques de neige
Snow Brick Stair=Marche en briques de neige
Snowy Grass=Herbe des neiges
Sponge=Éponge
Staff of Light=Bâton de lumière
Stone Ladder=Échelle en roche
Strawberry=Fraise
Vine=Vigne
Wet sponge=Éponge mouillée
Wild Onion=Onion sauvage
Willow Fence=Clôture en saule
Willow Trunk=Tronc de saule
Willow Twig=Brindille de saule
Willow Wood=Bois de saule
Willow Wood Fence Gate=Porte de clôture en saule
Willow Wood Slab=Dalle de saule
Willow Wood Stair=Marche en saule
Worm=Ver
[MOD] Ethereal loaded=[MOD] Ethereal chargé

View File

@ -0,0 +1,163 @@
# textdomain:ethereal
#Agar Powder=
Baited Fishing Rod=Удочка с приманкой
Bamboo=Бамбук
#Bamboo Block=
Bamboo Floor=Бамбуковый пол
Bamboo Leaves=Бамбуковая листва
Bamboo Slab=Плита из бамбука
Bamboo Sprout=Росток бамбука
#Bamboo stair=
Banana=Банан
#Banana Bunch=
Banana Dough=Банановое тесто
Banana Leaves=Листва банана
Banana Loaf=Банадовый хлеб
Banana Trunk=Ствол бананового дерева
Banana Wood=Доски банавого дерева
Banana Wood Fence=Забор из бананового дерева
Banana Wood Fence Gate=Ворота из бананового дерева для забора
Banana Wood Slab=Плита из банановых досок
Banana Wood Stair=Ступенька из банановых досок
Birch Fence=Берёзовый забор
Birch Leaves=Берёзовая листва
Birch Trunk=Ствол берёзы
Birch Wood=Доски берёзы
Birch Wood Fence Gate=Берёзовые ворота для забора
Blue Glow Coral=Синий коралл
Bowl=Чашка
Bucket of Cactus Pulp=Ведро с мякотью кактуса
Bush=Куст
Bush #2=Куст #2
Bush #3=Куст #3
Candle=Свеча
Coconut=Кокос
Coconut Slice=Кокосовый ломтик
Cooked Fish=Свареная рыба
Crystal Axe=Хрустальный топор
Crystal Block=Хрустальный блок
Crystal Block Slab=Плита из хрустального блока
Crystal Block Stair=Ступенька из хрустального блока
Crystal Gilly Staff=Хрустальный посох Джилли
Crystal Grass=Хрустальная трава
Crystal Ingot=Хрустальный слиток
Crystal Pickaxe=Хрустальная кирка
Crystal Spike=Хрустальный шип
Crystal Sword=Хрустальный меч
#Crystal block=
Cyan Illumishroom=Голубой светящийся гриб
Dried Dirt=Высушенная земля
#Dried Dirt Slab=
#Dried Dirt Stair=
#Etherium Dust=
#Etherium Ore=
Fern=Папоротник
Fern Tubers=Клубни папоротника
Fiery Dry Shrub=Огненный сухой кустарник
Fire Dust=Огненая пыль
Fire Flower=Огненый цветок
#Firethorn Jelly=
#Firethorn Shrub=
#Fishing Rod (Right-Click with rod to bait with worm from inventory)=
Frost Fence=Замороженный забор
Frost Leaves=Замороженная листва
Frost Tree=Морозное дерево
Frost Wood=Доски
Frost Wood Fence Gate=Замороженные деревянные ворота для забора
Frost Wood Slab=Плита из замороженных досок
Frost Wood Stair=Ступенька из замороженных досок
Glo Stone=Светящийся камень
Golden Apple=Золотое яблоко
Green Glow Coral=Залёный коралл
Green Illumishroom=Зелёный светящийся гриб
Grey Baked Clay=Серая обожжёная глина
Healing Tree Leaves=Листва лечащего дерева
Healing Tree Trunk=Ствол лечебного дерева
Healing Tree Wood=Доски лечебного дерева
Healing Wood=лечебная древесина
Healing Wood Fence=Забор из лечащего дерева
Healing Wood Fence Gate=Ворота из лечащего дерева для забора
Healing Wood Slab=Плита из лечебного дерева
Healing Wood Stair=Ступенька из лечебного дерева
Hearty Stew=Сытное рагу
Ice Brick=Ледяной кирпич
Ice Brick Slab=Плита из ледяного кирпича
Ice Brick Stair=Ступенька из ледяного кирпича
Inventory full, Fish Got Away!=Инвентарь заполнен, рыба сбежала!
Light String Vine=Светящаяся виноградная лоза
Lump of Charcoal=Кусок угля
Mushroom=Гриб
Mushroom Cap=Шляпка гриба
Mushroom Fence=Грибной забор
Mushroom Pore=Грибные поры
Mushroom Soup=Грибной суп
Mushroom Top=Шляпка гриба
Mushroom Top Slab=Плита из шляпки гриба
Mushroom Top Stair=Ступенька из шляпки гриба
Mushroom Trunk=Ствол гриба
Mushroom Trunk Fence Gate=Ворота из грибного ствола для забора
Mushroom Trunk Slab=Плита из ствола гриба
Mushroom Trunk Stair=Ступенька из ствола гриба
Orange=Апельсин
Orange Baked Clay=Оранжевая обожжёная глина
Orange Glow Coral=Оранжевый коралл
Orange Leaves=Листва апельсина
Palm Fence=Пальмовый забор
Palm Leaves=Пальмовая листва
Palm Trunk=Ствол пальмы
Palm Wax=Пальмовый воск
Palm Wood=Доски пальмы
Palm Wood Fence Gate=Ворота из пальмого дерева для забора
Palm Wood Slab=Плита из пальмовых досок
Palm Wood Stair=Ступенька из пальмовых досок
Paper Wall=Обои
Pine Nuts=Кедровые орехи
Pink Glow Coral=Розовый коралл
Quicksand=Зыбучий песок
Raw Fish=Сырая рыба
Red Baked Clay=Красная обожжёная глина
Red Illumishroom=Красный светящийся гриб
Redwood=Секвойя
Redwood Fence=Забор из секвойи
Redwood Fence Gate=Ворота из секвойи для забора
Redwood Leaves=Листва секвойи
Redwood Slab=Плита из секвойи
Redwood Trunk=Ствол секвойи
Redwood Wood=Доски секвойи
#Redwood stair=
#Sakura=
#Sakura Fence=
#Sakura Leaves=
#Sakura Trunk=
#Sakura Wood=
#Sakura Wood Door=
#Sakura Wood Fence Gate=
#Sakura Wood Slab=
#Sakura Wood Stair=
Sandy=Песочный
Sashimi=Сашими
Schematic not found=Схема не найдена
Scorched Fence=Обожжёный забор
Scorched Tree=Обожжёное дерево
Scorched Wood Fence Gate=Обожжёные деревянные ворота для забора
Seaweed=Водоросли
Snow Brick=Снежный кирпич
Snow Brick Slab=Плита из снежного кирпича
Snow Brick Stair=Ступенька из снежного кирпича
Snowy Grass=Заснеженная трава
#Sponge=
Staff of Light=Световой посох
Stone Ladder=Каменная лестница
Strawberry=Клубника
Vine=Виноградная лоза
#Wet sponge=
Wild Onion=Дикий лук
Willow Fence=Ивовый забор
Willow Trunk=Ствол ивы
Willow Twig=Ивовый прут
Willow Wood=Доски ивы
Willow Wood Fence Gate=Ивовые ворота для забора
Willow Wood Slab=Плита из ивовых досок
Willow Wood Stair=Ступенька из ивовых досок
Worm=Червь
[MOD] Ethereal loaded=[MOD] Ethereal загружен

View File

@ -0,0 +1,163 @@
# textdomain:ethereal
#Agar Powder=
Baited Fishing Rod=带饵的钓鱼竿
Bamboo=竹子
#Bamboo Block=
Bamboo Floor=竹地板
Bamboo Leaves=竹叶
Bamboo Slab=竹板
Bamboo Sprout=竹笋
#Bamboo stair=
Banana=香蕉
#Banana Bunch=
Banana Dough=香蕉皮
Banana Leaves=香蕉树叶
Banana Loaf=香蕉面包
Banana Trunk=香蕉树干
Banana Wood=香蕉木
Banana Wood Fence=香蕉木栅栏
Banana Wood Fence Gate=香蕉木栅栏门
Banana Wood Slab=香蕉木板
Banana Wood Stair=香蕉木楼梯
Birch Fence=桦树栅栏
Birch Leaves=白桦树叶
Birch Trunk=桦树树干
Birch Wood=白桦木材
Birch Wood Fence Gate=白桦木栅栏门
Blue Glow Coral=蓝色珊瑚
Bowl=碗
Bucket of Cactus Pulp=仙人掌果肉桶
Bush=灌木
Bush #2=灌木 #2
Bush #3=灌木 #3
Candle=蜡烛
Coconut=椰子
Coconut Slice=椰子片
Cooked Fish=煮熟的鱼
Crystal Axe=水晶斧
Crystal Block=水晶块
Crystal Block Slab=水晶板
Crystal Block Stair=水晶楼梯
Crystal Gilly Staff=水晶网络人员
Crystal Grass=水晶草
Crystal Ingot=水晶锭
Crystal Pickaxe=水晶锄
Crystal Spike=水晶尖
Crystal Sword=水晶剑
#Crystal block=
Cyan Illumishroom=青色蘑菇
Dried Dirt=干土
#Dried Dirt Slab=
#Dried Dirt Stair=
#Etherium Dust=
#Etherium Ore=
Fern=蕨类植物
Fern Tubers=蕨类植物的茎
Fiery Dry Shrub=干枯灌木
Fire Dust=火土
Fire Flower=火焰花
#Firethorn Jelly=
#Firethorn Shrub=
#Fishing Rod (Right-Click with rod to bait with worm from inventory)=
Frost Fence=霜木栅栏
Frost Leaves=霜叶子
Frost Tree=霜树
Frost Wood=霜木
Frost Wood Fence Gate=霜木栅栏门
Frost Wood Slab=霜木材板
Frost Wood Stair=霜木楼梯
Glo Stone=荧光石
Golden Apple=金苹果
Green Glow Coral=绿色珊瑚
Green Illumishroom=绿色蘑菇
Grey Baked Clay=灰色烤粘土
Healing Tree Leaves=治疗树叶
Healing Tree Trunk=治疗树干
Healing Tree Wood=治疗树木材
Healing Wood=治疗木
Healing Wood Fence=治疗木栅栏
Healing Wood Fence Gate=愈合木栅栏门
Healing Wood Slab=治疗木板
Healing Wood Stair=治疗木楼梯
Hearty Stew=丰盛的炖肉
Ice Brick=冰砖
Ice Brick Slab=冰砖板
Ice Brick Stair=冰砖楼梯
Inventory full, Fish Got Away!=库存满了,鱼逃掉了!
Light String Vine=荧光藤蔓
Lump of Charcoal=块木炭
Mushroom=蘑菇
Mushroom Cap=蘑菇帽
Mushroom Fence=蘑菇栅栏
Mushroom Pore=蘑菇孔隙
Mushroom Soup=蘑菇汤
Mushroom Top=蘑菇顶部
Mushroom Top Slab=蘑菇顶部板
Mushroom Top Stair=蘑菇上楼梯
Mushroom Trunk=蘑菇干
Mushroom Trunk Fence Gate=蘑菇栅栏门
Mushroom Trunk Slab=蘑菇板
Mushroom Trunk Stair=蘑菇楼梯
Orange=橙子
Orange Baked Clay=橙色烤粘土
Orange Glow Coral=橙色珊瑚
Orange Leaves=橙子树叶
Palm Fence=棕榈栅栏
Palm Leaves=棕榈叶
Palm Trunk=棕榈树干
Palm Wax=棕榈蜡
Palm Wood=棕榈木
Palm Wood Fence Gate=棕榈木栅栏门
Palm Wood Slab=棕榈木板
Palm Wood Stair=棕榈木楼梯
Paper Wall=纸墙
Pine Nuts=松子
Pink Glow Coral=粉色珊瑚
Quicksand=流沙
Raw Fish=生鱼
Red Baked Clay=红色烤粘土
Red Illumishroom=红色蘑菇
Redwood=红木
Redwood Fence=红杉栅栏
Redwood Fence Gate=红杉栅栏门
Redwood Leaves=红杉树叶
Redwood Slab=红杉板
Redwood Trunk=红木箱子
Redwood Wood=红木木材
#Redwood stair=
#Sakura=
#Sakura Fence=
#Sakura Leaves=
#Sakura Trunk=
#Sakura Wood=
#Sakura Wood Door=
#Sakura Wood Fence Gate=
#Sakura Wood Slab=
#Sakura Wood Stair=
Sandy=沙子
Sashimi=生鱼片
Schematic not found=没有找到示意图
Scorched Fence=烧焦的栅栏
Scorched Tree=烧焦的树
Scorched Wood Fence Gate=烧焦的木栅栏门
Seaweed=海藻
Snow Brick=雪砖
Snow Brick Slab=雪砖板
Snow Brick Stair=雪砖楼梯
Snowy Grass=雪草
#Sponge=
Staff of Light=灯柱
Stone Ladder=石梯
Strawberry=草莓
Vine=藤蔓
#Wet sponge=
Wild Onion=野生洋葱
Willow Fence=柳树栅栏
Willow Trunk=柳树树干
Willow Twig=柳树枝
Willow Wood=柳树木
Willow Wood Fence Gate=柳树木栅栏门
Willow Wood Slab=柳树木板
Willow Wood Stair=柳树木楼梯
Worm=蠕虫
[MOD] Ethereal loaded=(MOD)的加载

View File

@ -0,0 +1,218 @@
# 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,178 @@
Bone =骨
Bone Meal =骨粉
Crystal Spike =水晶尖
Crystal Ingot =水晶锭
Crystal Block =水晶块
Crystal Sword =水晶剑
Crystal Axe =水晶斧
Crystal Pickaxe =水晶锄
Crystal (soft touch) Shovel =水晶铲
Crystal Gilly Staff =水晶网络人员
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 =流沙
Bamboo Floor =竹地板
Palm Wax =棕榈蜡
Candle =蜡烛
Bowl =碗
Stone Ladder =石梯
Paper Wall =纸墙
Glo Stone =荧光石
Lump of Charcoal =块木炭
Staff of Light =灯柱
Scorched Fence =烧焦的栅栏
Frost Fence =霜木栅栏
Redwood Fence =红杉栅栏
Willow Fence =柳树栅栏
Healing Wood Fence =治疗木栅栏
Palm Fence =棕榈栅栏
Banana Wood Fence =香蕉木栅栏
Mushroom Fence =蘑菇栅栏
Birch Fence =桦树栅栏
Raw Fish =生鱼
Cooked Fish =煮熟的鱼
Sashimi =生鱼片
Worm =蠕虫
Fishing Rod =鱼竿
Baited Fishing Rod =带饵的钓鱼竿
Inventory full, Fish Got Away! =库存满了,鱼逃掉了!
Banana =香蕉
Banana Dough =香蕉皮
Orange =橙子
Pine Nuts =松子
Banana Loaf =香蕉面包
Coconut =椰子
Coconut Slice =椰子片
Golden Apple =金苹果
Hearty Stew =丰盛的炖肉
Bucket of Cactus Pulp =仙人掌果肉桶
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 =白桦木栅栏门
[MOD] Ethereal loaded =(MOD)的加载
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 =灌木 #2
Bush #3 =灌木 #3
Mushroom Soup =蘑菇汤
Wild Onion =野生洋葱
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 =青色蘑菇
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 =没有找到示意图
Seaweed =海藻
Blue Coral =蓝色珊瑚
Orange Coral =橙色珊瑚
Pink Coral =粉色珊瑚
Green Coral =绿色珊瑚
Sandy =沙子
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 =草莓
Ice Brick =冰砖
Snow Brick =雪砖
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

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

@ -53,6 +53,7 @@ local add_ore = function(a, b, c, d, e, f, g)
})
end
-- Coal
add_ore("default:stone_with_coal", "default:desert_stone", 24*24*24, 27, 6, -31000, -16)

View File

@ -61,6 +61,9 @@ register_sapling("ethereal:redwood", "Redwood", "redwood_sapling", 31)
register_sapling("ethereal:orange_tree", "Orange", "orange_tree_sapling", 6)
register_sapling("ethereal:birch", "Birch", "moretrees_birch_sapling", 7)
register_sapling("ethereal:sakura", "Sakura", "ethereal_sakura_sapling", 10)
register_sapling("ethereal:lemon_tree", "Lemon", "lemon_tree_sapling", 7)
register_sapling("ethereal:olive_tree", "Olive", "olive_tree_sapling", 10)
local add_tree = function (pos, ofx, ofy, ofz, schem, replace)
-- check for schematic
@ -87,7 +90,13 @@ function ethereal.grow_big_tree(pos)
end
function ethereal.grow_banana_tree(pos)
add_tree(pos, 3, 0, 3, ethereal.bananatree)
if math.random(3) == 1
and minetest.find_node_near(pos, 1, {"farming:soil_wet"}) then
add_tree(pos, 3, 0, 3, ethereal.bananatree,
{{"ethereal:banana", "ethereal:banana_bunch"}})
else
add_tree(pos, 3, 0, 3, ethereal.bananatree)
end
end
function ethereal.grow_frost_tree(pos)
@ -111,7 +120,7 @@ function ethereal.grow_redwood_tree(pos)
end
function ethereal.grow_orange_tree(pos)
add_tree(pos, 1, 0, 1, ethereal.orangetree)
add_tree(pos, 2, 0, 2, ethereal.orangetree)
end
function ethereal.grow_bamboo_tree(pos)
@ -131,6 +140,14 @@ function ethereal.grow_sakura_tree(pos)
end
end
function ethereal.grow_lemon_tree(pos)
add_tree(pos, 2, 0, 2, ethereal.lemontree)
end
function ethereal.grow_olive_tree(pos)
add_tree(pos, 3, 0, 3, ethereal.olivetree)
end
-- check if sapling has enough height room to grow
local enough_height = function(pos, height)
@ -212,6 +229,14 @@ local grow_sapling = function(pos, node)
elseif node.name == "ethereal:sakura_sapling"
and under == "ethereal:bamboo_dirt" then
ethereal.grow_sakura_tree(pos)
elseif node.name == "ethereal:olive_tree_sapling"
and under == "ethereal:grove_dirt" then
ethereal.grow_olive_tree(pos)
elseif node.name == "ethereal:lemon_tree_sapling"
and under == "ethereal:grove_dirt" then
ethereal.grow_lemon_tree(pos)
end
end

View File

@ -0,0 +1,85 @@
local _ = {name = "air", param1 = 000}
local B = {name = "ethereal:bamboo", param1 = 255}
local L = {name = "ethereal:bamboo_leaves", param1 = 255}
local l = {name = "ethereal:bamboo_leaves", param1 = 100}
ethereal.bambootree = {
size = {x = 3, y = 18, z = 3},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 1, prob = 127},
{ypos = 2, prob = 127},
},
data = {
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
l,L,l,
_,L,_,
_,_,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
l,L,l,
_,L,_,
_,l,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
l,L,l,
_,L,_,
_,_,_,
}
}
if ethereal.papyruswalk == true then
minetest.override_item("default:papyrus", {
walkable = true,
sunlight_propagates = true
})
end

View File

@ -0,0 +1,83 @@
local _ = {name = "air", param1 = 0}
local T = {name = "ethereal:banana_trunk", param1 = 255}
local L = {name = "ethereal:bananaleaves", param1 = 255}
local l = {name = "ethereal:bananaleaves", param1 = 180}
local B = {name = "ethereal:banana", param1 = 255}
local b = {name = "ethereal:banana", param1 = 070}
ethereal.bananatree = {
size = {x = 7, y = 8, z = 7},
yslice_prob = {
{ypos = 0, prob = 127},
},
data = {
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,l,_,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,b,_,_,_,
_,_,_,B,_,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,b,T,b,_,_,
_,_,B,L,B,_,_,
_,L,L,L,L,L,_,
L,l,_,L,_,l,L,
_,_,_,T,_,_,_,
_,_,_,T,_,_,_,
_,_,_,T,_,_,_,
_,_,_,T,_,_,_,
_,_,_,b,_,_,_,
_,_,_,B,_,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,L,_,_,_,
_,_,_,l,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,100 @@
local _ = {name = "air", prob = 0}
local L = {name = "default:leaves", prob = 255}
local T = {name = "default:tree", prob = 255}
local t = {name = "default:tree", prob = 127}
ethereal.bigtree = {
size = {x = 9, y = 8, z = 9},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 1, prob = 127},
},
data = {
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,t,t,_,t,t,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,L,L,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,t,t,t,t,t,t,t,_,
_,_,_,t,_,t,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,L,L,L,L,L,_,_,
_,_,_,L,L,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,t,t,t,T,t,t,t,_,
_,_,t,t,T,t,t,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,L,L,L,T,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,_,_,_,
L,L,L,L,T,L,L,L,L,
_,L,L,L,T,L,L,L,_,
_,_,L,L,L,L,L,_,_,
_,_,_,_,_,_,_,_,_,
_,t,t,t,T,t,t,t,_,
_,_,t,t,T,t,t,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,L,L,L,T,L,L,L,_,
_,_,L,L,L,L,L,_,_,
_,_,_,L,L,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,t,t,t,t,t,t,t,_,
_,_,_,t,_,t,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,L,L,L,L,L,_,_,
_,_,_,L,L,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,t,t,_,t,t,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,L,L,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,59 @@
local _ = {name = "air", param1 = 0}
local T = {name = "ethereal:birch_trunk", param1 = 255}
local L = {name = "ethereal:birch_leaves", param1 = 255}
local l = {name = "ethereal:birch_leaves", param1 = 150}
ethereal.birchtree = {
size = {x = 5, y = 7, z = 5},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 3, prob = 127},
},
data = {
_,_,_,_,_,
_,_,_,_,_,
_,_,_,_,_,
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,_,_,
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,L,
_,l,L,l,_,
_,_,L,_,_,
_,_,_,_,_,
_,_,_,_,_,
_,_,_,_,_,
l,L,L,L,l,
l,L,L,L,l,
_,_,_,_,_,
_,_,_,_,_,
}
}

View File

@ -0,0 +1,38 @@
local _ = {name = "air", param1 = 0}
local B = {name = "ethereal:bush", param1 = 255}
local b = {name = "ethereal:bush", param1 = 100}
ethereal.bush = {
size = {x = 5, y = 3, z = 5},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 2, prob = 127},
},
data = {
b,B,B,B,b,
_,_,_,_,_,
_,_,_,_,_,
B,B,B,B,B,
_,b,B,b,_,
_,_,_,_,_,
B,B,B,B,B,
_,B,B,B,_,
_,_,b,_,_,
B,B,B,B,B,
_,b,B,b,_,
_,_,_,_,_,
b,B,B,B,b,
_,_,_,_,_,
_,_,_,_,_,
}
}

Binary file not shown.

View File

@ -0,0 +1,184 @@
local _ = {name = "air", prob = 0}
local l = {name = "ethereal:frost_leaves", prob = 255}
local t = {name = "ethereal:frost_tree", prob = 255}
ethereal.frosttrees = {
size = {x = 8, y = 19, z = 8},
yslice_prob = {
{ypos = 0, prob = 127}, -- trunk
{ypos = 1, prob = 127},
{ypos = 2, prob = 127},
{ypos = 3, prob = 127},
{ypos = 4, prob = 127},
{ypos = 5, prob = 127},
{ypos = 13, prob = 127}, -- leaves
{ypos = 15, prob = 127},
},
data = {
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,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,_,_,_,
_,_,l,t,t,l,_,_,
l,l,l,t,t,l,l,l,
_,_,l,t,t,l,_,_,
_,l,l,t,t,l,l,_,
_,_,l,t,t,l,_,_,
_,_,l,t,t,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,_,_,_,
_,_,l,t,t,l,_,_,
l,l,l,t,t,l,l,l,
_,_,l,t,t,l,_,_,
_,l,l,t,t,l,l,_,
_,_,l,t,t,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,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,62 @@
local _ = {name = "air", prob = 0}
local S = {name = "default:snowblock", prob = 255}
local P = {name = "default:pine_bush_stem", prob = 50}
local C = {name = "ethereal:coconut", prob = 50}
ethereal.igloo = {
size = {x = 7, y = 5, z = 8},
data = {
_,_,S,S,S,_,_,
_,_,S,_,S,_,_,
_,_,S,_,S,_,_,
_,_,_,S,_,_,_,
_,_,_,_,_,_,_,
_,_,S,S,S,_,_,
_,_,S,_,S,_,_,
_,_,S,_,S,_,_,
_,_,_,S,_,_,_,
_,_,_,_,_,_,_,
_,S,S,S,S,S,_,
_,S,_,_,_,S,_,
_,S,_,_,_,S,_,
_,_,S,S,S,_,_,
_,_,_,_,_,_,_,
S,S,S,S,S,S,S,
S,P,_,_,_,C,S,
S,_,_,_,_,_,S,
_,S,_,_,_,S,_,
_,_,S,S,S,_,_,
S,S,S,S,S,S,S,
S,_,_,_,_,_,S,
S,_,_,_,_,_,S,
_,S,_,_,_,S,_,
_,_,S,S,S,_,_,
S,S,S,S,S,S,S,
S,_,_,_,_,_,S,
S,_,_,_,_,_,S,
_,S,_,_,_,S,_,
_,_,S,S,S,_,_,
_,S,S,S,S,S,_,
_,S,_,_,_,S,_,
_,S,_,_,_,S,_,
_,_,S,S,S,_,_,
_,_,_,_,_,_,_,
_,_,S,S,S,_,_,
_,_,S,S,S,_,_,
_,_,S,S,S,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,65 @@
local _ = {name = "air", param1 = 0}
local L = {name = "ethereal:lemon_leaves", param1 = 255}
local l = {name = "ethereal:lemon_leaves", param1 = 127}
local T = {name = "default:tree", param1 = 255}
local e = {name = "ethereal:lemon", param1 = 100}
ethereal.lemontree = {
size = {x = 5, y = 8, z = 5},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 3, prob = 127},
},
data = {
_,_,_,_,_,
_,_,_,_,_,
_,_,_,_,_,
_,_,e,_,_,
_,L,L,L,e,
e,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,_,_,
l,e,T,l,l,
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,_,_,
e,L,L,l,_,
_,l,L,L,_,
_,L,L,L,e,
_,_,l,_,_,
}
}

View File

@ -0,0 +1,116 @@
local _ = {name = "air", prob = 0}
local M = {name = "ethereal:mushroom", prob = 255}
local T = {name = "ethereal:mushroom_trunk", prob = 255}
local P = {name = "ethereal:mushroom_pore", prob = 255}
ethereal.mushroomone = {
size = {x = 8, y = 11, z = 8},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 1, prob = 127},
{ypos = 7, prob = 127},
},
data = {
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,M,M,_,_,_,
_,_,_,M,M,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,M,_,_,M,_,_,
_,_,M,_,_,M,_,_,
_,_,_,M,M,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,M,_,_,_,_,M,_,
_,M,_,_,_,_,M,_,
_,_,M,P,P,M,_,_,
_,_,_,M,M,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
M,_,_,T,T,_,_,M,
M,_,_,T,T,_,_,M,
_,M,P,P,P,P,M,_,
_,_,M,M,M,M,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
M,_,_,T,T,_,_,M,
M,_,_,T,T,_,_,M,
_,M,P,P,P,P,M,_,
_,_,M,M,M,M,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,M,_,_,_,_,M,_,
_,M,_,_,_,_,M,_,
_,_,M,P,P,M,_,_,
_,_,_,M,M,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,M,_,_,M,_,_,
_,_,M,_,_,M,_,_,
_,_,_,M,M,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,M,M,_,_,_,
_,_,_,M,M,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,88 @@
local _ = {name = "air", param1 = 0}
local L = {name = "ethereal:olive_leaves", param1 = 255}
local T = {name = "ethereal:olive_trunk", param1 = 255}
local o = {name = "ethereal:olive", param1 = 150}
ethereal.olivetree = {
size = {x = 8, y = 9, z = 7},
data = {
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,L,_,_,_,_,L,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,L,_,L,L,o,_,
L,T,L,L,o,L,T,L,
_,L,_,_,_,_,L,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,T,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,L,T,L,_,T,L,_,
_,L,L,_,L,L,L,_,
_,_,_,L,L,_,_,_,
_,_,o,L,L,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,L,T,T,_,_,_,
_,o,L,T,T,T,L,_,
_,L,L,T,T,L,o,_,
_,_,L,T,T,L,_,_,
_,_,L,T,T,L,_,_,
_,_,_,L,L,_,_,_,
_,_,_,_,T,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,L,_,_,_,
_,_,L,T,L,L,_,_,
_,_,L,L,T,L,_,_,
_,_,_,L,L,L,_,_,
_,_,L,L,L,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,o,L,_,_,_,_,
_,L,T,L,L,o,_,_,
_,_,L,_,L,T,L,_,
_,_,o,_,_,L,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,L,_,_,_,_,_,
_,_,_,_,_,L,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,54 @@
local _ = {name = "air", param1 = 0}
local L = {name = "ethereal:orange_leaves", param1 = 255}
local l = {name = "ethereal:orange_leaves", param1 = 200}
local T = {name = "default:tree", param1 = 255}
local o = {name = "ethereal:orange", param1 = 200}
ethereal.orangetree = {
size = {x = 5, y = 6, z = 5},
yslice_prob = {
{ypos = 0, prob = 127},
},
data = {
_,_,_,_,_,
_,_,_,_,_,
_,_,_,_,_,
_,_,L,_,_,
_,_,L,_,_,
_,_,_,_,_,
_,_,_,_,_,
_,_,_,_,_,
_,_,_,_,_,
_,o,L,o,_,
_,L,L,L,_,
_,_,L,_,_,
_,_,T,_,_,
_,_,T,_,_,
_,_,T,_,_,
L,L,T,L,L,
L,T,L,T,L,
_,L,L,L,_,
_,_,_,_,_,
_,_,_,_,_,
_,_,_,_,_,
_,o,L,o,_,
_,L,L,L,_,
_,_,L,_,_,
_,_,_,_,_,
_,_,_,_,_,
_,_,_,_,_,
_,_,L,_,_,
_,_,L,_,_,
_,_,_,_,_,
}
}

View File

@ -0,0 +1,110 @@
local _ = {name = "air", param = 0}
local L = {name = "ethereal:palmleaves", param = 255}
local l = {name = "ethereal:palmleaves", param = 191}
local T = {name = "ethereal:palm_trunk", param = 255}
local t = {name = "ethereal:palm_trunk", param = 191}
local C = {name = "ethereal:coconut", param = 127}
ethereal.palmtree = {
size = {x = 9, y = 9, z = 9},
yslice_prob = {
{ypos = 3, prob = 127},
},
data = {
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,l,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,C,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,t,_,_,_,
_,_,_,_,_,T,_,_,_,
_,_,l,_,_,T,_,_,l,
_,_,L,L,C,T,C,L,L,
_,_,_,L,L,L,L,L,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,C,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,l,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,81 @@
local _ = {name = "air", prob = 0}
local L = {name = "ethereal:pineleaves", prob = 255}
local T = {name = "default:pinetree", prob = 255}
ethereal.pinetree = {
size = {x = 7, y = 8, z = 7},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 4, prob = 127},
},
data = {
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,L,L,L,_,_,
_,_,_,_,_,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,L,_,_,_,
_,L,L,L,L,L,_,
_,_,_,L,_,_,_,
_,_,L,L,L,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,T,_,_,_,
_,_,_,T,_,_,_,
_,_,L,T,L,_,_,
L,L,L,T,L,L,L,
_,_,L,T,L,_,_,
_,L,L,T,L,L,_,
_,_,L,T,L,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,L,_,_,_,
_,L,L,L,L,L,_,
_,_,_,L,_,_,_,
_,_,L,L,L,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,L,L,L,_,_,
_,_,_,_,_,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,533 @@
local _ = {name = "air", prob = 0}
local T = {name = "ethereal:redwood_trunk", prob = 255}
local L = {name = "ethereal:redwood_leaves", prob = 255}
ethereal.redwood_tree = {
size = {x = 15, y = 33, z = 15},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 5, prob = 127},
{ypos = 6, prob = 127},
{ypos = 7, prob = 127},
{ypos = 14, prob = 127},
{ypos = 15, prob = 127},
{ypos = 16, prob = 127},
},
data = {
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,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,T,L,L,_,_,_,_,_,
_,_,_,_,L,L,L,T,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,T,L,L,_,_,_,
_,_,_,_,_,_,_,_,L,L,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,L,L,L,L,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,L,L,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,_,T,T,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,L,T,L,L,_,_,_,_,_,
_,_,_,_,_,_,L,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,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,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,_,L,L,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,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,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,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
L,L,L,L,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,_,T,_,_,L,L,L,L,L,
_,_,_,_,_,_,_,T,_,_,_,L,L,L,_,
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
_,_,_,_,L,L,T,T,_,_,_,_,_,_,_,
_,_,_,_,L,_,_,T,_,_,_,_,_,_,_,
_,_,_,_,_,_,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,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,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,T,T,T,_,_,_,
_,_,_,_,_,_,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,L,L,L,L,_,T,T,T,_,_,_,_,_,_,
L,L,L,L,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,T,T,T,_,_,_,
_,_,_,_,_,_,T,T,T,_,L,T,T,T,L,
_,_,_,_,_,_,T,T,T,_,_,L,L,L,L,
_,_,L,L,L,L,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,L,T,T,T,L,_,_,_,_,_,
_,_,_,_,L,L,L,T,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,T,T,_,_,T,T,_,_,
_,_,_,_,_,_,T,T,T,_,_,L,T,T,L,
_,_,_,_,_,_,T,T,T,_,_,_,L,L,L,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,T,_,_,T,T,T,_,_,_,_,_,_,
L,T,T,T,L,_,T,T,T,_,_,_,_,_,_,
L,L,L,L,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,_,_,_,L,L,L,L,
_,_,_,_,T,T,T,T,_,_,_,L,L,L,_,
_,L,L,L,L,L,_,T,_,_,_,_,_,_,_,
_,_,_,L,L,_,_,T,L,L,L,L,_,_,_,
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
_,_,_,_,_,_,L,T,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,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,L,L,L,L,
_,_,_,_,_,_,_,_,_,_,_,_,L,L,L,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,_,L,L,L,_,_,_,_,_,
L,L,L,L,L,_,_,_,L,_,_,_,_,_,_,
L,L,L,L,_,_,T,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,L,L,L,L,
_,_,_,_,T,_,_,_,_,_,_,_,_,_,_,
_,L,L,T,T,L,L,T,T,T,_,_,_,_,_,
_,_,L,L,L,_,_,L,L,T,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,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,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,T,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,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,T,_,_,_,_,_,_,_,_,
_,_,_,_,L,L,T,L,L,_,_,_,_,_,_,
_,_,_,_,_,L,L,L,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,L,L,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,L,L,T,L,L,_,_,_,_,_,_,
_,_,_,_,_,L,L,L,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,L,L,L,L,L,_,_,_,_,_,_,
_,_,_,_,_,_,L,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,96 @@
local T = {name = "ethereal:sakura_trunk", param1 = 255}
local P = {name = "ethereal:sakura_leaves", param1 = 255}
local W = {name = "ethereal:sakura_leaves2", param1 = 255}
local _ = {name = "air", param1 = 255}
ethereal.sakura_tree = {
size = {x=10, y=10, z=7},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 3, prob = 127},
{ypos = 8, prob = 127},
},
data = {
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,P,P,_,_,_,_,
_,_,_,P,P,P,P,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,P,P,P,P,_,_,_,
_,_,_,P,P,P,P,_,_,_,
_,_,P,P,T,P,P,P,_,_,
_,_,P,P,P,P,P,P,_,_,
_,_,P,_,P,P,P,P,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,P,P,P,P,P,P,_,_,
_,_,P,P,T,P,P,P,P,_,
_,P,P,P,P,P,P,P,P,P,
_,P,P,P,P,P,P,P,P,P,
_,P,P,P,P,P,P,P,P,_,
_,_,P,P,P,P,P,P,_,_,
_,_,_,_,T,_,_,_,_,_,
_,_,_,_,T,_,_,_,_,_,
_,_,_,_,T,_,_,_,_,_,
_,_,P,P,T,T,P,_,_,_,
_,P,P,T,T,T,T,P,P,_,
_,P,P,T,_,T,P,T,P,_,
P,P,P,T,P,T,P,P,T,P,
P,P,T,P,P,P,P,P,T,P,
P,P,T,P,P,P,P,T,P,P,
_,P,P,P,P,P,P,P,P,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,P,_,P,_,_,_,_,
_,_,P,P,T,P,P,P,_,_,
_,_,P,P,_,P,P,P,P,_,
_,P,P,P,P,P,P,P,P,P,
_,P,P,P,P,P,P,P,P,P,
_,P,P,P,P,P,P,P,P,_,
_,_,P,P,P,P,P,P,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,P,_,_,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,_,P,T,P,_,_,_,_,
_,_,P,P,T,P,P,P,P,_,
_,_,P,P,P,P,P,P,P,_,
_,_,P,P,P,P,_,P,P,_,
_,_,_,_,P,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,P,_,_,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,_,_,P,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
},
}

View File

@ -0,0 +1,77 @@
local _ = {name = "air", prob = 0}
local T = {name = "default:tree", prob = 255}
local L = {name = "default:leaves", prob = 255}
local u = {name = "ethereal:vine", prob = 255, param2 = 2}
local U = {name = "ethereal:vine", prob = 255, param2 = 3}
local W = {name = "ethereal:vine", prob = 255, param2 = 4}
local w = {name = "ethereal:vine", prob = 255, param2 = 5}
ethereal.vinetree = {
size = {x = 7, y = 7, z = 7},
yslice_prob = {
{ypos = 0, prob = 127},
},
data = {
_,_,_,_,_,_,_,
_,W,_,_,_,_,_,
_,W,_,W,_,_,_,
_,W,_,W,_,_,_,
_,W,_,_,_,W,_,
_,W,_,_,_,W,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,W,_,_,
_,_,_,_,W,_,_,
_,L,L,L,W,L,_,
_,L,L,_,L,L,_,
_,L,L,L,L,L,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,U,
_,_,_,_,_,_,U,
_,_,_,_,_,_,U,
_,L,T,_,T,L,U,
u,L,L,L,L,_,_,
_,_,L,L,L,L,_,
_,_,L,L,L,_,_,
_,_,_,T,_,_,_,
_,_,_,T,_,_,_,
u,_,_,T,_,_,_,
u,L,_,L,_,L,_,
u,L,L,L,L,L,_,
_,L,L,L,L,L,_,
_,_,L,L,L,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,U,
_,_,_,_,_,_,U,
_,L,T,_,T,L,U,
_,L,L,L,L,L,U,
_,L,L,L,L,L,_,
_,_,_,L,L,_,_,
_,_,_,_,_,_,_,
u,_,_,_,_,_,_,
u,_,_,_,w,_,_,
u,L,L,L,w,L,_,
_,L,L,L,L,_,_,
_,_,L,L,L,L,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,w,_,_,_,_,
_,_,w,_,_,_,_,
_,_,w,w,_,_,_,
_,_,_,w,w,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,97 @@
local _ = {name = "air", prob = 0}
local d = {name = "ethereal:fiery_dirt", prob = 245}
local s = {name = "default:stone", prob = 255}
local l = {name = "default:lava_source", prob = 255}
local f = {name = "default:lava_flowing", prob = 255}
local o = {name = "default:obsidian", prob = 215}
ethereal.volcanol = {
size = {x = 17, y = 4, z = 15},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 1, prob = 127},
{ypos = 2, prob = 127},
},
data = {
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,d,d,d,d,_,_,d,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,d,s,s,s,s,d,d,s,d,d,_,_,_,_,
_,_,_,_,s,s,s,s,_,_,s,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,d,s,o,o,o,o,s,s,o,s,s,d,_,_,_,
_,_,_,s,f,f,s,f,s,s,f,s,s,_,_,_,_,
_,_,_,_,s,s,_,s,_,_,s,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,d,s,o,s,s,s,s,o,o,s,o,o,s,d,_,_,
_,_,s,l,l,l,l,f,s,f,f,l,l,s,_,_,_,
_,_,_,s,f,f,s,s,o,s,o,s,s,_,_,_,_,
_,_,_,_,o,o,o,_,_,_,o,_,_,_,_,_,_,
_,d,s,o,s,o,o,o,s,s,o,s,s,o,s,d,_,
_,_,s,f,l,l,l,l,l,l,l,l,l,l,s,_,_,
_,_,_,s,f,f,f,f,f,f,l,f,l,s,_,_,_,
_,_,_,_,o,_,_,o,o,o,_,o,o,_,_,_,_,
_,d,s,o,s,o,s,s,o,o,s,o,s,o,s,d,_,
_,_,s,s,l,l,l,l,l,l,l,l,l,l,s,_,_,
_,_,_,_,o,f,f,f,f,f,f,f,l,s,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,o,_,_,_,_,
_,_,d,s,o,s,o,s,s,s,s,o,s,o,s,d,_,
_,_,_,s,l,l,l,l,l,l,l,l,l,l,s,_,_,
_,_,_,s,f,f,f,f,f,f,f,f,l,s,_,_,_,
_,_,_,_,o,_,_,_,_,_,_,_,s,_,_,_,_,
_,d,s,o,s,o,o,o,o,o,o,s,o,s,d,_,_,
_,_,s,l,l,l,l,l,l,l,l,l,l,s,_,_,_,
_,_,_,s,f,f,f,f,f,f,f,l,s,_,_,_,_,
_,_,_,_,o,_,_,_,_,_,_,_,o,_,_,_,_,
_,d,s,o,s,s,s,s,s,s,o,s,o,s,d,_,_,
_,_,s,l,l,l,l,l,l,l,l,l,l,s,_,_,_,
_,_,_,s,f,f,f,f,l,l,f,l,s,_,_,_,_,
_,_,_,_,o,o,_,_,_,o,_,o,_,_,_,_,_,
_,_,d,s,o,o,o,o,o,o,s,o,s,d,_,_,_,
_,_,_,s,s,l,f,f,f,f,l,l,s,_,_,_,_,
_,_,_,_,s,s,s,s,s,s,f,s,_,_,_,_,_,
_,_,_,_,_,s,o,o,o,_,s,_,_,_,_,_,_,
_,_,_,d,s,s,s,s,s,s,o,s,d,_,_,_,_,
_,_,_,_,s,s,s,s,s,s,l,s,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,s,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,d,d,d,d,d,d,s,s,d,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,s,s,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,d,d,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,36 @@
local _ = {name = "air", prob = 0}
local l = {name = "default:lava_source", prob = 225}
local s = {name = "default:stone", prob = 255}
local d = {name = "ethereal:fiery_dirt", prob = 255}
ethereal.volcanom = {
size = {x = 6, y = 2, z = 6},
yslice_prob = {
{ypos = 0, prob = 127},
},
data = {
_,_,s,_,_,_,
_,_,_,_,_,_,
_,s,l,s,_,_,
_,_,s,d,_,_,
_,s,l,l,s,_,
_,s,_,_,s,_,
s,l,l,l,s,_,
_,s,_,_,d,_,
_,d,l,l,d,d,
_,_,s,d,_,_,
_,_,d,d,d,_,
_,_,_,_,_,_,
}
}

View File

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

View File

@ -0,0 +1,199 @@
local _ = {name = "air", prob = 0}
local L = {name = "ethereal:willow_twig", prob = 255}
local T = {name = "ethereal:willow_trunk", prob = 255}
local t = {name = "ethereal:willow_trunk", prob = 127}
ethereal.willow = {
size = {x = 12, y = 14, z = 12},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 1, prob = 127},
},
data = {
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,L,_,_,_,_,_,
_,_,_,_,L,_,L,_,_,_,_,_,
_,_,_,_,L,L,L,L,_,_,_,_,
_,_,_,_,_,_,L,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,L,L,L,L,_,_,_,
_,_,L,L,L,L,T,L,L,_,_,_,
_,_,_,_,_,L,L,L,_,_,_,_,
_,_,_,_,_,L,L,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,t,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,L,_,_,_,_,_,_,_,_,
_,_,_,L,_,L,_,L,_,_,_,_,
_,_,_,L,L,L,L,L,L,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,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,t,T,T,T,_,_,t,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,L,_,L,_,_,_,_,_,_,_,_,
_,L,L,L,L,L,L,_,L,L,L,_,
_,L,T,T,L,T,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,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,T,_,_,T,_,_,_,
_,_,_,_,_,T,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,L,_,_,
_,_,_,_,_,L,L,_,_,L,_,_,
_,_,L,L,_,L,L,L,L,L,L,_,
L,L,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,T,T,L,_,
_,L,L,L,L,L,L,L,L,L,L,_,
_,L,T,T,T,T,T,L,L,_,_,_,
_,_,L,L,L,L,L,L,_,_,_,_,
_,_,_,_,L,T,L,L,_,_,_,_,
_,_,_,_,_,L,_,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,t,_,_,
_,_,_,_,_,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,_,_,_,_,_,
_,L,_,_,_,T,T,_,_,_,_,_,
_,L,L,_,_,T,_,_,_,L,L,_,
_,L,L,L,_,T,L,L,L,L,L,L,
L,L,L,T,L,T,T,T,T,T,L,_,
_,L,L,L,L,T,L,L,L,L,L,_,
_,_,L,L,L,T,T,T,T,L,L,_,
_,_,L,L,L,L,L,L,L,L,_,_,
_,_,L,T,L,T,T,L,L,_,_,_,
_,_,_,L,L,T,T,L,_,_,_,_,
_,_,_,L,L,L,L,L,_,_,_,_,
_,_,_,_,L,L,L,_,_,_,_,_,
_,_,t,T,T,T,T,T,_,_,_,_,
_,_,_,_,_,T,T,T,_,_,_,_,
_,_,_,_,_,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,_,_,_,_,_,
_,L,_,_,_,T,T,_,_,_,_,_,
L,L,L,L,L,T,T,T,L,L,L,L,
L,T,T,T,T,T,T,L,T,L,L,_,
_,L,L,L,L,L,T,L,L,L,L,_,
_,_,L,L,L,L,T,L,L,L,L,_,
_,_,_,L,_,L,T,L,L,_,_,_,
_,_,_,L,L,L,T,L,L,_,_,_,
_,_,_,L,L,L,L,L,L,_,_,_,
_,_,_,_,L,L,L,_,_,_,_,_,
_,_,_,_,L,L,L,_,_,_,_,_,
_,_,_,_,_,T,_,_,_,_,_,_,
_,_,_,_,_,T,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,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,T,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,_,_,_,_,_,
_,_,_,_,_,T,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,L,_,_,_,_,_,_,_,_,_,
_,L,L,_,_,L,L,_,L,L,L,_,
_,L,T,L,L,L,L,L,L,L,_,_,
_,_,L,_,L,L,T,L,L,L,_,_,
_,_,L,L,L,L,L,L,L,_,_,_,
_,_,_,_,L,L,T,T,L,_,_,_,
_,_,_,_,L,L,L,L,_,_,_,_,
_,_,_,_,L,L,L,_,_,_,_,_,
_,_,_,_,_,L,L,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,T,T,t,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,L,_,_,_,_,
_,_,_,_,L,_,_,L,_,L,_,_,
_,_,L,L,L,L,L,L,L,L,_,_,
_,_,L,L,L,L,T,L,L,_,_,_,
_,_,_,L,L,L,T,L,_,_,_,_,
_,_,_,_,L,L,L,L,_,_,_,_,
_,_,_,_,L,L,L,L,_,_,_,_,
_,_,_,_,_,L,L,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,t,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,L,_,_,_,_,_,_,_,_,
_,_,_,L,_,_,_,_,_,_,_,_,
_,_,_,L,L,L,L,L,L,_,_,_,
_,_,_,L,L,L,T,L,_,_,_,_,
_,_,_,_,_,L,L,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,L,_,_,_,_,_,
_,_,_,_,_,L,L,_,_,_,_,_,
_,_,_,_,_,_,L,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,201 @@
local _ = {name = "air", prob = 0}
local T = {name = "ethereal:yellow_trunk", prob = 255}
local t = {name = "ethereal:yellow_trunk", prob = 127}
local L = {name = "ethereal:yellowleaves", prob = 255}
local A = {name = "ethereal:golden_apple", prob = 115}
ethereal.yellowtree = {
size = {x = 9, y = 19, z = 9},
yslice_prob = {
{ypos = 0, prob = 254},
{ypos = 3, prob = 254},
{ypos = 5, prob = 254},
},
data = {
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,L,A,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,L,T,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,L,A,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,t,_,_,_,_,
_,_,_,L,T,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,L,t,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,L,L,_,_,_,
_,_,_,_,_,_,L,L,_,
_,_,_,L,_,_,_,_,_,
A,L,L,L,T,L,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,L,_,L,L,_,
_,_,L,L,L,_,_,_,_,
A,L,L,L,T,L,_,_,_,
_,_,_,L,T,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,T,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,T,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,T,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,T,t,_,_,
_,_,_,_,T,_,T,T,L,
_,_,t,T,T,_,L,L,_,
L,T,T,_,T,_,_,_,_,
_,L,L,_,T,T,t,_,_,
_,_,_,_,T,L,T,T,L,
_,_,t,T,T,L,L,L,_,
L,T,T,L,T,L,_,_,_,
_,L,L,_,L,A,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,T,L,L,L,A,
_,_,_,L,_,_,_,_,_,
_,L,L,_,_,_,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,L,T,L,L,L,A,
_,_,L,L,L,_,_,_,_,
_,L,L,_,L,_,_,_,_,
_,_,_,_,A,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,t,_,_,_,_,
_,_,_,L,T,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,L,t,L,_,_,_,
_,_,_,L,T,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,L,T,L,_,_,_,
_,_,_,L,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,L,T,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,A,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,A,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
}
}

328
mods/ethereal/schems.lua Normal file
View File

@ -0,0 +1,328 @@
local path = minetest.get_modpath("ethereal") .. "/schematics/"
local dpath = minetest.get_modpath("default") .. "/schematics/"
-- load schematic tables
dofile(path .. "orange_tree.lua")
dofile(path .. "banana_tree.lua")
dofile(path .. "bamboo_tree.lua")
dofile(path .. "birch_tree.lua")
dofile(path .. "bush.lua")
dofile(path .. "waterlily.lua")
dofile(path .. "volcanom.lua")
dofile(path .. "volcanol.lua")
dofile(path .. "frosttrees.lua")
dofile(path .. "palmtree.lua")
dofile(path .. "pinetree.lua")
dofile(path .. "yellowtree.lua")
dofile(path .. "mushroomone.lua")
dofile(path .. "willow.lua")
dofile(path .. "bigtree.lua")
dofile(path .. "redwood_tree.lua")
dofile(path .. "vinetree.lua")
dofile(path .. "sakura.lua")
dofile(path .. "igloo.lua")
dofile(path .. "lemon_tree.lua")
dofile(path .. "olive_tree.lua")
-- helper function
local add_schem = function(a, b, c, d, e, f, g, h, i, j, k)
-- if not 1 then biome disabled, don't add
if g ~= 1 then return end
minetest.register_decoration({
deco_type = "schematic",
place_on = a,
sidelen = 80,
fill_ratio = b,
biomes = c,
y_min = d,
y_max = e,
schematic = f,
flags = "place_center_x, place_center_z",
replacements = h,
spawn_by = i,
num_spawn_by = j,
rotation = k,
})
end
-- igloo
add_schem("default:snowblock", 0.0005, {"glacier"}, 3, 50,
ethereal.igloo, ethereal.glacier, nil, "default:snowblock", 8, "random")
-- sakura tree
add_schem({"ethereal:bamboo_dirt"}, 0.01, {"sakura"}, 7, 100,
ethereal.sakura_tree, ethereal.sakura, nil,
"ethereal:bamboo_dirt", 6)
-- redwood tree
add_schem({"default:dirt_with_dry_grass"}, 0.0025, {"mesa"}, 1, 100,
ethereal.redwood_tree, ethereal.mesa, nil,
"default:dirt_with_dry_grass", 8)
-- banana tree
add_schem({"ethereal:grove_dirt"}, 0.015, {"grove"}, 1, 100,
ethereal.bananatree, ethereal.grove)
-- healing tree
add_schem({"default:dirt_with_snow"}, 0.01, {"alpine"}, 120, 140,
ethereal.yellowtree, ethereal.alpine)
-- crystal frost tree
add_schem({"ethereal:crystal_dirt"}, 0.01, {"frost"}, 1, 100,
ethereal.frosttrees, ethereal.frost, nil,
"ethereal:crystal_dirt", 6)
-- giant mushroom
add_schem("ethereal:mushroom_dirt", 0.02, {"mushroom"}, 1, 100,
ethereal.mushroomone, ethereal.mushroom, nil,
"ethereal:mushroom_dirt", 8)
-- small lava crater
add_schem("ethereal:fiery_dirt", 0.01, {"fiery"}, 1, 100,
ethereal.volcanom, ethereal.fiery, nil, "ethereal:fiery_dirt", 8)
-- large lava crater
add_schem("ethereal:fiery_dirt", 0.003, {"fiery"}, 1, 100,
ethereal.volcanol, ethereal.fiery, nil, "ethereal:fiery_dirt", 8, "random")
-- default jungle tree
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,
ethereal.willow, ethereal.grayness, nil,
"ethereal:gray_dirt", 6)
-- default large pine tree for lower elevation
add_schem({"ethereal:cold_dirt", "default:dirt_with_coniferous_litter"},
0.025, {"snowy"}, 10, 40, ethereal.pinetree, ethereal.snowy)
-- small pine for higher elevation
add_schem({"default:dirt_with_snow"}, 0.025, {"alpine"}, 40, 140,
ethereal.pinetree, ethereal.alpine)
-- default apple tree
add_schem({"default:dirt_with_grass"}, 0.025, {"jumble", "grassy"}, 1, 100,
dpath .. "apple_tree.mts", ethereal.grassy)
-- big old tree
add_schem({"default:dirt_with_grass"}, 0.001, {"jumble"}, 1, 100,
ethereal.bigtree, ethereal.jumble, nil,
"default:dirt_with_grass", 8)
-- default aspen tree
add_schem({"default:dirt_with_grass"}, 0.02, {"grassytwo"}, 1, 50,
dpath .. "aspen_tree.mts", ethereal.jumble)
-- birch tree
add_schem({"default:dirt_with_grass"}, 0.02, {"grassytwo"}, 50, 100,
ethereal.birchtree, ethereal.grassytwo)
-- orange tree
add_schem({"ethereal:prairie_dirt"}, 0.01, {"prairie"}, 1, 100,
ethereal.orangetree, ethereal.prairie)
-- default acacia tree
add_schem({"default:dry_dirt_with_dry_grass",
"default:dirt_with_dry_grass"}, 0.004, {"savanna"}, 1, 100,
dpath .. "acacia_tree.mts", ethereal.savanna)
-- palm tree
add_schem("default:sand", 0.0025, {"desert_ocean", "plains_ocean", "sandclay",
"sandstone_ocean", "mesa_ocean", "grove_ocean", "grassy_ocean"}, 1, 1,
ethereal.palmtree, 1)
-- bamboo tree
add_schem({"ethereal:bamboo_dirt"}, 0.025, {"bamboo"}, 1, 100,
ethereal.bambootree, ethereal.bamboo)
-- bush
add_schem({"ethereal:bamboo_dirt"}, 0.08, {"bamboo"}, 1, 100, ethereal.bush,
ethereal.bamboo)
-- vine tree
add_schem({"default:dirt_with_grass"}, 0.02, {"swamp"}, 1, 100,
ethereal.vinetree, ethereal.swamp)
-- lemon tree
add_schem({"ethereal:grove_dirt"}, 0.002, {"mediterranean"}, 5, 50,
ethereal.lemontree, ethereal.mediterranean)
-- olive tree
add_schem({"ethereal:grove_dirt"}, 0.002, {"mediterranean"}, 5, 35,
ethereal.olivetree, ethereal.mediterranean)
-- default large cactus
if ethereal.desert == 1 then
minetest.register_decoration({
deco_type = "schematic",
place_on = {"default:desert_sand"},
sidelen = 80,
noise_params = {
offset = -0.0005,
scale = 0.0015,
spread = {x = 200, y = 200, z = 200},
seed = 230,
octaves = 3,
persist = 0.6
},
biomes = {"desert"},
y_min = 5,
y_max = 31000,
schematic = dpath .. "large_cactus.mts",
flags = "place_center_x",
rotation = "random",
})
end
-- default bush
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"
})
-- default acacia bush
minetest.register_decoration({
deco_type = "schematic",
place_on = {
"default:dirt_with_dry_grass", "default:dry_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 = {"savanna", "mesa"},
y_min = 1,
y_max = 31000,
schematic = dpath .. "acacia_bush.mts",
flags = "place_center_x, place_center_z"
})
-- default pine bush
if minetest.registered_nodes["default:pine_bush"] then
minetest.register_decoration({
name = "default:pine_bush",
deco_type = "schematic",
place_on = {"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 = {"alpine"},
y_max = 31000,
y_min = 4,
schematic = dpath .. "pine_bush.mts",
flags = "place_center_x, place_center_z"
})
end
-- default blueberry bush
if minetest.registered_nodes["default:blueberry_bush_leaves"] then
minetest.register_decoration({
name = "default:blueberry_bush",
deco_type = "schematic",
place_on = {
"default:dirt_with_coniferous_litter", "default:dirt_with_snow"},
sidelen = 16,
noise_params = {
offset = -0.004,
scale = 0.01,
spread = {x = 100, y = 100, z = 100},
seed = 697,
octaves = 3,
persist = 0.7,
},
biomes = {"snowy", "alpine"},
y_max = 31000,
y_min = 1,
place_offset_y = 1,
schematic = dpath .. "blueberry_bush.mts",
flags = "place_center_x, place_center_z"
})
end
-- place waterlily in beach areas
minetest.register_decoration({
deco_type = "schematic",
place_on = {"default:sand"},
sidelen = 16,
noise_params = {
offset = -0.12,
scale = 0.3,
spread = {x = 200, y = 200, z = 200},
seed = 33,
octaves = 3,
persist = 0.7
},
biomes = {"desert_ocean", "plains_ocean", "sandclay",
"mesa_ocean", "grove_ocean", "grassy_ocean", "swamp_ocean"},
y_min = 0,
y_max = 0,
schematic = ethereal.waterlily,
rotation = "random"
})
-- coral reef
if ethereal.reefs == 1 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 = path .. "corals.mts",
flags = "place_center_x, place_center_z",
rotation = "random"
})
end

View File

@ -1,58 +1,9 @@
local S = ethereal.intllib
-- Seaweed
minetest.register_node("ethereal:seaweed", {
description = S("Seaweed"),
drawtype = "plantlike",
tiles = {"seaweed.png"},
inventory_image = "seaweed.png",
wield_image = "seaweed.png",
paramtype = "light",
walkable = false,
climbable = true,
drowning = 1,
selection_box = {
type = "fixed",
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
},
post_effect_color = {a = 64, r = 100, g = 100, b = 200},
groups = {food_seaweed = 1, snappy = 3, flammable = 3},
on_use = minetest.item_eat(1),
sounds = default.node_sound_leaves_defaults(),
after_dig_node = function(pos, node, metadata, digger)
default.dig_up(pos, node, digger)
end,
})
minetest.register_craft( {
type = "shapeless",
output = "dye:dark_green 3",
recipe = {"ethereal:seaweed",},
})
-- agar powder
minetest.register_craftitem("ethereal:agar_powder", {
description = S("Agar Powder"),
inventory_image = "ethereal_agar_powder.png",
groups = {food_gelatin = 1, flammable = 2},
})
minetest.register_craft({
output = "ethereal:agar_powder 3",
recipe = {
{"group:food_seaweed", "group:food_seaweed", "group:food_seaweed"},
{"bucket:bucket_water", "bucket:bucket_water", "default:torch"},
{"bucket:bucket_water", "bucket:bucket_water", "default:torch"},
},
replacements = {
{"bucket:bucket_water", "bucket:bucket_empty 4"},
},
})
-- Blue Coral
minetest.register_node("ethereal:coral2", {
description = S("Blue Coral"),
description = S("Blue Glow Coral"),
drawtype = "plantlike",
tiles = {"coral2.png"},
inventory_image = "coral2.png",
@ -75,7 +26,7 @@ minetest.register_craft( {
-- Orange Coral
minetest.register_node("ethereal:coral3", {
description = S("Orange Coral"),
description = S("Orange Glow Coral"),
drawtype = "plantlike",
tiles = {"coral3.png"},
inventory_image = "coral3.png",
@ -98,7 +49,7 @@ minetest.register_craft( {
-- Pink Coral
minetest.register_node("ethereal:coral4", {
description = S("Pink Coral"),
description = S("Pink Glow Coral"),
drawtype = "plantlike",
tiles = {"coral4.png"},
inventory_image = "coral4.png",
@ -121,7 +72,7 @@ minetest.register_craft( {
-- Green Coral
minetest.register_node("ethereal:coral5", {
description = S("Green Coral"),
description = S("Green Glow Coral"),
drawtype = "plantlike",
tiles = {"coral5.png"},
inventory_image = "coral5.png",
@ -157,7 +108,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",
label = "Grow coral",
nodenames = {"ethereal:sandy"},
neighbors = {"group:water"},
interval = 15,
@ -165,7 +116,7 @@ minetest.register_abm({
catch_up = false,
action = function(pos, node)
local sel = math.random(1, 6)
local sel = math.random(6)
pos.y = pos.y + 1
@ -186,29 +137,7 @@ minetest.register_abm({
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
@ -260,7 +189,7 @@ minetest.register_node("ethereal:sponge", {
end
-- replace dry sponge with wet sponge
minetest.swap_node(pos, {name="ethereal:sponge_wet"})
minetest.swap_node(pos, {name = "ethereal:sponge_wet"})
end
})

View File

@ -10,7 +10,7 @@ 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
ethereal.xcraft = false -- allow cheat crafts for cobble->gravel->dirt->sand, ice->snow, dry dirt->desert sand
-- Set following to 1 to enable biome or false to disable
ethereal.glacier = 1 -- Ice glaciers with snow
@ -40,3 +40,4 @@ ethereal.swamp = 1 -- Swamp areas with vines on tree's, mushrooms, lilly's a
ethereal.sealife = 1 -- Enable coral and seaweed
ethereal.reefs = 1 -- Enable new coral reefs in default
ethereal.sakura = 1 -- Enable sakura biomes with trees
ethereal.mediterranean = 1 -- Enable Mediterranean biome

View File

@ -0,0 +1,38 @@
ethereal.leaftype (0 for 2D plantlike leaves or 1 for 3D) int 0
ethereal.leafwalk (Walkable leaves) bool false
ethereal.cavedirt (Caves cut through dirt) bool true
ethereal.torchdrop (Torches drop when in water) bool true
ethereal.papyruswalk (Papyrus and Bamboo are walkable) bool true
ethereal.lilywalk (Lilypads are walkable) bool true
ethereal.xcraft (Enable X-Craft cheats) bool true
ethereal.glacier (Glacier biome, 1 = Enable / 0 = Disable) int 1
ethereal.bambo (Bamboo biome, 1 = Enable / 0 = Disable) int 1
ethereal.mesa (Mesa biome, 1 = Enable / 0 = Disable) int 1
ethereal.alpine (Alpine biome, 1 = Enable / 0 = Disable) int 1
ethereal.healing (Healing Tree biome, 1 = Enable / 0 = Disable) int 1
ethereal.snowy (Pine Tree biome, 1 = Enable / 0 = Disable) int 1
ethereal.frost (Blue Frost biome, 1 = Enable / 0 = Disable) int 1
ethereal.grassy (Grassy biome, 1 = Enable / 0 = Disable) int 1
ethereal.caves (Desertstone biome, 1 = Enable / 0 = Disable) int 1
ethereal.grayness (Grey Willow biome, 1 = Enable / 0 = Disable) int 1
ethereal.grassytwo (GrassyTwo biome, 1 = Enable / 0 = Disable) int 1
ethereal.prairie (Prairie biome, 1 = Enable / 0 = Disable) int 1
ethereal.jumble (Jumble biome, 1 = Enable / 0 = Disable) int 1
ethereal.junglee (Jungle biome, 1 = Enable / 0 = Disable) int 1
ethereal.desert (Desert biome, 1 = Enable / 0 = Disable) int 1
ethereal.grove (Banana Grove biome, 1 = Enable / 0 = Disable) int 1
ethereal.mushroom (Mushroom biome, 1 = Enable / 0 = Disable) int 1
ethereal.sandstone (Sandstone biome, 1 = Enable / 0 = Disable) int 1
ethereal.quicksand (Quicksand Bank biome, 1 = Enable / 0 = Disable) int 1
ethereal.plains (Scorched Plains biome, 1 = Enable / 0 = Disable) int 1
ethereal.savanna (Savanna biome, 1 = Enable / 0 = Disable) int 1
ethereal.fiery (Feiry Lava biome, 1 = Enable / 0 = Disable) int 1
ethereal.sandclay (Sandy Clay biome, 1 = Enable / 0 = Disable) int 1
ethereal.swamp (Swamp biome, 1 = Enable / 0 = Disable) int 1
ethereal.sealife (Coral and Seaweed biome, 1 = Enable / 0 = Disable) int 1
ethereal.reefs (MT5 Coral biome, 1 = Enable / 0 = Disable) int 1
ethereal.sakura (Sakura biome, 1 = Enable / 0 = Disable) int 1
ethereal.tundra (Tundra biome, 1 = Enable / 0 = Disable) int 1
ethereal.mediterranean (Mediterranean biome, 1 = Enable / 0 = Disable) int 1

View File

@ -4,25 +4,28 @@ local S = ethereal.intllib
-- Stairs Redo
if stairs and stairs.mod and stairs.mod == "redo" then
stairs.register_all("blue_marble_tile", "ethereal:blue_marble_tile",
{cracky = 1},
{"ethereal_blue_marble_tile.png"},
S("Blue Marble Tile"),
default.node_sound_stone_defaults())
stairs.register_all("crystal_block", "ethereal:crystal_block",
{cracky = 1, level = 2, puts_out_fire = 1, cools_lava = 1},
{"crystal_block.png"},
S("Crystal Block Stair"),
S("Crystal Block Slab"),
S("Crystal Block"),
default.node_sound_glass_defaults())
stairs.register_all("icebrick", "ethereal:icebrick",
{cracky = 3, puts_out_fire = 1, cools_lava = 1},
{"brick_ice.png"},
S("Ice Brick Stair"),
S("Ice Brick Slab"),
S("Ice Brick"),
default.node_sound_glass_defaults())
stairs.register_all("snowbrick", "ethereal:snowbrick",
{crumbly = 3, puts_out_fire = 1, cools_lava = 1},
{"brick_snow.png"},
S("Snow Brick Stair"),
S("Snow Brick Slab"),
S("Snow Brick"),
default.node_sound_dirt_defaults({
footstep = {name = "default_snow_footstep", gain = 0.25},
dug = {name = "default_snow_footstep", gain = 0.75},
@ -31,90 +34,91 @@ stairs.register_all("snowbrick", "ethereal:snowbrick",
stairs.register_all("dry_dirt", "ethereal:dry_dirt",
{crumbly = 3},
{"ethereal_dry_dirt.png"},
S("Dried Dirt Stair"),
S("Dried Dirt Slab"),
S("Dried Dirt"),
default.node_sound_dirt_defaults())
stairs.register_all("mushroom_trunk", "ethereal:mushroom_trunk",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
{"mushroom_trunk.png"},
S("Mushroom Trunk Stair"),
S("Mushroom Trunk Slab"),
S("Mushroom Trunk"),
default.node_sound_wood_defaults())
stairs.register_all("mushroom", "ethereal:mushroom",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
{"mushroom_block.png"},
S("Mushroom Top Stair"),
S("Mushroom Top Slab"),
S("Mushroom Top"),
default.node_sound_wood_defaults())
stairs.register_all("frost_wood", "ethereal:frost_wood",
{choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
{"frost_wood.png"},
S("Frost Wood Stair"),
S("Frost Wood Slab"),
S("Frost Wood"),
default.node_sound_wood_defaults())
stairs.register_all("yellow_wood", "ethereal:yellow_wood",
{choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
{"yellow_wood.png"},
S("Healing Wood Stair"),
S("Healing Wood Slab"),
S("Healing Wood"),
default.node_sound_wood_defaults())
stairs.register_all("palm_wood", "ethereal:palm_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"moretrees_palm_wood.png"},
S("Palm Wood Stair"),
S("Palm Wood Slab"),
S("Palm Wood"),
default.node_sound_wood_defaults())
stairs.register_all("birch_wood", "ethereal:birch_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"moretrees_birch_wood.png"},
S("Birch Wood Stair"),
S("Birch Wood Slab"),
S("Birch Wood"),
default.node_sound_wood_defaults())
stairs.register_all("banana_wood", "ethereal:banana_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"banana_wood.png"},
S("Banana Wood Stair"),
S("Banana Wood Slab"),
S("Banana Wood"),
default.node_sound_wood_defaults())
stairs.register_all("willow_wood", "ethereal:willow_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"willow_wood.png"},
S("Willow Wood Stair"),
S("Willow Wood Slab"),
S("Willow Wood"),
default.node_sound_wood_defaults())
stairs.register_all("redwood_wood", "ethereal:redwood_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"redwood_wood.png"},
S("Redwood stair"),
S("Redwood Slab"),
S("Redwood"),
default.node_sound_wood_defaults())
stairs.register_all("bamboo_wood", "ethereal:bamboo_block",
{snappy = 3, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"bamboo_floor.png"},
S("Bamboo stair"),
S("Bamboo Slab"),
S("Bamboo"),
default.node_sound_wood_defaults())
stairs.register_all("sakura_wood", "ethereal:sakura_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"ethereal_sakura_wood.png"},
S("Sakura Wood stair"),
S("Sakura Wood Slab"),
S("Sakura Wood"),
default.node_sound_wood_defaults())
stairs.register_all("olive_wood", "ethereal:olive_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"olive_wood.png"},
S("Olive Wood"),
default.node_sound_wood_defaults())
-- Stairs Plus (in More Blocks)
elseif minetest.global_exists("stairsplus") then
stairsplus:register_all("ethereal", "blue_marble_tile", "ethereal:blue_marble_tile", {
description = S("Blue Marble Tile"),
tiles = {"ethereal_blue_marble_tile.png"},
groups = {cracky = 1},
sounds = default.node_sound_stone_defaults(),
})
stairsplus:register_all("ethereal", "crystal_block", "ethereal:crystal_block", {
description = S("Crystal block"),
tiles = {"crystal_block.png"},
@ -223,9 +227,23 @@ stairsplus:register_all("ethereal", "sakura_wood", "ethereal:sakura_wood", {
sounds = default.node_sound_wood_defaults(),
})
stairsplus:register_all("ethereal", "olive_wood", "ethereal:olive_wood", {
description = S("Olive"),
tiles = {"olive_wood.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
-- Default Stairs
else
stairs.register_stair_and_slab("blue_marble_tile", "ethereal:blue_marble_tile",
{cracky = 1},
{"ethereal_blue_marble_tile.png"},
S("Blue Marble Tile Stair"),
S("Blue Marble Tile Slab"),
default.node_sound_stone_defaults())
stairs.register_stair_and_slab("crystal_block", "ethereal:crystal_block",
{cracky = 1, level = 2, puts_out_fire = 1, cools_lava = 1},
{"crystal_block.png"},
@ -239,7 +257,7 @@ stairs.register_stair_and_slab("icebrick", "ethereal:icebrick",
S("Ice Brick Stair"),
S("Ice Brick Slab"),
default.node_sound_glass_defaults())
stairs.register_stair_and_slab("snowbrick", "ethereal:snowbrick",
{crumbly = 3, puts_out_fire = 1, cools_lava = 1},
{"brick_snow.png"},
@ -335,4 +353,11 @@ stairs.register_stair_and_slab("sakura_wood", "ethereal:sakura_wood",
S("Sakura Wood Slab"),
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("olive_wood", "ethereal:olive_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"olive_wood.png"},
S("Olive Wood Stair"),
S("Olive Wood Slab"),
default.node_sound_wood_defaults())
end

View File

Before

Width:  |  Height:  |  Size: 211 B

After

Width:  |  Height:  |  Size: 211 B

View File

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 421 B

View File

Before

Width:  |  Height:  |  Size: 425 B

After

Width:  |  Height:  |  Size: 425 B

View File

Before

Width:  |  Height:  |  Size: 207 B

After

Width:  |  Height:  |  Size: 207 B

View File

Before

Width:  |  Height:  |  Size: 564 B

After

Width:  |  Height:  |  Size: 564 B

View File

Before

Width:  |  Height:  |  Size: 219 B

After

Width:  |  Height:  |  Size: 219 B

View File

Before

Width:  |  Height:  |  Size: 367 B

After

Width:  |  Height:  |  Size: 367 B

View File

Before

Width:  |  Height:  |  Size: 385 B

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

View File

Before

Width:  |  Height:  |  Size: 193 B

After

Width:  |  Height:  |  Size: 193 B

View File

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 421 B

View File

Before

Width:  |  Height:  |  Size: 444 B

After

Width:  |  Height:  |  Size: 444 B

View File

Before

Width:  |  Height:  |  Size: 200 B

After

Width:  |  Height:  |  Size: 200 B

View File

Before

Width:  |  Height:  |  Size: 177 B

After

Width:  |  Height:  |  Size: 177 B

View File

Before

Width:  |  Height:  |  Size: 218 B

After

Width:  |  Height:  |  Size: 218 B

View File

Before

Width:  |  Height:  |  Size: 208 B

After

Width:  |  Height:  |  Size: 208 B

View File

Before

Width:  |  Height:  |  Size: 210 B

After

Width:  |  Height:  |  Size: 210 B

View File

Before

Width:  |  Height:  |  Size: 357 B

After

Width:  |  Height:  |  Size: 357 B

View File

Before

Width:  |  Height:  |  Size: 314 B

After

Width:  |  Height:  |  Size: 314 B

View File

Before

Width:  |  Height:  |  Size: 272 B

After

Width:  |  Height:  |  Size: 272 B

View File

Before

Width:  |  Height:  |  Size: 277 B

After

Width:  |  Height:  |  Size: 277 B

View File

Before

Width:  |  Height:  |  Size: 166 B

After

Width:  |  Height:  |  Size: 166 B

View File

Before

Width:  |  Height:  |  Size: 276 B

After

Width:  |  Height:  |  Size: 276 B

View File

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 421 B

View File

Before

Width:  |  Height:  |  Size: 229 B

After

Width:  |  Height:  |  Size: 229 B

View File

Before

Width:  |  Height:  |  Size: 187 B

After

Width:  |  Height:  |  Size: 187 B

View File

Before

Width:  |  Height:  |  Size: 186 B

After

Width:  |  Height:  |  Size: 186 B

View File

Before

Width:  |  Height:  |  Size: 257 B

After

Width:  |  Height:  |  Size: 257 B

View File

Before

Width:  |  Height:  |  Size: 209 B

After

Width:  |  Height:  |  Size: 209 B

View File

Before

Width:  |  Height:  |  Size: 216 B

After

Width:  |  Height:  |  Size: 216 B

View File

Before

Width:  |  Height:  |  Size: 348 B

After

Width:  |  Height:  |  Size: 348 B

View File

Before

Width:  |  Height:  |  Size: 181 B

After

Width:  |  Height:  |  Size: 181 B

View File

Before

Width:  |  Height:  |  Size: 306 B

After

Width:  |  Height:  |  Size: 306 B

View File

Before

Width:  |  Height:  |  Size: 179 B

After

Width:  |  Height:  |  Size: 179 B

View File

Before

Width:  |  Height:  |  Size: 232 B

After

Width:  |  Height:  |  Size: 232 B

View File

Before

Width:  |  Height:  |  Size: 204 B

After

Width:  |  Height:  |  Size: 204 B

View File

Before

Width:  |  Height:  |  Size: 184 B

After

Width:  |  Height:  |  Size: 184 B

View File

Before

Width:  |  Height:  |  Size: 380 B

After

Width:  |  Height:  |  Size: 380 B

View File

Before

Width:  |  Height:  |  Size: 183 B

After

Width:  |  Height:  |  Size: 183 B

Some files were not shown because too many files have changed in this diff Show More