diff options
author | TenPlus1 <kinsellaja@yahoo.com> | 2015-07-25 16:45:29 +0100 |
---|---|---|
committer | TenPlus1 <kinsellaja@yahoo.com> | 2015-07-25 16:45:29 +0100 |
commit | 170b62ecdeaae56c2c612f534d5c99593ccb10b1 (patch) | |
tree | e496d78772dc7ef061dd6b7c7980aff4443cca28 | |
parent | f37b81262aaa40445abddc8aa0a17f4801c9d68d (diff) |
Tweaked and Tidied code
-rw-r--r-- | description.txt | 2 | ||||
-rw-r--r-- | init.lua | 52 | ||||
-rw-r--r-- | leaves.lua | 13 | ||||
-rw-r--r-- | mapgen_v7n.lua | 137 | ||||
-rw-r--r-- | plantlife.lua | 1 | ||||
-rw-r--r-- | sapling.lua | 171 | ||||
-rw-r--r-- | wood.lua | 3 |
7 files changed, 260 insertions, 119 deletions
diff --git a/description.txt b/description.txt index a272080..5338835 100644 --- a/description.txt +++ b/description.txt @@ -1 +1 @@ -This is a mod that causes Minetest to use the Ethereal v7 mapgen.
\ No newline at end of file +Ethereal mod uses the v7 mapgen to add many new biomes to the world.
\ No newline at end of file @@ -1,6 +1,6 @@ --[[
- Minetest Ethereal Mod 1.16 (22nd July 2015)
+ Minetest Ethereal Mod 1.16 (25th July 2015)
Created by ChinChow
@@ -13,29 +13,29 @@ ethereal.leaftype = 0 -- 0 for 2D plantlike, 1 for 3D allfaces -- Set following to 1 to enable biome or 0 to disable
-ethereal.bamboo = 1 -- Bamboo with sprouts
-ethereal.mesa = 1 -- Mesa red and orange clay with giant redwood
-ethereal.alpine = 1 -- Snowy grass
-ethereal.healing = 1 -- Snowy peaks with healing trees
-ethereal.snowy = 1 -- Cold grass with pine trees and snow spots
-ethereal.frost = 1 -- Blue dirt with blue/pink frost trees
-ethereal.grassy = 1 -- Green grass with flowers and trees
-ethereal.caves = 1 -- Desert stone ares with huge caverns underneath
-ethereal.grayness = 1 -- Grey grass with willow trees
-ethereal.grassytwo = 1 -- Sparse trees with old trees and flowers
-ethereal.prairie = 1 -- Flowery grass with many plants and flowers
-ethereal.jumble = 1 -- Green grass with trees and jungle grass
-ethereal.junglee = 1 -- Jungle grass with tall jungle trees
-ethereal.desert = 1 -- Desert sand with cactus
-ethereal.grove = 1 -- Banana groves and ferns
-ethereal.mushroom = 1 -- Purple grass with giant mushrooms
-ethereal.desertstone = 1 -- Desert stone with smaller cactus
-ethereal.quicksand = 1 -- Quicksand banks
-ethereal.lake = 1 -- Small sandy lake areas with gravel below, also used for ocean floor
-ethereal.plains = 1 -- Dry dirt with scorched trees
-ethereal.fiery = 1 -- Red grass with lava craters
-ethereal.sandclay = 1 -- Sand areas with clay underneath
-ethereal.icewater = 1 -- Ice surrounding cold coastal areas
+ethereal.bamboo = 1 -- Bamboo with sprouts
+ethereal.mesa = 1 -- Mesa red and orange clay with giant redwood
+ethereal.alpine = 1 -- Snowy grass
+ethereal.healing = 1 -- Snowy peaks with healing trees
+ethereal.snowy = 1 -- Cold grass with pine trees and snow spots
+ethereal.frost = 1 -- Blue dirt with blue/pink frost trees
+ethereal.grassy = 1 -- Green grass with flowers and trees
+ethereal.caves = 1 -- Desert stone ares with huge caverns underneath
+ethereal.grayness = 1 -- Grey grass with willow trees
+ethereal.grassytwo = 1 -- Sparse trees with old trees and flowers
+ethereal.prairie = 1 -- Flowery grass with many plants and flowers
+ethereal.jumble = 1 -- Green grass with trees and jungle grass
+ethereal.junglee = 1 -- Jungle grass with tall jungle trees
+ethereal.desert = 1 -- Desert sand with cactus
+ethereal.grove = 1 -- Banana groves and ferns
+ethereal.mushroom = 1 -- Purple grass with giant mushrooms
+ethereal.sandstone = 1 -- Sandstone with smaller cactus
+ethereal.quicksand = 1 -- Quicksand banks
+ethereal.lake = 1 -- Small sandy lake areas with gravel below, also used for ocean floor
+ethereal.plains = 1 -- Dry dirt with scorched trees
+ethereal.fiery = 1 -- Red grass with lava craters
+ethereal.sandclay = 1 -- Sand areas with clay underneath
+ethereal.icewater = 1 -- Ice surrounding cold coastal areas
dofile(minetest.get_modpath("ethereal").."/plantlife.lua")
dofile(minetest.get_modpath("ethereal").."/mushroom.lua")
@@ -54,7 +54,9 @@ dofile(minetest.get_modpath("ethereal").."/extra.lua") dofile(minetest.get_modpath("ethereal").."/sealife.lua")
dofile(minetest.get_modpath("ethereal").."/fences.lua")
dofile(minetest.get_modpath("ethereal").."/gates.lua")
-dofile(minetest.get_modpath("ethereal").."/stairs.lua")
+if stairs and not stairs.mod then
+ dofile(minetest.get_modpath("ethereal").."/stairs.lua")
+end
dofile(minetest.get_modpath("ethereal").."/mapgen_v7n.lua") -- 0.4.12+
-- Xanadu server Only
@@ -32,9 +32,19 @@ minetest.register_node("ethereal:acacia_leaves", { else minetest.override_item("default:acacia_leaves", { drawtype = leaftype, + tiles = {"moretrees_acacia_leaves.png"}, + inventory_image = "moretrees_acacia_leaves.png", visual_scale = 1.2, + walkable = false, + drop = { + max_items = 1, + items = { + {items = {"ethereal:acacia_sapling"}, rarity = 20}, + {items = {"ethereal:acacia_leaves"}} + } + }, }) -print ("dont need ethereal's acacia leaves") +minetest.register_alias("ethereal:acacia_leaves", "default:acacia_leaves") end -- Willow Twig @@ -208,6 +218,7 @@ minetest.override_item("default:pine_needles", { visual_scale = 1.2, tiles = {"pine_leaves.png"}, inventory_image = "pine_leaves.png", + walkable = false, drop = { max_items = 1, items = { diff --git a/mapgen_v7n.lua b/mapgen_v7n.lua index 240b101..afd425d 100644 --- a/mapgen_v7n.lua +++ b/mapgen_v7n.lua @@ -34,11 +34,23 @@ minetest.register_biome({ depth_top = 1,
node_filler = "default:dirt",
depth_filler = 5,
- y_min = 1,
+ y_min = 3,
y_max = 71,
heat_point = 45,
humidity_point = 75,
})
+
+minetest.register_biome({
+ name = "bamboo_ocean",
+ node_top = "default:sand",
+ depth_top = 1,
+ node_filler = "default:sand",
+ depth_filler = 2,
+ y_min = -192,
+ y_max = 2,
+ heat_point = 45,
+ humidity_point = 75,
+})
end
if ethereal.mesa == 1 then
@@ -53,6 +65,18 @@ minetest.register_biome({ heat_point = 25,
humidity_point = 28,
})
+
+minetest.register_biome({
+ name = "mesa_ocean",
+ node_top = "default:sand",
+ depth_top = 1,
+ node_filler = "default:sand",
+ depth_filler = 2,
+ y_min = -192,
+ y_max = 1,
+ heat_point = 25,
+ humidity_point = 28,
+})
end
if ethereal.alpine == 1 then
@@ -132,11 +156,23 @@ minetest.register_biome({ depth_top = 1,
node_filler = "default:dirt",
depth_filler = 5,
- y_min = 1,
+ y_min = 2,
y_max = 41,
heat_point = 15,
humidity_point = 30,
})
+
+minetest.register_biome({
+ name = "grayness_ocean",
+ node_top = "default:sand",
+ depth_top = 1,
+ node_filler = "default:sand",
+ depth_filler = 2,
+ y_min = -192,
+ y_max = 1,
+ heat_point = 15,
+ humidity_point = 30,
+})
end
if ethereal.grassytwo == 1 then
@@ -207,6 +243,18 @@ minetest.register_biome({ heat_point = 35,
humidity_point = 20,
})
+
+minetest.register_biome({
+ name = "desert_ocean",
+ node_top = "default:sand",
+ depth_top = 1,
+ node_filler = "default:sand",
+ depth_filler = 2,
+ y_min = -192,
+ y_max = 2,
+ heat_point = 35,
+ humidity_point = 20,
+})
end
if ethereal.grove == 1 then
@@ -221,6 +269,18 @@ minetest.register_biome({ heat_point = 40,
humidity_point = 60,
})
+
+minetest.register_biome({
+ name = "grove_ocean",
+ node_top = "default:sand",
+ depth_top = 1,
+ node_filler = "default:sand",
+ depth_filler = 2,
+ y_min = -192,
+ y_max = 2,
+ heat_point = 40,
+ humidity_point = 60,
+})
end
if ethereal.mushroom == 1 then
@@ -230,14 +290,26 @@ minetest.register_biome({ depth_top = 1,
node_filler = "default:dirt",
depth_filler = 5,
- y_min = 1,
+ y_min = 3,
y_max = 50,
heat_point = 45,
humidity_point = 65,
})
+
+minetest.register_biome({
+ name = "mushroom_ocean",
+ node_top = "default:sand",
+ depth_top = 1,
+ node_filler = "default:sand",
+ depth_filler = 2,
+ y_min = -192,
+ y_max = 2,
+ heat_point = 45,
+ humidity_point = 65,
+})
end
-if ethereal.desertstone == 1 then
+if ethereal.sandstone == 1 then
minetest.register_biome({
name = "desertstone",
node_top = "default:sandstone",
@@ -249,6 +321,18 @@ minetest.register_biome({ heat_point = 50,
humidity_point = 20,
})
+
+minetest.register_biome({
+ name = "sandstone_ocean",
+ node_top = "default:sand",
+ depth_top = 1,
+ node_filler = "default:sand",
+ depth_filler = 2,
+ y_min = -192,
+ y_max = 2,
+ heat_point = 50,
+ humidity_point = 20,
+})
end
if ethereal.quicksand == 1 then
@@ -293,6 +377,18 @@ minetest.register_biome({ heat_point = 55,
humidity_point = 25,
})
+
+minetest.register_biome({
+ name = "plains_ocean",
+ node_top = "default:sand",
+ depth_top = 1,
+ node_filler = "default:sand",
+ depth_filler = 2,
+ y_min = -192,
+ y_max = 2,
+ heat_point = 55,
+ humidity_point = 25,
+})
end
if ethereal.fiery == 1 then
@@ -307,6 +403,18 @@ minetest.register_biome({ heat_point = 80,
humidity_point = 10,
})
+
+minetest.register_biome({
+ name = "fiery_ocean",
+ node_top = "default:sand",
+ depth_top = 1,
+ node_filler = "default:sand",
+ depth_filler = 2,
+ y_min = -192,
+ y_max = 4,
+ heat_point = 80,
+ humidity_point = 10,
+})
end
if ethereal.sandclay == 1 then
@@ -704,16 +812,25 @@ minetest.register_on_generated(function(minp, maxp, seed) local divlen = 8
local divs = (maxp.x - minp.x) / divlen + 1
local pr, x, z
- for divx=0,divs-1 do
- for divz=0,divs-1 do
+ for divx = 0, divs - 1 do
+ for divz = 0, divs - 1 do
-- find random positions for palm tree
pr = PseudoRandom(seed + 1)
- x = pr:next(minp.x + math.floor((divx + 0) * divlen), minp.x + math.floor((divx + 1) * divlen))
- z = pr:next(minp.z + math.floor((divz + 0) * divlen), minp.z + math.floor((divz + 1) * divlen))
+ x = pr:next(minp.x + math.floor((divx + 0) * divlen),
+ minp.x + math.floor((divx + 1) * divlen))
+ z = pr:next(minp.z + math.floor((divz + 0) * divlen),
+ minp.z + math.floor((divz + 1) * divlen))
nn = minetest.get_node_or_nil({x = x, y = 1, z = z})
+ -- only on sand and beside water
if nn and nn.name == "default:sand"
- and minetest.find_node_near({x = x, y = 1,z = z}, 1, "default:water_source") then
- minetest.place_schematic({x = x - 4, y = 2, z = z - 4}, path.."palmtree.mts", 0, '', 0)
+ and minetest.find_node_near(
+ {x = x, y = 1, z = z}, 1,
+ "default:water_source") then
+ minetest.place_schematic({
+ x = x - 4,
+ y = 2,
+ z = z - 4
+ }, path .. "palmtree.mts", "random", {}, false)
end
end
end
diff --git a/plantlife.lua b/plantlife.lua index 64ca511..6bd8364 100644 --- a/plantlife.lua +++ b/plantlife.lua @@ -219,6 +219,7 @@ minetest.register_node("ethereal:coconut", { paramtype = "light", sunlight_propagates = true, tiles = {"moretrees_coconut.png"}, + inventory_image = "moretrees_coconut.png", selection_box = { type = "fixed", fixed = {-0.35, -0.35, -0.35, 0.35, 0.35, 0.35} diff --git a/sapling.lua b/sapling.lua index fef6d2a..644a141 100644 --- a/sapling.lua +++ b/sapling.lua @@ -1,61 +1,43 @@ --- Function to Register Saplings -ethereal.register_sapling = function(sapling_node_name, sapling_descr, sapling_texture) - -- if the sapling does not exist yet, create a node for it - if not minetest.registered_nodes[sapling_node_name] then - minetest.register_node( sapling_node_name, { - description = sapling_descr, - drawtype = "plantlike", - visual_scale = 1.0, - tiles = {sapling_texture}, - inventory_image = sapling_texture, - wield_image = sapling_texture, - paramtype = "light", - sunlight_propagates = true, - is_ground_content = false, - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5} - }, - groups = { - snappy = 2, dig_immediate = 3, flammable = 2, - ethereal_sapling = 1, attached_node = 1 - }, - sounds = default.node_sound_defaults(), - }) - end -end - -- Register Saplings -ethereal.register_sapling("ethereal:willow_sapling", "Willow Sapling", "willow_sapling.png") -ethereal.register_sapling("ethereal:yellow_tree_sapling", "Healing Tree Sapling", "yellow_tree_sapling.png") -ethereal.register_sapling("ethereal:tree_sapling", "Tree Sapling", "ethereal_tree_sapling.png") -ethereal.register_sapling("ethereal:jungle_tree_sapling","Jungletree Sapling", "ethereal_jungle_tree_sapling.png") -ethereal.register_sapling("ethereal:pine_tree_sapling", "Pine Sapling", "ethereal_pine_tree_sapling.png") -ethereal.register_sapling("ethereal:big_tree_sapling", "Big Tree Sapling", "ethereal_big_tree_sapling.png") -ethereal.register_sapling("ethereal:banana_tree_sapling", "Banana Tree Sapling", "banana_tree_sapling.png") -ethereal.register_sapling("ethereal:frost_tree_sapling", "Frost Sapling", "ethereal_frost_tree_sapling.png") -ethereal.register_sapling("ethereal:gray_tree_sapling", "Gray Sapling", "ethereal_gray_tree_sapling.png") -ethereal.register_sapling("ethereal:mushroom_sapling", "Mushroom Sapling", "ethereal_mushroom_sapling.png") -ethereal.register_sapling("ethereal:palm_sapling", "Palm Sapling", "moretrees_palm_sapling.png") -ethereal.register_sapling("ethereal:redwood_sapling", "Redwood Sapling", "redwood_sapling.png") -ethereal.register_sapling("ethereal:orange_tree_sapling", "Orange Tree Sapling", "orange_tree_sapling.png") -ethereal.register_sapling("ethereal:acacia_sapling", "Acacia Sapling", "moretrees_acacia_sapling.png") - --- current routine -ethereal.place_tree = function (pos, ofx, ofz, schem) - -- Remove Sapling and Place Tree Schematic - minetest.set_node(pos, {name = "air"}) - pos.x = pos.x - ofx - pos.z = pos.z - ofz - minetest.place_schematic( - pos, - minetest.get_modpath("ethereal").."/schematics/"..schem..".mts", - "0", {}, false - ) +ethereal.register_sapling = function(name, desc, texture) + + minetest.register_node(name .. "_sapling", { + description = desc .. " Tree Sapling", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {texture .. "_sapling.png"}, + inventory_image = texture .. "_sapling.png", + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5} + }, + groups = { + snappy = 2, dig_immediate = 3, flammable = 2, + ethereal_sapling = 1, attached_node = 1 + }, + sounds = default.node_sound_defaults(), + }) end --- new routine +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:gray_tree", "Gray", "ethereal_gray_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.add_tree = function (pos, ofx, ofz, schem) -- check for schematic if not schem then @@ -70,40 +52,69 @@ ethereal.add_tree = function (pos, ofx, ofz, schem) ) end +local path = minetest.get_modpath("ethereal").."/schematics/" + ethereal.grow_sapling = function (pos, node) local under = minetest.get_node_or_nil({x = pos.x, y = pos.y - 1, z = pos.z}) if under then under = under.name else return end -- Check if Sapling is growing on correct substrate - if (node.name == "ethereal:yellow_tree_sapling" and under == "default:dirt_with_snow") then - ethereal.place_tree(pos, 4, 4, "yellowtree") - elseif (node.name == "ethereal:tree_sapling" and under == "ethereal:green_dirt") then + 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.place_tree(pos, 6, 6, "jungletree") - elseif (node.name == "ethereal:pine_tree_sapling" and under == "ethereal:cold_dirt") then - ethereal.place_tree(pos, 3, 3, "pinetree") - elseif (node.name == "ethereal:big_tree_sapling" and under == "ethereal:green_dirt") then - ethereal.place_tree(pos, 4, 4, "bigtree") - elseif (node.name == "ethereal:banana_tree_sapling" and under == "ethereal:grove_dirt") then + + 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") + + elseif node.name == "ethereal:big_tree_sapling" + and under == "ethereal:green_dirt" then + ethereal.add_tree(pos, 4, 4, path .. "bigtree.mts") + + elseif node.name == "ethereal:banana_tree_sapling" + and under == "ethereal:grove_dirt" then ethereal.add_tree(pos, 3, 3, ethereal.bananatree) - elseif (node.name == "ethereal:frost_tree_sapling" and under == "ethereal:crystal_dirt") then - ethereal.place_tree(pos, 4, 4, "frosttrees") - elseif (node.name == "ethereal:gray_tree_sapling" and under == "ethereal:gray_dirt") then - ethereal.place_tree(pos, 2, 2, "graytrees") - elseif (node.name == "ethereal:mushroom_sapling" and under == "ethereal:mushroom_dirt") then - ethereal.place_tree(pos, 4, 4, "mushroomone") - elseif (node.name == "ethereal:palm_sapling" and under == "default:sand") then - ethereal.place_tree(pos, 4, 4, "palmtree") - elseif (node.name == "ethereal:willow_sapling" and under == "ethereal:gray_dirt") then - ethereal.place_tree(pos, 5, 5, "willow") - elseif (node.name == "ethereal:redwood_sapling" and under == "bakedclay:red") then - ethereal.place_tree(pos, 9, 9, "redwood") - elseif (node.name == "ethereal:orange_tree_sapling" and under == "ethereal:prairie_dirt") then + + elseif node.name == "ethereal:frost_tree_sapling" + and under == "ethereal:crystal_dirt" then + ethereal.add_tree(pos, 4, 4, path .. "frosttrees.mts") + + elseif node.name == "ethereal:gray_tree_sapling" + and under == "ethereal:gray_dirt" then + ethereal.add_tree(pos, 2, 2, path .. "graytrees.mts") + + elseif node.name == "ethereal:mushroom_sapling" + and under == "ethereal:mushroom_dirt" then + ethereal.add_tree(pos, 4, 4, path .. "mushroomone.mts") + + elseif node.name == "ethereal:palm_sapling" + and under == "default:sand" then + ethereal.add_tree(pos, 4, 4, path .. "palmtree.mts") + + elseif node.name == "ethereal:willow_sapling" + and under == "ethereal:gray_dirt" then + ethereal.add_tree(pos, 5, 5, path .. "willow.mts") + + elseif node.name == "ethereal:redwood_sapling" + and under == "bakedclay:red" then + ethereal.add_tree(pos, 9, 9, path .. "redwood.mts") + + 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:desert_sand") then - ethereal.place_tree(pos, 5, 5, "acaciatree") + + elseif node.name == "ethereal:acacia_sapling" + and under == "default:desert_sand" then + ethereal.add_tree(pos, 5, 5, path .. "acaciatree.mts") end end @@ -3,9 +3,8 @@ -- 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_leaves", "default:acacia_leaves") minetest.register_alias("ethereal:acacia_wood", "default:acacia_wood") - print ("acacia tree in default game") + print ("using acacia tree in default game") else minetest.register_node("ethereal:acacia_trunk", { description = "Acacia Trunk", |