diff options
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | README.md | 10 | ||||
-rw-r--r-- | bonemeal.lua | 250 | ||||
-rw-r--r-- | compatibility.lua | 46 | ||||
-rw-r--r-- | crystal.lua | 17 | ||||
-rw-r--r-- | depends.txt | 1 | ||||
-rw-r--r-- | dirt.lua | 106 | ||||
-rw-r--r-- | extra.lua | 293 | ||||
-rw-r--r-- | fences.lua | 117 | ||||
-rw-r--r-- | fishing.lua | 1 | ||||
-rw-r--r-- | flowers.lua | 6 | ||||
-rw-r--r-- | food.lua | 202 | ||||
-rw-r--r-- | gates.lua | 184 | ||||
-rw-r--r-- | init.lua | 10 | ||||
-rw-r--r-- | leaves.lua | 228 | ||||
-rw-r--r-- | mapgen.lua (renamed from mapgen_v7n.lua) | 126 | ||||
-rw-r--r-- | mod.conf | 2 | ||||
-rw-r--r-- | mushroom.lua | 123 | ||||
-rw-r--r-- | onion.lua | 110 | ||||
-rw-r--r-- | ores.lua | 84 | ||||
-rw-r--r-- | papyrus.lua | 5 | ||||
-rw-r--r-- | plantlife.lua | 410 | ||||
-rw-r--r-- | plantpack.lua | 64 | ||||
-rw-r--r-- | sapling.lua | 169 | ||||
-rw-r--r-- | schematics/apple_tree.lua | 38 | ||||
-rw-r--r-- | schematics/bamboo_tree.lua | 124 | ||||
-rw-r--r-- | schematics/banana_tree.lua | 131 | ||||
-rw-r--r-- | schematics/bananatree.mts | bin | 171 -> 0 bytes | |||
-rw-r--r-- | schematics/birch_tree.lua | 108 | ||||
-rw-r--r-- | schematics/bush.lua | 44 | ||||
-rw-r--r-- | schematics/jungletree.mts | bin | 253 -> 0 bytes | |||
-rw-r--r-- | schematics/large_cactus.mts | bin | 94 -> 0 bytes | |||
-rw-r--r-- | schematics/orange_tree.lua | 58 | ||||
-rw-r--r-- | schematics/orangetree.mts | bin | 131 -> 0 bytes | |||
-rw-r--r-- | schematics/redwood_tree.mts | bin | 0 -> 1373 bytes | |||
-rw-r--r-- | schematics/tree.mts | bin | 119 -> 0 bytes | |||
-rw-r--r-- | schematics/waterlily.lua | 60 | ||||
-rw-r--r-- | screenshot.png | bin | 241070 -> 44078 bytes | |||
-rw-r--r-- | sealife.lua | 19 | ||||
-rw-r--r-- | stairs.lua | 156 | ||||
-rw-r--r-- | strawberry.lua | 249 | ||||
-rw-r--r-- | textures/blank.png | bin | 0 -> 357 bytes | |||
-rw-r--r-- | textures/bone.png | bin | 0 -> 148 bytes | |||
-rw-r--r-- | textures/bonemeal.png | bin | 0 -> 186 bytes | |||
-rw-r--r-- | textures/bonemeal_particle.png | bin | 0 -> 116 bytes | |||
-rw-r--r-- | textures/default_fence_overlay.png | bin | 285 -> 0 bytes | |||
-rw-r--r-- | textures/default_gate_overlay.png | bin | 503 -> 0 bytes | |||
-rw-r--r-- | textures/default_pine_wood.png | bin | 223 -> 0 bytes | |||
-rw-r--r-- | textures/flowers_mushroom_brown.png | bin | 155 -> 0 bytes | |||
-rw-r--r-- | textures/flowers_mushroom_red.png | bin | 167 -> 0 bytes | |||
-rw-r--r-- | textures/flowers_waterlily.png | bin | 259 -> 0 bytes | |||
-rw-r--r-- | textures/moretrees_acacia_sapling.png | bin | 359 -> 0 bytes | |||
-rw-r--r-- | textures/moretrees_acacia_trunk.png | bin | 682 -> 0 bytes | |||
-rw-r--r-- | textures/moretrees_acacia_trunk_top.png | bin | 731 -> 0 bytes | |||
-rw-r--r-- | textures/moretrees_acacia_wood.png | bin | 364 -> 0 bytes | |||
-rw-r--r-- | water.lua | 15 | ||||
-rw-r--r-- | wood.lua | 94 |
57 files changed, 1895 insertions, 1768 deletions
diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 215bb37..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -+## Generic ignorable patterns and files -+*~ -+debug.txt
\ No newline at end of file @@ -7,6 +7,16 @@ Ethereal v7 Mapgen mod for Minetest ## Changelog +### 1.20 + +- Tweaked Ethereal to work with new features and nodes in Minetest 0.4.13+ +- Added bones found in dirt and bonemeal to make tree's and crops grow quicker +- Tree's follow default rules where saplings need light to grow +- Using default schematics for apple, pine, acacia and jungle tree's +- Tidied and split code into separate files +- Redid coloured grass spread function to run better +- Added support for moreblock's stairsplus feature + ### 1.19 - Added new biome routine to help restructure biomes diff --git a/bonemeal.lua b/bonemeal.lua new file mode 100644 index 0000000..4f7979b --- /dev/null +++ b/bonemeal.lua @@ -0,0 +1,250 @@ +
+-- bone item
+minetest.register_craftitem("ethereal:bone", {
+ description = "Bone",
+ inventory_image = "bone.png",
+})
+
+-- bonemeal recipe
+minetest.register_craft({
+ type = "shapeless",
+ output = 'ethereal:bonemeal 3',
+ recipe = {'ethereal:bone'},
+})
+
+-- add bones to dirt
+minetest.override_item("default:dirt", {
+ drop = {
+ max_items = 1,
+ items = {
+ {
+ items = {'ethereal:bone', 'default:dirt'},
+ rarity = 30,
+ },
+ {
+ items = {'default:dirt'},
+ }
+ }
+ },
+})
+
+local plants = {
+ "flowers:dandelion_white",
+ "flowers:dandelion_yellow",
+ "flowers:geranium",
+ "flowers:rose",
+ "flowers:tulip",
+ "flowers:viola",
+}
+
+
+local crops = {
+ {"farming:cotton_", 8},
+ {"farming:wheat_", 8},
+ {"farming:tomato_", 8},
+ {"farming:corn_", 8},
+ {"farming:melon_", 8},
+ {"farming:pumpkin_", 8},
+ {"farming:beanpole_", 5},
+ {"farming:blueberry_", 4},
+ {"farming:raspberry_", 4},
+ {"farming:carrot_", 8},
+ {"farming:cocoa_", 3},
+ {"farming:coffee_", 5},
+ {"farming:cucumber_", 4},
+ {"farming:potato_", 4},
+ {"farming:grapes_", 8},
+ {"farming:rhubarb_", 3},
+ {"ethereal:strawberry_", 8},
+ {"ethereal:onion_", 5},
+ {"farming:barley_", 7},
+}
+
+-- growing routine
+local function growth(pointed_thing)
+
+ local pos = pointed_thing.under
+
+ node = minetest.get_node(pos)
+
+ if node.name == ""
+ or node.name == "ignore" then
+ return
+ end
+
+ minetest.add_particlespawner({
+ amount = 4,
+ time = 0.15,
+ minpos = pos,
+ maxpos = pos,
+ minvel = {x = -1, y = 2, z = -1},
+ maxvel = {x = 1, y = 4, z = 1},
+ minacc = {x = -1, y = -1, z = -1},
+ maxacc = {x = 1, y = 1, z = 1},
+ minexptime = 1,
+ maxexptime = 1,
+ minsize = 1,
+ maxsize = 3,
+ texture = "bonemeal_particle.png",
+ })
+
+ -- 50/50 chance of growing a sapling
+ if minetest.get_item_group(node.name, "sapling") > 0 then
+
+ if math.random(1, 2) == 1 then
+ return
+ end
+
+ local under = minetest.get_node({
+ x = pos.x,
+ y = pos.y - 1,
+ z = pos.z
+ })
+
+ -- specific check for palm tree's, so they grow on sand
+ if node.name == "ethereal:palm_sapling"
+ and under.name == "default:sand" then
+ ethereal.grow_palm_tree(pos)
+ return
+ end
+
+ -- check for soil under sapling
+ if minetest.get_item_group(under.name, "soil") == 0 then
+ return
+ end
+
+ -- grow ethereal tree
+ if node.name == "ethereal:palm_sapling" then
+ ethereal.grow_palm_tree(pos)
+
+ elseif node.name == "ethereal:yellow_tree_sapling" then
+ ethereal.grow_yellow_tree(pos)
+
+ elseif node.name == "ethereal:big_tree_sapling" then
+ ethereal.grow_big_tree(pos)
+
+ elseif node.name == "ethereal:banana_tree_sapling" then
+ ethereal.grow_banana_tree(pos)
+
+ elseif node.name == "ethereal:frost_tree_sapling" then
+ ethereal.grow_frost_tree(pos)
+
+ elseif node.name == "ethereal:mushroom_sapling" then
+ ethereal.grow_mushroom_tree(pos)
+
+ elseif node.name == "ethereal:willow_sapling" then
+ ethereal.grow_willow_tree(pos)
+
+ elseif node.name == "ethereal:redwood_sapling" then
+ ethereal.grow_redwood_tree(pos)
+
+ elseif node.name == "ethereal:orange_tree_sapling" then
+ ethereal.grow_orange_tree(pos)
+
+ elseif node.name == "ethereal:bamboo_sprout" then
+ ethereal.grow_bamboo_tree(pos)
+
+ elseif node.name == "ethereal:birch_sapling" then
+ ethereal.grow_birch_tree(pos)
+
+ -- grow default tree
+ elseif node.name == "default:sapling" then
+ default.grow_new_apple_tree(pos)
+
+ elseif node.name == "default:junglesapling" then
+ default.grow_new_jungle_tree(pos)
+
+ elseif node.name == "default:pine_sapling" then
+ default.grow_new_pine_tree(pos)
+
+ elseif node.name == "default:acacia_sapling" then
+ default.grow_new_acacia_tree(pos)
+
+ elseif node.name == "default:aspen_sapling" then
+ default.grow_new_aspen_tree(pos)
+ end
+
+ return
+ end
+
+ local stage = ""
+
+ -- grow registered crops
+ for _, row in pairs(crops) do
+
+ if string.find(node.name, row[1]) then
+
+ stage = tonumber( node.name:split("_")[2] )
+ stage = math.min(stage + math.random(1, 4), row[2])
+
+ minetest.set_node(pos, {name = row[1] .. stage})
+
+ return
+
+ end
+
+ end
+
+ -- grow grass and flowers
+ if minetest.get_item_group(node.name, "soil") > 0 then
+
+ local dirt = minetest.find_nodes_in_area_under_air(
+ {x = pos.x - 2, y = pos.y - 1, z = pos.z - 2},
+ {x = pos.x + 2, y = pos.y + 1, z = pos.z + 2},
+ {"group:soil"})
+
+ for _,n in pairs(dirt) do
+
+ local pos2 = n
+
+ pos2.y = pos2.y + 1
+
+ if math.random(0, 5) > 3 then
+
+ minetest.swap_node(pos2,
+ {name = plants[math.random(1, #plants)]})
+ else
+
+ if node.name == "default:dirt_with_dry_grass" then
+ minetest.swap_node(pos2,
+ {name = "default:dry_grass_" .. math.random(1, 5)})
+ else
+ minetest.swap_node(pos2,
+ {name = "default:grass_" .. math.random(1, 5)})
+ end
+
+ end
+ end
+ end
+end
+
+-- bonemeal item
+minetest.register_craftitem("ethereal:bonemeal", {
+ description = "Bone Meal",
+ inventory_image = "bonemeal.png",
+
+ on_use = function(itemstack, user, pointed_thing)
+
+ if pointed_thing.type == "node" then
+
+ -- Check if node protected
+ if minetest.is_protected(pointed_thing.under, user:get_player_name()) then
+ return
+ end
+
+ if not minetest.setting_getbool("creative_mode") then
+
+ local item = user:get_wielded_item()
+
+ item:take_item()
+ user:set_wielded_item(item)
+ end
+
+ growth(pointed_thing)
+
+ itemstack:take_item()
+
+ return itemstack
+ end
+ end,
+})
diff --git a/compatibility.lua b/compatibility.lua new file mode 100644 index 0000000..5bfc819 --- /dev/null +++ b/compatibility.lua @@ -0,0 +1,46 @@ + +-- add compatibility for ethereal nodes already in default game or name changed +minetest.register_alias("ethereal:acacia_trunk", "default:acacia_tree") +minetest.register_alias("ethereal:acacia_wood", "default:acacia_wood") + +minetest.register_alias("ethereal:fence_acacia", "default:fence_acacia_wood") +minetest.register_alias("ethereal:fence_junglewood", "default:fence_junglewood") +minetest.register_alias("ethereal:fence_pine", "default:fence_pine_wood") + +minetest.register_alias("ethereal:acacia_leaves", "default:acacia_leaves") +minetest.register_alias("ethereal:pineleaves", "default:pine_needles") + +minetest.register_alias("ethereal:mushroom_craftingitem", "flowers:mushroom_brown") +minetest.register_alias("ethereal:mushroom_plant", "flowers:mushroom_brown") +minetest.register_alias("ethereal:mushroom_soup_cooked", "ethereal:mushroom_soup") +minetest.register_alias("ethereal:mushroom_1", "flowers:mushroom_brown") +minetest.register_alias("ethereal:mushroom_2", "flowers:mushroom_brown") +minetest.register_alias("ethereal:mushroom_3", "flowers:mushroom_brown") +minetest.register_alias("ethereal:mushroom_4", "flowers:mushroom_brown") + +minetest.register_alias("ethereal:strawberry_bush", "ethereal:strawberry_7") +minetest.register_alias("ethereal:seed_strawberry", "ethereal:strawberry") + +for i = 1, 5 do + minetest.register_alias("ethereal:wild_onion_"..i, "ethereal:onion_"..i) +end + +minetest.register_alias("ethereal:onion_7", "ethereal:onion_4") +minetest.register_alias("ethereal:onion_8", "ethereal:onion_5") +minetest.register_alias("ethereal:wild_onion_7", "ethereal:onion_4") +minetest.register_alias("ethereal:wild_onion_8", "ethereal:onion_5") +minetest.register_alias("ethereal:wild_onion_craftingitem", "ethereal:wild_onion_plant") + +minetest.register_alias("ethereal:hearty_stew_cooked", "ethereal:hearty_stew") + +minetest.register_alias("ethereal:obsidian_brick", "default:obsidianbrick") + +minetest.register_alias("ethereal:crystal_topped_dirt", "ethereal:crystal_dirt") +minetest.register_alias("ethereal:fiery_dirt_top", "ethereal:fiery_dirt") +minetest.register_alias("ethereal:gray_dirt_top", "ethereal:gray_dirt") +minetest.register_alias("ethereal:green_dirt_top", "ethereal:green_dirt") + +minetest.register_alias("ethereal:tree_sapling", "default:sapling") +minetest.register_alias("ethereal:jungle_tree_sapling", "default:junglesapling") +minetest.register_alias("ethereal:acacia_sapling", "default:acacia_sapling") +minetest.register_alias("ethereal:pine_tree_sapling", "default:pine_sapling") diff --git a/crystal.lua b/crystal.lua index f5eb490..38c02e2 100644 --- a/crystal.lua +++ b/crystal.lua @@ -28,9 +28,8 @@ minetest.register_craftitem("ethereal:crystal_ingot", { minetest.register_craft({ output = "ethereal:crystal_ingot", recipe = { - {"default:mese_crystal", "ethereal:crystal_spike", ""}, - {"ethereal:crystal_spike", "default:mese_crystal", ""}, - {"", "", ""}, + {"default:mese_crystal", "ethereal:crystal_spike"}, + {"ethereal:crystal_spike", "default:mese_crystal"}, } }) @@ -82,9 +81,9 @@ minetest.register_tool("ethereal:sword_crystal", { minetest.register_craft({ output = "ethereal:sword_crystal", recipe = { - {"", "ethereal:crystal_ingot", ""}, - {"", "ethereal:crystal_ingot", ""}, - {"", "default:steel_ingot", ""}, + {"ethereal:crystal_ingot"}, + {"ethereal:crystal_ingot"}, + {"default:steel_ingot"}, } }) @@ -186,9 +185,9 @@ minetest.register_tool("ethereal:shovel_crystal", { minetest.register_craft({ output = "ethereal:shovel_crystal", recipe = { - {"", "ethereal:crystal_ingot", ""}, - {"", "default:steel_ingot", ""}, - {"", "default:steel_ingot", ""}, + {"ethereal:crystal_ingot"}, + {"default:steel_ingot"}, + {"default:steel_ingot"}, } }) diff --git a/depends.txt b/depends.txt index 6034d75..fa3316c 100644 --- a/depends.txt +++ b/depends.txt @@ -2,4 +2,5 @@ default farming
stairs
flowers
+doors
bakedclay?
\ No newline at end of file @@ -1,3 +1,4 @@ + -- override default dirt (to stop caves cutting away dirt) minetest.override_item("default:dirt", {is_ground_content = ethereal.cavedirt}) @@ -66,39 +67,54 @@ for n = 1, #dirts do end --- Compatibility with old maps -minetest.register_alias("ethereal:crystal_topped_dirt", "ethereal:crystal_dirt") -minetest.register_alias("ethereal:fiery_dirt_top", "ethereal:fiery_dirt") -minetest.register_alias("ethereal:gray_dirt_top", "ethereal:gray_dirt") -minetest.register_alias("ethereal:green_dirt_top", "ethereal:green_dirt") +-- re-register dirt types for abm +dirts = { + "ethereal:bamboo_dirt", "ethereal:jungle_dirt", "ethereal:grove_dirt", + "ethereal:prairie_dirt", "ethereal:cold_dirt", "ethereal:crystal_dirt", + "ethereal:mushroom_dirt", "ethereal:fiery_dirt", "ethereal:gray_dirt", + "default:dirt_with_dry_grass" +} --- check surrounding grass and change dirt to same colour (by Sokomine) +-- check surrounding grass and change dirt to same colour minetest.register_abm({ - nodenames = {"default:dirt_with_grass"}, - interval = 5, - chance = 2, + nodenames = {"default:dirt_with_grass", "default:dirt"}, + neighbors = {"air"}, + interval = 6, + chance = 65, catch_up = false, + action = function(pos, node) - local count_grasses = {} - local curr_max = 0 + -- not enough light + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + + if (minetest.get_node_light(above) or 0) < 13 then + return + end + + -- water above grass + local name = minetest.get_node(above).name + local nodef = minetest.registered_nodes[name] + + if name == "ignore" or not nodef or nodef.liquidtype ~= "none" then + return + end + + local curr_max, num = 0 local curr_type = "ethereal:green_dirt" -- fallback - local positions = minetest.find_nodes_in_area( - {x = (pos.x - 1), y = (pos.y - 2), z = (pos.z - 1)}, - {x = (pos.x + 1), y = (pos.y + 2), z = (pos.z + 1)}, + local positions, grasses = minetest.find_nodes_in_area( + {x = (pos.x - 2), y = (pos.y - 2), z = (pos.z - 2)}, + {x = (pos.x + 2), y = (pos.y + 2), z = (pos.z + 2)}, "group:ethereal_grass") -- count new grass nodes - for _,p in pairs(positions) do + for _,p in pairs(dirts) do - local n = minetest.get_node(p).name + num = grasses[p] or 0 - count_grasses[n] = (count_grasses[n] or 0) + 1 - - -- we found a grass type with more than current max - if count_grasses[n] > curr_max then - curr_max = count_grasses[n] - curr_type = n + if num > curr_max then + curr_max = num + curr_type = p end end @@ -114,8 +130,8 @@ minetest.override_item("default:dirt_with_dry_grass", { -- if grass devoid of light, change to dirt minetest.register_abm({ nodenames = {"group:ethereal_grass"}, - interval = 2, - chance = 20, + interval = 8, + chance = 40, -- 50 catch_up = false, action = function(pos, node) @@ -164,3 +180,45 @@ if not minetest.get_modpath("bakedclay") then }) end + +-- Quicksand (old style, sinking inside shows black instead of yellow effect, +-- works ok with noclip enabled though) +minetest.register_node("ethereal:quicksand", { + description = "Quicksand", + tiles = {"default_sand.png"}, + drop = "default:sand", + liquid_viscosity = 15, + liquidtype = "source", + liquid_alternative_flowing = "ethereal:quicksand", + liquid_alternative_source = "ethereal:quicksand", + liquid_renewable = false, + liquid_range = 0, + drowning = 1, + walkable = false, + climbable = false, + post_effect_color = {r = 230, g = 210, b = 160, a = 245}, + groups = {crumbly = 3, sand = 1, liquid = 3, disable_jump = 1}, + sounds = default.node_sound_sand_defaults(), +}) + +-- Quicksand (new style, sinking inside shows yellow effect with or without noclip, +-- but old quicksand is shown as black until block placed nearby to update light) +minetest.register_node("ethereal:quicksand2", { + description = "Quicksand", + tiles = {"default_sand.png"}, + drawtype = "glasslike", + paramtype = "light", + drop = "default:sand", + liquid_viscosity = 15, + liquidtype = "source", + liquid_alternative_flowing = "ethereal:quicksand2", + liquid_alternative_source = "ethereal:quicksand2", + liquid_renewable = false, + liquid_range = 0, + drowning = 1, + walkable = false, + climbable = false, + post_effect_color = {r = 230, g = 210, b = 160, a = 245}, + groups = {crumbly = 3, sand = 1, liquid = 3, disable_jump = 1}, + sounds = default.node_sound_sand_defaults(), +}) @@ -1,29 +1,137 @@ --- vines -minetest.register_node("ethereal:vine", { - description = "Vine", - drawtype = "signlike", - tiles = {"vine.png"}, - inventory_image = "vine.png", - wield_image = "vine.png", + +-- Bamboo Flooring +minetest.register_node("ethereal:bamboo_floor", { + description = ("Bamboo Floor"), + drawtype = 'nodebox', + tiles = { "bamboo_floor.png" }, + wield_image = "bamboo_floor.png", + inventory_image = "bamboo_floor.png", paramtype = "light", paramtype2 = "wallmounted", + walkable = true, + node_box = { + type = "wallmounted", + wall_top = {-0.5, 0.4375, -0.5, 0.5, 0.5, 0.5}, + wall_bottom = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, + wall_side = {-0.5, -0.5, -0.5, -0.4375, 0.5, 0.5}, + }, + selection_box = {type = "wallmounted"}, + groups = {snappy = 3, choppy = 3 , flammable = 2}, + sounds = default.node_sound_wood_defaults(), +}) + +-- Craft Bamboo into Bamboo Flooring +minetest.register_craft({ + output = "ethereal:bamboo_floor 2", + recipe = { + {"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"}, + {"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"}, + {"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"}, + } +}) + +-- Craft Bamboo into Paper +minetest.register_craft({ + output = "default:paper 6", + recipe = { + {"ethereal:bamboo", "ethereal:bamboo"}, + {"ethereal:bamboo", "ethereal:bamboo"}, + {"ethereal:bamboo", "ethereal:bamboo"}, + } +}) + +-- X pattern craft recipes (5x 'a' in X pattern gives 5 of 'b') +for _,items in pairs({ + {"default:cobble", "default:gravel"}, + {"default:gravel", "default:dirt"}, + {"default:dirt", "default:sand"}, + {"default:ice", "default:snow"}, + {"ethereal:dry_dirt", "default:desert_sand"}, +}) do + local a, b = unpack(items) + minetest.register_craft({ + output = b.." 5", + recipe = { + {a, "", a}, + {"", a, ""}, + {a, "", a}, + } + }) +end + +-- Paper (2x3 string = 4 paper) +minetest.register_craft({ + output = "default:paper 4", + recipe = { + {"farming:string", "farming:string"}, + {"farming:string", "farming:string"}, + {"farming:string", "farming:string"}, + } +}) + +-- Palm Wax +minetest.register_craftitem("ethereal:palm_wax", { + description = "Palm Wax", + inventory_image = "palm_wax.png", + wield_image = "palm_wax.png", +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 10, + output = "ethereal:palm_wax", + recipe = "ethereal:palmleaves" +}) + +-- Candle from Wax and String/Cotton +minetest.register_node("ethereal:candle", { + description = "Candle", + drawtype = "plantlike", + inventory_image = "candle_static.png", + wield_image = "candle_static.png", + tiles = { + { + name = "candle.png", + animation={ + type="vertical_frames", + aspect_w = 32, + aspect_h = 32, + length = 1.0 + } + }, + }, + paramtype = "light", + light_source = 11, + sunlight_propagates = true, walkable = false, - climbable = true, - is_ground_content = false, + groups = {dig_immediate = 3, attached_node = 1}, + sounds = default.node_sound_defaults(), selection_box = { - type = "wallmounted", + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 } }, - groups = {choppy = 3, oddly_breakable_by_hand = 1}, - legacy_wallmounted = true, - sounds = default.node_sound_leaves_defaults(), }) minetest.register_craft({ - output = "ethereal:vine 2", + output = "ethereal:candle 2", recipe = { - {"group:leaves", "group:leaves", ""}, - {"group:leaves", "group:leaves", ""}, - {"group:leaves", "group:leaves", ""}, + {"farming:cotton"}, + {"ethereal:palm_wax"}, + {"ethereal:palm_wax"}, + } +}) + +-- Wooden Bowl +minetest.register_craftitem("ethereal:bowl", { + description = "Bowl", + inventory_image = "bowl.png", +}) + +minetest.register_craft({ + output = "ethereal:bowl", + recipe = { + {"group:wood", "", "group:wood"}, + {"", "group:wood", ""}, } }) @@ -109,26 +217,6 @@ minetest.register_craft({ } }) --- Ladder (Changes default recipe to give 2x ladders instead of only 1) -minetest.register_craft({ - output = "default:ladder 2", - recipe = { - {"group:stick", "", "group:stick"}, - {"group:stick", "group:stick", "group:stick"}, - {"group:stick", "", "group:stick"}, - } -}) - --- Signs (Changes default recipe to give 4x signs instead of only 1) -minetest.register_craft({ - output = "default:sign_wall 4", - recipe = { - {"group:wood", "group:wood", "group:wood"}, - {"group:wood", "group:wood", "group:wood"}, - {"", "group:stick", ""}, - } -}) - -- Charcoal Lump minetest.register_craftitem("ethereal:charcoal_lump", { description = "Lump of Charcoal", @@ -144,7 +232,7 @@ minetest.register_craft({ }) minetest.register_craft({ - output = "ethereal:charcoal_lump 4", + output = "ethereal:charcoal_lump 2", type = "cooking", recipe = "group:tree", cooktime = 4 @@ -165,106 +253,6 @@ minetest.register_craft({ } }) --- Obsidian Brick (now in default game so added compatibility for old maps) -minetest.register_alias("ethereal:obsidian_brick", "default:obsidianbrick") - --- Quicksand (old style, sinking inside shows black instead of yellow effect, --- works ok with noclip enabled though) -minetest.register_node("ethereal:quicksand", { - description = "Quicksand", - tiles = {"default_sand.png"}, - drop = "default:sand", - liquid_viscosity = 15, - liquidtype = "source", - liquid_alternative_flowing = "ethereal:quicksand", - liquid_alternative_source = "ethereal:quicksand", - liquid_renewable = false, - liquid_range = 0, - drowning = 1, - walkable = false, - climbable = false, - post_effect_color = {r = 230, g = 210, b = 160, a = 245}, - groups = {crumbly = 3, sand = 1, liquid = 3, disable_jump = 1}, - sounds = default.node_sound_sand_defaults(), -}) - --- Quicksand (new style, sinking inside shows yellow effect with or without noclip, --- but old quicksand is shown as black until block placed nearby to update light) -minetest.register_node("ethereal:quicksand2", { - description = "Quicksand", - tiles = {"default_sand.png"}, - drawtype = "glasslike", - paramtype = "light", - drop = "default:sand", - liquid_viscosity = 15, - liquidtype = "source", - liquid_alternative_flowing = "ethereal:quicksand2", - liquid_alternative_source = "ethereal:quicksand2", - liquid_renewable = false, - liquid_range = 0, - drowning = 1, - walkable = false, - climbable = false, - post_effect_color = {r = 230, g = 210, b = 160, a = 245}, - groups = {crumbly = 3, sand = 1, liquid = 3, disable_jump = 1}, - sounds = default.node_sound_sand_defaults(), -}) - --- Illuminated Cave Shrooms (Red, Green and Blue) -minetest.register_node("ethereal:illumishroom", { - description = "Red Illumishroom", - drawtype = "plantlike", - tiles = { "illumishroom.png" }, - inventory_image = "illumishroom.png", - wield_image = "illumishroom.png", - paramtype = "light", - light_source = 5, - sunlight_propagates = true, - walkable = false, - groups = {dig_immediate = 3, attached_node = 1,flammable = 3}, - sounds = default.node_sound_leaves_defaults(), - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, - }, -}) - -minetest.register_node("ethereal:illumishroom2", { - description = "Green Illumishroom", - drawtype = "plantlike", - tiles = { "illumishroom2.png" }, - inventory_image = "illumishroom2.png", - wield_image = "illumishroom2.png", - paramtype = "light", - light_source = 5, - sunlight_propagates = true, - walkable = false, - groups = {dig_immediate = 3, attached_node = 1,flammable = 3}, - sounds = default.node_sound_leaves_defaults(), - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, - }, -}) - -minetest.register_node("ethereal:illumishroom3", { - description = "Cyan Illumishroom", - drawtype = "plantlike", - tiles = { "illumishroom3.png" }, - inventory_image = "illumishroom3.png", - wield_image = "illumishroom3.png", - paramtype = "light", - light_source = 5, - sunlight_propagates = true, - walkable = false, - groups = {dig_immediate = 3, attached_node = 1,flammable = 3}, - sounds = default.node_sound_leaves_defaults(), - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, - }, -}) - -- Staff of Light (by Xanthin) minetest.register_tool("ethereal:light_staff", { description = "Staff of Light", @@ -310,32 +298,3 @@ minetest.register_craft({ {"ethereal:illumishroom3", "default:steel_ingot", "ethereal:illumishroom3"} } }) - --- Generate Illumishroom in caves next to coal -minetest.register_on_generated(function(minp, maxp) - - if minp.y > -30 or maxp.y < -3000 then - return - end - - local bpos - local coal = minetest.find_nodes_in_area_under_air(minp, maxp, "default:stone_with_coal") - - for n = 1, #coal do - - bpos = {x = coal[n].x, y = coal[n].y + 1, z = coal[n].z } - - if math.random(1, 2) == 1 then - - if bpos.y > -3000 and bpos.y < -2000 then - minetest.swap_node(bpos, {name = "ethereal:illumishroom3"}) - - elseif bpos.y > -2000 and bpos.y < -1000 then - minetest.swap_node(bpos, {name = "ethereal:illumishroom2"}) - - elseif bpos.y > -1000 and bpos.y < -30 then - minetest.swap_node(bpos, {name = "ethereal:illumishroom"}) - end - end - end -end) @@ -1,45 +1,72 @@ -local fences = { - {"junglewood", "Jungle Wood", "default_junglewood.png", "default:junglewood"}, - {"scorched", "Scorched", "scorched_tree.png", "ethereal:scorched_tree"}, - {"frostwood", "Frost Wood", "frost_wood.png", "ethereal:frost_wood"}, - {"redwood", "Redwood", "redwood_wood.png", "ethereal:redwood_wood"}, - {"willow", "Willow", "willow_wood.png", "ethereal:willow_wood"}, - {"yellowwood", "Healing Wood", "yellow_wood.png", "ethereal:yellow_wood"}, - {"palm", "Palm Wood", "moretrees_palm_wood.png", "ethereal:palm_wood"}, - {"banana", "Banana Wood", "banana_wood.png", "ethereal:banana_wood"}, - {"mushroom", "Mushroom", "mushroom_trunk.png", "ethereal:mushroom_trunk"}, - {"acacia", "Acacia Wood", "moretrees_acacia_wood.png", "ethereal:acacia_wood"}, - {"pine", "Pine Wood", "default_pine_wood.png", "default:pinewood"}, - {"birch", "Birch Wood", "moretrees_birch_wood.png", "ethereal:birch_wood"}, -} - -for _, row in pairs(fences) do - - minetest.register_node("ethereal:fence_"..row[1], { - description = row[2].." Fence", - drawtype = "fencelike", - is_ground_content = false, - tiles = {row[3]}, - inventory_image = "default_fence_overlay.png^" .. row[3] - .. "^default_fence_overlay.png^[makealpha:255,126,126", - wield_image = "default_fence_overlay.png^" .. row[3] - .. "^default_fence_overlay.png^[makealpha:255,126,126", - paramtype = "light", - sunlight_propagates = true, - selection_box = { - type = "fixed", - fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, - }, - groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, - sounds = default.node_sound_wood_defaults(), - }) - - minetest.register_craft({ - output = "ethereal:fence_"..row[1].." 4", - recipe = { - {row[4], "group:stick", row[4]}, - {row[4], "group:stick", row[4]}, - } - }) - -end + +default.register_fence("ethereal:fence_scorched", { + description = "Scorched Fence", + texture = "scorched_tree.png", + material = "ethereal:scorched_tree", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("ethereal:fence_frostwood", { + description = "Frost Fence", + texture = "frost_wood.png", + material = "ethereal:frost_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("ethereal:fence_redwood", { + description = "Redwood Fence", + texture = "redwood_wood.png", + material = "ethereal:redwood_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("ethereal:fence_willow", { + description = "Willow Fence", + texture = "willow_wood.png", + material = "ethereal:willow_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("ethereal:fence_yellowwood", { + description = "Healing Wood Fence", + texture = "yellow_wood.png", + material = "ethereal:yellow_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("ethereal:fence_palm", { + description = "Palm Fence", + texture = "moretrees_palm_wood.png", + material = "ethereal:palm_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("ethereal:fence_banana", { + description = "Banana Wood Fence", + texture = "banana_wood.png", + material = "ethereal:banana_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("ethereal:fence_mushroom", { + description = "Mushroom Fence", + texture = "mushroom_trunk.png", + material = "ethereal:mushroom_trunk", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("ethereal:fence_birch", { + description = "Birch Fence", + texture = "moretrees_birch_wood.png", + material = "ethereal:birch_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) diff --git a/fishing.lua b/fishing.lua index dbcf205..ff40c73 100644 --- a/fishing.lua +++ b/fishing.lua @@ -85,6 +85,7 @@ minetest.register_craftitem("ethereal:fishing_rod_baited", { wield_image = "fishing_rod_wield.png", stack_max = 1, liquids_pointable = true, + on_use = function (itemstack, user, pointed_thing) if pointed_thing.type ~= "node" then diff --git a/flowers.lua b/flowers.lua index ee4450f..eb58102 100644 --- a/flowers.lua +++ b/flowers.lua @@ -2,8 +2,8 @@ minetest.register_abm({ nodenames = {"group:flora"}, neighbors = {"group:soil"}, - interval = 25, - chance = 15, + interval = 13, --25, + chance = 96, --15, catch_up = false, action = function(pos, node) @@ -54,7 +54,7 @@ minetest.register_abm({ local fflower = minetest.find_nodes_in_area_under_air( pos0, pos1, {"ethereal:fire_flower"}) - if #grass > 7 + if #grass > 8 and #fflower < 1 then grass = grass[math.random(#grass)] diff --git a/food.lua b/food.lua new file mode 100644 index 0000000..3078225 --- /dev/null +++ b/food.lua @@ -0,0 +1,202 @@ + +-- fix apples hanging in sky when no tree around +minetest.override_item("default:apple", { + drop = "default:apple", +}) + +-- Banana (Heals one heart when eaten) +minetest.register_node("ethereal:banana", { + description = "Banana", + drawtype = "torchlike", + visual_scale = 1.0, + tiles = {"banana_single.png"}, + inventory_image = "banana_single.png", + wield_image = "banana_single.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.5, -0.2, 0.2, 0.2, 0.2} + }, + groups = { + fleshy = 3, dig_immediate = 3, flammable = 2, + leafdecay = 1, leafdecay_drop = 1 + }, + drop = "ethereal:banana", + on_use = minetest.item_eat(2), + sounds = default.node_sound_leaves_defaults(), + after_place_node = function(pos, placer) + if placer:is_player() then + minetest.set_node(pos, {name = "ethereal:banana", param2 = 1}) + end + end, +}) + +-- Banana Dough +minetest.register_craftitem("ethereal:banana_dough", { + description = "Banana Dough", + inventory_image = "banana_dough.png", +}) + +minetest.register_craft({ + type = "shapeless", + output = "ethereal:banana_dough", + recipe = {"farming:flour", "ethereal:banana"} +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 14, + output = "ethereal:banana_bread", + recipe = "ethereal:banana_dough" +}) + +-- Orange (Heals 2 hearts when eaten) +minetest.register_node("ethereal:orange", { + description = "Orange", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"farming_orange.png"}, + inventory_image = "farming_orange.png", + wield_image = "farming_orange.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.3, -0.2, 0.2, 0.2, 0.2} + }, + groups = { + fleshy = 3, dig_immediate = 3, flammable = 2, + leafdecay = 3, leafdecay_drop = 1 + }, + drop = "ethereal:orange", + on_use = minetest.item_eat(4), + sounds = default.node_sound_leaves_defaults(), + after_place_node = function(pos, placer) + if placer:is_player() then + minetest.set_node(pos, {name = "ethereal:orange", param2 = 1}) + end + end, +}) + +-- Pine Nuts (Heals 1/2 heart when eaten) +minetest.register_craftitem("ethereal:pine_nuts", { + description = "Pine Nuts", + inventory_image = "pine_nuts.png", + wield_image = "pine_nuts.png", + on_use = minetest.item_eat(1), +}) + +-- Banana Loaf (Heals 3 hearts when eaten) +minetest.register_craftitem("ethereal:banana_bread", { + description = "Banana Loaf", + inventory_image = "banana_bread.png", + wield_image = "banana_bread.png", + on_use = minetest.item_eat(6), +}) + +-- Coconut (Gives 4 coconut slices, each heal 1/2 heart) +minetest.register_node("ethereal:coconut", { + description = "Coconut", + drawtype = "plantlike", + walkable = false, + paramtype = "light", + sunlight_propagates = true, + tiles = {"moretrees_coconut.png"}, + inventory_image = "moretrees_coconut.png", + wield_image = "moretrees_coconut.png", + selection_box = { + type = "fixed", + fixed = {-0.35, -0.35, -0.35, 0.35, 0.35, 0.35} + }, + groups = { + snappy = 1, oddly_breakable_by_hand = 1, cracky = 1, + choppy = 1, flammable = 1, leafdecay = 3, leafdecay_drop = 1 + }, + drop = "ethereal:coconut_slice 4", + sounds = default.node_sound_wood_defaults(), +}) + +-- Coconut Slice (Heals half heart when eaten) +minetest.register_craftitem("ethereal:coconut_slice", { + description = "Coconut Slice", + inventory_image = "moretrees_coconut_slice.png", + wield_image = "moretrees_coconut_slice.png", + on_use = minetest.item_eat(1), +}) + +-- Golden Apple (Found on Healing Tree, heals all 10 hearts) +minetest.register_node("ethereal:golden_apple", { + description = "Golden Apple", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"default_apple_gold.png"}, + inventory_image = "default_apple_gold.png", + wield_image = "default_apple_gold.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.3, -0.2, 0.2, 0.2, 0.2} + }, + groups = { + fleshy = 3, dig_immediate = 3, + leafdecay = 3,leafdecay_drop = 1 + }, + drop = "ethereal:golden_apple", + on_use = minetest.item_eat(20), + sounds = default.node_sound_leaves_defaults(), + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.set_node(pos, {name = "ethereal:golden_apple", param2 = 1}) + end + end, +}) + +-- Hearty Stew (Heals 5 hearts - thanks to ZonerDarkRevention for his DokuCraft DeviantArt bowl texture) +minetest.register_craftitem("ethereal:hearty_stew", { + description = "Hearty Stew", + inventory_image = "hearty_stew.png", + wield_image = "hearty_stew.png", + on_use = minetest.item_eat(10, "ethereal:bowl"), +}) + +minetest.register_craft({ + output = "ethereal:hearty_stew", + recipe = { + {"ethereal:wild_onion_plant","ethereal:mushroom_plant", "ethereal:fern_tubers"}, + {"","ethereal:mushroom_plant", ""}, + {"","ethereal:bowl", ""}, + } +}) + +-- Extra recipe for hearty stew +if farming and farming.mod and farming.mod == "redo" then +minetest.register_craft({ + output = "ethereal:hearty_stew", + recipe = { + {"ethereal:wild_onion_plant","ethereal:mushroom_plant", "farming:beans"}, + {"","ethereal:mushroom_plant", ""}, + {"","ethereal:bowl", ""}, + } +}) +end + +-- Bucket of Cactus Pulp +minetest.register_craftitem("ethereal:bucket_cactus", { + description = "Bucket of Cactus Pulp", + inventory_image = "bucket_cactus.png", + wield_image = "bucket_cactus.png", + stack_max = 1, + on_use = minetest.item_eat(2, "bucket:bucket_empty"), +}) + +minetest.register_craft({ + output = "ethereal:bucket_cactus", + recipe = { + {"bucket:bucket_empty","default:cactus"}, + } +}) @@ -1,136 +1,78 @@ --- Node Box coords -local nb_gap = { - {-1, 0.1875, -0.0625, -0.5, 0.3125, 0.0625}, - {-1, -0.1875, -0.0625, -0.5, -0.3125, 0.0625}, - {0.5, 0.1875, -0.0625, 1, 0.3125, 0.0625}, - {0.5, -0.1875, -0.0625, 1, -0.3125, 0.0625} - } -local nb_pil = { - {0.5, -0.5, -0.09375, 0.5625, 0.5, 0.09375}, - {-0.5625, -0.5, -0.09375, -0.5, 0.5, 0.09375}, - {-0.5, -0.3125, -0.0625, -0.375, 0.3125, 0.0625}, - {0.375, -0.3125, -0.0625, 0.5, 0.3125, 0.0625} - } +-- register Ethereal wood type gates --- Open/Close Gates -function gate_rightclick(pos, node) +doors.register_fencegate("ethereal:fencegate_scorched", { + description = "Scorched Wood Fence Gate", + texture = "scorched_tree.png", + material = "ethereal:scorched_tree", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) - local split = string.split(node.name, "_") - local sound = "open" - local name = "open" +doors.register_fencegate("ethereal:fencegate_frostwood", { + description = "Frost Wood Fence Gate", + texture = "frost_wood.png", + material = "ethereal:frost_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) - if split[3] == "open" then - sound = "close" - name = "closed" - end +doors.register_fencegate("ethereal:fencegate_redwood", { + description = "Redwood Fence Gate", + texture = "redwood_wood.png", + material = "ethereal:redwood_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) - node.name = split[1] .. "_" .. split[2] .. "_" .. name +doors.register_fencegate("ethereal:fencegate_willow", { + description = "Willow Wood Fence Gate", + texture = "willow_wood.png", + material = "ethereal:willow_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) - minetest.swap_node(pos, node) +doors.register_fencegate("ethereal:fencegate_yellowwood", { + description = "Healing Wood Fence Gate", + texture = "yellow_wood.png", + material = "ethereal:yellow_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) - minetest.sound_play("doors_door_"..sound, { - pos = pos, - gain = 0.3, - max_hear_distance = 10 - }) -end +doors.register_fencegate("ethereal:fencegate_palm", { + description = "Palm Wood Fence Gate", + texture = "moretrees_palm_wood.png", + material = "ethereal:palm_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) -local gates = { - {"wood", "Wood", "default_wood.png", "default:wood"}, - {"junglewood", "Jungle Wood", "default_junglewood.png", "default:junglewood"}, - {"scorched", "Scorched", "scorched_tree.png", "ethereal:scorched_tree"}, - {"frostwood", "Frost Wood", "frost_wood.png", "ethereal:frost_wood"}, - {"redwood", "Redwood", "redwood_wood.png", "ethereal:redwood_wood"}, - {"willow", "Willow", "willow_wood.png", "ethereal:willow_wood"}, - {"yellowwood", "Healing Wood", "yellow_wood.png", "ethereal:yellow_wood"}, - {"palm", "Palm Wood", "moretrees_palm_wood.png", "ethereal:palm_wood"}, - {"banana", "Banana Wood", "banana_wood.png", "ethereal:banana_wood"}, - {"mushroom", "Mushroom", "mushroom_trunk.png", "ethereal:mushroom_trunk"}, - {"acacia", "Acacia Wood", "moretrees_acacia_wood.png", "ethereal:acacia_wood"}, - {"pine", "Pine Wood", "default_pine_wood.png", "default:pinewood"}, - {"birch", "Birch Wood", "moretrees_birch_wood.png", "ethereal:birch_wood"}, -} +doors.register_fencegate("ethereal:fencegate_banana", { + description = "Banana Wood Fence Gate", + texture = "banana_wood.png", + material = "ethereal:banana_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) -for _, row in pairs(gates) do +doors.register_fencegate("ethereal:fencegate_mushroom", { + description = "Mushroom Trunk Fence Gate", + texture = "mushroom_trunk.png", + material = "ethereal:mushroom_trunk", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) -minetest.register_node("ethereal:fencegate_"..row[1].."_open", { - tiles = {row[3]}, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - is_ground_content = false, - walkable = true, - groups = { - snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, - flammable = 2, not_in_inventory = 1 - }, - drop = "ethereal:fencegate_"..row[1].."_closed", - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.3125, 0.4375, -0.375, 0.3125, 0.5}, - {0.375, -0.3125, 0.4375, 0.5, 0.3125, 0.5}, - {-0.5, 0.1875, 0.0625, -0.375, 0.3125, 0.4375}, - {-0.5, -0.1875, 0.0625, -0.375, -0.3125, 0.4375}, - {0.375, 0.1875, 0.0625, 0.5, 0.3125, 0.4375}, - {0.375, -0.1875, 0.0625, 0.5, -0.3125, 0.4375}, - nb_pil[1], nb_pil[2], - nb_pil[3], nb_pil[4], - nb_gap[1], nb_gap[2], - nb_gap[3], nb_gap[4], - } - }, - selection_box = { - type = "fixed", - fixed = { - {-0.5, -0.3125, -0.0625, -0.375, 0.3125, 0.5}, - {0.375, -0.3125, -0.0625, 0.5, 0.3125, 0.5}, - } - }, - on_rightclick = gate_rightclick, +doors.register_fencegate("ethereal:fencegate_birch", { + description = "Birch Wood Fence Gate", + texture = "moretrees_birch_wood.png", + material = "ethereal:birch_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} }) -minetest.register_alias("ethereal:"..row[1].."gate_open", "ethereal:fencegate_"..row[1].."_open") +-- add compatibility for ethereal's to default wooden gates +minetest.register_alias("ethereal:fencegate_wood_open", "doors:gate_wood_open") +minetest.register_alias("ethereal:fencegate_wood_closed", "doors:gate_wood_closed") -minetest.register_node("ethereal:fencegate_"..row[1].."_closed", { - description = row[2].." Gate", - tiles = {row[3]}, - inventory_image = "default_gate_overlay.png^" .. row[3] - .. "^default_gate_overlay.png^[makealpha:255,126,126", - wield_image = "default_gate_overlay.png^" .. row[3] - .. "^default_gate_overlay.png^[makealpha:255,126,126", - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - walkable = true, - groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = { - nb_pil[1], nb_pil[2], - nb_pil[3], nb_pil[4], - {-0.0625, -0.3125, -0.0625, 0.0625, 0.3125, 0.0625}, - {-1, 0.1875, -0.0625, 1, 0.3125, 0.0625}, - {-1, -0.1875, -0.0625, 1, -0.3125, 0.0625}, - } - }, - selection_box = { - type = "fixed", - fixed = {{-0.5, -0.3125, -0.0625, 0.5, 0.3125, 0.0625}} - }, - on_rightclick = gate_rightclick, -}) -minetest.register_alias("ethereal:"..row[1].."gate_closed", "ethereal:fencegate_"..row[1].."_closed") +minetest.register_alias("ethereal:fencegate_acacia_open", "doors:gate_acacia_wood_open") +minetest.register_alias("ethereal:fencegate_acacia_closed", "doors:gate_acacia_wood_closed") -minetest.register_craft({ - output = "ethereal:fencegate_"..row[1].."_closed", - recipe = { - {"group:stick", row[4], "group:stick"}, - {"group:stick", row[4], "group:stick"}, - } -}) +minetest.register_alias("ethereal:fencegate_junglewood_open", "doors:gate_junglewood_open") +minetest.register_alias("ethereal:fencegate_junglewood_closed", "doors:gate_junglewood_closed") -end +minetest.register_alias("ethereal:fencegate_pine_open", "doors:gate_pine_wood_open") +minetest.register_alias("ethereal:fencegate_pine_closed", "doors:gate_pine_wood_closed") @@ -1,6 +1,6 @@ --[[
- Minetest Ethereal Mod 1.19 (23rd March 2016)
+ Minetest Ethereal Mod (17th May 2016)
Created by ChinChow
@@ -57,12 +57,14 @@ dofile(path .. "/extra.lua") dofile(path .. "/sealife.lua")
dofile(path .. "/fences.lua")
dofile(path .. "/gates.lua")
-dofile(path .. "/mapgen_v7n.lua") -- 0.4.13+
+dofile(path .. "/mapgen.lua")
+dofile(path .. "/food.lua")
+dofile(path .. "/bonemeal.lua")
+dofile(path .. "/compatibility.lua")
+dofile(path .. "/stairs.lua")
if minetest.get_modpath("xanadu") then
dofile(path .. "/plantpack.lua")
-else
- dofile(path .. "/stairs.lua")
end
print ("[MOD] Ethereal loaded")
@@ -1,55 +1,66 @@ --- Leaf style (set in init.lua file) -if ethereal.leaftype == 0 then - leaftype = "plantlike" -else + +-- set leaftype (value inside init.lua) +local leaftype = "plantlike" + +if ethereal.leaftype ~= 0 then leaftype = "allfaces_optional" end ---= Define leaves for ALL trees (and Mushroom Tops) +-- default apple tree leaves +minetest.override_item("default:leaves", { + drawtype = leaftype, + visual_scale = 1.2, + inventory_image = "default_leaves.png", + wield_image = "default_leaves.png", + walkable = ethereal.leafwalk, +}) --- Acacia Leaves -if not minetest.registered_nodes["default:acacia_leaves"] then -minetest.register_node("ethereal:acacia_leaves", { - description = "Acacia Leaves", +-- default jungle tree leaves +minetest.override_item("default:jungleleaves", { drawtype = leaftype, - tiles = {"moretrees_acacia_leaves.png"}, - inventory_image = "moretrees_acacia_leaves.png", - wield_image = "moretrees_acacia_leaves.png", - paramtype = "light", + visual_scale = 1.2, + inventory_image = "default_jungleleaves.png", + wield_image = "default_jungleleaves.png", walkable = ethereal.leafwalk, +}) + +-- default pine tree leaves +minetest.override_item("default:pine_needles", { + drawtype = leaftype, visual_scale = 1.2, - waving = 1, - groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, + inventory_image = "default_pine_needles.png", + wield_image = "default_pine_needles.png", + walkable = ethereal.leafwalk, drop = { max_items = 1, items = { - {items = {"ethereal:acacia_sapling"}, rarity = 20}, - {items = {"ethereal:acacia_leaves"}} + {items = {"default:pine_sapling"}, rarity = 20}, + {items = {"ethereal:pine_nuts"}, rarity = 5}, + {items = {"default:pine_needles"}} } }, - sounds = default.node_sound_leaves_defaults(), - after_place_node = default.after_place_leaves, }) -else + +-- default acacia tree leaves minetest.override_item("default:acacia_leaves", { drawtype = leaftype, - tiles = {"moretrees_acacia_leaves.png"}, - inventory_image = "moretrees_acacia_leaves.png", - wield_image = "moretrees_acacia_leaves.png", +-- tiles = {"moretrees_acacia_leaves.png"}, + inventory_image = "default_acacia_leaves.png", + wield_image = "default_acacia_leaves.png", + visual_scale = 1.2, + walkable = ethereal.leafwalk, +}) + +-- default aspen tree leaves +minetest.override_item("default:aspen_leaves", { + drawtype = leaftype, + inventory_image = "default_aspen_leaves.png", + wield_image = "default_aspen_leaves.png", visual_scale = 1.2, walkable = ethereal.leafwalk, - drop = { - max_items = 1, - items = { - {items = {"ethereal:acacia_sapling"}, rarity = 20}, - {items = {"default:acacia_leaves"}} - } - }, }) -minetest.register_alias("ethereal:acacia_leaves", "default:acacia_leaves") -end --- Willow Twig +-- willow twig minetest.register_node("ethereal:willow_twig", { description = "Willow Twig", drawtype = "plantlike", @@ -72,7 +83,7 @@ minetest.register_node("ethereal:willow_twig", { after_place_node = default.after_place_leaves, }) --- Redwood leaves +-- redwood leaves minetest.register_node("ethereal:redwood_leaves", { description = "Redwood Leaves", drawtype = leaftype, @@ -95,23 +106,7 @@ minetest.register_node("ethereal:redwood_leaves", { after_place_node = default.after_place_leaves, }) --- Default Apple Tree Leaves -minetest.override_item("default:leaves", { - drawtype = leaftype, - visual_scale = 1.2, - inventory_image = "default_leaves.png", - wield_image = "default_leaves.png", - walkable = ethereal.leafwalk, - drop = { - max_items = 1, - items = { - {items = {"ethereal:tree_sapling"}, rarity = 15}, - {items = {"default:leaves"}} - } - }, -}) - --- Orange Tree Leaves +-- orange tree leaves minetest.register_node("ethereal:orange_leaves", { description = "Orange Leaves", drawtype = leaftype, @@ -134,23 +129,7 @@ minetest.register_node("ethereal:orange_leaves", { after_place_node = default.after_place_leaves, }) --- Default Jungle Tree Leaves -minetest.override_item("default:jungleleaves", { - drawtype = leaftype, - visual_scale = 1.2, - inventory_image = "default_jungleleaves.png", - wield_image = "default_jungleleaves.png", - walkable = ethereal.leafwalk, - drop = { - max_items = 1, - items = { - {items = {"ethereal:jungle_tree_sapling"}, rarity = 20}, - {items = {"default:jungleleaves"}} - } - }, -}) - --- Banana Tree Leaves +-- banana tree leaves minetest.register_node("ethereal:bananaleaves", { description = "Banana Leaves", drawtype = leaftype, @@ -165,7 +144,7 @@ minetest.register_node("ethereal:bananaleaves", { drop = { max_items = 1, items = { - {items = {"ethereal:banana_tree_sapling"}, rarity = 15}, + {items = {"ethereal:banana_tree_sapling"}, rarity = 10}, {items = {"ethereal:bananaleaves"}} } }, @@ -173,7 +152,7 @@ minetest.register_node("ethereal:bananaleaves", { after_place_node = default.after_place_leaves, }) --- Healing Tree Leaves +-- healing tree leaves minetest.register_node("ethereal:yellowleaves", { description = "Healing Tree Leaves", drawtype = leaftype, @@ -192,14 +171,14 @@ minetest.register_node("ethereal:yellowleaves", { {items = {"ethereal:yellowleaves"}} } }, - -- Leaves are edible, heal half a heart + -- one leaf heals half a heart when eaten on_use = minetest.item_eat(1), sounds = default.node_sound_leaves_defaults(), after_place_node = default.after_place_leaves, light_source = 9, }) --- Palm Tree Leaves +-- palm tree leaves minetest.register_node("ethereal:palmleaves", { description = "Palm Leaves", drawtype = leaftype, @@ -222,7 +201,7 @@ minetest.register_node("ethereal:palmleaves", { after_place_node = default.after_place_leaves, }) --- Birch Tree Leaves +-- birch tree leaves minetest.register_node("ethereal:birch_leaves", { description = "Birch Leaves", drawtype = leaftype, @@ -245,50 +224,54 @@ minetest.register_node("ethereal:birch_leaves", { after_place_node = default.after_place_leaves, }) --- Pine Tree Leaves -minetest.override_item("default:pine_needles", { +-- frost tree leaves +minetest.register_node("ethereal:frost_leaves", { + description = "Frost Leaves", drawtype = leaftype, visual_scale = 1.2, - tiles = {"pine_leaves.png"}, - inventory_image = "pine_leaves.png", - wield_image = "pine_leaves.png", + tiles = {"ethereal_frost_leaves.png"}, + inventory_image = "ethereal_frost_leaves.png", + wield_image = "ethereal_frost_leaves.png", + paramtype = "light", walkable = ethereal.leafwalk, + waving = 1, + groups = {snappy = 3, leafdecay = 3, leaves = 1, puts_out_fire = 1}, drop = { max_items = 1, items = { - {items = {"ethereal:pine_tree_sapling"}, rarity = 20}, - {items = {"ethereal:pine_nuts"}, rarity = 5}, - {items = {"default:pine_needles"}} + {items = {"ethereal:frost_tree_sapling"}, rarity = 15}, + {items = {"ethereal:frost_leaves"}} } }, + light_source = 9, + sounds = default.node_sound_leaves_defaults(), + after_place_node = default.after_place_leaves, }) -minetest.register_alias("ethereal:pineleaves", "default:pine_needles") --- Frost Tree Leaves -minetest.register_node("ethereal:frost_leaves", { - description = "Frost Leaves", +-- bamboo stalk leaves +minetest.register_node("ethereal:bamboo_leaves", { + description = "Bamboo Leaves", drawtype = leaftype, visual_scale = 1.2, - tiles = {"ethereal_frost_leaves.png"}, - inventory_image = "ethereal_frost_leaves.png", - wield_image = "ethereal_frost_leaves.png", + tiles = {"bamboo_leaves.png"}, + inventory_image = "bamboo_leaves.png", + wield_image = "bamboo_leaves.png", paramtype = "light", walkable = ethereal.leafwalk, waving = 1, - groups = {snappy = 3, leafdecay = 3, leaves = 1, puts_out_fire = 1}, + groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, drop = { max_items = 1, items = { - {items = {"ethereal:frost_tree_sapling"}, rarity = 15}, - {items = {"ethereal:frost_leaves"}} + {items = {"ethereal:bamboo_sprout"}, rarity = 10}, + {items = {"ethereal:bamboo_leaves"}} } }, - light_source = 9, sounds = default.node_sound_leaves_defaults(), after_place_node = default.after_place_leaves, }) --- Mushroom Tops +-- mushroom tops minetest.register_node("ethereal:mushroom", { description = "Mushroom Cap", tiles = {"mushroom_block.png"}, @@ -309,7 +292,7 @@ minetest.register_craft({ burntime = 10, }) --- Mushroom Pore (Spongelike block inside mushrooms that has special properties) +-- mushroom pore (spongelike material found inside giant shrooms) minetest.register_node("ethereal:mushroom_pore", { description = "Mushroom Pore", tiles = {"mushroom_pore.png"}, @@ -320,7 +303,7 @@ minetest.register_node("ethereal:mushroom_pore", { sounds = default.node_sound_dirt_defaults(), }) --- Hedge Block +-- hedge block minetest.register_node("ethereal:bush", { description = "Bush", tiles = {"ethereal_bush.png"}, @@ -333,30 +316,47 @@ minetest.register_craft({ output = "ethereal:bush", recipe = { {"group:leaves", "group:leaves", "group:leaves"}, + {"group:leaves", "ethereal:bamboo_leaves", "group:leaves"}, {"group:leaves", "group:leaves", "group:leaves"}, + } +}) + +-- bush block #2 +minetest.register_node("ethereal:bush2", { + drawtype = "allfaces_optional", + description = "Bush #2", + tiles = {"default_aspen_leaves.png"}, + paramtype = "light", + walkable = true, + groups = {snappy = 3, flammable = 2}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_craft({ + output = "ethereal:bush2", + recipe = { + {"group:leaves", "group:leaves", "group:leaves"}, + {"group:leaves", "default:aspen_leaves", "group:leaves"}, {"group:leaves", "group:leaves", "group:leaves"}, } }) --- Bamboo Leaves -minetest.register_node("ethereal:bamboo_leaves", { - description = "Bamboo Leaves", - drawtype = leaftype, - visual_scale = 1.2, - tiles = {"bamboo_leaves.png"}, - inventory_image = "bamboo_leaves.png", - wield_image = "bamboo_leaves.png", +-- bush block #3 +minetest.register_node("ethereal:bush3", { + drawtype = "allfaces_optional", + description = "Bush #3", + tiles = {"default_pine_needles.png"}, paramtype = "light", - walkable = ethereal.leafwalk, - waving = 1, - groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, - drop = { - max_items = 1, - items = { - {items = {"ethereal:bamboo_sprout"}, rarity = 10}, - {items = {"ethereal:bamboo_leaves"}} - } - }, + walkable = true, + groups = {snappy = 3, flammable = 2}, sounds = default.node_sound_leaves_defaults(), - after_place_node = default.after_place_leaves, +}) + +minetest.register_craft({ + output = "ethereal:bush3", + recipe = { + {"group:leaves", "group:leaves", "group:leaves"}, + {"group:leaves", "default:pine_needles", "group:leaves"}, + {"group:leaves", "group:leaves", "group:leaves"}, + } }) diff --git a/mapgen_v7n.lua b/mapgen.lua index f230a5d..f922676 100644 --- a/mapgen_v7n.lua +++ b/mapgen.lua @@ -1,50 +1,18 @@ --- clear default mapgen biomes and decorations
+
+-- clear default mapgen biomes, decorations and ores
minetest.clear_registered_biomes()
minetest.clear_registered_decorations()
+--minetest.clear_registered_ores()
--- register ore's
-minetest.register_ore({
- ore_type = "blob",
- ore = "bakedclay:red",
- wherein = {"bakedclay:orange"},
- clust_scarcity = 4 * 4 * 4,
- clust_num_ores = 8,
- clust_size = 6,
- y_min = -10,
- y_max = 71,
- noise_params = {
- offset = 0.35,
- scale = 0.2,
- spread = {x = 5, y = 5, z = 5},
- seed = -316,
- octaves = 1,
- persist = 0.5
- },
-})
+local path = minetest.get_modpath("ethereal")
-minetest.register_ore({
- ore_type = "blob",
- ore = "bakedclay:grey",
- wherein = {"bakedclay:orange"},
- clust_scarcity = 4 * 4 * 4,
- clust_num_ores = 8,
- clust_size = 6,
- y_min = -10,
- y_max = 71,
- noise_params = {
- offset = 0.35,
- scale = 0.2,
- spread = {x = 5, y = 5, z = 5},
- seed = -613,
- octaves = 1,
- persist = 0.5
- },
-})
+dofile(path .. "/ores.lua")
-local path = minetest.get_modpath("ethereal") .. "/schematics/"
+path = path .. "/schematics/"
+
+local dpath = minetest.get_modpath("default") .. "/schematics/"
-- tree schematics
-dofile(path .. "apple_tree.lua")
dofile(path .. "orange_tree.lua")
dofile(path .. "banana_tree.lua")
dofile(path .. "bamboo_tree.lua")
@@ -95,6 +63,9 @@ add_biome("glacier", "default:snowblock", "default:snowblock", 1, add_biome("glacier_ocean", "default:snowblock", "default:sand", 1, "default:sand", 3,
nil, nil, nil, nil, nil, -112, -9, 0, 50, ethereal.glacier)
+add_biome("clearing", nil, "ethereal:green_dirt", 1, "default:dirt", 3,
+ nil, nil, nil, nil, nil, 3, 71, 45, 65, 1) -- ADDED
+
add_biome("bamboo", nil, "ethereal:bamboo_dirt", 1, "default:dirt", 3,
nil, nil, nil, nil, nil, 3, 71, 45, 75, ethereal.bamboo)
@@ -240,31 +211,35 @@ add_schem({"ethereal:fiery_dirt"}, 0.01, {"fiery"}, 1, 100, path .. "volcanom.mt -- large lava crater
add_schem({"ethereal:fiery_dirt"}, 0.01, {"fiery"}, 1, 100, path .. "volcanol.mts", ethereal.fiery)
--- jungle tree
-add_schem({"ethereal:jungle_dirt"}, 0.08, {"junglee"}, 1, 100, path .. "jungletree.mts", ethereal.junglee)
+-- default jungle tree
+add_schem({"ethereal:jungle_dirt"}, 0.08, {"junglee"}, 1, 100, dpath .. "jungle_tree.mts", ethereal.junglee)
-- willow tree
add_schem({"ethereal:gray_dirt"}, 0.02, {"grayness"}, 1, 100, path .. "willow.mts", ethereal.grayness)
--- pine tree
-add_schem({"ethereal:cold_dirt"}, 0.025, {"snowy"}, 10, 40, path .. "pinetree.mts", ethereal.snowy)
+-- pine tree (default for lower elevation and ethereal for higher)
+add_schem({"ethereal:cold_dirt"}, 0.025, {"snowy"}, 10, 40, dpath .. "pine_tree.mts", ethereal.snowy)
add_schem({"default:dirt_with_snow"}, 0.025, {"alpine"}, 40, 140, path .. "pinetree.mts", ethereal.alpine)
--- apple tree
-add_schem({"ethereal:green_dirt"}, 0.03, {"grassy"}, 1, 100, ethereal.appletree, ethereal.grassy)
-add_schem({"ethereal:green_dirt"}, 0.03, {"jumble"}, 1, 100, ethereal.appletree, ethereal.jumble)
+-- default apple tree
+add_schem({"ethereal:green_dirt"}, 0.02, {"jumble"}, 1, 100, dpath .. "apple_tree.mts", ethereal.grassy)
+add_schem({"ethereal:green_dirt"}, 0.03, {"grassy"}, 1, 100, dpath .. "apple_tree.mts", ethereal.grassy)
-- big old tree
-add_schem({"ethereal:green_dirt"}, 0.0025, {"jumble"}, 1, 100, path .. "bigtree.mts", ethereal.jumble)
+add_schem({"ethereal:green_dirt"}, 0.001, {"jumble"}, 1, 100, path .. "bigtree.mts", ethereal.jumble)
+
+-- aspen tree
+add_schem({"ethereal:green_dirt"}, 0.02, {"grassytwo"}, 1, 50,
+ minetest.get_modpath("default").."/schematics/aspen_tree.mts", ethereal.jumble)
-- birch tree
-add_schem({"ethereal:green_dirt"}, 0.03, {"grassytwo"}, 1, 100, ethereal.birchtree, ethereal.grassytwo)
+add_schem({"ethereal:green_dirt"}, 0.02, {"grassytwo"}, 50, 100, ethereal.birchtree, ethereal.grassytwo)
-- orange tree
add_schem({"ethereal:prairie_dirt"}, 0.01, {"prairie"}, 1, 100, ethereal.orangetree, ethereal.prairie)
--- acacia tree
-add_schem({"default:dirt_with_dry_grass"}, 0.004, {"savannah"}, 1, 100, path .. "acaciatree.mts", ethereal.savannah)
+-- default acacia tree
+add_schem({"default:dirt_with_dry_grass"}, 0.004, {"savannah"}, 1, 100, dpath .. "acacia_tree.mts", ethereal.savannah)
-- large cactus (by Paramat)
if ethereal.desert == 1 then
@@ -283,7 +258,7 @@ minetest.register_decoration({ biomes = {"desert"},
y_min = 5,
y_max = 31000,
- schematic = path.."large_cactus.mts",
+ schematic = dpath.."large_cactus.mts",
flags = "place_center_x", --, place_center_z",
rotation = "random",
})
@@ -357,7 +332,7 @@ add_node({"ethereal:crystal_dirt"}, 0.02, {"frost"}, 1, 100, {"ethereal:crystal_ "ethereal:crystalgrass"}, nil, nil, nil, ethereal.frost)
-- red shrub
-add_node({"ethereal:fiery_dirt"}, 0.12, {"fiery"}, 1, 100, {"ethereal:dry_shrub"}, nil, nil, nil, ethereal.fiery)
+add_node({"ethereal:fiery_dirt"}, 0.10, {"fiery"}, 1, 100, {"ethereal:dry_shrub"}, nil, nil, nil, ethereal.fiery)
-- fire flower
--add_node({"ethereal:fiery_dirt"}, 0.02, {"fiery"}, 1, 100, {"ethereal:fire_flower"}, nil, nil, nil, ethereal.fiery)
@@ -400,14 +375,14 @@ minetest.register_decoration({ biomes = {row[1]},
y_min = 1,
y_max = 120,
- decoration = {"flowers:mushroom_fertile_brown", "flowers:mushroom_fertile_red"},
+ decoration = {"flowers:mushroom_brown", "flowers:mushroom_red"},
})
end
end
-- jungle grass
-add_node({"ethereal:jungle_dirt"}, 0.15, {"junglee"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.junglee)
+add_node({"ethereal:jungle_dirt"}, 0.10, {"junglee"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.junglee)
add_node({"ethereal:green_dirt"}, 0.15, {"jumble"}, 1, 100, {"default:junglegrass"}, nil, nil, nil, ethereal.jumble)
-- grass
@@ -425,6 +400,8 @@ add_node({"ethereal:grove_dirt"}, 0.35, {"grove"}, 1, 100, {"default:grass_2", " "default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.grove)
add_node({"ethereal:bamboo_dirt"}, 0.35, {"bamboo"}, 1, 100, {"default:grass_2", "default:grass_3",
"default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.bamboo)
+add_node({"ethereal:green_dirt"}, 0.25, {"clearing"}, 1, 100, {"default:grass_2", "default:grass_3",
+ "default:grass_4"}, nil, nil, nil, 1)
-- grass on sand
add_node({"default:sand"}, 0.25, {"sandclay"}, 3, 3, {"default:grass_2", "default:grass_3"}, nil, nil, nil, ethereal.sandclay)
@@ -486,10 +463,7 @@ add_node({"ethereal:prairie_dirt"}, 0.025, {"prairie"}, 1, 100, {"farming:grapeb end
--- is waterlily in game?
-if minetest.registered_nodes["flowers:waterlily"] then
-
--- place in these beach areas
+-- place waterlily in beach areas
local list = {
{"desert_ocean", ethereal.desert},
{"plains_ocean", ethereal.plains},
@@ -502,7 +476,7 @@ local list = { for _, row in pairs(list) do
-if row[2] == 1 then
+ if row[2] == 1 then
minetest.register_decoration({
deco_type = "schematic",
@@ -522,8 +496,36 @@ if row[2] == 1 then schematic = ethereal.waterlily,
rotation = "random",
})
-end
-end
+ end
end
+
+-- Generate Illumishroom in caves next to coal
+minetest.register_on_generated(function(minp, maxp)
+
+ if minp.y > -30 or maxp.y < -3000 then
+ return
+ end
+
+ local bpos
+ local coal = minetest.find_nodes_in_area_under_air(minp, maxp, "default:stone_with_coal")
+
+ for n = 1, #coal do
+
+ bpos = {x = coal[n].x, y = coal[n].y + 1, z = coal[n].z }
+
+ if math.random(1, 2) == 1 then
+
+ if bpos.y > -3000 and bpos.y < -2000 then
+ minetest.swap_node(bpos, {name = "ethereal:illumishroom3"})
+
+ elseif bpos.y > -2000 and bpos.y < -1000 then
+ minetest.swap_node(bpos, {name = "ethereal:illumishroom2"})
+
+ elseif bpos.y > -1000 and bpos.y < -30 then
+ minetest.swap_node(bpos, {name = "ethereal:illumishroom"})
+ end
+ end
+ end
+end)
@@ -1 +1 @@ -name = ethereal +name = ethereal
\ No newline at end of file diff --git a/mushroom.lua b/mushroom.lua index 8de756a..3df858b 100644 --- a/mushroom.lua +++ b/mushroom.lua @@ -1,118 +1,4 @@ --- does flowers:mushroom_red exists?
--- if not then create temporary shroom stuff
-
-if minetest.registered_nodes["flowers:mushroom_red"] then
-
- print ("[Ethereal] Using current mushrooms in flowers mod")
-
-else
-
- print ("[Ethereal] Defining temporary mushrooms")
-
--- The following code was taken from minetest 0.4.13 dev flowers mod
--- incase players are using older version of minetest
-
-minetest.register_node(":flowers:mushroom_red", {
- description = "Red Mushroom",
- tiles = {"flowers_mushroom_red.png"},
- inventory_image = "flowers_mushroom_red.png",
- wield_image = "flowers_mushroom_red.png",
- drawtype = "plantlike",
- paramtype = "light",
- sunlight_propagates = true,
- walkable = false,
- buildable_to = true,
- groups = {snappy = 3, flammable = 3, attached_node = 1},
- sounds = default.node_sound_leaves_defaults(),
- on_use = minetest.item_eat(-5),
- selection_box = {
- type = "fixed",
- fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
- }
-})
-
-minetest.register_node(":flowers:mushroom_brown", {
- description = "Brown Mushroom",
- tiles = {"flowers_mushroom_brown.png"},
- inventory_image = "flowers_mushroom_brown.png",
- wield_image = "flowers_mushroom_brown.png",
- drawtype = "plantlike",
- paramtype = "light",
- sunlight_propagates = true,
- walkable = false,
- buildable_to = true,
- groups = {snappy = 3, flammable = 3, attached_node = 1},
- sounds = default.node_sound_leaves_defaults(),
- on_use = minetest.item_eat(1),
- selection_box = {
- type = "fixed",
- fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
- }
-})
-
--- mushroom spread and death
-minetest.register_abm({
- nodenames = {"flowers:mushroom_brown", "flowers:mushroom_red"},
- interval = 11,
- chance = 50,
- action = function(pos, node)
-
- if minetest.get_node_light(pos, nil) > 14 then
-
- minetest.remove_node(pos)
-
- return
- end
-
- local random = {
- x = pos.x + math.random(-2, 2),
- y = pos.y + math.random(-1, 1),
- z = pos.z + math.random(-2, 2)
- }
-
- local random_node = minetest.get_node_or_nil(random)
-
- if not random_node
- or random_node.name ~= "air" then
- return
- end
-
- local node_under = minetest.get_node_or_nil({
- x = random.x,
- y = random.y - 1,
- z = random.z
- })
-
- if not node_under then
- return
- end
-
- if minetest.get_item_group(node_under.name, "soil") ~= 0
- and minetest.get_node_light(pos, nil) < 9
- and minetest.get_node_light(random, nil) < 9 then
- minetest.swap_node(random, {name = node.name})
- end
- end
-})
-
-end
-
--- these old mushroom related nodes can be simplified now
-minetest.register_alias("flowers:mushroom_spores_brown", "flowers:mushroom_brown")
-minetest.register_alias("flowers:mushroom_spores_red", "flowers:mushroom_red")
-minetest.register_alias("flowers:mushroom_fertile_brown", "flowers:mushroom_brown")
-minetest.register_alias("flowers:mushroom_fertile_red", "flowers:mushroom_red")
-
--- set compatibility with old ethereal shrooms
-minetest.register_alias("ethereal:mushroom_craftingitem", "flowers:mushroom_brown")
-minetest.register_alias("ethereal:mushroom_plant", "flowers:mushroom_brown")
-minetest.register_alias("ethereal:mushroom_soup_cooked", "ethereal:mushroom_soup")
-minetest.register_alias("ethereal:mushroom_1", "flowers:mushroom_brown")
-minetest.register_alias("ethereal:mushroom_2", "flowers:mushroom_brown")
-minetest.register_alias("ethereal:mushroom_3", "flowers:mushroom_brown")
-minetest.register_alias("ethereal:mushroom_4", "flowers:mushroom_brown")
-
-- mushroom soup (Heals 1 heart)
minetest.register_craftitem("ethereal:mushroom_soup", {
description = "Mushroom Soup",
@@ -128,3 +14,12 @@ minetest.register_craft({ {"ethereal:bowl"},
}
})
+
+-- 4x red mushrooms make mushroom block
+minetest.register_craft({
+ output = "ethereal:mushroom",
+ recipe = {
+ {"flowers:mushroom_red", "flowers:mushroom_red"},
+ {"flowers:mushroom_red", "flowers:mushroom_red"},
+ }
+})
\ No newline at end of file @@ -1,116 +1,100 @@ --- Wild Onion Plant
+
+-- wild onion
minetest.register_craftitem("ethereal:wild_onion_plant", {
description = "Wild Onion",
- groups = {not_in_creative_inventory=1},
inventory_image = "wild_onion.png",
wield_image = "wild_onion.png",
- on_use = minetest.item_eat(2),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "ethereal:wild_onion_1")
- end
+ end,
+ on_use = minetest.item_eat(2),
})
-- Define Onion growth stages
-local onion_def = {
+local crop_def = {
drawtype = "plantlike",
tiles = {"ethereal_wild_onion_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
- drop = {
- items = {
- {items = {"ethereal:wild_onion_plant"}, rarity = 1},
- }
- },
+ drop = "",
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
},
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
- onion = 1, growing = 1, not_in_creative_inventory = 1
+ growing = 1, not_in_creative_inventory = 1
},
sounds = default.node_sound_leaves_defaults(),
}
-minetest.register_node("ethereal:onion_1", table.copy(onion_def))
-onion_def.tiles[1] = "ethereal_wild_onion_2.png"
-onion_def.groups.onion = 2
-minetest.register_node("ethereal:onion_2", table.copy(onion_def))
+--stage 1
+minetest.register_node("ethereal:onion_1", table.copy(crop_def))
-onion_def.tiles[1] = "ethereal_wild_onion_3.png"
-onion_def.groups.onion = 3
-onion_def.drop.items[2] = {
- items = {"ethereal:wild_onion_plant 2"}, rarity = 3
-}
-minetest.register_node("ethereal:onion_3", table.copy(onion_def))
+--stage 2
+crop_def.tiles = {"ethereal_wild_onion_2.png"}
+minetest.register_node("ethereal:onion_2", table.copy(crop_def))
+
+--stage 3
+crop_def.tiles = {"ethereal_wild_onion_3.png"}
+minetest.register_node("ethereal:onion_3", table.copy(crop_def))
-onion_def.tiles[1] = "ethereal_wild_onion_4.png"
-onion_def.groups.onion = 4
-onion_def.drop.items[2] = {
- items = {"ethereal:wild_onion_plant 3"}, rarity = 3
+--stage 4
+crop_def.tiles = {"ethereal_wild_onion_4.png"}
+crop_def.drop = {
+ items = {
+ {items = {"ethereal:wild_onion_plant"}, rarity = 1},
+ {items = {"ethereal:wild_onion_plant 2"}, rarity = 3},
+ }
}
-minetest.register_node("ethereal:onion_4", table.copy(onion_def))
+minetest.register_node("ethereal:onion_4", table.copy(crop_def))
-onion_def.tiles[1] = "ethereal_wild_onion_5.png"
-onion_def.groups.onion = 5
-onion_def.groups.growing = nil
-onion_def.drop.items = {
- {items = {"ethereal:wild_onion_plant 2"}, rarity = 1},
- {items = {"ethereal:wild_onion_plant 3"}, rarity = 2},
+--stage 5
+crop_def.tiles = {"ethereal_wild_onion_5.png"}
+crop_def.groups.growing = 0
+crop_def.drop = {
+ items = {
+ {items = {"ethereal:wild_onion_plant 2"}, rarity = 1},
+ {items = {"ethereal:wild_onion_plant 3"}, rarity = 2},
+ }
}
-minetest.register_node("ethereal:onion_5", table.copy(onion_def))
+minetest.register_node("ethereal:onion_5", table.copy(crop_def))
--- Abm for growing Wild Onion
-if farming.mod ~= "redo" then
+-- growing routine if farming redo isn't present
+if not farming or not farming.mod or farming.mod ~= "redo" then
minetest.register_abm({
- nodenames = {"group:onion"},
+ nodenames = {"ethereal:onion_1", "ethereal:onion_2", "ethereal:onion_3", "ethereal:onion_4"},
neighbors = {"farming:soil_wet"},
- interval = 50,
- chance = 3,
+ interval = 9,
+ chance = 20,
catch_up = false,
action = function(pos, node)
- -- return if already full grown
- if minetest.get_item_group(node.name, "growing") < 1 then
- return
- end
-
- -- check if on wet soil
+ -- are we on wet soil?
pos.y = pos.y - 1
if minetest.get_item_group(minetest.get_node(pos).name, "soil") < 3 then
return
end
pos.y = pos.y + 1
- -- check light
+ -- do we have enough light?
local light = minetest.get_node_light(pos)
+
if not light
or light < 13 then
return
end
- -- grow
- node.name = "ethereal:onion_"..minetest.get_item_group(node.name, "onion") + 1
+ -- grow to next stage
+ local num = node.name:split("_")[2]
+
+ node.name = "ethereal:onion_" .. tonumber(num + 1)
+
minetest.swap_node(pos, node)
end
})
-end
-
-
--- Legacy
-
-minetest.register_alias("ethereal:wild_onion_craftingitem", "ethereal:wild_onion_plant")
-
-for i = 1, 5 do
- minetest.register_alias("ethereal:wild_onion_"..i, "ethereal:onion_"..i)
-end
-
--- Temporary compatibility lines for Xanadu server
-minetest.register_alias("ethereal:onion_7", "ethereal:onion_4")
-minetest.register_alias("ethereal:onion_8", "ethereal:onion_5")
-minetest.register_alias("ethereal:wild_onion_7", "ethereal:onion_4")
-minetest.register_alias("ethereal:wild_onion_8", "ethereal:onion_5")
+end -- END IF
diff --git a/ores.lua b/ores.lua new file mode 100644 index 0000000..d071929 --- /dev/null +++ b/ores.lua @@ -0,0 +1,84 @@ + +-- Baked Clay + +minetest.register_ore({ + ore_type = "blob", + ore = "bakedclay:red", + wherein = {"bakedclay:orange"}, + clust_scarcity = 4 * 4 * 4, + clust_num_ores = 8, + clust_size = 6, + y_min = -10, + y_max = 71, + noise_params = { + offset = 0.35, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = -316, + octaves = 1, + persist = 0.5 + }, +}) + +minetest.register_ore({ + ore_type = "blob", + ore = "bakedclay:grey", + wherein = {"bakedclay:orange"}, + clust_scarcity = 4 * 4 * 4, + clust_num_ores = 8, + clust_size = 6, + y_min = -10, + y_max = 71, + noise_params = { + offset = 0.35, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = -613, + octaves = 1, + persist = 0.5 + }, +}) + +local add_ore = function(a, b, c, d, e, f, g) + + minetest.register_ore({ + ore_type = "scatter", + ore = a, + wherein = b, + clust_scarcity = c, + clust_num_ores = d, + clust_size = e, + y_min = f, + y_max = g, + }) +end + +-- Coal + +add_ore("default:stone_with_coal", "default:desert_stone", 24*24*24, 27, 6, -31000, -16) + +-- Iron + +add_ore("default:stone_with_iron", "default:desert_stone", 9*9*9, 5, 3, -63, -16) +add_ore("default:stone_with_iron", "default:desert_stone", 24*24*24, 27, 6, -31000, -64) + +--Mese + +add_ore("default:stone_with_mese", "default:desert_stone", 14*14*14, 5, 3, -31000, -256) + +-- Gold + +add_ore("default:stone_with_gold", "default:desert_stone", 15*15*15, 3, 2, -255, -64) +add_ore("default:stone_with_gold", "default:desert_stone", 13*13*13, 5, 3, -31000, -256) + +-- Diamond + +add_ore("default:stone_with_diamond", "default:desert_stone", 17*17*17, 4, 3, -255, -128) +add_ore("default:stone_with_diamond", "default:desert_stone", 15*15*15, 4, 3, -31000, -256) + +-- Copper + +add_ore("default:stone_with_copper", "default:desert_stone", 9*9*9, 5, 3, -31000, -64) + +-- Coral Sand +add_ore("ethereal:sandy", "default:sand", 10*10*10, 24, 4, -100, -12) diff --git a/papyrus.lua b/papyrus.lua index fe245b2..0c71893 100644 --- a/papyrus.lua +++ b/papyrus.lua @@ -1,3 +1,4 @@ + -- override default papyrus to make it walkable minetest.override_item("default:papyrus", {walkable = true, sunlight_propagates = true}) @@ -5,8 +6,8 @@ minetest.override_item("default:papyrus", {walkable = true, sunlight_propagates minetest.register_abm({ nodenames = {"default:papyrus", "ethereal:bamboo"}, neighbors = {"group:soil"}, - interval = 50, - chance = 20, + interval = 14, --50, + chance = 71, --20, catch_up = false, action = function(pos, node) diff --git a/plantlife.lua b/plantlife.lua index e0e5978..7d5bca5 100644 --- a/plantlife.lua +++ b/plantlife.lua @@ -1,3 +1,4 @@ + -- Fire Flower minetest.register_node("ethereal:fire_flower", { description = "Fire Flower", @@ -9,6 +10,7 @@ minetest.register_node("ethereal:fire_flower", { light_source = 5, sunlight_propagates = true, walkable = false, + buildable_to = true, damage_per_second = 2, groups = {snappy = 1, oddly_breakable_by_hand = 3, igniter = 2}, sounds = default.node_sound_leaves_defaults(), @@ -16,6 +18,7 @@ minetest.register_node("ethereal:fire_flower", { type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, }, + on_punch = function(pos, node, puncher) puncher:punch(puncher, 1.0, { @@ -28,7 +31,7 @@ minetest.register_node("ethereal:fire_flower", { minetest.register_craft({ type = "fuel", recipe = "ethereal:fire_flower", - burntime = 40, + burntime = 20, }) -- Fire Dust @@ -47,9 +50,37 @@ minetest.register_craft({ minetest.register_craft({ type = "fuel", recipe = "ethereal:fire_dust", - burntime = 20, + burntime = 10, +}) + +-- vines +minetest.register_node("ethereal:vine", { + description = "Vine", + drawtype = "signlike", + tiles = {"vine.png"}, + inventory_image = "vine.png", + wield_image = "vine.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + climbable = true, + is_ground_content = false, + selection_box = { + type = "wallmounted", + }, + groups = {choppy = 3, oddly_breakable_by_hand = 1}, + legacy_wallmounted = true, + sounds = default.node_sound_leaves_defaults(), }) +minetest.register_craft({ + output = "ethereal:vine 2", + recipe = { + {"group:leaves", "group:leaves"}, + {"group:leaves", "group:leaves"}, + {"group:leaves", "group:leaves"}, + } +}) -- light strings (glowing vine) minetest.register_node("ethereal:lightstring", { @@ -191,7 +222,7 @@ function ethereal.add_moss(typ, descr, texture, receipe_item) minetest.register_craft({ output = "ethereal:"..typ.."_moss", - recipe = {{"default:dirt", receipe_item }} + recipe = {{"default:dirt", receipe_item }} }) end @@ -201,380 +232,57 @@ ethereal.add_moss( "fiery", "Fiery", "ethereal_grass_fiery_top.png", "ethereal:d ethereal.add_moss( "gray", "Gray", "ethereal_grass_gray_top.png", "ethereal:snowygrass") ethereal.add_moss( "green", "Green", "default_grass.png", "default:jungleleaves") --- fix apples hanging in sky when no tree around -minetest.override_item("default:apple", { - drop = "default:apple", -}) - --- Banana (Heals one heart when eaten) -minetest.register_node("ethereal:banana", { - description = "Banana", - drawtype = "torchlike", - visual_scale = 1.0, - tiles = {"banana_single.png"}, - inventory_image = "banana_single.png", - wield_image = "banana_single.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.2, -0.5, -0.2, 0.2, 0.2, 0.2} - }, - groups = { - fleshy = 3, dig_immediate = 3, flammable = 2, - leafdecay = 1, leafdecay_drop = 1 - }, - drop = "ethereal:banana", - on_use = minetest.item_eat(2), - sounds = default.node_sound_leaves_defaults(), - after_place_node = function(pos, placer) - if placer:is_player() then - minetest.set_node(pos, {name = "ethereal:banana", param2 = 1}) - end - end, -}) - --- Banana Dough -minetest.register_craftitem("ethereal:banana_dough", { - description = "Banana Dough", - inventory_image = "banana_dough.png", -}) - -minetest.register_craft({ - type = "shapeless", - output = "ethereal:banana_dough", - recipe = {"farming:flour", "ethereal:banana"} -}) - -minetest.register_craft({ - type = "cooking", - cooktime = 14, - output = "ethereal:banana_bread", - recipe = "ethereal:banana_dough" -}) - --- Orange (Heals 2 hearts when eaten) -minetest.register_node("ethereal:orange", { - description = "Orange", +-- Illuminated Cave Shrooms (Red, Green and Blue) +minetest.register_node("ethereal:illumishroom", { + description = "Red Illumishroom", drawtype = "plantlike", - visual_scale = 1.0, - tiles = {"farming_orange.png"}, - inventory_image = "farming_orange.png", - wield_image = "farming_orange.png", + tiles = { "illumishroom.png" }, + inventory_image = "illumishroom.png", + wield_image = "illumishroom.png", paramtype = "light", + light_source = 5, sunlight_propagates = true, walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.2, -0.3, -0.2, 0.2, 0.2, 0.2} - }, - groups = { - fleshy = 3, dig_immediate = 3, flammable = 2, - leafdecay = 3, leafdecay_drop = 1 - }, - drop = "ethereal:orange", - on_use = minetest.item_eat(4), + groups = {dig_immediate = 3, attached_node = 1,flammable = 3}, sounds = default.node_sound_leaves_defaults(), - after_place_node = function(pos, placer) - if placer:is_player() then - minetest.set_node(pos, {name = "ethereal:orange", param2 = 1}) - end - end, -}) - --- Pine Nuts (Heals 1/2 heart when eaten) -minetest.register_craftitem("ethereal:pine_nuts", { - description = "Pine Nuts", - inventory_image = "pine_nuts.png", - wield_image = "pine_nuts.png", - on_use = minetest.item_eat(1), -}) - --- Banana Loaf (Heals 3 hearts when eaten) -minetest.register_craftitem("ethereal:banana_bread", { - description = "Banana Loaf", - inventory_image = "banana_bread.png", - wield_image = "banana_bread.png", - on_use = minetest.item_eat(6), -}) - --- Coconut (Gives 4 coconut slices, each heal 1/2 heart) -minetest.register_node("ethereal:coconut", { - description = "Coconut", - drawtype = "plantlike", - walkable = false, - paramtype = "light", - sunlight_propagates = true, - tiles = {"moretrees_coconut.png"}, - inventory_image = "moretrees_coconut.png", - wield_image = "moretrees_coconut.png", selection_box = { type = "fixed", - fixed = {-0.35, -0.35, -0.35, 0.35, 0.35, 0.35} - }, - groups = { - snappy = 1, oddly_breakable_by_hand = 1, cracky = 1, - choppy = 1, flammable = 1, leafdecay = 3, leafdecay_drop = 1 + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, }, - drop = "ethereal:coconut_slice 4", - sounds = default.node_sound_wood_defaults(), }) --- Coconut Slice (Heals half heart when eaten) -minetest.register_craftitem("ethereal:coconut_slice", { - description = "Coconut Slice", - inventory_image = "moretrees_coconut_slice.png", - wield_image = "moretrees_coconut_slice.png", - on_use = minetest.item_eat(1), -}) - --- Golden Apple (Found on Healing Tree, heals all 10 hearts) -minetest.register_node("ethereal:golden_apple", { - description = "Golden Apple", +minetest.register_node("ethereal:illumishroom2", { + description = "Green Illumishroom", drawtype = "plantlike", - visual_scale = 1.0, - tiles = {"default_apple_gold.png"}, - inventory_image = "default_apple_gold.png", - wield_image = "default_apple_gold.png", + tiles = { "illumishroom2.png" }, + inventory_image = "illumishroom2.png", + wield_image = "illumishroom2.png", paramtype = "light", + light_source = 5, sunlight_propagates = true, walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.2, -0.3, -0.2, 0.2, 0.2, 0.2} - }, - groups = { - fleshy = 3, dig_immediate = 3, - leafdecay = 3,leafdecay_drop = 1 - }, - drop = "ethereal:golden_apple", - on_use = minetest.item_eat(20), + groups = {dig_immediate = 3, attached_node = 1,flammable = 3}, sounds = default.node_sound_leaves_defaults(), - after_place_node = function(pos, placer, itemstack) - if placer:is_player() then - minetest.set_node(pos, {name = "ethereal:golden_apple", param2 = 1}) - end - end, -}) - --- Bamboo (thanks to Nelo-slay on DeviantArt for the free Bamboo base image) -minetest.register_node("ethereal:bamboo", { - description = "bamboo", - drawtype = "plantlike", - tiles = {"bamboo.png"}, - inventory_image = "bamboo.png", - wield_image = "bamboo.png", - paramtype = "light", - sunlight_propagates = true, - walkable = true, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} - }, - groups = {choppy = 3, oddly_breakable_by_hand = 1, flammable = 2, tree = 1}, - sounds = default.node_sound_leaves_defaults(), - after_dig_node = function(pos, node, metadata, digger) - default.dig_up(pos, node, digger) - end, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "ethereal:bamboo", - burntime = 1, -}) - --- Bamboo Sprout -minetest.register_node("ethereal:bamboo_sprout", { - description = "Bamboo Sprout", - drawtype = "plantlike", - tiles = {"bamboo_sprout.png"}, - inventory_image = "bamboo_sprout.png", - wield_image = "bamboo_sprout.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - groups = { - snappy = 3, attached_node = 1, flammable = 2, - dig_immediate = 3, ethereal_sapling = 1 - }, - sounds = default.node_sound_defaults(), selection_box = { type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, }, - on_use = minetest.item_eat(-2), -}) - --- Wooden Bowl (for Mushroom Soup) -minetest.register_craftitem("ethereal:bowl", { - description = "Bowl", - inventory_image = "bowl.png", -}) - -minetest.register_craft({ - output = "ethereal:bowl", - recipe = { - {"group:wood", "", "group:wood"}, - {"", "group:wood", ""}, - {"", "", ""}, - } -}) - --- Hearty Stew (Heals 5 hearts - thanks to ZonerDarkRevention for his DokuCraft DeviantArt bowl texture) -minetest.register_craftitem("ethereal:hearty_stew", { - description = "Hearty Stew", - inventory_image = "hearty_stew.png", - wield_image = "hearty_stew.png", - on_use = minetest.item_eat(10, "ethereal:bowl"), -}) - -minetest.register_alias("ethereal:hearty_stew_cooked", "ethereal:hearty_stew") - -minetest.register_craft({ - output = "ethereal:hearty_stew", - recipe = { - {"ethereal:wild_onion_plant","ethereal:mushroom_plant", "ethereal:fern_tubers"}, - {"","ethereal:mushroom_plant", ""}, - {"","ethereal:bowl", ""}, - } -}) - --- Bamboo Flooring -minetest.register_node("ethereal:bamboo_floor", { - description = ("Bamboo Floor"), - drawtype = 'nodebox', - tiles = { "bamboo_floor.png" }, - wield_image = "bamboo_floor.png", - inventory_image = "bamboo_floor.png", - paramtype = "light", - paramtype2 = "wallmounted", - walkable = true, - node_box = { - type = "wallmounted", - wall_top = {-0.5, 0.4375, -0.5, 0.5, 0.5, 0.5}, - wall_bottom = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, - wall_side = {-0.5, -0.5, -0.5, -0.4375, 0.5, 0.5}, - }, - selection_box = {type = "wallmounted"}, - groups = {snappy = 3, choppy = 3 , flammable = 2}, - sounds = default.node_sound_wood_defaults(), -}) - --- Craft Bamboo into Bamboo Flooring -minetest.register_craft({ - output = "ethereal:bamboo_floor 2", - recipe = { - {"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"}, - {"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"}, - {"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"}, - } -}) - --- Craft Bamboo into Paper -minetest.register_craft({ - output = "default:paper 6", - recipe = { - {"ethereal:bamboo", "ethereal:bamboo"}, - {"ethereal:bamboo", "ethereal:bamboo"}, - {"ethereal:bamboo", "ethereal:bamboo"}, - } -}) - --- X pattern craft recipes (5x a in X pattern gives 5 b) -for _,items in pairs({ - {"default:cobble", "default:gravel"}, - {"default:gravel", "default:dirt"}, - {"default:dirt", "default:sand"}, - {"default:ice", "default:snow"}, - {"ethereal:dry_dirt", "default:desert_sand"}, -}) do - local a, b = unpack(items) - minetest.register_craft({ - output = b.." 5", - recipe = { - {a, "", a}, - {"", a, ""}, - {a, "", a}, - } - }) -end - --- Paper (2x3 string = 4 paper) -minetest.register_craft({ - output = "default:paper 4", - recipe = { - {"farming:string", "farming:string", ""}, - {"farming:string", "farming:string", ""}, - {"farming:string", "farming:string", ""}, - } }) --- Bucket of Cactus Pulp -minetest.register_craftitem("ethereal:bucket_cactus", { - description = "Bucket of Cactus Pulp", - inventory_image = "bucket_cactus.png", - wield_image = "bucket_cactus.png", - stack_max = 1, - on_use = minetest.item_eat(2, "bucket:bucket_empty"), -}) - -minetest.register_craft({ - output = "ethereal:bucket_cactus", - recipe = { - {"bucket:bucket_empty","default:cactus"}, - } -}) - --- Palm Wax -minetest.register_craftitem("ethereal:palm_wax", { - description = "Palm Wax", - inventory_image = "palm_wax.png", - wield_image = "palm_wax.png", -}) - -minetest.register_craft({ - type = "cooking", - cooktime = 10, - output = "ethereal:palm_wax", - recipe = "ethereal:palmleaves" -}) - --- Candle from Wax and String/Cotton -minetest.register_node("ethereal:candle", { - description = "Candle", +minetest.register_node("ethereal:illumishroom3", { + description = "Cyan Illumishroom", drawtype = "plantlike", - inventory_image = "candle_static.png", - wield_image = "candle_static.png", - tiles = { - { - name = "candle.png", - animation={ - type="vertical_frames", - aspect_w = 32, - aspect_h = 32, - length = 1.0 - } - }, - }, + tiles = { "illumishroom3.png" }, + inventory_image = "illumishroom3.png", + wield_image = "illumishroom3.png", paramtype = "light", - light_source = 11, + light_source = 5, sunlight_propagates = true, walkable = false, - groups = {dig_immediate = 3, attached_node = 1}, - sounds = default.node_sound_defaults(), + groups = {dig_immediate = 3, attached_node = 1,flammable = 3}, + sounds = default.node_sound_leaves_defaults(), selection_box = { type = "fixed", - fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 } + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, }, }) - -minetest.register_craft({ - output = "ethereal:candle 4", - recipe = { - {"","farming:cotton"}, - {"","ethereal:palm_wax"}, - {"","ethereal:palm_wax"}, - } -}) diff --git a/plantpack.lua b/plantpack.lua index 09e361e..c323e45 100644 --- a/plantpack.lua +++ b/plantpack.lua @@ -11,8 +11,8 @@ minetest.register_decoration({ fill_ratio = 0.005, biomes = {"desert", "sandstone"}, decoration = { - "bakedclay:cactus_echinocereus", "bakedclay:cactus_matucana", - "bakedclay:cactus_baseball", "bakedclay:cactus_golden" + "xanadu:cactus_echinocereus", "xanadu:cactus_matucana", + "xanadu:cactus_baseball", "xanadu:cactus_golden" }, }) @@ -24,8 +24,8 @@ minetest.register_decoration({ fill_ratio = 0.004, biomes = {"desert", "sandstone"}, decoration = { - "bakedclay:desert_kangaroo", "bakedclay:desert_brittle", - "bakedclay:desert_ocotillo", "bakedclay:desert_whitesage" + "xanadu:desert_kangaroo", "xanadu:desert_brittle", + "xanadu:desert_ocotillo", "xanadu:desert_whitesage" }, }) @@ -39,8 +39,8 @@ minetest.register_decoration({ fill_ratio = 0.005, biomes = {"prairie", "grassy", "grassytwo"}, decoration = { - "bakedclay:grass_prairie", "bakedclay:grass_cord", - "bakedclay:grass_wheatgrass", "bakedclay:desert_whitesage" + "xanadu:grass_prairie", "xanadu:grass_cord", + "xanadu:grass_wheatgrass", "xanadu:desert_whitesage" }, }) @@ -55,8 +55,8 @@ minetest.register_decoration({ fill_ratio = 0.005, biomes = {"prairie", "grassy", "grassytwo", "bamboo"}, decoration = { - "bakedclay:flower_jacobsladder", "bakedclay:flower_thistle", - "bakedclay:flower_wildcarrot" + "xanadu:flower_jacobsladder", "xanadu:flower_thistle", + "xanadu:flower_wildcarrot" }, }) @@ -70,8 +70,8 @@ minetest.register_decoration({ fill_ratio = 0.005, biomes = {"prairie", "grassy", "grassytwo", "grove"}, decoration = { - "bakedclay:flower_delphinium", "bakedclay:flower_celosia", - "bakedclay:flower_daisy", "bakedclay:flower_bluerose" + "xanadu:flower_delphinium", "xanadu:flower_celosia", + "xanadu:flower_daisy", "xanadu:flower_bluerose" }, }) @@ -89,7 +89,7 @@ minetest.register_decoration({ "prairie", "grassy", "grassytwo", "grove", "junglee", "grayness", "jumble" }, - decoration = {"bakedclay:shrub_kerria", "bakedclay:shrub_spicebush"}, + decoration = {"xanadu:shrub_kerria", "xanadu:shrub_spicebush"}, }) --= Jungle Biome @@ -101,9 +101,9 @@ minetest.register_decoration({ fill_ratio = 0.007, biomes = {"junglee", "jumble"}, decoration = { - "bakedclay:rainforest_guzmania", "bakedclay:rainforest_devil", - "bakedclay:rainforest_lazarus", "bakedclay:rainforest_lollipop", - "bakedclay:mushroom_woolly" + "xanadu:rainforest_guzmania", "xanadu:rainforest_devil", + "xanadu:rainforest_lazarus", "xanadu:rainforest_lollipop", + "xanadu:mushroom_woolly" }, }) @@ -119,9 +119,9 @@ minetest.register_decoration({ fill_ratio = 0.005, biomes = {"snowy", "alpine", "grayness"}, decoration = { - "bakedclay:mountain_edelweiss", "bakedclay:mountain_armeria", - "bakedclay:mountain_bellflower", "bakedclay:mountain_willowherb", - "bakedclay:mountain_bistort" + "xanadu:mountain_edelweiss", "xanadu:mountain_armeria", + "xanadu:mountain_bellflower", "xanadu:mountain_willowherb", + "xanadu:mountain_bistort" }, }) @@ -135,8 +135,8 @@ minetest.register_decoration({ fill_ratio = 0.005, biomes = {"mushroom"}, decoration = { - "bakedclay:mushroom_powderpuff", "bakedclay:mushroom_chanterelle", - "bakedclay:mushroom_parasol" + "xanadu:mushroom_powderpuff", "xanadu:mushroom_chanterelle", + "xanadu:mushroom_parasol" }, }) @@ -149,8 +149,8 @@ minetest.register_decoration({ fill_ratio = 0.015, biomes = {"sandclay", "grassy_ocean", "grassy", "grassytwo", "jumble"}, decoration = { - "bakedclay:wetlands_cattails", "bakedclay:wetlands_pickerel", - "bakedclay:wetlands_mannagrass", "bakedclay:wetlands_turtle" + "xanadu:wetlands_cattails", "xanadu:wetlands_pickerel", + "xanadu:wetlands_mannagrass", "xanadu:wetlands_turtle" }, spawn_by = "default:water_source", num_spawn_by = 1, @@ -166,7 +166,7 @@ minetest.register_decoration({ "ethereal:dirt_with_snow", "ethereal:jungle_dirt", "ethereal:prairie_dirt", "ethereal:grove_dirt", "ethereal:dry_dirt", "ethereal:fiery_dirt", "default:sand", - "default:desert_sand", "bakedclay:red", "ethereal:bamboo_dirt" + "default:desert_sand", "xanadu:red", "ethereal:bamboo_dirt" }, sidelen = 16, fill_ratio = 0.004, @@ -175,16 +175,18 @@ minetest.register_decoration({ "junglee", "grassy", "grassytwo", "jumble", "snowy", "alpine", "fiery", "mesa", "bamboo" }, - decoration = {"bakedclay:spooky_thornbush", "bakedclay:spooky_baneberry"}, + decoration = {"xanadu:spooky_thornbush", "xanadu:spooky_baneberry"}, }) --- Extra recipe for hearty stew +--= Poppy's growing in Clearing Biome in memory of RealBadAngel -minetest.register_craft({ - output = "ethereal:hearty_stew", - recipe = { - {"ethereal:wild_onion_plant","ethereal:mushroom_plant", "farming:beans"}, - {"","ethereal:mushroom_plant", ""}, - {"","ethereal:bowl", ""}, - } +minetest.register_decoration({ + deco_type = "simple", + place_on = { + "ethereal:green_dirt", + }, + sidelen = 16, + fill_ratio = 0.004, + biomes = {"clearing"}, + decoration = {"xanadu:poppy"}, }) diff --git a/sapling.lua b/sapling.lua index 896cb69..f0007a5 100644 --- a/sapling.lua +++ b/sapling.lua @@ -1,3 +1,26 @@ + +-- Bamboo Sprout +minetest.register_node("ethereal:bamboo_sprout", { + description = "Bamboo Sprout", + drawtype = "plantlike", + tiles = {"bamboo_sprout.png"}, + inventory_image = "bamboo_sprout.png", + wield_image = "bamboo_sprout.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + groups = { + snappy = 3, attached_node = 1, flammable = 2, + dig_immediate = 3, ethereal_sapling = 1 + }, + sounds = default.node_sound_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, + }, + on_use = minetest.item_eat(-2), +}) + -- Register Saplings ethereal.register_sapling = function(name, desc, texture) @@ -5,9 +28,9 @@ ethereal.register_sapling = function(name, desc, texture) description = desc .. " Tree Sapling", drawtype = "plantlike", visual_scale = 1.0, - tiles = {texture .. "_sapling.png"}, - inventory_image = texture .. "_sapling.png", - wield_image = texture .. "_sapling.png", + tiles = {texture .. ".png"}, + inventory_image = texture .. ".png", + wield_image = texture .. ".png", paramtype = "light", sunlight_propagates = true, is_ground_content = false, @@ -24,22 +47,18 @@ ethereal.register_sapling = function(name, desc, texture) }) end -ethereal.register_sapling("ethereal:willow", "Willow", "willow") -ethereal.register_sapling("ethereal:yellow_tree", "Healing", "yellow_tree") -ethereal.register_sapling("ethereal:tree", "Apple", "ethereal_tree") -ethereal.register_sapling("ethereal:jungle_tree","Jungle", "ethereal_jungle_tree") -ethereal.register_sapling("ethereal:pine_tree", "Pine", "ethereal_pine_tree") -ethereal.register_sapling("ethereal:big_tree", "Big", "ethereal_big_tree") -ethereal.register_sapling("ethereal:banana_tree", "Banana", "banana_tree") -ethereal.register_sapling("ethereal:frost_tree", "Frost", "ethereal_frost_tree") -ethereal.register_sapling("ethereal:mushroom", "Mushroom", "ethereal_mushroom") -ethereal.register_sapling("ethereal:palm", "Palm", "moretrees_palm") -ethereal.register_sapling("ethereal:redwood", "Redwood", "redwood") -ethereal.register_sapling("ethereal:orange_tree", "Orange", "orange_tree") -ethereal.register_sapling("ethereal:acacia", "Acacia", "moretrees_acacia") -ethereal.register_sapling("ethereal:birch", "Birch", "moretrees_birch") - -ethereal.add_tree = function (pos, ofx, ofz, schem) +ethereal.register_sapling("ethereal:willow", "Willow", "willow_sapling") +ethereal.register_sapling("ethereal:yellow_tree", "Healing", "yellow_tree_sapling") +ethereal.register_sapling("ethereal:big_tree", "Big", "ethereal_big_tree_sapling") +ethereal.register_sapling("ethereal:banana_tree", "Banana", "banana_tree_sapling") +ethereal.register_sapling("ethereal:frost_tree", "Frost", "ethereal_frost_tree_sapling") +ethereal.register_sapling("ethereal:mushroom", "Mushroom", "ethereal_mushroom_sapling") +ethereal.register_sapling("ethereal:palm", "Palm", "moretrees_palm_sapling") +ethereal.register_sapling("ethereal:redwood", "Redwood", "redwood_sapling") +ethereal.register_sapling("ethereal:orange_tree", "Orange", "orange_tree_sapling") +ethereal.register_sapling("ethereal:birch", "Birch", "moretrees_birch_sapling") + +ethereal.add_tree = function (pos, ofx, ofy, ofz, schem) -- check for schematic if not schem then print ("Schematic not found") @@ -48,13 +67,61 @@ ethereal.add_tree = function (pos, ofx, ofz, schem) -- remove sapling and place schematic minetest.swap_node(pos, {name = "air"}) minetest.place_schematic( - {x = pos.x - ofx, y = pos.y, z =pos.z - ofz}, - schem, "random", {}, false - ) + {x = pos.x - ofx, y = pos.y - ofy, z = pos.z - ofz}, + schem, 0, nil, false) end local path = minetest.get_modpath("ethereal").."/schematics/" +-- grow tree functions +function ethereal.grow_yellow_tree(pos) + ethereal.add_tree(pos, 4, 0, 4, path .. "yellowtree.mts") +end + +function ethereal.grow_big_tree(pos) + ethereal.add_tree(pos, 4, 0, 4, path .. "bigtree.mts") +end + +function ethereal.grow_banana_tree(pos) + ethereal.add_tree(pos, 3, 0, 3, ethereal.bananatree) +end + +function ethereal.grow_frost_tree(pos) + ethereal.add_tree(pos, 4, 0, 4, path .. "frosttrees.mts") +end + +function ethereal.grow_mushroom_tree(pos) + ethereal.add_tree(pos, 4, 0, 4, path .. "mushroomone.mts") +end + +function ethereal.grow_palm_tree(pos) + ethereal.add_tree(pos, 4, 0, 4, path .. "palmtree.mts") +end + +function ethereal.grow_willow_tree(pos) + ethereal.add_tree(pos, 5, 0, 5, path .. "willow.mts") +end + +function ethereal.grow_redwood_tree(pos) + if math.random(1, 2) == 1 then + ethereal.add_tree(pos, 9, 3, 9, path .. "redwood.mts") -- shinji + else + ethereal.add_tree(pos, 8, 6, 8, path .. "redwood_tree.mts") -- iska + end +end + +function ethereal.grow_orange_tree(pos) + ethereal.add_tree(pos, 1, 0, 1, ethereal.orangetree) +end + +function ethereal.grow_bamboo_tree(pos) + ethereal.add_tree(pos, 1, 0, 1, ethereal.bambootree) +end + +function ethereal.grow_birch_tree(pos) + ethereal.add_tree(pos, 2, 0, 2, ethereal.birchtree) +end + ethereal.grow_sapling = function (pos, node) local under = minetest.get_node({ @@ -63,68 +130,52 @@ ethereal.grow_sapling = function (pos, node) z = pos.z }).name - -- Check if Sapling is growing on correct substrate + -- Check if Ethereal Sapling is growing on correct substrate if node.name == "ethereal:yellow_tree_sapling" and under == "default:dirt_with_snow" then - ethereal.add_tree(pos, 4, 4, path .. "yellowtree.mts") - - elseif node.name == "ethereal:tree_sapling" - and under == "ethereal:green_dirt" then - ethereal.add_tree(pos, 1, 1, ethereal.appletree) - - elseif node.name == "ethereal:jungle_tree_sapling" - and under == "ethereal:jungle_dirt" then - ethereal.add_tree(pos, 6, 6, path .. "jungletree.mts") - - elseif node.name == "ethereal:pine_tree_sapling" - and under == "ethereal:cold_dirt" then - ethereal.add_tree(pos, 3, 3, path .. "pinetree.mts") + ethereal.grow_yellow_tree(pos) elseif node.name == "ethereal:big_tree_sapling" and under == "ethereal:green_dirt" then - ethereal.add_tree(pos, 4, 4, path .. "bigtree.mts") + ethereal.grow_big_tree(pos) elseif node.name == "ethereal:banana_tree_sapling" and under == "ethereal:grove_dirt" then - ethereal.add_tree(pos, 3, 3, ethereal.bananatree) + ethereal.grow_banana_tree(pos) elseif node.name == "ethereal:frost_tree_sapling" and under == "ethereal:crystal_dirt" then - ethereal.add_tree(pos, 4, 4, path .. "frosttrees.mts") + ethereal.grow_frost_tree(pos) elseif node.name == "ethereal:mushroom_sapling" and under == "ethereal:mushroom_dirt" then - ethereal.add_tree(pos, 4, 4, path .. "mushroomone.mts") + ethereal.grow_mushroom_tree(pos) elseif node.name == "ethereal:palm_sapling" and under == "default:sand" then - ethereal.add_tree(pos, 4, 4, path .. "palmtree.mts") + ethereal.grow_palm_tree(pos) elseif node.name == "ethereal:willow_sapling" and under == "ethereal:gray_dirt" then - ethereal.add_tree(pos, 5, 5, path .. "willow.mts") + ethereal.grow_willow_tree(pos) elseif node.name == "ethereal:redwood_sapling" and under == "bakedclay:red" then - ethereal.add_tree(pos, 9, 9, path .. "redwood.mts") + ethereal.grow_redwood_tree(pos) elseif node.name == "ethereal:orange_tree_sapling" and under == "ethereal:prairie_dirt" then - ethereal.add_tree(pos, 1, 1, ethereal.orangetree) - - elseif node.name == "ethereal:acacia_sapling" - and under == "default:dirt_with_dry_grass" then - ethereal.add_tree(pos, 5, 5, path .. "acaciatree.mts") + ethereal.grow_orange_tree(pos) elseif node.name == "ethereal:bamboo_sprout" and under == "ethereal:bamboo_dirt" then - ethereal.add_tree(pos, 1, 1, ethereal.bambootree) + ethereal.grow_bamboo_tree(pos) elseif node.name == "ethereal:birch_sapling" and under == "ethereal:green_dirt" then - ethereal.add_tree(pos, 2, 2, ethereal.birchtree) - + ethereal.grow_birch_tree(pos) end + end -- Grow saplings @@ -134,23 +185,13 @@ minetest.register_abm({ chance = 50, catch_up = false, action = function(pos, node) - ethereal.grow_sapling(pos, node) - end, -}) -minetest.register_craftitem("ethereal:tree_tool", { - description = "Tree Tool", - inventory_image = "default_stick.png", - on_use = function(itemstack, user, pointed_thing) + local light_level = minetest.get_node_light(pos) - if not pointed_thing - or pointed_thing.type ~= "node" then + if not light_level or light_level < 13 then return end - local pos = pointed_thing.under - local nod = minetest.get_node(pos) - - ethereal.grow_sapling(pos, nod) + ethereal.grow_sapling(pos, node) end, }) diff --git a/schematics/apple_tree.lua b/schematics/apple_tree.lua deleted file mode 100644 index 3d4dd1c..0000000 --- a/schematics/apple_tree.lua +++ /dev/null @@ -1,38 +0,0 @@ - --- Apple Tree (built column by column, bottom to top) - -local i = "air" -local t = "default:tree" -local l = "default:leaves" -local a = "default:apple" - -ethereal.appletree = { - size = {x=3, y=6, z=3}, - data = { - - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=l, param1=223}, {name=l, param1=223}, {name=a, param1=050}, - {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, - {name=l, param1=223}, {name=a, param1=050}, {name=l, param1=223}, - - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=l, param1=223}, {name=t, param1=255}, {name=i, param1=223}, - {name=l, param1=255}, {name=t, param1=255}, {name=l, param1=255}, - {name=l, param1=223}, {name=l, param1=255}, {name=l, param1=223}, - - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=a, param1=050}, {name=l, param1=223}, {name=l, param1=223}, - {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, - {name=l, param1=223}, {name=l, param1=223}, {name=l, param1=223}, - - }, - yslice_prob = { - {ypos=1, prob=127}, - }, -} diff --git a/schematics/bamboo_tree.lua b/schematics/bamboo_tree.lua index a6c825b..13f06f1 100644 --- a/schematics/bamboo_tree.lua +++ b/schematics/bamboo_tree.lua @@ -1,73 +1,77 @@ --- Bamboo Tree (built column by column, bottom to top) +-- bamboo stalk with leaves -local i = "air" -local t = "ethereal:bamboo" -local l = "ethereal:bamboo_leaves" +local ai = {name = "air", param1 = 000} +local bt = {name = "ethereal:bamboo", param1 = 255} +local lp = {name = "ethereal:bamboo_leaves", param1 = 255} +local lr = {name = "ethereal:bamboo_leaves", param1 = 100} ethereal.bambootree = { - size = {x=3, y=18, z=3}, + + size = {x = 3, y = 18, z = 3}, + data = { - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=l, param1=100}, {name=l, param1=255}, {name=l, param1=100}, - {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + lr, lp, lr, + ai, lp, ai, + ai, ai, ai, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=l, param1=100}, {name=l, param1=255}, {name=l, param1=100}, - {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=l, param1=127}, {name=i, param1=000}, + ai, bt, ai, + ai, bt, ai, + ai, bt, ai, + ai, bt, ai, + ai, bt, ai, + ai, bt, ai, + ai, bt, ai, + ai, bt, ai, + ai, bt, ai, + ai, bt, ai, + ai, bt, ai, + ai, bt, ai, + ai, bt, ai, + ai, bt, ai, + ai, bt, ai, + lr, lp, lr, + ai, lp, ai, + ai, lr, ai, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=l, param1=100}, {name=l, param1=255}, {name=l, param1=100}, - {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + lr, lp, lr, + ai, lp, ai, + ai, ai, ai, }, + yslice_prob = { - {ypos=3, prob=127}, + {ypos = 3, prob = 127}, }, } diff --git a/schematics/banana_tree.lua b/schematics/banana_tree.lua index 37b727f..194992f 100644 --- a/schematics/banana_tree.lua +++ b/schematics/banana_tree.lua @@ -1,80 +1,85 @@ --- Banana Tree (built column by column, bottom to top) +-- banana tree -local i = "air" -local t = "ethereal:banana_trunk" -local l = "ethereal:bananaleaves" -local b = "ethereal:banana" +local ai = {name = "air", param1 = 000} +local tr = {name = "ethereal:banana_trunk", param1 = 255} +local lp = {name = "ethereal:bananaleaves", param1 = 255} +local lr = {name = "ethereal:bananaleaves", param1 = 180} +local bp = {name = "ethereal:banana", param1 = 255} +local br = {name = "ethereal:banana", param1 = 070} ethereal.bananatree = { - size = {x=7, y=8, z=7}, + + size = {x = 7, y = 8, z = 7}, + data = { -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=l, param1=180}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, lr, ai, ai, ai, + ai, ai, ai, lp, ai, ai, ai, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=b, param1=070}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=b, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, br, ai, ai, ai, + ai, ai, ai, bp, ai, ai, ai, + ai, ai, ai, lp, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=b, param1=070}, {name=t, param1=255}, {name=b, param1=070}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=b, param1=255}, {name=l, param1=255}, {name=b, param1=255}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=i, param1=000}, -{name=l, param1=255}, {name=l, param1=180}, {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, {name=l, param1=180}, {name=l, param1=255}, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, br, tr, br, ai, ai, + ai, ai, bp, lp, bp, ai, ai, + ai, lp, lp, lp, lp, lp, ai, + lp, lr, ai, lp, ai, lr, lp, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=b, param1=070}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=b, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, + ai, ai, ai, tr, ai, ai, ai, + ai, ai, ai, tr, ai, ai, ai, + ai, ai, ai, tr, ai, ai, ai, + ai, ai, ai, tr, ai, ai, ai, + ai, ai, ai, br, ai, ai, ai, + ai, ai, ai, bp, ai, ai, ai, + ai, ai, ai, lp, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=l, param1=180}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, lp, ai, ai, ai, + ai, ai, ai, lr, ai, ai, ai, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, lp, ai, ai, ai, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, ai, ai, }, + yslice_prob = { - {ypos=1, prob=127}, + {ypos = 1, prob = 127}, }, } diff --git a/schematics/bananatree.mts b/schematics/bananatree.mts Binary files differdeleted file mode 100644 index 2149d98..0000000 --- a/schematics/bananatree.mts +++ /dev/null diff --git a/schematics/birch_tree.lua b/schematics/birch_tree.lua index 32894d0..40d326f 100644 --- a/schematics/birch_tree.lua +++ b/schematics/birch_tree.lua @@ -1,50 +1,60 @@ --- Birch Tree (built column by column, bottom to top) - -local i = "air" -local t = "ethereal:birch_trunk" -local l = "ethereal:birch_leaves" - -ethereal.birchtree = {size = {x = 5, y = 7, z = 5}, data = { - -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=l, param1=150}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=150}, -{name=l, param1=150}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=150}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, -{name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, -{name=i, param1=000}, {name=l, param1=150}, {name=l, param1=255}, {name=l, param1=150}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, {name=i, param1=000}, - -{name=i, param1=000}, {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, {name=i, param1=000}, -{name=l, param1=255}, {name=l, param1=255}, {name=t, param1=255}, {name=l, param1=255}, {name=l, param1=255}, -{name=l, param1=255}, {name=l, param1=255}, {name=t, param1=255}, {name=l, param1=255}, {name=l, param1=255}, -{name=i, param1=000}, {name=l, param1=255}, {name=t, param1=255}, {name=l, param1=255}, {name=i, param1=000}, -{name=i, param1=000}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=i, param1=000}, - -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, -{name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, -{name=i, param1=000}, {name=l, param1=150}, {name=l, param1=255}, {name=l, param1=150}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=l, param1=255}, {name=i, param1=000}, {name=i, param1=000}, - -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=l, param1=150}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=150}, -{name=l, param1=150}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=150}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - -}, yslice_prob = {{ypos = 1, prob = 127}}} +-- birch tree + +local ai = {name = "air", param1 = 000} +local tr = {name = "ethereal:birch_trunk", param1 = 255} +local lp = {name = "ethereal:birch_leaves", param1 = 255} +local lr = {name = "ethereal:birch_leaves", param1 = 150} + +ethereal.birchtree = { + + size = {x = 5, y = 7, z = 5}, + + data = { + + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, + lr, lp, lp, lp, lr, + lr, lp, lp, lp, lr, + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, + + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, + lp, lp, lp, lp, lp, + lp, lp, lp, lp, lp, + ai, lr, lp, lr, ai, + ai, ai, lp, ai, ai, + + ai, ai, tr, ai, ai, + ai, ai, tr, ai, ai, + ai, ai, tr, ai, ai, + lp, lp, tr, lp, lp, + lp, lp, tr, lp, lp, + ai, lp, tr, lp, ai, + ai, lp, lp, lp, ai, + + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, + lp, lp, lp, lp, lp, + lp, lp, lp, lp, lp, + ai, lr, lp, lr, ai, + ai, ai, lp, ai, ai, + + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, + lr, lp, lp, lp, lr, + lr, lp, lp, lp, lr, + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, + + }, + + yslice_prob = { + {ypos = 1, prob = 127} + }, +} diff --git a/schematics/bush.lua b/schematics/bush.lua index 196fe37..1395b06 100644 --- a/schematics/bush.lua +++ b/schematics/bush.lua @@ -1,35 +1,39 @@ --- Bush (built column by column, bottom to top) +-- bush -local i = "air" -local b = "ethereal:bush" +local ai = {name = "air", param1 = 000} +local bp = {name = "ethereal:bush", param1 = 255} +local br = {name = "ethereal:bush", param1 = 100} ethereal.bush = { - size = {x=5, y=3, z=5}, + + size = {x = 5, y = 3, z = 5}, + data = { -{name=b, param1=100}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=100}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, + br, bp, bp, bp, br, + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, -{name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, -{name=i, param1=000}, {name=b, param1=100}, {name=b, param1=255}, {name=b, param1=100}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, + bp, bp, bp, bp, bp, + ai, br, bp, br, ai, + ai, ai, ai, ai, ai, -{name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, -{name=i, param1=000}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=b, param1=100}, {name=i, param1=000}, {name=i, param1=000}, + bp, bp, bp, bp, bp, + ai, bp, bp, bp, ai, + ai, ai, br, ai, ai, -{name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, -{name=i, param1=000}, {name=b, param1=100}, {name=b, param1=255}, {name=b, param1=100}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, + bp, bp, bp, bp, bp, + ai, br, bp, br, ai, + ai, ai, ai, ai, ai, -{name=b, param1=100}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=255}, {name=b, param1=100}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, + br, bp, bp, bp, br, + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, }, + yslice_prob = { - {ypos=1, prob=127}, + {ypos = 1, prob = 127}, }, } diff --git a/schematics/jungletree.mts b/schematics/jungletree.mts Binary files differdeleted file mode 100644 index a4aaa01..0000000 --- a/schematics/jungletree.mts +++ /dev/null diff --git a/schematics/large_cactus.mts b/schematics/large_cactus.mts Binary files differdeleted file mode 100644 index b71077b..0000000 --- a/schematics/large_cactus.mts +++ /dev/null diff --git a/schematics/orange_tree.lua b/schematics/orange_tree.lua index 27876bf..c7cff9c 100644 --- a/schematics/orange_tree.lua +++ b/schematics/orange_tree.lua @@ -1,38 +1,42 @@ --- Orange Tree (built column by column, bottom to top) +-- orange tree -local i = "air" -local t = "default:tree" -local l = "ethereal:orange_leaves" -local o = "ethereal:orange" +local ai = {name = "air", param1 = 000} +local lp = {name = "ethereal:orange_leaves", param1 = 255} +local lr = {name = "ethereal:orange_leaves", param1 = 200} +local tr = {name = "default:tree", param1 = 255} +local of = {name = "ethereal:orange", param1 = 100} ethereal.orangetree = { - size = {x=3, y=6, z=3}, + + size = {x = 3, y = 6, z = 3}, + data = { - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=l, param1=223}, {name=l, param1=223}, {name=o, param1=100}, - {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, - {name=l, param1=223}, {name=o, param1=100}, {name=l, param1=223}, - - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=i, param1=000}, {name=t, param1=255}, {name=i, param1=000}, - {name=l, param1=223}, {name=t, param1=255}, {name=l, param1=223}, - {name=l, param1=255}, {name=t, param1=255}, {name=l, param1=255}, - {name=l, param1=223}, {name=l, param1=255}, {name=l, param1=223}, - - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=o, param1=100}, {name=l, param1=223}, {name=l, param1=223}, - {name=l, param1=255}, {name=l, param1=255}, {name=l, param1=255}, - {name=l, param1=223}, {name=l, param1=223}, {name=l, param1=223}, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + lr, lr, of, + lp, lp, lp, + lr, of, lr, + + ai, tr, ai, + ai, tr, ai, + ai, tr, ai, + lr, tr, lr, + lp, tr, lp, + lr, lp, lr, + + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + of, lr, lr, + lp, lp, lp, + lr, lr, lr, }, + yslice_prob = { - {ypos=1, prob=127}, + {ypos = 1, prob = 127}, }, } diff --git a/schematics/orangetree.mts b/schematics/orangetree.mts Binary files differdeleted file mode 100644 index 4536dd0..0000000 --- a/schematics/orangetree.mts +++ /dev/null diff --git a/schematics/redwood_tree.mts b/schematics/redwood_tree.mts Binary files differnew file mode 100644 index 0000000..50c367a --- /dev/null +++ b/schematics/redwood_tree.mts diff --git a/schematics/tree.mts b/schematics/tree.mts Binary files differdeleted file mode 100644 index 4ba4898..0000000 --- a/schematics/tree.mts +++ /dev/null diff --git a/schematics/waterlily.lua b/schematics/waterlily.lua index d6bfaa3..1936b04 100644 --- a/schematics/waterlily.lua +++ b/schematics/waterlily.lua @@ -1,69 +1,17 @@ --- Waterlily (built column by column, bottom to top) - -local a = "default:sand" -local b = "default:water_source" -local c = "flowers:waterlily" +-- waterlily ethereal.waterlily = { size = {x = 1, y = 3, z = 1}, data = { - {name=a, param1=255}, - {name=b, param1=255}, - {name=c, param1=255}, + {name = "default:sand", param1 = 255}, + {name = "default:water_source", param1 = 255}, + {name = "flowers:waterlily", param1 = 255}, }, } -if minetest.registered_nodes["flowers:waterlily"] then - minetest.override_item("flowers:waterlily", { walkable = true, }) - -else - -minetest.register_node(":flowers:waterlily", { - description = "Waterlily", - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - tiles = {"flowers_waterlily.png"}, - inventory_image = "flowers_waterlily.png", - wield_image = "flowers_waterlily.png", - liquids_pointable = true, - walkable = true, - buildable_to = true, - groups = {snappy = 3, flower = 1}, - sounds = default.node_sound_leaves_defaults(), - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.46875, 0.5} - }, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5} - }, - - after_place_node = function(pos, placer, itemstack, pointed_thing) - local find_water = minetest.find_nodes_in_area({x = pos.x - 1, y = pos.y, z = pos.z - 1}, - {x = pos.x + 1, y = pos.y, z = pos.z + 1}, "default:water_source") - local find_river_water = minetest.find_nodes_in_area({x = pos.x - 1, y = pos.y, z = pos.z - 1}, - {x = pos.x + 1, y = pos.y, z = pos.z + 1}, "default:river_water_source") - if #find_water ~= 0 then - minetest.set_node(pos, {name = "default:water_source"}) - pos.y = pos.y + 1 - minetest.set_node(pos, {name = "flowers:waterlily", param2 = math.random(0, 3)}) - elseif #find_river_water ~= 0 then - minetest.set_node(pos, {name = "default:river_water_source"}) - pos.y = pos.y + 1 - minetest.set_node(pos, {name = "flowers:waterlily", param2 = math.random(0, 3)}) - else - minetest.remove_node(pos) - return true - end - end -}) - -end diff --git a/screenshot.png b/screenshot.png Binary files differindex 93fa73a..c4d8001 100644 --- a/screenshot.png +++ b/screenshot.png diff --git a/sealife.lua b/sealife.lua index 6db5742..ceb27a6 100644 --- a/sealife.lua +++ b/sealife.lua @@ -1,3 +1,4 @@ + -- Seaweed minetest.register_node("ethereal:seaweed", { description = "Seaweed", @@ -17,6 +18,9 @@ minetest.register_node("ethereal:seaweed", { groups = {snappy = 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( { @@ -123,25 +127,12 @@ minetest.register_node("ethereal:sandy", { tiles = {"default_sand.png"}, is_ground_content = true, groups = { - crumbly = 3, falling_node = 1, sand = 1, soil = 1, - not_in_creative_inventory = 1 + crumbly = 3, falling_node = 1, sand = 1, not_in_creative_inventory = 1 }, drop = "default:sand", sounds = default.node_sound_sand_defaults(), }) --- Register Undersea Sand -minetest.register_ore({ - ore_type = "scatter", - ore = "ethereal:sandy", - wherein = "default:sand", - clust_scarcity = 10*10*10, - clust_num_ores = 24, - clust_size = 4, - y_max = -12, - y_min = -100, -}) - -- randomly generate coral or seaweed and have seaweed grow up to 14 high minetest.register_abm({ nodenames = {"ethereal:sandy"}, @@ -1,25 +1,22 @@ --- Is More Blocks mod installed? +-- Stairs Redo +if stairs and stairs.mod and stairs.mod == "redo" then -if not minetest.global_exists("stairsplus") then - --- If NOT then register standard stairs - -stairs.register_stair_and_slab("crystal_block", "ethereal:crystal_block", +stairs.register_all("crystal_block", "ethereal:crystal_block", {cracky = 1, level = 2}, {"crystal_block.png"}, "Crystal Block Stair", "Crystal Block Slab", default.node_sound_glass_defaults()) -stairs.register_stair_and_slab("icebrick", "ethereal:icebrick", +stairs.register_all("icebrick", "ethereal:icebrick", {crumbly = 3, melts = 1}, {"brick_ice.png"}, "Ice Brick Stair", "Ice Brick Slab", default.node_sound_glass_defaults()) -stairs.register_stair_and_slab("snowbrick", "ethereal:snowbrick", +stairs.register_all("snowbrick", "ethereal:snowbrick", {crumbly = 3, melts = 1}, {"brick_snow.png"}, "Snow Brick Stair", @@ -29,79 +26,85 @@ stairs.register_stair_and_slab("snowbrick", "ethereal:snowbrick", dug = {name = "default_snow_footstep", gain = 0.75}, })) -stairs.register_stair_and_slab("dry_dirt", "ethereal:dry_dirt", +stairs.register_all("dry_dirt", "ethereal:dry_dirt", {crumbly = 3}, {"ethereal_dry_dirt.png"}, "Dry Dirt Stair", "Dry Dirt Slab", default.node_sound_dirt_defaults()) -stairs.register_stair_and_slab("mushroom_trunk", "ethereal:mushroom_trunk", +stairs.register_all("mushroom_trunk", "ethereal:mushroom_trunk", {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, {"mushroom_trunk.png"}, "Mushroom Trunk Stair", "Mushroom Trunk Slab", default.node_sound_wood_defaults()) -stairs.register_stair_and_slab("mushroom", "ethereal:mushroom", +stairs.register_all("mushroom", "ethereal:mushroom", {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, {"mushroom_block.png"}, "Mushroom Top Stair", "Mushroom Top Slab", default.node_sound_wood_defaults()) -stairs.register_stair_and_slab("frost_wood", "ethereal:frost_wood", +stairs.register_all("frost_wood", "ethereal:frost_wood", {choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1}, {"frost_wood.png"}, "Frost Wood Stair", "Frost Wood Slab", default.node_sound_wood_defaults()) -stairs.register_stair_and_slab("yellow_wood", "ethereal:yellow_wood", +stairs.register_all("yellow_wood", "ethereal:yellow_wood", {choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1}, {"yellow_wood.png"}, "Healing Wood Stair", "Healing Wood Slab", default.node_sound_wood_defaults()) -stairs.register_stair_and_slab("palm_wood", "ethereal:palm_wood", +stairs.register_all("palm_wood", "ethereal:palm_wood", {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, {"moretrees_palm_wood.png"}, "Palm Wood Stair", "Palm Wood Slab", default.node_sound_wood_defaults()) -stairs.register_stair_and_slab("birch_wood", "ethereal:birch_wood", +stairs.register_all("birch_wood", "ethereal:birch_wood", {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, {"moretrees_birch_wood.png"}, "Birch Wood Stair", "Birch Wood Slab", default.node_sound_wood_defaults()) -stairs.register_stair_and_slab("banana_wood", "ethereal:banana_wood", +stairs.register_all("banana_wood", "ethereal:banana_wood", {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, {"banana_wood.png"}, "Banana Wood Stair", "Banana Wood Slab", default.node_sound_wood_defaults()) -stairs.register_stair_and_slab("willow_wood", "ethereal:willow_wood", +stairs.register_all("willow_wood", "ethereal:willow_wood", {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, {"willow_wood.png"}, "Willow Wood Stair", "Willow Wood Slab", default.node_sound_wood_defaults()) -stairs.register_stair_and_slab("redwood_wood", "ethereal:redwood_wood", +stairs.register_all("redwood_wood", "ethereal:redwood_wood", {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, {"redwood_wood.png"}, "Redwood stair", "Redwood Slab", default.node_sound_wood_defaults()) -else +stairs.register_all("bamboo_wood", "ethereal:bamboo_floor", + {snappy = 3, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, + {"bamboo_floor.png"}, + "Bamboo stair", + "Bamboo Slab", + default.node_sound_wood_defaults()) --- if SO then register stairs plus stairs +-- Stairs Plus (in More Blocks) +elseif minetest.global_exists("stairsplus") then stairsplus:register_all("ethereal", "crystal_block", "ethereal:crystal_block", { description = "Crystal block", @@ -197,4 +200,115 @@ stairsplus:register_all("ethereal", "redwood_wood", "ethereal:redwood_wood", { sounds = default.node_sound_wood_defaults(), }) -end -- END IF +stairsplus:register_all("ethereal", "bamboo_wood", "ethereal:bamboo_floor", { + description = "Bamboo", + tiles = {"bamboo_floor.png"}, + groups = {snappy = 3, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, + sounds = default.node_sound_wood_defaults(), +}) + +-- Default Stairs +else + +stairs.register_stair_and_slab("crystal_block", "ethereal:crystal_block", + {cracky = 1, level = 2}, + {"crystal_block.png"}, + "Crystal Block Stair", + "Crystal Block Slab", + default.node_sound_glass_defaults()) + +stairs.register_stair_and_slab("icebrick", "ethereal:icebrick", + {crumbly = 3, melts = 1}, + {"brick_ice.png"}, + "Ice Brick Stair", + "Ice Brick Slab", + default.node_sound_glass_defaults()) + +stairs.register_stair_and_slab("snowbrick", "ethereal:snowbrick", + {crumbly = 3, melts = 1}, + {"brick_snow.png"}, + "Snow Brick Stair", + "Snow Brick Slab", + default.node_sound_dirt_defaults({ + footstep = {name = "default_snow_footstep", gain = 0.25}, + dug = {name = "default_snow_footstep", gain = 0.75}, + })) + +stairs.register_stair_and_slab("dry_dirt", "ethereal:dry_dirt", + {crumbly = 3}, + {"ethereal_dry_dirt.png"}, + "Dry Dirt Stair", + "Dry Dirt Slab", + default.node_sound_dirt_defaults()) + +stairs.register_stair_and_slab("mushroom_trunk", "ethereal:mushroom_trunk", + {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + {"mushroom_trunk.png"}, + "Mushroom Trunk Stair", + "Mushroom Trunk Slab", + default.node_sound_wood_defaults()) + +stairs.register_stair_and_slab("mushroom", "ethereal:mushroom", + {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + {"mushroom_block.png"}, + "Mushroom Top Stair", + "Mushroom Top Slab", + default.node_sound_wood_defaults()) + +stairs.register_stair_and_slab("frost_wood", "ethereal:frost_wood", + {choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1}, + {"frost_wood.png"}, + "Frost Wood Stair", + "Frost Wood Slab", + default.node_sound_wood_defaults()) + +stairs.register_stair_and_slab("yellow_wood", "ethereal:yellow_wood", + {choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1}, + {"yellow_wood.png"}, + "Healing Wood Stair", + "Healing Wood Slab", + default.node_sound_wood_defaults()) + +stairs.register_stair_and_slab("palm_wood", "ethereal:palm_wood", + {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, + {"moretrees_palm_wood.png"}, + "Palm Wood Stair", + "Palm Wood Slab", + default.node_sound_wood_defaults()) + +stairs.register_stair_and_slab("birch_wood", "ethereal:birch_wood", + {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, + {"moretrees_birch_wood.png"}, + "Birch Wood Stair", + "Birch Wood Slab", + default.node_sound_wood_defaults()) + +stairs.register_stair_and_slab("banana_wood", "ethereal:banana_wood", + {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, + {"banana_wood.png"}, + "Banana Wood Stair", + "Banana Wood Slab", + default.node_sound_wood_defaults()) + +stairs.register_stair_and_slab("willow_wood", "ethereal:willow_wood", + {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, + {"willow_wood.png"}, + "Willow Wood Stair", + "Willow Wood Slab", + default.node_sound_wood_defaults()) + +stairs.register_stair_and_slab("redwood_wood", "ethereal:redwood_wood", + {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, + {"redwood_wood.png"}, + "Redwood stair", + "Redwood Slab", + default.node_sound_wood_defaults()) + +stairs.register_stair_and_slab("bamboo_wood", "ethereal:bamboo_floor", + {snappy = 3, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, + {"bamboo_floor.png"}, + "Bamboo stair", + "Bamboo Slab", + default.node_sound_wood_defaults()) + +end diff --git a/strawberry.lua b/strawberry.lua index d919cca..22cbdae 100644 --- a/strawberry.lua +++ b/strawberry.lua @@ -1,16 +1,17 @@ + -- Strawberry (can also be planted as seed) minetest.register_craftitem("ethereal:strawberry", { description = "Strawberry", inventory_image = "strawberry.png", wield_image = "strawberry.png", - on_use = minetest.item_eat(1), on_place = function(itemstack, placer, pointed_thing) return farming.place_seed(itemstack, placer, pointed_thing, "ethereal:strawberry_1") end, + on_use = minetest.item_eat(1), }) -- Define Strawberry Bush growth stages -minetest.register_node("ethereal:strawberry_1", { +local crop_def = { drawtype = "plantlike", tiles = {"strawberry_1.png"}, paramtype = "light", @@ -25,206 +26,98 @@ minetest.register_node("ethereal:strawberry_1", { }, groups = { snappy = 3, flammable =2, plant = 1, attached_node = 1, - not_in_creative_inventory = 1, strawberry = 1, growing = 1 + not_in_creative_inventory = 1, growing = 1 }, sounds = default.node_sound_leaves_defaults(), -}) +} -minetest.register_node("ethereal:strawberry_2", { - drawtype = "plantlike", - tiles = {"strawberry_2.png"}, - paramtype = "light", - sunlight_propagates = true, - waving = 1, - walkable = false, - buildable_to = true, - drop = "", - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5} - }, - groups = { - snappy = 3, flammable = 2, plant = 1, attached_node = 1, - not_in_creative_inventory = 1, strawberry = 2, growing = 1 - }, - sounds = default.node_sound_leaves_defaults(), -}) +--stage 1 +minetest.register_node("ethereal:strawberry_1", table.copy(crop_def)) -minetest.register_node("ethereal:strawberry_3", { - drawtype = "plantlike", - tiles = {"strawberry_3.png"}, - paramtype = "light", - sunlight_propagates = true, - waving = 1, - walkable = false, - buildable_to = true, - drop = "", - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5} - }, - groups = { - snappy = 3, flammable = 2, plant = 1, attached_node = 1, - not_in_creative_inventory = 1, strawberry = 3, growing = 1 - }, - sounds = default.node_sound_leaves_defaults(), -}) +-- stage 2 +crop_def.tiles = {"strawberry_2.png"} +minetest.register_node("ethereal:strawberry_2", table.copy(crop_def)) -minetest.register_node("ethereal:strawberry_4", { - drawtype = "plantlike", - tiles = {"strawberry_4.png"}, - paramtype = "light", - sunlight_propagates = true, - waving = 1, - walkable = false, - buildable_to = true, - drop = "", - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5} - }, - groups = { - snappy = 3, flammable = 2, plant = 1, attached_node = 1, - not_in_creative_inventory = 1, strawberry = 4, growing=1 - }, - sounds = default.node_sound_leaves_defaults(), -}) +-- stage 3 +crop_def.tiles = {"strawberry_3.png"} +minetest.register_node("ethereal:strawberry_3", table.copy(crop_def)) -minetest.register_node("ethereal:strawberry_5", { - drawtype = "plantlike", - tiles = {"strawberry_5.png"}, - paramtype = "light", - sunlight_propagates = true, - waving = 1, - walkable = false, - buildable_to = true, - drop = "", - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5} - }, - groups = { - snappy = 3, flammable = 2, plant = 1, attached_node = 1, - not_in_creative_inventory = 1, strawberry = 5, growing = 1 - }, - sounds = default.node_sound_leaves_defaults(), -}) +-- stage 4 +crop_def.tiles = {"strawberry_4.png"} +minetest.register_node("ethereal:strawberry_4", table.copy(crop_def)) -minetest.register_node("ethereal:strawberry_6", { - drawtype = "plantlike", - tiles = {"strawberry_6.png"}, - paramtype = "light", - sunlight_propagates = true, - waving = 1, - walkable = false, - buildable_to = true, - drop = { - items = { - {items = {"ethereal:strawberry 1"},rarity = 2}, - {items = {"ethereal:strawberry 2"},rarity = 3}, - } - }, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5} - }, - groups = { - snappy = 3, flammable = 2, plant = 1, attached_node = 1, - not_in_creative_inventory = 1, strawberry = 6, growing = 1 - }, - sounds = default.node_sound_leaves_defaults(), -}) +-- stage 5 +crop_def.tiles = {"strawberry_5.png"} +minetest.register_node("ethereal:strawberry_5", table.copy(crop_def)) --- Mapgen places this stage on map so will use is_ground_content=true -minetest.register_node("ethereal:strawberry_7", { - drawtype = "plantlike", - tiles = {"strawberry_7.png"}, - paramtype = "light", - sunlight_propagates = true, - waving = 1, - walkable = false, - buildable_to = true, - drop = { - items = { - {items = {"ethereal:strawberry 1"},rarity = 1}, - {items = {"ethereal:strawberry 2"},rarity = 3}, - } - }, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5} - }, - groups = { - snappy = 3, flammable = 2, plant = 1, attached_node = 1, - not_in_creative_inventory = 1, strawberry = 7, growing = 1 - }, - sounds = default.node_sound_leaves_defaults(), -}) +-- stage 6 +crop_def.tiles = {"strawberry_6.png"} +crop_def.drop = { + items = { + {items = {"ethereal:strawberry 1"},rarity = 2}, + {items = {"ethereal:strawberry 2"},rarity = 3}, + } +} +minetest.register_node("ethereal:strawberry_6", table.copy(crop_def)) -minetest.register_node("ethereal:strawberry_8", { - drawtype = "plantlike", - tiles = {"strawberry_8.png"}, - paramtype = "light", - sunlight_propagates = true, - waving = 1, - walkable = false, - buildable_to = true, - drop = { - items = { - {items = {"ethereal:strawberry 2"},rarity = 1}, - {items = {"ethereal:strawberry 3"},rarity = 3}, - } - }, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5} - }, - groups = { - snappy = 3, flammable = 2, plant = 1, attached_node = 1, - not_in_creative_inventory = 1, strawberry = 8 - }, - sounds = default.node_sound_leaves_defaults(), -}) +-- stage 7 +crop_def.tiles = {"strawberry_7.png"} +crop_def.drop = { + items = { + {items = {"ethereal:strawberry 1"},rarity = 1}, + {items = {"ethereal:strawberry 2"},rarity = 3}, + } +} +minetest.register_node("ethereal:strawberry_7", table.copy(crop_def)) --- Register Alias for backward compatibility with already generated Ethereal worlds -minetest.register_alias("ethereal:strawberry_bush", "ethereal:strawberry_7") -minetest.register_alias("ethereal:seed_strawberry", "ethereal:strawberry") +-- stage 8 +crop_def.tiles = {"strawberry_8.png"} +crop_def.groups.growing = 0 +crop_def.drop = { + items = { + {items = {"ethereal:strawberry 2"},rarity = 1}, + {items = {"ethereal:strawberry 3"},rarity = 3}, + } +} +minetest.register_node("ethereal:strawberry_8", table.copy(crop_def)) --- Amb for growing Strawberry Bush -if farming.mod ~= "redo" then +-- growing routine if farming redo isn't present +if not farming or not farming.mod or farming.mod ~= "redo" then minetest.register_abm({ - nodenames = {"group:strawberry"}, + nodenames = { + "ethereal:strawberry_1", "ethereal:strawberry_2", "ethereal:strawberry_3", + "ethereal:strawberry_4", "ethereal:strawberry_5", "ethereal:strawberry_6", + "ethereal:strawberry_7" + }, neighbors = {"farming:soil_wet"}, - interval = 50, - chance = 3, + interval = 9, + chance = 20, catch_up = false, action = function(pos, node) - -- return if already full grown - if minetest.get_item_group(node.name, "strawberry") == 8 then - return - end - - -- check if on wet soil + + -- are we on wet soil? pos.y = pos.y - 1 - local n = minetest.get_node(pos) - if minetest.get_item_group(n.name, "soil") < 3 then + if minetest.get_item_group(minetest.get_node(pos).name, "soil") < 3 then return end pos.y = pos.y + 1 - -- check light - if not minetest.get_node_light(pos) then - return - end - if minetest.get_node_light(pos) < 13 then + -- do we have enough light? + local light = minetest.get_node_light(pos) + + if not light + or light < 13 then return end - -- grow - local height = minetest.get_item_group(node.name, "strawberry") + 1 - minetest.swap_node(pos, {name = "ethereal:strawberry_"..height}) + -- grow to next stage + local num = node.name:split("_")[2] + + node.name = "ethereal:strawberry_" .. tonumber(num + 1) + + minetest.swap_node(pos, node) end }) -end +end -- END IF diff --git a/textures/blank.png b/textures/blank.png Binary files differnew file mode 100644 index 0000000..b25455e --- /dev/null +++ b/textures/blank.png diff --git a/textures/bone.png b/textures/bone.png Binary files differnew file mode 100644 index 0000000..d86e7be --- /dev/null +++ b/textures/bone.png diff --git a/textures/bonemeal.png b/textures/bonemeal.png Binary files differnew file mode 100644 index 0000000..f141263 --- /dev/null +++ b/textures/bonemeal.png diff --git a/textures/bonemeal_particle.png b/textures/bonemeal_particle.png Binary files differnew file mode 100644 index 0000000..71ef90f --- /dev/null +++ b/textures/bonemeal_particle.png diff --git a/textures/default_fence_overlay.png b/textures/default_fence_overlay.png Binary files differdeleted file mode 100644 index 780e736..0000000 --- a/textures/default_fence_overlay.png +++ /dev/null diff --git a/textures/default_gate_overlay.png b/textures/default_gate_overlay.png Binary files differdeleted file mode 100644 index 008c0ec..0000000 --- a/textures/default_gate_overlay.png +++ /dev/null diff --git a/textures/default_pine_wood.png b/textures/default_pine_wood.png Binary files differdeleted file mode 100644 index 6844ceb..0000000 --- a/textures/default_pine_wood.png +++ /dev/null diff --git a/textures/flowers_mushroom_brown.png b/textures/flowers_mushroom_brown.png Binary files differdeleted file mode 100644 index 33ffcd4..0000000 --- a/textures/flowers_mushroom_brown.png +++ /dev/null diff --git a/textures/flowers_mushroom_red.png b/textures/flowers_mushroom_red.png Binary files differdeleted file mode 100644 index a68f5d5..0000000 --- a/textures/flowers_mushroom_red.png +++ /dev/null diff --git a/textures/flowers_waterlily.png b/textures/flowers_waterlily.png Binary files differdeleted file mode 100644 index 1f504f7..0000000 --- a/textures/flowers_waterlily.png +++ /dev/null diff --git a/textures/moretrees_acacia_sapling.png b/textures/moretrees_acacia_sapling.png Binary files differdeleted file mode 100644 index 07170a0..0000000 --- a/textures/moretrees_acacia_sapling.png +++ /dev/null diff --git a/textures/moretrees_acacia_trunk.png b/textures/moretrees_acacia_trunk.png Binary files differdeleted file mode 100644 index 169823d..0000000 --- a/textures/moretrees_acacia_trunk.png +++ /dev/null diff --git a/textures/moretrees_acacia_trunk_top.png b/textures/moretrees_acacia_trunk_top.png Binary files differdeleted file mode 100644 index 2cf5ef0..0000000 --- a/textures/moretrees_acacia_trunk_top.png +++ /dev/null diff --git a/textures/moretrees_acacia_wood.png b/textures/moretrees_acacia_wood.png Binary files differdeleted file mode 100644 index f5e6a68..0000000 --- a/textures/moretrees_acacia_wood.png +++ /dev/null @@ -1,3 +1,4 @@ + -- Ice Brick minetest.register_node("ethereal:icebrick", { description = "Ice Brick", @@ -39,18 +40,6 @@ minetest.register_craft({ } }) --- Over time Cobble placed in water changes to Mossy Cobble -minetest.register_abm({ - nodenames = {"default:cobble"}, - neighbors = {"group:water"}, - interval = 17, - chance = 100, - catch_up = false, - action = function(pos, node) - minetest.swap_node(pos, {name = "default:mossycobble"}) - end -}) - -- If Crystal Spike, Crystal Dirt, Snow near Water, change Water to Ice minetest.register_abm({ nodenames = { @@ -154,7 +143,7 @@ minetest.register_abm({ if num > 0 then - minetest.swap_node(pos, {name = "default:water_flowing"}) + minetest.swap_node(pos, {name = "air"}) minetest.add_item(pos, {name = node.name}) end @@ -1,40 +1,5 @@ ---= Define Trunks and Wood --- Acacia Trunk (thanks to VanessaE for acacia textures) -if minetest.registered_nodes["default:acacia_tree"] then - minetest.register_alias("ethereal:acacia_trunk", "default:acacia_tree") - minetest.register_alias("ethereal:acacia_wood", "default:acacia_wood") - print ("using acacia tree in default game") -else -minetest.register_node("ethereal:acacia_trunk", { - description = "Acacia Trunk", - tiles = { - "moretrees_acacia_trunk_top.png", - "moretrees_acacia_trunk_top.png", - "moretrees_acacia_trunk.png" - }, - groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, - sounds = default.node_sound_wood_defaults(), - paramtype2 = "facedir", - on_place = minetest.rotate_node, -}) - --- Acacia Wood -minetest.register_node("ethereal:acacia_wood", { - description = "Acacia Wood", - tiles = {"moretrees_acacia_wood.png"}, - is_ground_content = false, - groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_craft({ - output = "ethereal:acacia_wood 4", - recipe = {{"ethereal:acacia_trunk"}} -}) -end - --- Willow Trunk +-- willow trunk minetest.register_node("ethereal:willow_trunk", { description = "Willow Trunk", tiles = { @@ -48,7 +13,7 @@ minetest.register_node("ethereal:willow_trunk", { on_place = minetest.rotate_node, }) --- Willow Wood +-- willow wood minetest.register_node("ethereal:willow_wood", { description = "Willow Wood", tiles = {"willow_wood.png"}, @@ -62,7 +27,7 @@ minetest.register_craft({ recipe = {{"ethereal:willow_trunk"}} }) --- Redwood Trunk +-- redwood trunk minetest.register_node("ethereal:redwood_trunk", { description = "Redwood Trunk", tiles = { @@ -76,7 +41,7 @@ minetest.register_node("ethereal:redwood_trunk", { on_place = minetest.rotate_node, }) --- Redwood Wood +-- redwood wood minetest.register_node("ethereal:redwood_wood", { description = "Redwood Wood", tiles = {"redwood_wood.png"}, @@ -90,7 +55,7 @@ minetest.register_craft({ recipe = {{"ethereal:redwood_trunk"}}, }) --- Frost Trunk +-- frost trunk minetest.register_node("ethereal:frost_tree", { description = "Frost Tree", tiles = { @@ -104,7 +69,7 @@ minetest.register_node("ethereal:frost_tree", { on_place = minetest.rotate_node, }) --- Frost Wood +-- frost wood minetest.register_node("ethereal:frost_wood", { description = "Frost Wood", tiles = {"frost_wood.png"}, @@ -118,7 +83,7 @@ minetest.register_craft({ recipe = {{"ethereal:frost_tree"}} }) --- Healing Trunk +-- healing trunk minetest.register_node("ethereal:yellow_trunk", { description = "Healing Tree Trunk", tiles = { @@ -132,7 +97,7 @@ minetest.register_node("ethereal:yellow_trunk", { on_place = minetest.rotate_node, }) --- Healing Wood +-- healing wood minetest.register_node("ethereal:yellow_wood", { description = "Healing Tree Wood", tiles = {"yellow_wood.png"}, @@ -146,7 +111,7 @@ minetest.register_craft({ recipe = {{"ethereal:yellow_trunk"}} }) --- Palm Trunk (thanks to VanessaE for palm textures) +-- palm trunk (thanks to VanessaE for palm textures) minetest.register_node("ethereal:palm_trunk", { description = "Palm Trunk", tiles = { @@ -160,7 +125,7 @@ minetest.register_node("ethereal:palm_trunk", { on_place = minetest.rotate_node, }) --- Palm Wood +-- palm wood minetest.register_node("ethereal:palm_wood", { description = "Palm Wood", tiles = {"moretrees_palm_wood.png"}, @@ -174,7 +139,7 @@ minetest.register_craft({ recipe = {{"ethereal:palm_trunk"}} }) --- Banana Tree Trunk +-- banana trunk minetest.register_node("ethereal:banana_trunk", { description = "Banana Trunk", tiles = { @@ -188,7 +153,7 @@ minetest.register_node("ethereal:banana_trunk", { on_place = minetest.rotate_node, }) --- Banana Tree Wood +-- banana wood minetest.register_node("ethereal:banana_wood", { description = "Banana Wood", tiles = {"banana_wood.png"}, @@ -202,7 +167,7 @@ minetest.register_craft({ recipe = {{"ethereal:banana_trunk"}} }) --- Scorched Trunk +-- scorched trunk minetest.register_node("ethereal:scorched_tree", { description = "Scorched Tree", tiles = { @@ -225,7 +190,7 @@ minetest.register_craft({ } }) --- Mushroom Trunk +-- mushroom trunk minetest.register_node("ethereal:mushroom_trunk", { description = "Mushroom", tiles = { @@ -239,7 +204,7 @@ minetest.register_node("ethereal:mushroom_trunk", { on_place = minetest.rotate_node, }) --- Birch Trunk (thanks to VanessaE for birch textures) +-- birch trunk (thanks to VanessaE for birch textures) minetest.register_node("ethereal:birch_trunk", { description = "Birch Trunk", tiles = { @@ -253,7 +218,7 @@ minetest.register_node("ethereal:birch_trunk", { on_place = minetest.rotate_node, }) --- Birch Wood +-- birch wood minetest.register_node("ethereal:birch_wood", { description = "Birch Wood", tiles = {"moretrees_birch_wood.png"}, @@ -266,3 +231,30 @@ minetest.register_craft({ output = "ethereal:birch_wood 4", recipe = {{"ethereal:birch_trunk"}} }) + +-- Bamboo (thanks to Nelo-slay on DeviantArt for the free Bamboo base image) +minetest.register_node("ethereal:bamboo", { + description = "bamboo", + drawtype = "plantlike", + tiles = {"bamboo.png"}, + inventory_image = "bamboo.png", + wield_image = "bamboo.png", + paramtype = "light", + sunlight_propagates = true, + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} + }, + groups = {choppy = 3, oddly_breakable_by_hand = 1, flammable = 2, tree = 1}, + sounds = default.node_sound_leaves_defaults(), + after_dig_node = function(pos, node, metadata, digger) + default.dig_up(pos, node, digger) + end, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "ethereal:bamboo", + burntime = 1, +}) |