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 diff --git a/README.md b/README.md index ee8c1db..93e0c3f 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/dirt.lua b/dirt.lua index 006a29f..c3f4c46 100644 --- a/dirt.lua +++ b/dirt.lua @@ -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(), +}) diff --git a/extra.lua b/extra.lua index 240a47f..ebb216f 100644 --- a/extra.lua +++ b/extra.lua @@ -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 = false, - climbable = true, - is_ground_content = false, - selection_box = { + 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}, }, - groups = {choppy = 3, oddly_breakable_by_hand = 1}, - legacy_wallmounted = true, - sounds = default.node_sound_leaves_defaults(), + 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({ - output = "ethereal:vine 2", + type = "cooking", + cooktime = 10, + output = "ethereal:palm_wax", + recipe = "ethereal:palmleaves" +}) + +-- Candle from Wax and String/Cotton +minetest.register_node("ethereal:candle", { + description = "Candle", + drawtype = "plantlike", + inventory_image = "candle_static.png", + wield_image = "candle_static.png", + tiles = { + { + name = "candle.png", + animation={ + type="vertical_frames", + aspect_w = 32, + aspect_h = 32, + length = 1.0 + } + }, + }, + paramtype = "light", + light_source = 11, + sunlight_propagates = true, + walkable = false, + groups = {dig_immediate = 3, attached_node = 1}, + sounds = default.node_sound_defaults(), + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.2, 0.15 } + }, +}) + +minetest.register_craft({ + output = "ethereal:candle 2", recipe = { - {"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) diff --git a/fences.lua b/fences.lua index a013462..a513612 100644 --- a/fences.lua +++ b/fences.lua @@ -1,45 +1,72 @@ -local fences = { - {"junglewood", "Jungle Wood", "default_junglewood.png", "default:junglewood"}, - {"scorched", "Scorched", "scorched_tree.png", "ethereal:scorched_tree"}, - {"frostwood", "Frost Wood", "frost_wood.png", "ethereal:frost_wood"}, - {"redwood", "Redwood", "redwood_wood.png", "ethereal:redwood_wood"}, - {"willow", "Willow", "willow_wood.png", "ethereal:willow_wood"}, - {"yellowwood", "Healing Wood", "yellow_wood.png", "ethereal:yellow_wood"}, - {"palm", "Palm Wood", "moretrees_palm_wood.png", "ethereal:palm_wood"}, - {"banana", "Banana Wood", "banana_wood.png", "ethereal:banana_wood"}, - {"mushroom", "Mushroom", "mushroom_trunk.png", "ethereal:mushroom_trunk"}, - {"acacia", "Acacia Wood", "moretrees_acacia_wood.png", "ethereal:acacia_wood"}, - {"pine", "Pine Wood", "default_pine_wood.png", "default:pinewood"}, - {"birch", "Birch Wood", "moretrees_birch_wood.png", "ethereal:birch_wood"}, -} -for _, row in pairs(fences) do +default.register_fence("ethereal:fence_scorched", { + description = "Scorched Fence", + texture = "scorched_tree.png", + material = "ethereal:scorched_tree", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) - minetest.register_node("ethereal:fence_"..row[1], { - 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(), - }) +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() +}) - minetest.register_craft({ - output = "ethereal:fence_"..row[1].." 4", - recipe = { - {row[4], "group:stick", row[4]}, - {row[4], "group:stick", row[4]}, - } - }) +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() +}) -end +default.register_fence("ethereal:fence_willow", { + description = "Willow Fence", + texture = "willow_wood.png", + material = "ethereal:willow_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("ethereal:fence_yellowwood", { + description = "Healing Wood Fence", + texture = "yellow_wood.png", + material = "ethereal:yellow_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("ethereal:fence_palm", { + description = "Palm Fence", + texture = "moretrees_palm_wood.png", + material = "ethereal:palm_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("ethereal:fence_banana", { + description = "Banana Wood Fence", + texture = "banana_wood.png", + material = "ethereal:banana_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("ethereal:fence_mushroom", { + description = "Mushroom Fence", + texture = "mushroom_trunk.png", + material = "ethereal:mushroom_trunk", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("ethereal:fence_birch", { + description = "Birch Fence", + texture = "moretrees_birch_wood.png", + material = "ethereal:birch_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) 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"}, + } +}) diff --git a/gates.lua b/gates.lua index b351582..d921b20 100644 --- a/gates.lua +++ b/gates.lua @@ -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) - - local split = string.split(node.name, "_") - local sound = "open" - local name = "open" - - if split[3] == "open" then - sound = "close" - name = "closed" - end - - node.name = split[1] .. "_" .. split[2] .. "_" .. name - - minetest.swap_node(pos, node) - - minetest.sound_play("doors_door_"..sound, { - pos = pos, - gain = 0.3, - max_hear_distance = 10 - }) -end - -local gates = { - {"wood", "Wood", "default_wood.png", "default:wood"}, - {"junglewood", "Jungle Wood", "default_junglewood.png", "default:junglewood"}, - {"scorched", "Scorched", "scorched_tree.png", "ethereal:scorched_tree"}, - {"frostwood", "Frost Wood", "frost_wood.png", "ethereal:frost_wood"}, - {"redwood", "Redwood", "redwood_wood.png", "ethereal:redwood_wood"}, - {"willow", "Willow", "willow_wood.png", "ethereal:willow_wood"}, - {"yellowwood", "Healing Wood", "yellow_wood.png", "ethereal:yellow_wood"}, - {"palm", "Palm Wood", "moretrees_palm_wood.png", "ethereal:palm_wood"}, - {"banana", "Banana Wood", "banana_wood.png", "ethereal:banana_wood"}, - {"mushroom", "Mushroom", "mushroom_trunk.png", "ethereal:mushroom_trunk"}, - {"acacia", "Acacia Wood", "moretrees_acacia_wood.png", "ethereal:acacia_wood"}, - {"pine", "Pine Wood", "default_pine_wood.png", "default:pinewood"}, - {"birch", "Birch Wood", "moretrees_birch_wood.png", "ethereal:birch_wood"}, -} - -for _, row in pairs(gates) do - -minetest.register_node("ethereal:fencegate_"..row[1].."_open", { - tiles = {row[3]}, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - is_ground_content = false, - walkable = true, - groups = { - snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, - flammable = 2, not_in_inventory = 1 - }, - drop = "ethereal:fencegate_"..row[1].."_closed", - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.3125, 0.4375, -0.375, 0.3125, 0.5}, - {0.375, -0.3125, 0.4375, 0.5, 0.3125, 0.5}, - {-0.5, 0.1875, 0.0625, -0.375, 0.3125, 0.4375}, - {-0.5, -0.1875, 0.0625, -0.375, -0.3125, 0.4375}, - {0.375, 0.1875, 0.0625, 0.5, 0.3125, 0.4375}, - {0.375, -0.1875, 0.0625, 0.5, -0.3125, 0.4375}, - nb_pil[1], nb_pil[2], - nb_pil[3], nb_pil[4], - nb_gap[1], nb_gap[2], - nb_gap[3], nb_gap[4], - } - }, - selection_box = { - type = "fixed", - fixed = { - {-0.5, -0.3125, -0.0625, -0.375, 0.3125, 0.5}, - {0.375, -0.3125, -0.0625, 0.5, 0.3125, 0.5}, - } - }, - on_rightclick = gate_rightclick, +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} }) -minetest.register_alias("ethereal:"..row[1].."gate_open", "ethereal:fencegate_"..row[1].."_open") - -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_craft({ - output = "ethereal:fencegate_"..row[1].."_closed", - recipe = { - {"group:stick", row[4], "group:stick"}, - {"group:stick", row[4], "group:stick"}, - } +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} }) -end +doors.register_fencegate("ethereal:fencegate_redwood", { + description = "Redwood Fence Gate", + texture = "redwood_wood.png", + material = "ethereal:redwood_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + +doors.register_fencegate("ethereal:fencegate_willow", { + description = "Willow Wood Fence Gate", + texture = "willow_wood.png", + material = "ethereal:willow_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + +doors.register_fencegate("ethereal:fencegate_yellowwood", { + description = "Healing Wood Fence Gate", + texture = "yellow_wood.png", + material = "ethereal:yellow_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + +doors.register_fencegate("ethereal:fencegate_palm", { + description = "Palm Wood Fence Gate", + texture = "moretrees_palm_wood.png", + material = "ethereal:palm_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + +doors.register_fencegate("ethereal:fencegate_banana", { + description = "Banana Wood Fence Gate", + texture = "banana_wood.png", + material = "ethereal:banana_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + +doors.register_fencegate("ethereal:fencegate_mushroom", { + description = "Mushroom Trunk Fence Gate", + texture = "mushroom_trunk.png", + material = "ethereal:mushroom_trunk", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + +doors.register_fencegate("ethereal:fencegate_birch", { + description = "Birch Wood Fence Gate", + texture = "moretrees_birch_wood.png", + material = "ethereal:birch_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + +-- add compatibility for ethereal's to default wooden gates +minetest.register_alias("ethereal:fencegate_wood_open", "doors:gate_wood_open") +minetest.register_alias("ethereal:fencegate_wood_closed", "doors:gate_wood_closed") + +minetest.register_alias("ethereal:fencegate_acacia_open", "doors:gate_acacia_wood_open") +minetest.register_alias("ethereal:fencegate_acacia_closed", "doors:gate_acacia_wood_closed") + +minetest.register_alias("ethereal:fencegate_junglewood_open", "doors:gate_junglewood_open") +minetest.register_alias("ethereal:fencegate_junglewood_closed", "doors:gate_junglewood_closed") + +minetest.register_alias("ethereal:fencegate_pine_open", "doors:gate_pine_wood_open") +minetest.register_alias("ethereal:fencegate_pine_closed", "doors:gate_pine_wood_closed") diff --git a/init.lua b/init.lua index c2cd5f7..942a0b9 100644 --- a/init.lua +++ b/init.lua @@ -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") diff --git a/leaves.lua b/leaves.lua index 92273b8..ab42122 100644 --- a/leaves.lua +++ b/leaves.lua @@ -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) - --- Acacia Leaves -if not minetest.registered_nodes["default:acacia_leaves"] then -minetest.register_node("ethereal:acacia_leaves", { - description = "Acacia Leaves", +-- default apple tree leaves +minetest.override_item("default:leaves", { drawtype = leaftype, - tiles = {"moretrees_acacia_leaves.png"}, - inventory_image = "moretrees_acacia_leaves.png", - wield_image = "moretrees_acacia_leaves.png", - paramtype = "light", - walkable = ethereal.leafwalk, visual_scale = 1.2, - waving = 1, - groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2}, + inventory_image = "default_leaves.png", + wield_image = "default_leaves.png", + walkable = ethereal.leafwalk, +}) + +-- default jungle tree leaves +minetest.override_item("default:jungleleaves", { + drawtype = leaftype, + visual_scale = 1.2, + inventory_image = "default_jungleleaves.png", + wield_image = "default_jungleleaves.png", + walkable = ethereal.leafwalk, +}) + +-- default pine tree leaves +minetest.override_item("default:pine_needles", { + drawtype = leaftype, + visual_scale = 1.2, + inventory_image = "default_pine_needles.png", + wield_image = "default_pine_needles.png", + walkable = ethereal.leafwalk, drop = { 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, - drop = { - max_items = 1, - items = { - {items = {"ethereal:acacia_sapling"}, rarity = 20}, - {items = {"default:acacia_leaves"}} - } - }, }) -minetest.register_alias("ethereal:acacia_leaves", "default:acacia_leaves") -end --- Willow Twig +-- default aspen tree leaves +minetest.override_item("default:aspen_leaves", { + drawtype = leaftype, + inventory_image = "default_aspen_leaves.png", + wield_image = "default_aspen_leaves.png", + visual_scale = 1.2, + walkable = ethereal.leafwalk, +}) + +-- willow twig minetest.register_node("ethereal:willow_twig", { 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,26 +224,7 @@ minetest.register_node("ethereal:birch_leaves", { after_place_node = default.after_place_leaves, }) --- Pine Tree Leaves -minetest.override_item("default:pine_needles", { - drawtype = leaftype, - visual_scale = 1.2, - tiles = {"pine_leaves.png"}, - inventory_image = "pine_leaves.png", - wield_image = "pine_leaves.png", - walkable = ethereal.leafwalk, - drop = { - max_items = 1, - items = { - {items = {"ethereal:pine_tree_sapling"}, rarity = 20}, - {items = {"ethereal:pine_nuts"}, rarity = 5}, - {items = {"default:pine_needles"}} - } - }, -}) -minetest.register_alias("ethereal:pineleaves", "default:pine_needles") - --- Frost Tree Leaves +-- frost tree leaves minetest.register_node("ethereal:frost_leaves", { description = "Frost Leaves", drawtype = leaftype, @@ -288,57 +248,7 @@ minetest.register_node("ethereal:frost_leaves", { after_place_node = default.after_place_leaves, }) --- Mushroom Tops -minetest.register_node("ethereal:mushroom", { - description = "Mushroom Cap", - tiles = {"mushroom_block.png"}, - groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, - drop = { - max_items = 1, - items = { - {items = {"ethereal:mushroom_sapling"}, rarity = 20}, - {items = {"ethereal:mushroom"}} - } - }, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_craft({ - type = "fuel", - recipe = "ethereal:mushroom", - burntime = 10, -}) - --- Mushroom Pore (Spongelike block inside mushrooms that has special properties) -minetest.register_node("ethereal:mushroom_pore", { - description = "Mushroom Pore", - tiles = {"mushroom_pore.png"}, - groups = { - snappy = 3, cracky = 3, choppy = 3, oddly_breakable_by_hand = 3, - flammable = 2, disable_jump = 1, fall_damage_add_percent = -100 - }, - sounds = default.node_sound_dirt_defaults(), -}) - --- Hedge Block -minetest.register_node("ethereal:bush", { - description = "Bush", - tiles = {"ethereal_bush.png"}, - walkable = true, - groups = {snappy = 3, flammable = 2}, - sounds = default.node_sound_leaves_defaults(), -}) - -minetest.register_craft({ - output = "ethereal:bush", - recipe = { - {"group:leaves", "group:leaves", "group:leaves"}, - {"group:leaves", "group:leaves", "group:leaves"}, - {"group:leaves", "group:leaves", "group:leaves"}, - } -}) - --- Bamboo Leaves +-- bamboo stalk leaves minetest.register_node("ethereal:bamboo_leaves", { description = "Bamboo Leaves", drawtype = leaftype, @@ -360,3 +270,93 @@ minetest.register_node("ethereal:bamboo_leaves", { sounds = default.node_sound_leaves_defaults(), after_place_node = default.after_place_leaves, }) + +-- mushroom tops +minetest.register_node("ethereal:mushroom", { + description = "Mushroom Cap", + tiles = {"mushroom_block.png"}, + groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + drop = { + max_items = 1, + items = { + {items = {"ethereal:mushroom_sapling"}, rarity = 20}, + {items = {"ethereal:mushroom"}} + } + }, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craft({ + type = "fuel", + recipe = "ethereal:mushroom", + burntime = 10, +}) + +-- mushroom pore (spongelike material found inside giant shrooms) +minetest.register_node("ethereal:mushroom_pore", { + description = "Mushroom Pore", + tiles = {"mushroom_pore.png"}, + groups = { + snappy = 3, cracky = 3, choppy = 3, oddly_breakable_by_hand = 3, + flammable = 2, disable_jump = 1, fall_damage_add_percent = -100 + }, + sounds = default.node_sound_dirt_defaults(), +}) + +-- hedge block +minetest.register_node("ethereal:bush", { + description = "Bush", + tiles = {"ethereal_bush.png"}, + walkable = true, + groups = {snappy = 3, flammable = 2}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_craft({ + output = "ethereal:bush", + recipe = { + {"group:leaves", "group:leaves", "group:leaves"}, + {"group:leaves", "ethereal:bamboo_leaves", "group:leaves"}, + {"group:leaves", "group:leaves", "group:leaves"}, + } +}) + +-- bush block #2 +minetest.register_node("ethereal:bush2", { + drawtype = "allfaces_optional", + description = "Bush #2", + tiles = {"default_aspen_leaves.png"}, + paramtype = "light", + walkable = true, + groups = {snappy = 3, flammable = 2}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_craft({ + output = "ethereal:bush2", + recipe = { + {"group:leaves", "group:leaves", "group:leaves"}, + {"group:leaves", "default:aspen_leaves", "group:leaves"}, + {"group:leaves", "group:leaves", "group:leaves"}, + } +}) + +-- bush block #3 +minetest.register_node("ethereal:bush3", { + drawtype = "allfaces_optional", + description = "Bush #3", + tiles = {"default_pine_needles.png"}, + paramtype = "light", + walkable = true, + groups = {snappy = 3, flammable = 2}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_craft({ + output = "ethereal:bush3", + recipe = { + {"group:leaves", "group:leaves", "group:leaves"}, + {"group:leaves", "default:pine_needles", "group:leaves"}, + {"group:leaves", "group:leaves", "group:leaves"}, + } +}) diff --git a/mapgen_v7n.lua b/mapgen.lua similarity index 86% rename from mapgen_v7n.lua rename to 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) diff --git a/mod.conf b/mod.conf index 59e16bb..e001f90 100644 --- a/mod.conf +++ b/mod.conf @@ -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 diff --git a/onion.lua b/onion.lua index 382a7cf..4678ca5 100644 --- a/onion.lua +++ b/onion.lua @@ -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 +--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)) + +--stage 4 +crop_def.tiles = {"ethereal_wild_onion_4.png"} +crop_def.drop = { + items = { + {items = {"ethereal:wild_onion_plant"}, rarity = 1}, + {items = {"ethereal:wild_onion_plant 2"}, rarity = 3}, + } } -minetest.register_node("ethereal:onion_3", table.copy(onion_def)) +minetest.register_node("ethereal:onion_4", table.copy(crop_def)) -onion_def.tiles[1] = "ethereal_wild_onion_4.png" -onion_def.groups.onion = 4 -onion_def.drop.items[2] = { - items = {"ethereal:wild_onion_plant 3"}, rarity = 3 +--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_4", table.copy(onion_def)) +minetest.register_node("ethereal:onion_5", 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}, -} -minetest.register_node("ethereal:onion_5", table.copy(onion_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", +-- 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, - 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), + 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:banana", param2 = 1}) - end - end, -}) - --- Banana Dough -minetest.register_craftitem("ethereal:banana_dough", { - description = "Banana Dough", - inventory_image = "banana_dough.png", -}) - -minetest.register_craft({ - type = "shapeless", - output = "ethereal:banana_dough", - recipe = {"farming:flour", "ethereal:banana"} -}) - -minetest.register_craft({ - type = "cooking", - cooktime = 14, - output = "ethereal:banana_bread", - recipe = "ethereal:banana_dough" -}) - --- Orange (Heals 2 hearts when eaten) -minetest.register_node("ethereal:orange", { - description = "Orange", - drawtype = "plantlike", - visual_scale = 1.0, - tiles = {"farming_orange.png"}, - inventory_image = "farming_orange.png", - wield_image = "farming_orange.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.2, -0.3, -0.2, 0.2, 0.2, 0.2} - }, - groups = { - fleshy = 3, dig_immediate = 3, flammable = 2, - leafdecay = 3, leafdecay_drop = 1 - }, - drop = "ethereal:orange", - on_use = minetest.item_eat(4), - sounds = default.node_sound_leaves_defaults(), - after_place_node = function(pos, placer) - if placer:is_player() then - minetest.set_node(pos, {name = "ethereal:orange", param2 = 1}) - end - end, -}) - --- Pine Nuts (Heals 1/2 heart when eaten) -minetest.register_craftitem("ethereal:pine_nuts", { - description = "Pine Nuts", - inventory_image = "pine_nuts.png", - wield_image = "pine_nuts.png", - on_use = minetest.item_eat(1), -}) - --- Banana Loaf (Heals 3 hearts when eaten) -minetest.register_craftitem("ethereal:banana_bread", { - description = "Banana Loaf", - inventory_image = "banana_bread.png", - wield_image = "banana_bread.png", - on_use = minetest.item_eat(6), -}) - --- Coconut (Gives 4 coconut slices, each heal 1/2 heart) -minetest.register_node("ethereal:coconut", { - description = "Coconut", - drawtype = "plantlike", - walkable = false, - paramtype = "light", - sunlight_propagates = true, - tiles = {"moretrees_coconut.png"}, - inventory_image = "moretrees_coconut.png", - wield_image = "moretrees_coconut.png", - selection_box = { - type = "fixed", - fixed = {-0.35, -0.35, -0.35, 0.35, 0.35, 0.35} - }, - groups = { - snappy = 1, oddly_breakable_by_hand = 1, cracky = 1, - choppy = 1, flammable = 1, leafdecay = 3, leafdecay_drop = 1 - }, - drop = "ethereal:coconut_slice 4", - sounds = default.node_sound_wood_defaults(), -}) - --- Coconut Slice (Heals half heart when eaten) -minetest.register_craftitem("ethereal:coconut_slice", { - description = "Coconut Slice", - inventory_image = "moretrees_coconut_slice.png", - wield_image = "moretrees_coconut_slice.png", - on_use = minetest.item_eat(1), -}) - --- Golden Apple (Found on Healing Tree, heals all 10 hearts) -minetest.register_node("ethereal:golden_apple", { - description = "Golden Apple", - drawtype = "plantlike", - visual_scale = 1.0, - tiles = {"default_apple_gold.png"}, - inventory_image = "default_apple_gold.png", - wield_image = "default_apple_gold.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.2, -0.3, -0.2, 0.2, 0.2, 0.2} - }, - groups = { - fleshy = 3, dig_immediate = 3, - leafdecay = 3,leafdecay_drop = 1 - }, - drop = "ethereal:golden_apple", - on_use = minetest.item_eat(20), - sounds = default.node_sound_leaves_defaults(), - after_place_node = function(pos, placer, itemstack) - if placer:is_player() then - minetest.set_node(pos, {name = "ethereal:golden_apple", param2 = 1}) - end - end, -}) - --- Bamboo (thanks to Nelo-slay on DeviantArt for the free Bamboo base image) -minetest.register_node("ethereal:bamboo", { - description = "bamboo", - drawtype = "plantlike", - tiles = {"bamboo.png"}, - inventory_image = "bamboo.png", - wield_image = "bamboo.png", - paramtype = "light", - sunlight_propagates = true, - walkable = true, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} - }, - groups = {choppy = 3, oddly_breakable_by_hand = 1, flammable = 2, tree = 1}, - sounds = default.node_sound_leaves_defaults(), - after_dig_node = function(pos, node, metadata, digger) - default.dig_up(pos, node, digger) - end, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "ethereal:bamboo", - burntime = 1, -}) - --- Bamboo Sprout -minetest.register_node("ethereal:bamboo_sprout", { - description = "Bamboo Sprout", - drawtype = "plantlike", - tiles = {"bamboo_sprout.png"}, - inventory_image = "bamboo_sprout.png", - wield_image = "bamboo_sprout.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - groups = { - snappy = 3, attached_node = 1, flammable = 2, - dig_immediate = 3, ethereal_sapling = 1 - }, - sounds = default.node_sound_defaults(), selection_box = { 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:illumishroom2", { + description = "Green 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 = { "illumishroom2.png" }, + inventory_image = "illumishroom2.png", + wield_image = "illumishroom2.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"}, - } +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}, + }, }) 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.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, ofz, schem) +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 deleted file mode 100644 index 2149d98..0000000 Binary files a/schematics/bananatree.mts and /dev/null differ 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) +-- birch tree -local i = "air" -local t = "ethereal:birch_trunk" -local l = "ethereal:birch_leaves" +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 = { +ethereal.birchtree = { -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=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}, + size = {x = 5, y = 7, z = 5}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=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}, + data = { -{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}, + 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, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=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}, + 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, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, -{name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, {name=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}, + 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, -}, yslice_prob = {{ypos = 1, prob = 127}}} + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, + lp, lp, lp, lp, lp, + lp, lp, lp, lp, lp, + ai, lr, lp, lr, ai, + ai, ai, lp, ai, ai, + + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, + lr, lp, lp, lp, lr, + lr, lp, lp, lp, lr, + ai, ai, ai, ai, ai, + ai, ai, ai, ai, ai, + + }, + + yslice_prob = { + {ypos = 1, prob = 127} + }, +} 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 deleted file mode 100644 index a4aaa01..0000000 Binary files a/schematics/jungletree.mts and /dev/null differ diff --git a/schematics/large_cactus.mts b/schematics/large_cactus.mts deleted file mode 100644 index b71077b..0000000 Binary files a/schematics/large_cactus.mts and /dev/null differ 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}, + ai, ai, ai, + ai, ai, ai, + ai, ai, ai, + lr, lr, of, + lp, lp, lp, + lr, of, lr, - {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}, + ai, tr, ai, + ai, tr, ai, + ai, tr, ai, + lr, tr, lr, + lp, tr, lp, + lr, lp, lr, - {name=i, param1=000}, {name=i, param1=000}, {name=i, param1=000}, - {name=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, + 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 deleted file mode 100644 index 4536dd0..0000000 Binary files a/schematics/orangetree.mts and /dev/null differ diff --git a/schematics/redwood_tree.mts b/schematics/redwood_tree.mts new file mode 100644 index 0000000..50c367a Binary files /dev/null and b/schematics/redwood_tree.mts differ diff --git a/schematics/tree.mts b/schematics/tree.mts deleted file mode 100644 index 4ba4898..0000000 Binary files a/schematics/tree.mts and /dev/null differ 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 index 93fa73a..c4d8001 100644 Binary files a/screenshot.png and b/screenshot.png differ 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"}, diff --git a/stairs.lua b/stairs.lua index c6519d9..aa4236a 100644 --- a/stairs.lua +++ b/stairs.lua @@ -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 new file mode 100644 index 0000000..b25455e Binary files /dev/null and b/textures/blank.png differ diff --git a/textures/bone.png b/textures/bone.png new file mode 100644 index 0000000..d86e7be Binary files /dev/null and b/textures/bone.png differ diff --git a/textures/bonemeal.png b/textures/bonemeal.png new file mode 100644 index 0000000..f141263 Binary files /dev/null and b/textures/bonemeal.png differ diff --git a/textures/bonemeal_particle.png b/textures/bonemeal_particle.png new file mode 100644 index 0000000..71ef90f Binary files /dev/null and b/textures/bonemeal_particle.png differ diff --git a/textures/default_fence_overlay.png b/textures/default_fence_overlay.png deleted file mode 100644 index 780e736..0000000 Binary files a/textures/default_fence_overlay.png and /dev/null differ diff --git a/textures/default_gate_overlay.png b/textures/default_gate_overlay.png deleted file mode 100644 index 008c0ec..0000000 Binary files a/textures/default_gate_overlay.png and /dev/null differ diff --git a/textures/default_pine_wood.png b/textures/default_pine_wood.png deleted file mode 100644 index 6844ceb..0000000 Binary files a/textures/default_pine_wood.png and /dev/null differ diff --git a/textures/flowers_mushroom_brown.png b/textures/flowers_mushroom_brown.png deleted file mode 100644 index 33ffcd4..0000000 Binary files a/textures/flowers_mushroom_brown.png and /dev/null differ diff --git a/textures/flowers_mushroom_red.png b/textures/flowers_mushroom_red.png deleted file mode 100644 index a68f5d5..0000000 Binary files a/textures/flowers_mushroom_red.png and /dev/null differ diff --git a/textures/flowers_waterlily.png b/textures/flowers_waterlily.png deleted file mode 100644 index 1f504f7..0000000 Binary files a/textures/flowers_waterlily.png and /dev/null differ diff --git a/textures/moretrees_acacia_sapling.png b/textures/moretrees_acacia_sapling.png deleted file mode 100644 index 07170a0..0000000 Binary files a/textures/moretrees_acacia_sapling.png and /dev/null differ diff --git a/textures/moretrees_acacia_trunk.png b/textures/moretrees_acacia_trunk.png deleted file mode 100644 index 169823d..0000000 Binary files a/textures/moretrees_acacia_trunk.png and /dev/null differ diff --git a/textures/moretrees_acacia_trunk_top.png b/textures/moretrees_acacia_trunk_top.png deleted file mode 100644 index 2cf5ef0..0000000 Binary files a/textures/moretrees_acacia_trunk_top.png and /dev/null differ diff --git a/textures/moretrees_acacia_wood.png b/textures/moretrees_acacia_wood.png deleted file mode 100644 index f5e6a68..0000000 Binary files a/textures/moretrees_acacia_wood.png and /dev/null differ diff --git a/water.lua b/water.lua index e9f14b3..c9d58ec 100644 --- a/water.lua +++ b/water.lua @@ -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 diff --git a/wood.lua b/wood.lua index d0b891e..febdd39 100644 --- a/wood.lua +++ b/wood.lua @@ -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, +})