Fixed cloudlands and floatlands, changed their biome heights
|
@ -1,26 +0,0 @@
|
||||||
Copyright (c) 2017, Craig Robbins and contributors
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
list of conditions and the following disclaimer.
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
The views and conclusions contained in the software and documentation are those
|
|
||||||
of the authors and should not be interpreted as representing official policies,
|
|
||||||
either expressed or implied, of the FreeBSD Project.
|
|
|
@ -1,48 +0,0 @@
|
||||||
# caverealms-lite-plus
|
|
||||||
|
|
||||||
Based on Ezhh's cavereals-lite (https://github.com/Ezhh/caverealms_lite/), itself based on the original minetest-caverealms mod (https://github.com/HeroOfTheWinds/minetest-caverealms/).
|
|
||||||
|
|
||||||
Adds underground realms to minetest.
|
|
||||||
|
|
||||||
This mod may be used as a drop-in replacement for caverealms-lite. Newly generated blocks will show a sharp lurch in the biome type.
|
|
||||||
|
|
||||||
|
|
||||||
## Changes from caverealms-lite
|
|
||||||
|
|
||||||
* Different biome algorithm based on independent Evil and Wonder noises, similar to heat and humidity above ground.
|
|
||||||
* Biomes are larger.
|
|
||||||
* Every biome has some sort of consistent light source
|
|
||||||
* New biome type: geothermal hotsprings.
|
|
||||||
* A few more node types similar to existing ones.
|
|
||||||
* Various bug fixes.
|
|
||||||
* Various new bugs ;)
|
|
||||||
|
|
||||||
|
|
||||||
## Changes by Ezhh from caverealms to caverealms-lite
|
|
||||||
|
|
||||||
This caverealms fork provides all the biomes and decorations from the original caverealms, with several additions and without the overhead of generating caves. This lowers the server resources the mod requires, for example CPU and RAM. This also removes the large lava spills created by the original caverealms.
|
|
||||||
|
|
||||||
It is specifically written to work with the mgvalleys mapgen, but will work using other mapgens as well. The mapgen used will determine the shape and size of individual caves. Mapgens that generate only smaller caves may be less suitable for use with this fork than mgvalleys.
|
|
||||||
|
|
||||||
Note: For worlds where the original caverealms is already in use, this fork is not advised as a replacement. If used in this way, some unknown nodes and other minor issues should be expected.
|
|
||||||
|
|
||||||
|
|
||||||
## License and Contributors
|
|
||||||
|
|
||||||
Source code: FreeBSD License (Simplified)
|
|
||||||
The original caverealms was licensed as WTFPL.
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
- yzziizzy - current version
|
|
||||||
- Zeno, Shara RedCat - caverealms-lite
|
|
||||||
- HeroOfTheWinds, Zeno - Original caverealms mod
|
|
||||||
|
|
||||||
|
|
||||||
## Recommended Additions
|
|
||||||
|
|
||||||
- VanessaE's HDX texturepacks provide alternative textures. For example,
|
|
||||||
https://gitlab.com/VanessaE/hdx-128.
|
|
||||||
- ethereal mod unlocks additional content (https://notabug.org/tenplus1/ethereal).
|
|
||||||
- mobs_monster mod allows Dungeon Masters to spawn in the Dungeon Master's Lair biome (https://notabug.org/tenplus1/mobs_monster).
|
|
||||||
- mobs_redo is required to run mobs_monster (https://notabug.org/tenplus1/mobs_redo).
|
|
||||||
- abritorch adds coloured torches made with caverealms items (https://github.com/Ezhh/abritorch).
|
|
|
@ -1,54 +0,0 @@
|
||||||
local CONFIG_FILE_PREFIX = "caverealms."
|
|
||||||
|
|
||||||
caverealms.config = {}
|
|
||||||
|
|
||||||
-- This function based on kaeza/minetest-irc/config.lua and used under the
|
|
||||||
-- terms of BSD 2-clause license.
|
|
||||||
local function setting(stype, name, default)
|
|
||||||
local value
|
|
||||||
if stype == "bool" then
|
|
||||||
value = minetest.settings:get_bool(CONFIG_FILE_PREFIX..name)
|
|
||||||
elseif stype == "string" then
|
|
||||||
value = minetest.settings:get(CONFIG_FILE_PREFIX..name)
|
|
||||||
elseif stype == "number" then
|
|
||||||
value = tonumber(minetest.settings:get(CONFIG_FILE_PREFIX..name))
|
|
||||||
end
|
|
||||||
if value == nil then
|
|
||||||
value = default
|
|
||||||
end
|
|
||||||
caverealms.config[name] = value
|
|
||||||
end
|
|
||||||
|
|
||||||
--generation settings
|
|
||||||
setting("number", "ymin", -15100) --bottom realm limit
|
|
||||||
setting("number", "ymax", -4096) --top realm limit
|
|
||||||
setting("number", "tcave", 0.75) --cave threshold
|
|
||||||
|
|
||||||
--decoration chances
|
|
||||||
setting("number", "stagcha", 0.003) --chance of stalagmites 0.003
|
|
||||||
setting("number", "stalcha", 0.003) --chance of stalactites 0.003
|
|
||||||
|
|
||||||
setting("number", "h_lag", 15) --max height for stalagmites
|
|
||||||
setting("number", "h_lac", 20) --...stalactites
|
|
||||||
setting("number", "crystal", 0.005) --chance of glow crystal formations (0.0004)
|
|
||||||
setting("number", "salt_crystal", 0.005) --chance of glow crystal formations
|
|
||||||
setting("number", "h_cry", 9) --max height of glow crystals
|
|
||||||
setting("number", "h_clac", 13) --max height of glow crystal stalactites
|
|
||||||
|
|
||||||
setting("number", "gemcha", 0.03) --chance of small glow gems
|
|
||||||
setting("number", "mushcha", 0.04) --chance of mushrooms
|
|
||||||
setting("number", "myccha", 0.03) --chance of mycena mushrooms
|
|
||||||
setting("number", "wormcha", 0.02) --chance of glow worms
|
|
||||||
setting("number", "giantcha", 0.0015) --chance of giant mushrooms
|
|
||||||
setting("number", "icicha", 0.035) --chance of icicles
|
|
||||||
setting("number", "flacha", 0.04) --chance of constant flames
|
|
||||||
|
|
||||||
--realm limits for Dungeon Masters' Lair
|
|
||||||
setting("number", "dm_top", -13000) --upper limit
|
|
||||||
setting("number", "dm_bot", -15100) --lower limit
|
|
||||||
|
|
||||||
--should DMs spawn in DM Lair?
|
|
||||||
setting("bool", "dm_spawn", true)
|
|
||||||
|
|
||||||
--Deep cave settings
|
|
||||||
setting("number", "deep_cave", -7000) -- upper limit
|
|
|
@ -1,181 +0,0 @@
|
||||||
--thin ice to water
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "default:water_source",
|
|
||||||
type = "shapeless",
|
|
||||||
recipe = {"caverealms:thin_ice"}
|
|
||||||
})
|
|
||||||
|
|
||||||
--use for coal dust
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "default:coalblock",
|
|
||||||
recipe = {
|
|
||||||
{"caverealms:coal_dust","caverealms:coal_dust","caverealms:coal_dust"},
|
|
||||||
{"caverealms:coal_dust","caverealms:coal_dust","caverealms:coal_dust"},
|
|
||||||
{"caverealms:coal_dust","caverealms:coal_dust","caverealms:coal_dust"}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
-- DM statue
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "caverealms:dm_statue",
|
|
||||||
recipe = {
|
|
||||||
{"caverealms:glow_ore","caverealms:hot_cobble","caverealms:glow_ore"},
|
|
||||||
{"caverealms:hot_cobble","caverealms:hot_cobble","caverealms:hot_cobble"},
|
|
||||||
{"caverealms:hot_cobble","caverealms:hot_cobble","caverealms:hot_cobble"}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Glow obsidian brick
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "caverealms:glow_obsidian_brick 4",
|
|
||||||
recipe = {
|
|
||||||
{"caverealms:glow_obsidian", "caverealms:glow_obsidian"},
|
|
||||||
{"caverealms:glow_obsidian", "caverealms:glow_obsidian"}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "caverealms:glow_obsidian_brick_2 4",
|
|
||||||
recipe = {
|
|
||||||
{"caverealms:glow_obsidian_2", "caverealms:glow_obsidian_2"},
|
|
||||||
{"caverealms:glow_obsidian_2", "caverealms:glow_obsidian_2"}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Glow obsidian glass
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "caverealms:glow_obsidian_glass 5",
|
|
||||||
recipe = {
|
|
||||||
{"default:glass", "default:glass", "default:glass"},
|
|
||||||
{"default:glass", "default:glass", "caverealms:glow_obsidian"}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "caverealms:glow_obsidian_glass 5",
|
|
||||||
recipe = {
|
|
||||||
{"default:glass", "default:glass", "default:glass"},
|
|
||||||
{"default:glass", "default:glass", "caverealms:glow_obsidian_2"}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craftitem("caverealms:glow_obsidian_shard", {
|
|
||||||
description = "Glow Obsidian Shard",
|
|
||||||
inventory_image = "caverealms_glow_obsidian_shard.png",
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "caverealms:glow_obsidian_shard 9",
|
|
||||||
type = "shapeless",
|
|
||||||
recipe = {"caverealms:glow_obsidian"},
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "caverealms:glow_obsidian_shard 9",
|
|
||||||
type = "shapeless",
|
|
||||||
recipe = {"caverealms:glow_obsidian_2"},
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "caverealms:glow_obsidian",
|
|
||||||
recipe = {
|
|
||||||
{"caverealms:glow_obsidian_shard", "caverealms:glow_obsidian_shard", "caverealms:glow_obsidian_shard"},
|
|
||||||
{"caverealms:glow_obsidian_shard", "caverealms:glow_obsidian_shard", "caverealms:glow_obsidian_shard"},
|
|
||||||
{"caverealms:glow_obsidian_shard", "caverealms:glow_obsidian_shard", "caverealms:glow_obsidian_shard"},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "cooking",
|
|
||||||
output = "caverealms:glow_obsidian_glass",
|
|
||||||
recipe = "caverealms:glow_obsidian_shard",
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- Requires ethereal:fish_raw
|
|
||||||
if minetest.get_modpath("ethereal") then
|
|
||||||
|
|
||||||
-- Professional Fishing Rod
|
|
||||||
minetest.register_craftitem("caverealms:angler_rod", {
|
|
||||||
description = "Pro Fishing Rod",
|
|
||||||
inventory_image = "caverealms_angler_rod.png",
|
|
||||||
wield_image = "caverealms_angler_rod.png"
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "caverealms:angler_rod",
|
|
||||||
recipe = {
|
|
||||||
{"","","default:steel_ingot"},
|
|
||||||
{"", "default:steel_ingot", "caverealms:mushroom_gills"},
|
|
||||||
{"default:steel_ingot", "", "caverealms:mushroom_gills"},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Glow Bait
|
|
||||||
minetest.register_craftitem("caverealms:glow_bait", {
|
|
||||||
description = "Glow Bait",
|
|
||||||
inventory_image = "caverealms_glow_bait.png",
|
|
||||||
wield_image = "caverealms_glow_bait.png",
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "caverealms:glow_bait 9",
|
|
||||||
recipe = {
|
|
||||||
{"caverealms:glow_worm_green"},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
-- default ethereal fish
|
|
||||||
local fish = {
|
|
||||||
{"ethereal:fish_raw"},
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Pro Fishing Rod (Baited)
|
|
||||||
minetest.register_craftitem("caverealms:angler_rod_baited", {
|
|
||||||
description = "Baited Pro Fishing Rod",
|
|
||||||
inventory_image = "caverealms_angler_rod_baited.png",
|
|
||||||
wield_image = "caverealms_angler_rod_weild.png",
|
|
||||||
stack_max = 1,
|
|
||||||
liquids_pointable = true,
|
|
||||||
|
|
||||||
on_use = function (itemstack, user, pointed_thing)
|
|
||||||
|
|
||||||
if pointed_thing.type ~= "node" then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local node = minetest.get_node(pointed_thing.under).name
|
|
||||||
|
|
||||||
if (node == "default:water_source"
|
|
||||||
or node == "default:river_water_source")
|
|
||||||
and math.random(1, 100) < 35 then
|
|
||||||
|
|
||||||
local type = fish[math.random(1, #fish)][1]
|
|
||||||
local inv = user:get_inventory()
|
|
||||||
|
|
||||||
if inv:room_for_item("main", {name = type}) then
|
|
||||||
|
|
||||||
inv:add_item("main", {name = type})
|
|
||||||
|
|
||||||
if (math.random() < 0.6) then
|
|
||||||
return ItemStack("caverealms:angler_rod_baited")
|
|
||||||
else
|
|
||||||
return ItemStack("caverealms:angler_rod")
|
|
||||||
end
|
|
||||||
else
|
|
||||||
minetest.chat_send_player(user:get_player_name(),
|
|
||||||
"Inventory full, Fish Got Away!")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "shapeless",
|
|
||||||
output = "caverealms:angler_rod_baited",
|
|
||||||
recipe = {"caverealms:angler_rod", "caverealms:glow_bait"},
|
|
||||||
})
|
|
||||||
end
|
|
|
@ -1 +0,0 @@
|
||||||
A mod for Minetest to add underground realms.
|
|
|
@ -1,19 +0,0 @@
|
||||||
Biome #, Biome name, "floor node"
|
|
||||||
|
|
||||||
|
|
||||||
0, None
|
|
||||||
1, Moss, "caverealms:stone_with_moss"
|
|
||||||
2, Fungal, "caverealms:stone_with_lichen"
|
|
||||||
3, Algae, "caverealms:stone_with_algae"
|
|
||||||
4, Glaciated, "caverealms:thin_ice"
|
|
||||||
|
|
||||||
The following are "deep realms"
|
|
||||||
|
|
||||||
5, Deep Glaciated, "default:ice"
|
|
||||||
6, DM, "caverealms:hot_cobble"
|
|
||||||
7, Salt Crystal, "caverealms:stone_with_salt"
|
|
||||||
8, Glow Obsidian, "caverealms:glow_obsidian"
|
|
||||||
OR "caverealms:glow_obsidian2"
|
|
||||||
9, Coal, "default:coalblock"
|
|
||||||
OR "caverealms:coal_dust"
|
|
||||||
OR "default:desert_sand"
|
|
|
@ -1,16 +0,0 @@
|
||||||
mobs:spawn({
|
|
||||||
name = "mobs_monster:dungeon_master",
|
|
||||||
nodes = {"caverealms:hot_cobble"},
|
|
||||||
max_light = 12,
|
|
||||||
min_light = 0,
|
|
||||||
chance = 7000,
|
|
||||||
active_object_count = 2,
|
|
||||||
max_height = -8000,
|
|
||||||
on_spawn = function(self, pos)
|
|
||||||
self.hp_max = 70
|
|
||||||
self.health = 70
|
|
||||||
self.damage = 5
|
|
||||||
self.shoot_interval = 1.5
|
|
||||||
self.dogshoot_switch = 0
|
|
||||||
end
|
|
||||||
})
|
|
|
@ -1,292 +0,0 @@
|
||||||
local H_LAG = caverealms.config.h_lag --15 --max height for stalagmites
|
|
||||||
local H_LAC = caverealms.config.h_lac --20 --...stalactites
|
|
||||||
local H_CRY = caverealms.config.h_cry --9 --max height of glow crystals
|
|
||||||
local H_CLAC = caverealms.config.h_clac --13 --max height of glow crystal stalactites
|
|
||||||
|
|
||||||
function caverealms:above_solid(x,y,z,area,data)
|
|
||||||
local c_air = minetest.get_content_id("air")
|
|
||||||
|
|
||||||
local ai = area:index(x,y+1,z-3)
|
|
||||||
if data[ai] == c_air then
|
|
||||||
return false
|
|
||||||
else
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function caverealms:below_solid(x,y,z,area,data)
|
|
||||||
local c_air = minetest.get_content_id("air")
|
|
||||||
|
|
||||||
local ai = area:index(x,y-1,z-3)
|
|
||||||
if data[ai] == c_air then
|
|
||||||
return false
|
|
||||||
else
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
--stalagmite spawner
|
|
||||||
function caverealms:stalagmite(x,y,z, area, data)
|
|
||||||
|
|
||||||
if not caverealms:below_solid(x,y,z,area,data) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
--contest ids
|
|
||||||
local c_stone = minetest.get_content_id("default:stone")
|
|
||||||
|
|
||||||
local top = math.random(6,H_LAG) --grab a random height for the stalagmite
|
|
||||||
for j = 0, top do --y
|
|
||||||
for k = -3, 3 do
|
|
||||||
for l = -3, 3 do
|
|
||||||
if j == 0 then
|
|
||||||
if k*k + l*l <= 9 then
|
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
|
||||||
data[vi] = c_stone
|
|
||||||
end
|
|
||||||
elseif j <= top/5 then
|
|
||||||
if k*k + l*l <= 4 then
|
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
|
||||||
data[vi] = c_stone
|
|
||||||
end
|
|
||||||
elseif j <= top/5 * 3 then
|
|
||||||
if k*k + l*l <= 1 then
|
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
|
||||||
data[vi] = c_stone
|
|
||||||
end
|
|
||||||
else
|
|
||||||
local vi = area:index(x, y+j, z-3)
|
|
||||||
data[vi] = c_stone
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
--stalactite spawner
|
|
||||||
function caverealms:stalactite(x,y,z, area, data)
|
|
||||||
|
|
||||||
if not caverealms:above_solid(x,y,z,area,data) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
--contest ids
|
|
||||||
local c_stone = minetest.get_content_id("default:stone")--("caverealms:limestone")
|
|
||||||
|
|
||||||
local bot = math.random(-H_LAC, -6) --grab a random height for the stalagmite
|
|
||||||
for j = bot, 0 do --y
|
|
||||||
for k = -3, 3 do
|
|
||||||
for l = -3, 3 do
|
|
||||||
if j >= -1 then
|
|
||||||
if k*k + l*l <= 9 then
|
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
|
||||||
data[vi] = c_stone
|
|
||||||
end
|
|
||||||
elseif j >= bot/5 then
|
|
||||||
if k*k + l*l <= 4 then
|
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
|
||||||
data[vi] = c_stone
|
|
||||||
end
|
|
||||||
elseif j >= bot/5 * 3 then
|
|
||||||
if k*k + l*l <= 1 then
|
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
|
||||||
data[vi] = c_stone
|
|
||||||
end
|
|
||||||
else
|
|
||||||
local vi = area:index(x, y+j, z-3)
|
|
||||||
data[vi] = c_stone
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
--glowing crystal stalagmite spawner
|
|
||||||
function caverealms:crystal_stalagmite(x,y,z, area, data, ore, crystal, base)
|
|
||||||
|
|
||||||
if not caverealms:below_solid(x,y,z,area,data) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
--contest ids
|
|
||||||
local c_stone = minetest.get_content_id("default:stone")
|
|
||||||
|
|
||||||
local nid_a = ore -- ore
|
|
||||||
local nid_b = crystal -- crystal
|
|
||||||
local nid_s = base or c_stone --base --stone base, will be rewritten to ice in certain biomes
|
|
||||||
|
|
||||||
local top = math.random(5,H_CRY) --grab a random height for the stalagmite
|
|
||||||
for j = 0, top do --y
|
|
||||||
for k = -3, 3 do
|
|
||||||
for l = -3, 3 do
|
|
||||||
if j == 0 then
|
|
||||||
if k*k + l*l <= 9 then
|
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
|
||||||
data[vi] = nid_s
|
|
||||||
end
|
|
||||||
elseif j <= top/5 then
|
|
||||||
if k*k + l*l <= 4 then
|
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
|
||||||
data[vi] = nid_a
|
|
||||||
end
|
|
||||||
elseif j <= top/5 * 3 then
|
|
||||||
if k*k + l*l <= 1 then
|
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
|
||||||
data[vi] = nid_b
|
|
||||||
end
|
|
||||||
else
|
|
||||||
local vi = area:index(x, y+j, z-3)
|
|
||||||
data[vi] = nid_b
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
--crystal stalactite spawner
|
|
||||||
function caverealms:crystal_stalactite(x,y,z, area, data, ore, cry, base)
|
|
||||||
|
|
||||||
if not caverealms:above_solid(x,y,z,area,data) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
--contest ids
|
|
||||||
local c_stone = minetest.get_content_id("default:stone")
|
|
||||||
|
|
||||||
local nid_a = ore
|
|
||||||
local nid_b = cry
|
|
||||||
local nid_s = base or c_stone --stone base, will be rewritten to ice in certain biomes
|
|
||||||
|
|
||||||
local bot = math.random(-H_CLAC, -6) --grab a random height for the stalagmite
|
|
||||||
for j = bot, 0 do --y
|
|
||||||
for k = -3, 3 do
|
|
||||||
for l = -3, 3 do
|
|
||||||
if j >= -1 then
|
|
||||||
if k*k + l*l <= 9 then
|
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
|
||||||
data[vi] = nid_s
|
|
||||||
end
|
|
||||||
elseif j >= bot/5 then
|
|
||||||
if k*k + l*l <= 4 then
|
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
|
||||||
data[vi] = nid_a
|
|
||||||
end
|
|
||||||
elseif j >= bot/5 * 3 then
|
|
||||||
if k*k + l*l <= 1 then
|
|
||||||
local vi = area:index(x+k, y+j, z+l-3)
|
|
||||||
data[vi] = nid_b
|
|
||||||
end
|
|
||||||
else
|
|
||||||
local vi = area:index(x, y+j, z-3)
|
|
||||||
data[vi] = nid_b
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
--glowing crystal stalagmite spawner
|
|
||||||
function caverealms:salt_stalagmite(x,y,z, area, data)
|
|
||||||
|
|
||||||
if not caverealms:below_solid(x,y,z,area,data) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
--contest ids
|
|
||||||
-- local c_stone = minetest.get_content_id("default:stone")
|
|
||||||
local c_salt = minetest.get_content_id("caverealms:salt_crystal")
|
|
||||||
local c_salt_stone = minetest.get_content_id("caverealms:stone_with_salt")
|
|
||||||
|
|
||||||
local scale = math.random(2, 4)
|
|
||||||
if scale == 2 then
|
|
||||||
for j = -3, 3 do
|
|
||||||
for k = -3, 3 do
|
|
||||||
local vi = area:index(x+j, y, z+k)
|
|
||||||
data[vi] = c_salt_stone
|
|
||||||
if math.abs(j) ~= 3 and math.abs(k) ~= 3 then
|
|
||||||
local vi = area:index(x+j, y+1, z+k)
|
|
||||||
data[vi] = c_salt_stone
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
for j = -4, 4 do
|
|
||||||
for k = -4, 4 do
|
|
||||||
local vi = area:index(x+j, y, z+k)
|
|
||||||
data[vi] = c_salt_stone
|
|
||||||
if math.abs(j) ~= 4 and math.abs(k) ~= 4 then
|
|
||||||
local vi = area:index(x+j, y+1, z+k)
|
|
||||||
data[vi] = c_salt_stone
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
for j = 2, scale + 2 do --y
|
|
||||||
for k = -2, scale - 2 do
|
|
||||||
for l = -2, scale - 2 do
|
|
||||||
local vi = area:index(x+k, y+j, z+l)
|
|
||||||
data[vi] = c_salt -- make cube
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
--function to create giant 'shrooms
|
|
||||||
function caverealms:giant_shroom(x, y, z, area, data)
|
|
||||||
|
|
||||||
if not caverealms:below_solid(x,y,z,area,data) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local c_cap
|
|
||||||
local c_stem
|
|
||||||
|
|
||||||
--as usual, grab the content ID's
|
|
||||||
if minetest.get_modpath("ethereal") then
|
|
||||||
c_stem = minetest.get_content_id("ethereal:mushroom_trunk")
|
|
||||||
c_cap = minetest.get_content_id("ethereal:mushroom")
|
|
||||||
else
|
|
||||||
c_stem = minetest.get_content_id("caverealms:mushroom_stem")
|
|
||||||
c_cap = minetest.get_content_id("caverealms:mushroom_cap")
|
|
||||||
end
|
|
||||||
|
|
||||||
local c_gills = minetest.get_content_id("caverealms:mushroom_gills")
|
|
||||||
|
|
||||||
z = z - 5
|
|
||||||
--cap
|
|
||||||
for k = -5, 5 do
|
|
||||||
for l = -5, 5 do
|
|
||||||
if k*k + l*l <= 25 then
|
|
||||||
local vi = area:index(x+k, y+5, z+l)
|
|
||||||
data[vi] = c_cap
|
|
||||||
end
|
|
||||||
if k*k + l*l <= 16 then
|
|
||||||
local vi = area:index(x+k, y+6, z+l)
|
|
||||||
data[vi] = c_cap
|
|
||||||
vi = area:index(x+k, y+5, z+l)
|
|
||||||
data[vi] = c_gills
|
|
||||||
end
|
|
||||||
if k*k + l*l <= 9 then
|
|
||||||
local vi = area:index(x+k, y+7, z+l)
|
|
||||||
data[vi] = c_cap
|
|
||||||
end
|
|
||||||
if k*k + l*l <= 4 then
|
|
||||||
local vi = area:index(x+k, y+8, z+l)
|
|
||||||
data[vi] = c_cap
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
--stem
|
|
||||||
for j = 0, 5 do
|
|
||||||
for k = -1,1 do
|
|
||||||
local vi = area:index(x+k, y+j, z)
|
|
||||||
data[vi] = c_stem
|
|
||||||
if k == 0 then
|
|
||||||
local ai = area:index(x, y+j, z+1)
|
|
||||||
data[ai] = c_stem
|
|
||||||
ai = area:index(x, y+j, z-1)
|
|
||||||
data[ai] = c_stem
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,481 +0,0 @@
|
||||||
--[[
|
|
||||||
minetest.register_node("caverealms:hotspring_seed", {
|
|
||||||
description = "Hotspring seed",
|
|
||||||
drawtype = "node",
|
|
||||||
tiles = {"default_mese_block.png"},
|
|
||||||
groups = {cracky=3,},
|
|
||||||
})
|
|
||||||
]]
|
|
||||||
|
|
||||||
minetest.register_node("caverealms:sulphur_deposit_1", {
|
|
||||||
description = "Sulphur",
|
|
||||||
paramtype = "light",
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
drawtype = "nodebox",
|
|
||||||
tiles = {"default_silver_sandstone.png^[colorize:yellow:140"},
|
|
||||||
-- drops = {},
|
|
||||||
node_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{-.3, -.5, -.3, -0.1, -.45, -0.1},
|
|
||||||
{.3, -.5, .3, 0.1, -.45, 0.1,},
|
|
||||||
{-.3, -.5, .3, -0.1, -.45, 0.1},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
groups = {cracky=3, geode_wall = 1 },
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node("caverealms:fumarole", {
|
|
||||||
description = "Fumarole",
|
|
||||||
paramtype = "light",
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
drawtype = "nodebox",
|
|
||||||
tiles = {"default_stone.png^[colorize:black:10"},
|
|
||||||
drop = 'default:cobble',
|
|
||||||
damage_per_second = 3,
|
|
||||||
node_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{-.4, -.5, -.4, 0.3, -.4, 0.3},
|
|
||||||
{-.3+.05, -.4, -.3+.05, 0.2+.05, -.3, 0.2+.05},
|
|
||||||
{-.2+.08, -.3, -.2+.08, 0.1+.08, -.2, 0.1+.08},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
groups = {cracky=3, },
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_abm({
|
|
||||||
nodenames = "caverealms:fumarole",
|
|
||||||
chance = 1,
|
|
||||||
interval = 20,
|
|
||||||
action = function(pos, node)
|
|
||||||
pos.y = pos.y + 0
|
|
||||||
minetest.add_particlespawner({
|
|
||||||
amount = 20,
|
|
||||||
time = 20,
|
|
||||||
minpos = pos,
|
|
||||||
maxpos = pos,
|
|
||||||
minvel = {x=-0.1, y=.6, z=-0.1},
|
|
||||||
maxvel = {x=0.1, y=1.6, z=0.1},
|
|
||||||
minacc = {x=-0.1, y=.1, z=-0.1},
|
|
||||||
maxacc = {x=0.1, y=.1, z=0.1},
|
|
||||||
minexptime = 2.5,
|
|
||||||
maxexptime = 4.5,
|
|
||||||
minsize = 4.2,
|
|
||||||
maxsize = 5.2,
|
|
||||||
texture = "tnt_smoke.png",
|
|
||||||
})
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node("caverealms:hotspring_water_source", {
|
|
||||||
description = "Hotspring Water Source",
|
|
||||||
drawtype = "liquid",
|
|
||||||
light_source = 7,
|
|
||||||
tiles = {
|
|
||||||
{
|
|
||||||
name = "default_river_water_source_animated.png^[colorize:yellow:50",
|
|
||||||
backface_culling = false,
|
|
||||||
animation = {
|
|
||||||
type = "vertical_frames",
|
|
||||||
aspect_w = 16,
|
|
||||||
aspect_h = 16,
|
|
||||||
length = 2.0,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "default_river_water_source_animated.png^[colorize:yellow:50",
|
|
||||||
backface_culling = true,
|
|
||||||
animation = {
|
|
||||||
type = "vertical_frames",
|
|
||||||
aspect_w = 16,
|
|
||||||
aspect_h = 16,
|
|
||||||
length = 2.0,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
alpha = 160,
|
|
||||||
paramtype = "light",
|
|
||||||
walkable = false,
|
|
||||||
pointable = false,
|
|
||||||
diggable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
is_ground_content = false,
|
|
||||||
drop = "",
|
|
||||||
drowning = 1,
|
|
||||||
liquidtype = "source",
|
|
||||||
liquid_alternative_flowing = "caverealms:hotspring_water_flowing",
|
|
||||||
liquid_alternative_source = "caverealms:hotspring_water_source",
|
|
||||||
liquid_viscosity = 1,
|
|
||||||
-- Not renewable to avoid horizontal spread of water sources in sloping
|
|
||||||
-- rivers that can cause water to overflow riverbanks and cause floods.
|
|
||||||
-- River water source is instead made renewable by the 'force renew'
|
|
||||||
-- option used in the 'bucket' mod by the river water bucket.
|
|
||||||
liquid_renewable = false,
|
|
||||||
liquid_range = 2,
|
|
||||||
damage_per_second = 1,
|
|
||||||
post_effect_color = {a = 103, r = 60, g = 96, b = 90},
|
|
||||||
groups = {water = 3, liquid = 3, cools_lava = 1},
|
|
||||||
sounds = default.node_sound_water_defaults(),
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("caverealms:hotspring_water_flowing", {
|
|
||||||
description = "Flowing Hotspring Water",
|
|
||||||
drawtype = "flowingliquid",
|
|
||||||
tiles = {"default_river_water.png^[colorize:yellow:50"},
|
|
||||||
special_tiles = {
|
|
||||||
{
|
|
||||||
name = "default_river_water_flowing_animated.png^[colorize:yellow:50",
|
|
||||||
backface_culling = false,
|
|
||||||
animation = {
|
|
||||||
type = "vertical_frames",
|
|
||||||
aspect_w = 16,
|
|
||||||
aspect_h = 16,
|
|
||||||
length = 0.8,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "default_river_water_flowing_animated.png^[colorize:yellow:50",
|
|
||||||
backface_culling = true,
|
|
||||||
animation = {
|
|
||||||
type = "vertical_frames",
|
|
||||||
aspect_w = 16,
|
|
||||||
aspect_h = 16,
|
|
||||||
length = 0.8,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
alpha = 160,
|
|
||||||
paramtype = "light",
|
|
||||||
paramtype2 = "flowingliquid",
|
|
||||||
walkable = false,
|
|
||||||
pointable = false,
|
|
||||||
diggable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
is_ground_content = false,
|
|
||||||
drop = "",
|
|
||||||
drowning = 1,
|
|
||||||
liquidtype = "flowing",
|
|
||||||
liquid_alternative_flowing = "caverealms:hotspring_water_flowing",
|
|
||||||
liquid_alternative_source = "caverealms:hotspring_water_source",
|
|
||||||
liquid_viscosity = 1,
|
|
||||||
liquid_renewable = false,
|
|
||||||
liquid_range = 2,
|
|
||||||
damage_per_second = 1,
|
|
||||||
post_effect_color = {a = 103, r = 60, g = 96, b = 90},
|
|
||||||
groups = {water = 3, liquid = 3, not_in_creative_inventory = 1,
|
|
||||||
cools_lava = 1},
|
|
||||||
sounds = default.node_sound_water_defaults(),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node("caverealms:scalding_stone_1", {
|
|
||||||
description = "Scalding Stone",
|
|
||||||
tiles = {"default_stone.png^[colorize:orange:120"},
|
|
||||||
groups = {cracky = 3, scalding_stone = 1},
|
|
||||||
drop = 'default:cobble',
|
|
||||||
damage_per_second = 1,
|
|
||||||
sounds = default.node_sound_stone_defaults(),
|
|
||||||
})
|
|
||||||
minetest.register_node("caverealms:scalding_stone_2", {
|
|
||||||
description = "Scalding Stone",
|
|
||||||
tiles = {"default_stone.png^[colorize:yellow:80"},
|
|
||||||
groups = {cracky = 3, scalding_stone = 1},
|
|
||||||
drop = 'default:cobble',
|
|
||||||
damage_per_second = 1,
|
|
||||||
sounds = default.node_sound_stone_defaults(),
|
|
||||||
})
|
|
||||||
minetest.register_node("caverealms:scalding_stone_3", {
|
|
||||||
description = "Scalding Stone",
|
|
||||||
tiles = {"default_desert_stone.png^[colorize:orange:120"},
|
|
||||||
groups = {cracky = 3, scalding_stone = 1},
|
|
||||||
drop = 'default:cobble',
|
|
||||||
damage_per_second = 1,
|
|
||||||
sounds = default.node_sound_stone_defaults(),
|
|
||||||
})
|
|
||||||
minetest.register_node("caverealms:scalding_stone_4", {
|
|
||||||
description = "Scalding Stone",
|
|
||||||
tiles = {"default_desert_stone.png^[colorize:yellow:80"},
|
|
||||||
groups = {cracky = 3, scalding_stone = 1},
|
|
||||||
drop = 'default:cobble',
|
|
||||||
damage_per_second = 1,
|
|
||||||
sounds = default.node_sound_stone_defaults(),
|
|
||||||
})
|
|
||||||
minetest.register_node("caverealms:scalding_stone_5", {
|
|
||||||
description = "Scalding Stone",
|
|
||||||
tiles = {"default_stone.png^[colorize:red:80"},
|
|
||||||
groups = {cracky = 3, scalding_stone = 1},
|
|
||||||
drop = 'default:cobble',
|
|
||||||
damage_per_second = 1,
|
|
||||||
sounds = default.node_sound_stone_defaults(),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
local scalding_stones = {
|
|
||||||
minetest.get_content_id("caverealms:scalding_stone_1"),
|
|
||||||
minetest.get_content_id("caverealms:scalding_stone_2"),
|
|
||||||
minetest.get_content_id("caverealms:scalding_stone_3"),
|
|
||||||
minetest.get_content_id("caverealms:scalding_stone_4"),
|
|
||||||
minetest.get_content_id("caverealms:scalding_stone_5"),
|
|
||||||
}
|
|
||||||
|
|
||||||
local scalding_stone_names = {
|
|
||||||
"caverealms:scalding_stone_1",
|
|
||||||
"caverealms:scalding_stone_2",
|
|
||||||
"caverealms:scalding_stone_3",
|
|
||||||
"caverealms:scalding_stone_4",
|
|
||||||
"caverealms:scalding_stone_5",
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
local function dist3(a, b)
|
|
||||||
local x = a.x - b.x
|
|
||||||
local y = a.y - b.y
|
|
||||||
local z = a.z - b.z
|
|
||||||
return math.sqrt(x*x + y*y + z*z)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- local function spawn_hotspring(pos, size)
|
|
||||||
function caverealms:spawn_hotspring(px,py,pz, area, data, size)
|
|
||||||
|
|
||||||
local c_hotspring = minetest.get_content_id("caverealms:hotspring_water_source")
|
|
||||||
|
|
||||||
|
|
||||||
local r = size
|
|
||||||
|
|
||||||
local r2 = math.ceil(r+1)
|
|
||||||
|
|
||||||
for x = px-r2,px+r2,1 do
|
|
||||||
for y = -r2,r2,1 do
|
|
||||||
for z = pz-r2,pz+r2,1 do
|
|
||||||
local p = {x=x, y=py+y, z=z}
|
|
||||||
local p_squash = {x=x, y=py + (y*2), z=z}
|
|
||||||
local d = dist3(p_squash, {x=px, y=py, z=pz})
|
|
||||||
|
|
||||||
d = d + math.random() * .5
|
|
||||||
|
|
||||||
local dd = d - r
|
|
||||||
|
|
||||||
local n = minetest.get_node(p)
|
|
||||||
if n.name ~= "air" then
|
|
||||||
if dd <= -.5 then
|
|
||||||
local vi = area:index(x, py+y, z)
|
|
||||||
data[vi] = c_hotspring
|
|
||||||
elseif dd < 1.5 then
|
|
||||||
local vi = area:index(x, py+y, z)
|
|
||||||
data[vi] = scalding_stones[math.random(#scalding_stones)]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_abm({
|
|
||||||
nodenames = "caverealms:hotspring_water_source",
|
|
||||||
chance = 60,
|
|
||||||
interval = 5,
|
|
||||||
action = function(pos, node)
|
|
||||||
minetest.add_particlespawner({
|
|
||||||
amount = 1,
|
|
||||||
time = 1,
|
|
||||||
minpos = pos,
|
|
||||||
maxpos = pos,
|
|
||||||
minvel = {x=-0.1, y=.6, z=-0.1},
|
|
||||||
maxvel = {x=0.1, y=1.6, z=0.1},
|
|
||||||
minacc = {x=-0.1, y=.1, z=-0.1},
|
|
||||||
maxacc = {x=0.1, y=.1, z=0.1},
|
|
||||||
minexptime = 3.5,
|
|
||||||
maxexptime = 6.5,
|
|
||||||
minsize = 10.2,
|
|
||||||
maxsize = 12.2,
|
|
||||||
texture = "tnt_smoke.png",
|
|
||||||
})
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
local function random_pos(pos, dist)
|
|
||||||
local p = {
|
|
||||||
x=pos.x + math.random(-dist, dist),
|
|
||||||
y=pos.y + dist,
|
|
||||||
z=pos.z + math.random(-dist, dist),
|
|
||||||
}
|
|
||||||
|
|
||||||
while p.y > pos.y - dist do
|
|
||||||
local n = minetest.get_node(p)
|
|
||||||
if n.name ~= "air" and n.name ~= "ignore" then
|
|
||||||
if n.name == "default:water_source" or n.name == "default:water_flowing" then
|
|
||||||
return nil
|
|
||||||
end
|
|
||||||
|
|
||||||
return p
|
|
||||||
end
|
|
||||||
|
|
||||||
p.y = p.y - 1
|
|
||||||
end
|
|
||||||
|
|
||||||
return nil
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- life dies near hotsprings
|
|
||||||
minetest.register_abm({
|
|
||||||
nodenames = "group:flora",
|
|
||||||
neighbors = {"group:scalding_stone"},
|
|
||||||
chance = 10,
|
|
||||||
interval = 15,
|
|
||||||
action = function(pos, node)
|
|
||||||
minetest.set_node(pos, {name="air"})
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
-- life dies near hotsprings
|
|
||||||
minetest.register_abm({
|
|
||||||
nodenames = "group:flora",
|
|
||||||
neighbors = {"group:scalding_stone"},
|
|
||||||
chance = 80,
|
|
||||||
interval = 15,
|
|
||||||
action = function(pos, node)
|
|
||||||
local p = minetest.find_node_near(pos, 15, {"group:flora", "group:sapling", "group:leaves", "group:leafdecay"})
|
|
||||||
if p then
|
|
||||||
minetest.set_node(p, {name="air"})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
-- minerals accumulate
|
|
||||||
minetest.register_abm({
|
|
||||||
nodenames = "group:scalding_stone",
|
|
||||||
neighbors = {"air"},
|
|
||||||
chance = 180,
|
|
||||||
interval = 30,
|
|
||||||
action = function(pos, node)
|
|
||||||
-- TODO: place sulphur on sides too
|
|
||||||
pos.y = pos.y + 1
|
|
||||||
local n = minetest.get_node(pos)
|
|
||||||
if n.name == "air" then
|
|
||||||
minetest.set_node(pos, {name="caverealms:sulphur_deposit_1"})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- water scalds stone
|
|
||||||
minetest.register_abm({
|
|
||||||
nodenames = {"group:stone", "group:dirt"},
|
|
||||||
neighbors = {"caverealms:hotspring_water_source", "caverealms:hotspring_water_flowing"},
|
|
||||||
chance = 80,
|
|
||||||
interval = 10,
|
|
||||||
action = function(pos, node)
|
|
||||||
minetest.set_node(pos, {name=scalding_stone_names[math.random(#scalding_stone_names)]})
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
-- stones scald dirt
|
|
||||||
minetest.register_abm({
|
|
||||||
nodenames = "group:soil",
|
|
||||||
neighbors = {"group:scalding_stone"},
|
|
||||||
chance = 80,
|
|
||||||
interval = 10,
|
|
||||||
action = function(pos, node)
|
|
||||||
minetest.set_node(pos, {name="default:stone"})
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- water melts snow
|
|
||||||
minetest.register_abm({
|
|
||||||
nodenames = {"default:snow", "default:snowblock"},
|
|
||||||
neighbors = {"caverealms:hotspring_water_source", "caverealms:hotspring_water_flowing"},
|
|
||||||
chance = 80,
|
|
||||||
interval = 10,
|
|
||||||
action = function(pos, node)
|
|
||||||
minetest.set_node(pos, {name="air"})
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--[[ add hotspring seeds to mapgen
|
|
||||||
minetest.register_decoration({
|
|
||||||
name = "caverealms:hotspring_seed",
|
|
||||||
deco_type = "simple",
|
|
||||||
place_on = {"default:dirt_with_grass", "default:dirt_with_snow", "default:snowblock",
|
|
||||||
"default:silver_sand", "default:sand", "default:desert_sand"
|
|
||||||
},
|
|
||||||
place_offset_y = 1,
|
|
||||||
sidelen = 16,
|
|
||||||
noise_params = {
|
|
||||||
offset = -0.010,
|
|
||||||
scale = 0.01,
|
|
||||||
spread = {x = 200, y = 200, z = 200},
|
|
||||||
seed = 65645647,
|
|
||||||
octaves = 3,
|
|
||||||
persist = 0.7,
|
|
||||||
},
|
|
||||||
biomes = {"grassland", "snowy_grassland", "tundra", "taiga", "desert", "cold_desert", "sandstone_desert"},
|
|
||||||
y_max = 1000,
|
|
||||||
y_min = 5,
|
|
||||||
place_offset_y = 1,
|
|
||||||
decoration = "caverealms:hotspring_seed",
|
|
||||||
flags = "force_placement",
|
|
||||||
})
|
|
||||||
]]
|
|
||||||
|
|
||||||
-- hotsprings boil rivers
|
|
||||||
minetest.register_abm({
|
|
||||||
nodenames = {"default:river_water_source"},
|
|
||||||
neighbors = {"caverealms:hotspring_water_source", "caverealms:hotspring_water_flowing"},
|
|
||||||
chance = 15,
|
|
||||||
interval = 5,
|
|
||||||
action = function(pos, node)
|
|
||||||
|
|
||||||
-- only spread downhill
|
|
||||||
local hw = minetest.find_nodes_in_area(
|
|
||||||
{x=pos.x-1, y=pos.y, z=pos.z-1},
|
|
||||||
{x=pos.x+1, y=pos.y+1, z=pos.z+1},
|
|
||||||
{"caverealms:hotspring_water_source", "caverealms:hotspring_water_flowing"})
|
|
||||||
|
|
||||||
if not hw or #hw == 0 then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- don't spread under rivers
|
|
||||||
pos.y = pos.y + 1
|
|
||||||
local n = minetest.get_node(pos)
|
|
||||||
if n.name == "default:river_water_source" or n.name == "default:river_water_flowing" then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
pos.y = pos.y - 1
|
|
||||||
|
|
||||||
minetest.set_node(pos, {name="caverealms:hotspring_water_source"})
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
|
@ -1,868 +0,0 @@
|
||||||
caverealms = {} --create a container for functions and constants
|
|
||||||
|
|
||||||
local function table_contains(tbl, val)
|
|
||||||
for _, v in pairs(tbl) do
|
|
||||||
if v == val then
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
--grab a shorthand for the filepath of the mod
|
|
||||||
local modpath = minetest.get_modpath(minetest.get_current_modname())
|
|
||||||
--[[
|
|
||||||
-- debug privileges
|
|
||||||
minetest.register_on_joinplayer(function(player)
|
|
||||||
local name = player:get_player_name()
|
|
||||||
|
|
||||||
local privs = minetest.get_player_privs(name)
|
|
||||||
|
|
||||||
privs.fly = true
|
|
||||||
privs.fast = true
|
|
||||||
privs.teleport = true
|
|
||||||
privs.noclip = true
|
|
||||||
minetest.set_player_privs(name, privs)
|
|
||||||
|
|
||||||
local p = player:get_pos()
|
|
||||||
if p.y > -100 then
|
|
||||||
player:set_pos({x=0, y=-20000, z= 0})
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
--]]
|
|
||||||
|
|
||||||
--load companion lua files
|
|
||||||
dofile(modpath .. "/config.lua") --configuration file; holds various constants
|
|
||||||
dofile(modpath .. "/crafting.lua") --crafting recipes
|
|
||||||
dofile(modpath .. "/nodes.lua") --node definitions
|
|
||||||
dofile(modpath .. "/functions.lua") --function definitions
|
|
||||||
dofile(modpath .. "/plants.lua")
|
|
||||||
dofile(modpath .. "/hotsprings.lua")
|
|
||||||
|
|
||||||
if minetest.get_modpath("mobs_monster") then
|
|
||||||
if caverealms.config.dm_spawn == true then
|
|
||||||
dofile(modpath .. "/dungeon_master.lua") --special DMs for DM's Lair biome
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Parameters
|
|
||||||
|
|
||||||
local YMIN = caverealms.config.ymin -- Approximate realm limits.
|
|
||||||
local YMAX = caverealms.config.ymax
|
|
||||||
local TCAVE = caverealms.config.tcave --0.5 -- Cave threshold. 1 = small rare caves, 0.5 = 1/3rd ground volume, 0 = 1/2 ground volume
|
|
||||||
local BLEND = 128 -- Cave blend distance near YMIN, YMAX
|
|
||||||
|
|
||||||
local STAGCHA = caverealms.config.stagcha --0.002 --chance of stalagmites
|
|
||||||
local STALCHA = caverealms.config.stalcha --0.003 --chance of stalactites
|
|
||||||
local CRYSTAL = caverealms.config.crystal --0.0004 --chance of glow crystal formations
|
|
||||||
local SALTCRYCHA = caverealms.config.salt_crystal --0.007 --chance of salt crystal cubes
|
|
||||||
local GEMCHA = caverealms.config.gemcha --0.03 --chance of small glow gems
|
|
||||||
local HOTSCHA = 0.009 --chance of hotsprings
|
|
||||||
local MUSHCHA = caverealms.config.mushcha --0.04 --chance of mushrooms
|
|
||||||
local MYCCHA = caverealms.config.myccha --0.03 --chance of mycena mushrooms
|
|
||||||
local WORMCHA = caverealms.config.wormcha --0.03 --chance of glow worms
|
|
||||||
local GIANTCHA = caverealms.config.giantcha --0.001 -- chance of giant mushrooms
|
|
||||||
local ICICHA = caverealms.config.icicha --0.035 -- chance of icicles
|
|
||||||
local FLACHA = caverealms.config.flacha --0.04 --chance of constant flames
|
|
||||||
|
|
||||||
local DM_TOP = caverealms.config.dm_top -- -4000 --level at which Dungeon Master Realms start to appear
|
|
||||||
local DM_BOT = caverealms.config.dm_bot -- -5000 --level at which "" ends
|
|
||||||
local DEEP_CAVE = caverealms.config.deep_cave -- -7000 --level at which deep cave biomes take over
|
|
||||||
|
|
||||||
-- 3D noise for caves
|
|
||||||
|
|
||||||
local np_cave = {
|
|
||||||
offset = 0,
|
|
||||||
scale = 1,
|
|
||||||
spread = { x = 512, y = 256, z = 512 }, -- squashed 2:1
|
|
||||||
seed = 59033,
|
|
||||||
octaves = 6,
|
|
||||||
persist = 0.63,
|
|
||||||
}
|
|
||||||
|
|
||||||
-- 3D noise for wave
|
|
||||||
|
|
||||||
local np_wave = {
|
|
||||||
offset = 0,
|
|
||||||
scale = 1,
|
|
||||||
spread = { x = 256, y = 256, z = 256 },
|
|
||||||
seed = -400000000089,
|
|
||||||
octaves = 3,
|
|
||||||
persist = 0.67,
|
|
||||||
}
|
|
||||||
|
|
||||||
-- 2D noise for biome
|
|
||||||
|
|
||||||
local np_biome = {
|
|
||||||
offset = 0,
|
|
||||||
scale = 1,
|
|
||||||
spread = { x = 250, y = 250, z = 250 },
|
|
||||||
seed = 9130,
|
|
||||||
octaves = 3,
|
|
||||||
persist = 0.5,
|
|
||||||
}
|
|
||||||
|
|
||||||
-- 2D noise for biome
|
|
||||||
|
|
||||||
local np_biome_evil = {
|
|
||||||
offset = 0,
|
|
||||||
scale = 1,
|
|
||||||
spread = { x = 200, y = 200, z = 200 },
|
|
||||||
seed = 9130,
|
|
||||||
octaves = 3,
|
|
||||||
persist = 0.5,
|
|
||||||
}
|
|
||||||
|
|
||||||
local np_biome_wonder = {
|
|
||||||
offset = 0,
|
|
||||||
scale = 1,
|
|
||||||
spread = { x = 400, y = 400, z = 400 },
|
|
||||||
seed = 8943,
|
|
||||||
octaves = 2,
|
|
||||||
persist = 0.45,
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Stuff
|
|
||||||
|
|
||||||
subterrain = {}
|
|
||||||
|
|
||||||
local yblmin = YMIN + BLEND * 1.5
|
|
||||||
local yblmax = YMAX - BLEND * 1.5
|
|
||||||
|
|
||||||
-- On generated function
|
|
||||||
|
|
||||||
minetest.register_on_generated(function(minp, maxp, seed)
|
|
||||||
--if out of range of caverealms limits
|
|
||||||
if minp.y > YMAX or maxp.y < YMIN then
|
|
||||||
return --quit; otherwise, you'd have stalagmites all over the place
|
|
||||||
end
|
|
||||||
|
|
||||||
--easy reference to commonly used values
|
|
||||||
local t1 = os.clock()
|
|
||||||
local x1 = maxp.x
|
|
||||||
local y1 = maxp.y
|
|
||||||
local z1 = maxp.z
|
|
||||||
local x0 = minp.x
|
|
||||||
local y0 = minp.y
|
|
||||||
local z0 = minp.z
|
|
||||||
|
|
||||||
--print ("[caverealms] chunk minp ("..x0.." "..y0.." "..z0..")") --tell people you are generating a chunk
|
|
||||||
|
|
||||||
local vm, emin, emax = minetest.get_mapgen_object("voxelmanip")
|
|
||||||
local area = VoxelArea:new({ MinEdge = emin, MaxEdge = emax })
|
|
||||||
local data = vm:get_data()
|
|
||||||
local vparam2 = vm:get_param2_data()
|
|
||||||
|
|
||||||
--grab content IDs
|
|
||||||
local c_air = minetest.get_content_id("air")
|
|
||||||
local c_stone = minetest.get_content_id("default:stone")
|
|
||||||
local c_desertstone = minetest.get_content_id("default:desert_stone")
|
|
||||||
local c_sandstone = minetest.get_content_id("default:sandstone")
|
|
||||||
local c_obsidian = minetest.get_content_id("default:obsidian")
|
|
||||||
local c_sand = minetest.get_content_id("default:sand")
|
|
||||||
|
|
||||||
local c_water = minetest.get_content_id("default:water_source")
|
|
||||||
local c_lava = minetest.get_content_id("default:lava_source")
|
|
||||||
local c_iced = minetest.get_content_id("default:ice")
|
|
||||||
local c_ssand = minetest.get_content_id("default:silver_sand")
|
|
||||||
local c_thinice = minetest.get_content_id("caverealms:thin_ice")
|
|
||||||
local c_crystal = minetest.get_content_id("caverealms:glow_crystal")
|
|
||||||
local c_gem = minetest.get_content_id("caverealms:glow_gem")
|
|
||||||
local c_saltgem = minetest.get_content_id("caverealms:salt_gem")
|
|
||||||
print(c_saltgem)
|
|
||||||
|
|
||||||
local c_spike = minetest.get_content_id("caverealms:spike")
|
|
||||||
local c_moss = minetest.get_content_id("caverealms:stone_with_moss")
|
|
||||||
local c_lichen = minetest.get_content_id("caverealms:stone_with_lichen")
|
|
||||||
local c_algae = minetest.get_content_id("caverealms:stone_with_algae")
|
|
||||||
local c_salt = minetest.get_content_id("caverealms:stone_with_salt")
|
|
||||||
local c_hcobble = minetest.get_content_id("caverealms:hot_cobble")
|
|
||||||
local c_gobsidian = minetest.get_content_id("caverealms:glow_obsidian")
|
|
||||||
local c_gobsidian2 = minetest.get_content_id("caverealms:glow_obsidian_2")
|
|
||||||
local c_coalblock = minetest.get_content_id("default:coalblock")
|
|
||||||
local c_desand = minetest.get_content_id("default:desert_sand")
|
|
||||||
local c_coaldust = minetest.get_content_id("caverealms:coal_dust")
|
|
||||||
local c_fungus = minetest.get_content_id("caverealms:fungus")
|
|
||||||
local c_mycena = minetest.get_content_id("caverealms:mycena")
|
|
||||||
local c_worm_blue = minetest.get_content_id("caverealms:glow_worm")
|
|
||||||
local c_worm_green = minetest.get_content_id("caverealms:glow_worm_green")
|
|
||||||
local c_worm_red = minetest.get_content_id("caverealms:glow_worm_red")
|
|
||||||
local c_fire_vine = minetest.get_content_id("caverealms:fire_vine")
|
|
||||||
local c_iciu = minetest.get_content_id("caverealms:icicle_up")
|
|
||||||
local c_icid = minetest.get_content_id("caverealms:icicle_down")
|
|
||||||
local c_flame = minetest.get_content_id("caverealms:constant_flame")
|
|
||||||
local c_bflame = minetest.get_content_id("caverealms:constant_flame_blue")
|
|
||||||
local c_firefly = minetest.get_content_id("fireflies:firefly")
|
|
||||||
local c_bluefly = minetest.get_content_id("caverealms:butterfly_blue")
|
|
||||||
|
|
||||||
-- ethereal
|
|
||||||
--if minetest.get_modpath("ethereal") then
|
|
||||||
local c_bluegrass = minetest.get_content_id("ethereal:crystalgrass")
|
|
||||||
local c_greemush = minetest.get_content_id("ethereal:illumishroom2")
|
|
||||||
local c_redmush = minetest.get_content_id("ethereal:illumishroom")
|
|
||||||
--else
|
|
||||||
--end
|
|
||||||
|
|
||||||
--too_many_stones
|
|
||||||
--if minetest.get_modpath("too_many_stones") then
|
|
||||||
local c_torangecrys = minetest.get_content_id("too_many_stones:crocoite_crystal")
|
|
||||||
local c_tredcrys = minetest.get_content_id("too_many_stones:eudialite_crystal")
|
|
||||||
local c_fakesalt = minetest.get_content_id("too_many_stones:rose_quartz_crystal") --
|
|
||||||
local c_tyellocrys = minetest.get_content_id("too_many_stones:citrine_crystal")
|
|
||||||
local c_tsmokecrys = minetest.get_content_id("too_many_stones:smokey_quartz_crystal")
|
|
||||||
local c_tyellowcrys = minetest.get_content_id("too_many_stones:heliodor_crystal")
|
|
||||||
local c_tgreen1crys = minetest.get_content_id("too_many_stones:tourmaline_green_crystal")
|
|
||||||
local c_tgreen2crys = minetest.get_content_id("too_many_stones:prasiolite_crystal")
|
|
||||||
local c_fakeice1 = minetest.get_content_id("too_many_stones:celestine_crystal")
|
|
||||||
local c_fakeice2 = minetest.get_content_id("too_many_stones:moonstone_crystal")
|
|
||||||
local c_fakeice3 = minetest.get_content_id("too_many_stones:quartz_crystal")
|
|
||||||
print(c_fakeice3)
|
|
||||||
|
|
||||||
--else
|
|
||||||
--end
|
|
||||||
|
|
||||||
--everness
|
|
||||||
--if minetest.get_modpath("everness") then
|
|
||||||
local c_bluetwist = minetest.get_content_id("everness:twisted_crystal_grass")
|
|
||||||
local c_icevine = minetest.get_content_id("everness:lumabus_vine_1")
|
|
||||||
local c_purplevine = minetest.get_content_id("everness:whispering_gourd_vine_1")
|
|
||||||
local c_icicles_c = minetest.get_content_id("everness:frosted_icicle")
|
|
||||||
local c_icicles_f = minetest.get_content_id("everness:frosted_icicle_floor")
|
|
||||||
local c_crystcyan = minetest.get_content_id("everness:crystal_cyan") --
|
|
||||||
local c_crystorange = minetest.get_content_id("everness:crystal_orange") --
|
|
||||||
local c_crystpurple = minetest.get_content_id("everness:crystal_purple") --
|
|
||||||
local c_flamepurple = minetest.get_content_id("everness:flame_permanent_purple")
|
|
||||||
local c_frostedice = minetest.get_content_id("everness:frosted_ice")
|
|
||||||
local c_mosspurple = minetest.get_content_id("everness:ivis_moss")
|
|
||||||
local c_bluelant = minetest.get_content_id("everness:blue_vine_lantern")
|
|
||||||
local c_redlant = minetest.get_content_id("everness:glowing_pillar")
|
|
||||||
local c_redplant = minetest.get_content_id("everness:bloodspore_plant")
|
|
||||||
|
|
||||||
--Kristalle, die um 180° gedreht werden per param2, wenn sie auf dem Boden sind
|
|
||||||
local erdkristall = {
|
|
||||||
c_torangecrys,
|
|
||||||
c_tredcrys,
|
|
||||||
c_fakesalt,
|
|
||||||
c_tyellocrys,
|
|
||||||
c_tsmokecrys,
|
|
||||||
c_tyellowcrys,
|
|
||||||
c_tgreen1crys,
|
|
||||||
c_tgreen2crys,
|
|
||||||
c_fakeice1,
|
|
||||||
c_fakeice2,
|
|
||||||
c_fakeice3,
|
|
||||||
c_crystcyan,
|
|
||||||
c_crystorange,
|
|
||||||
c_crystpurple,
|
|
||||||
} --else
|
|
||||||
--end
|
|
||||||
|
|
||||||
--herbs
|
|
||||||
--if minetest.get_modpath("herbs") then
|
|
||||||
local c_amanita = minetest.get_content_id("herbs:mushroom_amanita_green")
|
|
||||||
--else
|
|
||||||
--end
|
|
||||||
|
|
||||||
--riesenpilz
|
|
||||||
-- if minetest.get_modpath("riesenpilz") then
|
|
||||||
local c_blueglowshroom = minetest.get_content_id("riesenpilz:glowshroom")
|
|
||||||
--else
|
|
||||||
--end
|
|
||||||
|
|
||||||
--Other Wolds
|
|
||||||
-- if minetest.get_modpath("other_worlds") then
|
|
||||||
local c_marsgrass = minetest.get_content_id("mars:grass_1")
|
|
||||||
local c_marsmoss = minetest.get_content_id("mars:moss")
|
|
||||||
--else
|
|
||||||
--end
|
|
||||||
|
|
||||||
-- crystals
|
|
||||||
local c_crystore = minetest.get_content_id("caverealms:glow_ore")
|
|
||||||
local c_emerald = minetest.get_content_id("caverealms:glow_emerald")
|
|
||||||
local c_emore = minetest.get_content_id("caverealms:glow_emerald_ore")
|
|
||||||
local c_mesecry = minetest.get_content_id("caverealms:glow_mese")
|
|
||||||
local c_meseore = minetest.get_content_id("default:stone_with_mese")
|
|
||||||
local c_ruby = minetest.get_content_id("caverealms:glow_ruby")
|
|
||||||
local c_rubore = minetest.get_content_id("caverealms:glow_ruby_ore")
|
|
||||||
local c_citrine = minetest.get_content_id("caverealms:glow_citrine")
|
|
||||||
local c_citore = minetest.get_content_id("caverealms:glow_citrine_ore")
|
|
||||||
local c_ameth = minetest.get_content_id("caverealms:glow_amethyst")
|
|
||||||
local c_amethore = minetest.get_content_id("caverealms:glow_amethyst_ore")
|
|
||||||
local c_hotspring = minetest.get_content_id("caverealms:hotspring_water_source")
|
|
||||||
|
|
||||||
local stone_nodes = {
|
|
||||||
[c_stone] = 1,
|
|
||||||
[c_desertstone] = 1,
|
|
||||||
[c_sandstone] = 1,
|
|
||||||
[c_coalblock] = 1,
|
|
||||||
[c_sand] = 1,
|
|
||||||
[c_desand] = 1,
|
|
||||||
[c_obsidian] = 1,
|
|
||||||
}
|
|
||||||
|
|
||||||
if nil ~= minetest.get_modpath("geology") then
|
|
||||||
stone_nodes[minetest.get_content_id("geology:gneiss")] = 1
|
|
||||||
stone_nodes[minetest.get_content_id("geology:slate")] = 1
|
|
||||||
stone_nodes[minetest.get_content_id("geology:jade")] = 1
|
|
||||||
stone_nodes[minetest.get_content_id("geology:granite")] = 1
|
|
||||||
stone_nodes[minetest.get_content_id("geology:marble")] = 1
|
|
||||||
stone_nodes[minetest.get_content_id("geology:basalt")] = 1
|
|
||||||
stone_nodes[minetest.get_content_id("geology:chalk")] = 1
|
|
||||||
stone_nodes[minetest.get_content_id("geology:ors")] = 1
|
|
||||||
stone_nodes[minetest.get_content_id("geology:serpentine")] = 1
|
|
||||||
stone_nodes[minetest.get_content_id("geology:shale")] = 1
|
|
||||||
stone_nodes[minetest.get_content_id("geology:schist")] = 1
|
|
||||||
stone_nodes[minetest.get_content_id("geology:anthracite")] = 1
|
|
||||||
end
|
|
||||||
|
|
||||||
--mandatory values
|
|
||||||
local sidelen = x1 - x0 + 1 --length of a mapblock
|
|
||||||
local chulens = { x = sidelen, y = sidelen, z = sidelen } --table of chunk edges
|
|
||||||
local chulens2D = { x = sidelen, y = sidelen, z = 1 }
|
|
||||||
local minposxyz = { x = x0, y = y0, z = z0 } --bottom corner
|
|
||||||
local minposxz = { x = x0, y = z0 } --2D bottom corner
|
|
||||||
|
|
||||||
local nvals_biome_e = minetest.get_perlin_map(np_biome_evil, chulens2D):get2dMap_flat({ x = x0 + 150, y = z0 + 50 }) --2D noise for biomes (will be 3D humidity/temp later)
|
|
||||||
local nvals_biome_w =
|
|
||||||
minetest.get_perlin_map(np_biome_wonder, chulens2D):get2dMap_flat({ x = x0 + 150, y = z0 + 50 }) --2D noise for biomes (will be 3D humidity/temp later)
|
|
||||||
|
|
||||||
local nixyz = 1 --3D node index
|
|
||||||
local nixz = 1 --2D node index
|
|
||||||
local nixyz2 = 1 --second 3D index for second loop
|
|
||||||
|
|
||||||
for z = z0, z1 do -- for each xy plane progressing northwards
|
|
||||||
--increment indices
|
|
||||||
nixyz = nixyz + 1
|
|
||||||
|
|
||||||
--decoration loop
|
|
||||||
for y = y0, y1 do -- for each x row progressing upwards
|
|
||||||
local is_deep = false
|
|
||||||
if y < DEEP_CAVE then
|
|
||||||
is_deep = true
|
|
||||||
end
|
|
||||||
|
|
||||||
local vi = area:index(x0, y, z)
|
|
||||||
for x = x0, x1 do -- for each node do
|
|
||||||
local ai = area:index(x, y + 1, z) --above index
|
|
||||||
local bi = area:index(x, y - 1, z) --below index
|
|
||||||
|
|
||||||
local mode = 0 -- nothing, 1 = ground, 2 = ceiling
|
|
||||||
|
|
||||||
if data[vi] == c_air then
|
|
||||||
if stone_nodes[data[bi]] ~= nil then --ground
|
|
||||||
mode = 1
|
|
||||||
elseif stone_nodes[data[ai]] ~= nil and y < y1 then -- ceiling
|
|
||||||
mode = 2
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if mode > 0 then
|
|
||||||
local a2i = area:index(x, y + 2, z) --above index
|
|
||||||
|
|
||||||
--determine biome
|
|
||||||
local biome = 0 --preliminary declaration
|
|
||||||
local n_biome_e = nvals_biome_e[nixz] --make an easier reference to the noise
|
|
||||||
local n_biome_w = nvals_biome_w[nixz] --make an easier reference to the noise
|
|
||||||
local n_biome = (n_biome_e + n_biome_w) / 2
|
|
||||||
|
|
||||||
local floor = c_hcobble
|
|
||||||
local floor_depth = 1
|
|
||||||
local worms = {}
|
|
||||||
local worm_max_len = 1
|
|
||||||
local no_mites = false
|
|
||||||
local no_tites = false
|
|
||||||
local decos = {}
|
|
||||||
local decos2 = {}
|
|
||||||
local deco_mul = 1
|
|
||||||
|
|
||||||
local wiggle = (math.random() - 0.5) / 20
|
|
||||||
n_biome_e = n_biome_e + wiggle
|
|
||||||
n_biome_w = n_biome_w + wiggle
|
|
||||||
|
|
||||||
if n_biome_e < -0.33 then
|
|
||||||
if n_biome_w < -0.33 then -- algae
|
|
||||||
if is_deep then --deep algae deco
|
|
||||||
worms = { c_worm_green, c_tyellowcrys }
|
|
||||||
decos = { c_mycena, c_tyellowcrys, c_amanita }
|
|
||||||
else -- normal algae
|
|
||||||
worms = { c_worm_green }
|
|
||||||
decos = { c_mycena }
|
|
||||||
end
|
|
||||||
floor = c_algae
|
|
||||||
worm_max_len = 1
|
|
||||||
if mode == 1 and data[ai] == c_air and math.random() < 0.03 then
|
|
||||||
data[ai] = c_firefly
|
|
||||||
end
|
|
||||||
elseif n_biome_w < 0.33 then -- moss
|
|
||||||
if is_deep then --deep moss deco
|
|
||||||
worms = { c_worm_green, c_tgreen1crys, c_tgreen2crys, c_worm_blue }
|
|
||||||
decos = {
|
|
||||||
c_mycena,
|
|
||||||
c_greemush,
|
|
||||||
c_mycena,
|
|
||||||
c_greemush,
|
|
||||||
c_tgreen1crys,
|
|
||||||
c_tgreen2crys,
|
|
||||||
}
|
|
||||||
deco_mul = 1.
|
|
||||||
worm_max_len = 1
|
|
||||||
else -- normal moss
|
|
||||||
worms = { c_worm_green }
|
|
||||||
decos = { c_mycena }
|
|
||||||
worm_max_len = 3
|
|
||||||
end
|
|
||||||
floor = c_moss
|
|
||||||
deco_mul = 2.0
|
|
||||||
if mode == 1 and data[ai] == c_air and math.random() < 0.001 then
|
|
||||||
if math.random() < 0.5 then
|
|
||||||
local pos = { x = x, y = y, z = z }
|
|
||||||
riesenpilz.brown(pos, data, area)
|
|
||||||
else
|
|
||||||
caverealms:grow_green_mushroom(x, y - 1, z, area, data)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else -- lichen
|
|
||||||
if is_deep then --magical lichen deco
|
|
||||||
worms = { c_crystpurple, c_crystpurple, c_purplevine }
|
|
||||||
decos = {
|
|
||||||
c_mosspurple,
|
|
||||||
c_flamepurple,
|
|
||||||
c_crystpurple,
|
|
||||||
c_mosspurple,
|
|
||||||
c_flamepurple,
|
|
||||||
c_crystpurple,
|
|
||||||
c_bluetwist,
|
|
||||||
c_tyellowcrys,
|
|
||||||
}
|
|
||||||
deco_mul = 2
|
|
||||||
worm_max_len = 1
|
|
||||||
else -- normal lichen
|
|
||||||
worms = { c_worm_blue }
|
|
||||||
worm_max_len = 3
|
|
||||||
decos = { c_mycena, c_fungus, c_fungus }
|
|
||||||
deco_mul = 3.3
|
|
||||||
end
|
|
||||||
floor = c_lichen
|
|
||||||
|
|
||||||
|
|
||||||
if mode == 1 and data[ai] == c_air and math.random() < 0.003 then
|
|
||||||
data[ai] = c_bluefly
|
|
||||||
end
|
|
||||||
end
|
|
||||||
elseif n_biome_e < 0.33 then
|
|
||||||
if n_biome_w < -0.33 then -- desert
|
|
||||||
if math.random() < 0.05 then
|
|
||||||
floor = c_coalblock
|
|
||||||
elseif math.random() < 0.15 then
|
|
||||||
floor = c_coaldust
|
|
||||||
else
|
|
||||||
if is_deep then
|
|
||||||
floor = c_hcobble
|
|
||||||
else
|
|
||||||
floor = c_desand
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if is_deep then --hot cobble
|
|
||||||
decos = {
|
|
||||||
c_redplant,
|
|
||||||
c_redlant,
|
|
||||||
c_flame,
|
|
||||||
c_torangecrys,
|
|
||||||
c_redplant,
|
|
||||||
c_flame,
|
|
||||||
c_torangecrys,
|
|
||||||
c_crystorange,
|
|
||||||
}
|
|
||||||
worms = { c_worm_red, c_torangecrys }
|
|
||||||
else --desert
|
|
||||||
decos = {
|
|
||||||
c_tyellocrys,
|
|
||||||
c_flame,
|
|
||||||
c_spike,
|
|
||||||
c_tsmokecrys,
|
|
||||||
c_crystorange,
|
|
||||||
}
|
|
||||||
worms = { c_tyellocrys, c_tsmokecrys }
|
|
||||||
end
|
|
||||||
deco_mul = 2
|
|
||||||
floor_depth = 2
|
|
||||||
worm_max_len = 1
|
|
||||||
elseif n_biome_w < 0.33 then -- salt
|
|
||||||
floor = c_salt
|
|
||||||
floor_depth = 2
|
|
||||||
worms = { c_fakesalt }
|
|
||||||
worm_max_len = 1
|
|
||||||
no_mites = true
|
|
||||||
decos = { c_saltgem }
|
|
||||||
if is_deep then
|
|
||||||
decos = { c_saltgem, c_fakesalt }
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if is_deep then --magic deep glacial
|
|
||||||
floor = c_frostedice
|
|
||||||
floor_depth = 2
|
|
||||||
worms = { c_icevine, c_crystcyan, c_crystcyan, c_icicles_c, c_worm_blue }
|
|
||||||
worm_max_len = 1
|
|
||||||
decos = {
|
|
||||||
c_crystcyan,
|
|
||||||
c_crystcyan,
|
|
||||||
c_blueglowshroom,
|
|
||||||
c_blueglowshroom,
|
|
||||||
c_bluetwist,
|
|
||||||
c_bflame,
|
|
||||||
c_bflame,
|
|
||||||
c_icicles_f,
|
|
||||||
c_bluelant,
|
|
||||||
c_iciu,
|
|
||||||
c_iciu,
|
|
||||||
c_icicles_f,
|
|
||||||
c_bluegrass,
|
|
||||||
c_iciu,
|
|
||||||
c_iciu,
|
|
||||||
c_icicles_f,
|
|
||||||
c_bluegrass,
|
|
||||||
}
|
|
||||||
deco_mul = 2
|
|
||||||
else --glacial
|
|
||||||
floor = c_thinice
|
|
||||||
floor_depth = 2
|
|
||||||
worms = { c_icid, c_worm_blue }
|
|
||||||
worm_max_len = 1
|
|
||||||
decos = { c_gem, c_gem, c_iciu, c_fakeice2 }
|
|
||||||
deco_mul = 2
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if n_biome_w < -0.33 then -- hotspring
|
|
||||||
floor = c_hcobble
|
|
||||||
worms = { c_worm_red }
|
|
||||||
worm_max_len = 3
|
|
||||||
if mode == 1 and math.random() < 0.005 then
|
|
||||||
caverealms:spawn_hotspring(x, y, z, area, data, math.random(4) + 2)
|
|
||||||
end
|
|
||||||
decos = { c_fire_vine, c_marsgrass, c_marsmoss }
|
|
||||||
deco_mul = 1
|
|
||||||
elseif n_biome_w < 0.33 then -- dungeon
|
|
||||||
if math.random() < 0.5 then
|
|
||||||
floor = c_gobsidian
|
|
||||||
else
|
|
||||||
floor = c_gobsidian2
|
|
||||||
end
|
|
||||||
worms = { c_worm_red, c_tredcrys }
|
|
||||||
worm_max_len = 1
|
|
||||||
decos = { c_flame, c_flame, c_bflame, c_fire_vine, c_tredcrys }
|
|
||||||
else -- deep glacial
|
|
||||||
floor = c_iced
|
|
||||||
floor_depth = 3
|
|
||||||
worms = { c_icid, c_icicles_c, c_icid, c_icicles_c, c_fakeice1, c_fakeice2, c_fakeice3 }
|
|
||||||
worm_max_len = 1
|
|
||||||
|
|
||||||
decos = {
|
|
||||||
c_bflame,
|
|
||||||
c_iciu,
|
|
||||||
c_icicles_f,
|
|
||||||
c_bflame,
|
|
||||||
c_iciu,
|
|
||||||
c_icicles_f,
|
|
||||||
c_fakeice1,
|
|
||||||
c_fakeice2,
|
|
||||||
c_fakeice3,
|
|
||||||
}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- place floor
|
|
||||||
if mode == 1 then --ground
|
|
||||||
for i = 1, floor_depth do
|
|
||||||
local ii = area:index(x, y - i, z)
|
|
||||||
if stone_nodes[data[bi]] ~= nil then
|
|
||||||
data[ii] = floor
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- minetest.set_node(pos + vector.new(x, y, z), {name = crystal, param2 = 1})
|
|
||||||
-- decorations
|
|
||||||
if math.random() < ICICHA * deco_mul and data[bi] ~= c_hotspring then
|
|
||||||
local deco = decos[math.random(1, #decos)]
|
|
||||||
|
|
||||||
if table_contains(erdkristall, deco) then
|
|
||||||
local paramzwei = minetest.dir_to_facedir((vector.new(2, 0, 0)), true)
|
|
||||||
vparam2[vi] = paramzwei
|
|
||||||
end
|
|
||||||
data[vi] = deco
|
|
||||||
end
|
|
||||||
|
|
||||||
-- salt crystals
|
|
||||||
if floor == c_salt and math.random() < SALTCRYCHA then
|
|
||||||
caverealms:salt_stalagmite(x, y - 1, z, area, data)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- stone stalagmites
|
|
||||||
if math.random() < STAGCHA then
|
|
||||||
caverealms:stalagmite(x, y, z, area, data)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- crystal stalagmites
|
|
||||||
if not no_mites and math.random() < CRYSTAL then
|
|
||||||
local ore
|
|
||||||
local cry
|
|
||||||
|
|
||||||
if n_biome_e < -0.33 then -- non-evil
|
|
||||||
if n_biome_w < -0.33 then --algae
|
|
||||||
if math.random(10) == 1 then --chance 1/10 for mese
|
|
||||||
ore = c_emore
|
|
||||||
cry = c_emerald
|
|
||||||
else
|
|
||||||
ore = c_meseore
|
|
||||||
cry = c_mesecry
|
|
||||||
end
|
|
||||||
elseif n_biome_w < 0.33 then --moss
|
|
||||||
if is_deep then --deep moss
|
|
||||||
if math.random(10) == 1 then
|
|
||||||
ore = c_crystore
|
|
||||||
cry = c_crystal
|
|
||||||
else
|
|
||||||
ore = c_emore
|
|
||||||
cry = c_emerald
|
|
||||||
end
|
|
||||||
else --normal moss
|
|
||||||
ore = c_emore
|
|
||||||
cry = c_emerald
|
|
||||||
end
|
|
||||||
else --lichen
|
|
||||||
if is_deep then --magical lichen
|
|
||||||
local tschu = math.random(8)
|
|
||||||
if tschu == 1 then --chance 1/10 for mese
|
|
||||||
ore = c_meseore
|
|
||||||
cry = c_mesecry
|
|
||||||
elseif tschu == 2 then
|
|
||||||
ore = c_crystore
|
|
||||||
cry = c_crystal
|
|
||||||
else
|
|
||||||
ore = c_amethore
|
|
||||||
cry = c_ameth
|
|
||||||
end
|
|
||||||
else --lichen
|
|
||||||
ore = c_amethore
|
|
||||||
cry = c_ameth
|
|
||||||
end
|
|
||||||
end
|
|
||||||
elseif n_biome_e < 0.33 then -- moderately evil
|
|
||||||
if n_biome_w < -0.33 then
|
|
||||||
if is_deep then --hot cobble
|
|
||||||
if math.random(3) == 1 then
|
|
||||||
ore = c_citore
|
|
||||||
cry = c_citrine
|
|
||||||
else
|
|
||||||
ore = c_rubore
|
|
||||||
cry = c_ruby
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if math.random(3) == 1 then --desert / sand
|
|
||||||
ore = c_meseore
|
|
||||||
cry = c_mesecry
|
|
||||||
else
|
|
||||||
ore = c_citore
|
|
||||||
cry = c_citrine
|
|
||||||
end
|
|
||||||
end
|
|
||||||
elseif n_biome_w < 0.33 then --salt
|
|
||||||
ore = c_meseore
|
|
||||||
cry = c_mesecry
|
|
||||||
else
|
|
||||||
if is_deep then --magic deep glacial
|
|
||||||
if math.random(3) == 1 then
|
|
||||||
ore = c_iced
|
|
||||||
cry = c_thinice
|
|
||||||
else
|
|
||||||
ore = c_crystore
|
|
||||||
cry = c_crystal
|
|
||||||
end
|
|
||||||
else --glacial
|
|
||||||
if math.random(5) == 1 then
|
|
||||||
ore = c_crystore
|
|
||||||
cry = c_crystal
|
|
||||||
else
|
|
||||||
ore = c_iced
|
|
||||||
cry = c_thinice
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else -- very evil
|
|
||||||
if n_biome_w < -0.33 then --hotcobble-hotsprings
|
|
||||||
if math.random(3) == 1 then
|
|
||||||
ore = c_citore
|
|
||||||
cry = c_citrine
|
|
||||||
else
|
|
||||||
ore = c_rubore
|
|
||||||
cry = c_ruby
|
|
||||||
end
|
|
||||||
elseif n_biome_w < 0.33 then --obsidian-dungeon
|
|
||||||
if math.random(10) == 1 then
|
|
||||||
ore = c_crystore
|
|
||||||
cry = c_crystal
|
|
||||||
else
|
|
||||||
ore = c_rubore
|
|
||||||
cry = c_ruby
|
|
||||||
end
|
|
||||||
else --deep_glacial
|
|
||||||
if math.random(3) == 1 then
|
|
||||||
ore = c_crystore
|
|
||||||
cry = c_crystal
|
|
||||||
else
|
|
||||||
ore = c_iced
|
|
||||||
cry = c_thinice
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local base = floor
|
|
||||||
caverealms:crystal_stalagmite(x, y - 1, z, area, data, ore, cry, base)
|
|
||||||
end
|
|
||||||
|
|
||||||
if n_biome_w > 0.5 and n_biome_e < -0.33 and math.random() < GIANTCHA then --giant mushrooms
|
|
||||||
caverealms:giant_shroom(x, y, z, area, data)
|
|
||||||
end
|
|
||||||
elseif mode == 2 then -- place ceiling
|
|
||||||
if math.random() < ICICHA then
|
|
||||||
local worm = worms[math.random(1, #worms)]
|
|
||||||
local wdepth = math.random(1, worm_max_len)
|
|
||||||
for i = 0, wdepth - 1 do
|
|
||||||
local ii = area:index(x, y - i, z)
|
|
||||||
if data[ii] == c_air then
|
|
||||||
data[ii] = worm
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- stalactites
|
|
||||||
if not no_tites and math.random() < CRYSTAL then
|
|
||||||
local ore
|
|
||||||
local cry
|
|
||||||
|
|
||||||
if n_biome_e < -0.33 then -- non-evil
|
|
||||||
if n_biome_w < -0.33 then --algae
|
|
||||||
if math.random(10) == 1 then --chance 1/10 for mese
|
|
||||||
ore = c_emore
|
|
||||||
cry = c_emerald
|
|
||||||
else
|
|
||||||
ore = c_meseore
|
|
||||||
cry = c_mesecry
|
|
||||||
end
|
|
||||||
elseif n_biome_w < 0.33 then --moss
|
|
||||||
ore = c_emore
|
|
||||||
cry = c_emerald
|
|
||||||
else --lichen
|
|
||||||
if is_deep then --magical lichen
|
|
||||||
local tschu = math.random(6)
|
|
||||||
if tschu == 1 then --chance 1/10 for mese
|
|
||||||
ore = c_meseore
|
|
||||||
cry = c_mesecry
|
|
||||||
elseif tschu == 2 then
|
|
||||||
ore = c_crystore
|
|
||||||
cry = c_crystal
|
|
||||||
else
|
|
||||||
ore = c_amethore
|
|
||||||
cry = c_ameth
|
|
||||||
end
|
|
||||||
else --lichen
|
|
||||||
ore = c_amethore
|
|
||||||
cry = c_ameth
|
|
||||||
end
|
|
||||||
end
|
|
||||||
elseif n_biome_e < 0.33 then -- moderately evil
|
|
||||||
if n_biome_w < -0.33 then
|
|
||||||
if is_deep then --hot cobble
|
|
||||||
if math.random(3) == 1 then
|
|
||||||
ore = c_citore
|
|
||||||
cry = c_citrine
|
|
||||||
else
|
|
||||||
ore = c_rubore
|
|
||||||
cry = c_ruby
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if math.random(3) == 1 then --desert / sand
|
|
||||||
ore = c_meseore
|
|
||||||
cry = c_mesecry
|
|
||||||
else
|
|
||||||
ore = c_citore
|
|
||||||
cry = c_citrine
|
|
||||||
end
|
|
||||||
end
|
|
||||||
elseif n_biome_w < 0.33 then --salt
|
|
||||||
ore = c_meseore
|
|
||||||
cry = c_mesecry
|
|
||||||
else
|
|
||||||
if is_deep then --magic deep glacial
|
|
||||||
if math.random(3) == 1 then
|
|
||||||
ore = c_iced
|
|
||||||
cry = c_thinice
|
|
||||||
else
|
|
||||||
ore = c_crystore
|
|
||||||
cry = c_crystal
|
|
||||||
end
|
|
||||||
else --glacial
|
|
||||||
if math.random(5) == 1 then
|
|
||||||
ore = c_crystore
|
|
||||||
cry = c_crystal
|
|
||||||
else
|
|
||||||
ore = c_iced
|
|
||||||
cry = c_thinice
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else -- very evil
|
|
||||||
if n_biome_w < -0.33 then --hotcobble-hotsprings
|
|
||||||
if math.random(3) == 1 then
|
|
||||||
ore = c_citore
|
|
||||||
cry = c_citrine
|
|
||||||
else
|
|
||||||
ore = c_rubore
|
|
||||||
cry = c_ruby
|
|
||||||
end
|
|
||||||
elseif n_biome_w < 0.33 then --obsidian-dungeon
|
|
||||||
if math.random(20) == 1 then
|
|
||||||
ore = c_crystore
|
|
||||||
cry = c_crystal
|
|
||||||
else
|
|
||||||
ore = c_rubore
|
|
||||||
cry = c_ruby
|
|
||||||
end
|
|
||||||
else --deep_glacial
|
|
||||||
if math.random(3) == 1 then
|
|
||||||
ore = c_crystore
|
|
||||||
cry = c_crystal
|
|
||||||
else
|
|
||||||
ore = c_iced
|
|
||||||
cry = c_thinice
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local base = c_stone
|
|
||||||
caverealms:crystal_stalactite(x, y, z, area, data, ore, cry, base)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
nixyz2 = nixyz2 + 1
|
|
||||||
nixz = nixz + 1
|
|
||||||
vi = vi + 1
|
|
||||||
end
|
|
||||||
nixz = nixz - sidelen --shift the 2D index back
|
|
||||||
end
|
|
||||||
nixz = nixz + sidelen --shift the 2D index up a layer
|
|
||||||
end
|
|
||||||
|
|
||||||
--send data back to voxelmanip
|
|
||||||
vm:set_data(data)
|
|
||||||
vm:set_param2_data(vparam2)
|
|
||||||
--calc lighting
|
|
||||||
vm:set_lighting({ day = 0, night = 0 })
|
|
||||||
vm:calc_lighting()
|
|
||||||
--write it to world
|
|
||||||
vm:write_to_map(data)
|
|
||||||
|
|
||||||
--local chugent = math.ceil((os.clock() - t1) * 1000) --grab how long it took
|
|
||||||
--print ("[caverealms] "..chugent.." ms") --tell people how long
|
|
||||||
end)
|
|
||||||
print("[caverealms] loaded!")
|
|
|
@ -1,5 +0,0 @@
|
||||||
name = caverealms
|
|
||||||
depends = default, stairs, fireflies
|
|
||||||
optional_depends = ethereal, mobs, geology
|
|
||||||
description = Drop-in improvement of Caverealms Lite
|
|
||||||
|
|
|
@ -1,624 +0,0 @@
|
||||||
--glowing crystal
|
|
||||||
minetest.register_node("caverealms:glow_crystal", {
|
|
||||||
description = "Glow Sapphire",
|
|
||||||
tiles = {"caverealms_glow_crystal.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=3},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
light_source = 13,
|
|
||||||
paramtype = "light",
|
|
||||||
use_texture_alpha = true,
|
|
||||||
drawtype = "glasslike",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
})
|
|
||||||
|
|
||||||
--glowing emerald
|
|
||||||
minetest.register_node("caverealms:glow_emerald", {
|
|
||||||
description = "Glow Emerald",
|
|
||||||
tiles = {"caverealms_glow_emerald.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=3},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
light_source = 13,
|
|
||||||
paramtype = "light",
|
|
||||||
use_texture_alpha = true,
|
|
||||||
drawtype = "glasslike",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
})
|
|
||||||
|
|
||||||
--glowing mese crystal blocks
|
|
||||||
minetest.register_node("caverealms:glow_mese", {
|
|
||||||
description = "Glow Mese Crystal",
|
|
||||||
tiles = {"caverealms_glow_mese.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=3},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
light_source = 13,
|
|
||||||
paramtype = "light",
|
|
||||||
use_texture_alpha = true,
|
|
||||||
drawtype = "glasslike",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
})
|
|
||||||
|
|
||||||
--glowing ruby
|
|
||||||
minetest.register_node("caverealms:glow_ruby", {
|
|
||||||
description = "Glow Ruby",
|
|
||||||
tiles = {"caverealms_glow_ruby.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=3},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
light_source = 13,
|
|
||||||
paramtype = "light",
|
|
||||||
use_texture_alpha = true,
|
|
||||||
drawtype = "glasslike",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
})
|
|
||||||
|
|
||||||
--glowing citrine
|
|
||||||
minetest.register_node("caverealms:glow_citrine", {
|
|
||||||
description = "Glow Citrine",
|
|
||||||
tiles = {"caverealms_glow_citrine.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=3},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
light_source = 13,
|
|
||||||
paramtype = "light",
|
|
||||||
use_texture_alpha = true,
|
|
||||||
drawtype = "glasslike",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
})
|
|
||||||
|
|
||||||
--glowing amethyst
|
|
||||||
minetest.register_node("caverealms:glow_amethyst", {
|
|
||||||
description = "Glow Amethyst",
|
|
||||||
tiles = {"caverealms_glow_amethyst.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=3},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
light_source = 13,
|
|
||||||
paramtype = "light",
|
|
||||||
use_texture_alpha = true,
|
|
||||||
drawtype = "glasslike",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
})
|
|
||||||
|
|
||||||
--embedded crystal
|
|
||||||
minetest.register_node("caverealms:glow_ore", {
|
|
||||||
description = "Glow Crystal Ore",
|
|
||||||
tiles = {"caverealms_glow_ore.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=2},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
light_source = 10,
|
|
||||||
paramtype = "light",
|
|
||||||
})
|
|
||||||
|
|
||||||
--embedded emerald
|
|
||||||
minetest.register_node("caverealms:glow_emerald_ore", {
|
|
||||||
description = "Glow Emerald Ore",
|
|
||||||
tiles = {"caverealms_glow_emerald_ore.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=2},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
light_source = 10,
|
|
||||||
paramtype = "light",
|
|
||||||
})
|
|
||||||
|
|
||||||
--embedded ruby
|
|
||||||
minetest.register_node("caverealms:glow_ruby_ore", {
|
|
||||||
description = "Glow Ruby Ore",
|
|
||||||
tiles = {"caverealms_glow_ruby_ore.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=2},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
light_source = 10,
|
|
||||||
paramtype = "light",
|
|
||||||
})
|
|
||||||
|
|
||||||
--embedded citrine
|
|
||||||
minetest.register_node("caverealms:glow_citrine_ore", {
|
|
||||||
description = "Glow Citrine Ore",
|
|
||||||
tiles = {"caverealms_glow_citrine_ore.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=2},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
light_source = 10,
|
|
||||||
paramtype = "light",
|
|
||||||
})
|
|
||||||
|
|
||||||
--embedded amethyst
|
|
||||||
minetest.register_node("caverealms:glow_amethyst_ore", {
|
|
||||||
description = "Glow Amethyst Ore",
|
|
||||||
tiles = {"caverealms_glow_amethyst_ore.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=2},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
light_source = 10,
|
|
||||||
paramtype = "light",
|
|
||||||
})
|
|
||||||
|
|
||||||
--thin (transparent) ice
|
|
||||||
minetest.register_node("caverealms:thin_ice", {
|
|
||||||
description = "Thin Ice",
|
|
||||||
tiles = {"caverealms_thin_ice.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=3},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
use_texture_alpha = true,
|
|
||||||
drawtype = "glasslike",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
freezemelt = "default:water_source",
|
|
||||||
paramtype = "light",
|
|
||||||
})
|
|
||||||
|
|
||||||
--salt crystal
|
|
||||||
minetest.register_node("caverealms:salt_crystal", {
|
|
||||||
description = "Salt Crystal",
|
|
||||||
tiles = {"caverealms_salt_crystal.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=2},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
light_source = 11,
|
|
||||||
paramtype = "light",
|
|
||||||
use_texture_alpha = true,
|
|
||||||
drawtype = "glasslike",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
})
|
|
||||||
|
|
||||||
--glowing crystal gem
|
|
||||||
minetest.register_node("caverealms:glow_gem", {
|
|
||||||
description = "Glow Gem",
|
|
||||||
tiles = {"caverealms_glow_gem.png"},
|
|
||||||
inventory_image = "caverealms_glow_gem.png",
|
|
||||||
wield_image = "caverealms_glow_gem.png",
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky = 3, oddly_breakable_by_hand = 1, attached_node = 1},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
light_source = 11,
|
|
||||||
paramtype = "light",
|
|
||||||
drawtype = "plantlike",
|
|
||||||
walkable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
visual_scale = 0.75,
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
--glowing salt gem
|
|
||||||
minetest.register_node("caverealms:salt_gem", {
|
|
||||||
description = "Salt Gem",
|
|
||||||
tiles = {"caverealms_salt_gem.png"},
|
|
||||||
inventory_image = "caverealms_salt_gem.png",
|
|
||||||
wield_image = "caverealms_salt_gem.png",
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky = 3, oddly_breakable_by_hand = 1, attached_node = 1},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
light_source = 11,
|
|
||||||
paramtype = "light",
|
|
||||||
drawtype = "plantlike",
|
|
||||||
walkable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
visual_scale = 0.75,
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
--stone spike
|
|
||||||
minetest.register_node("caverealms:spike", {
|
|
||||||
description = "Stone Spike",
|
|
||||||
tiles = {"caverealms_spike.png"},
|
|
||||||
inventory_image = "caverealms_spike.png",
|
|
||||||
wield_image = "caverealms_spike.png",
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky = 3, oddly_breakable_by_hand = 1, attached_node = 1},
|
|
||||||
sounds = default.node_sound_stone_defaults(),
|
|
||||||
light_source = 3,
|
|
||||||
paramtype = "light",
|
|
||||||
drawtype = "plantlike",
|
|
||||||
walkable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
visual_scale = 0.75,
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
--upward pointing icicle
|
|
||||||
minetest.register_node("caverealms:icicle_up", {
|
|
||||||
description = "Icicle",
|
|
||||||
tiles = {"caverealms_icicle_up.png"},
|
|
||||||
inventory_image = "caverealms_icicle_up.png",
|
|
||||||
wield_image = "caverealms_icicle_up.png",
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=3, oddly_breakable_by_hand=1, attached_node = 1},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
light_source = 8,
|
|
||||||
paramtype = "light",
|
|
||||||
drawtype = "plantlike",
|
|
||||||
walkable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
visual_scale = 1.0,
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {-0.5, -0.5, -0.5, 0.5, -7/16, 0.5},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
--downward pointing icicle
|
|
||||||
minetest.register_node("caverealms:icicle_down", {
|
|
||||||
description = "Icicle",
|
|
||||||
tiles = {"caverealms_icicle_down.png"},
|
|
||||||
inventory_image = "caverealms_icicle_down.png",
|
|
||||||
wield_image = "caverealms_icicle_down.png",
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=3, oddly_breakable_by_hand=1, attached_node = 1},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
light_source = 8,
|
|
||||||
paramtype = "light",
|
|
||||||
drawtype = "plantlike",
|
|
||||||
walkable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
visual_scale = 1.0,
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {-0.5, 7/16, -0.5, 0.5, 0.5, 0.5},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
--cave mossy cobble - bluish?
|
|
||||||
minetest.register_node("caverealms:stone_with_moss", {
|
|
||||||
description = "Cave Stone with Moss",
|
|
||||||
tiles = {"default_cobble.png^caverealms_moss.png", "default_cobble.png", "default_cobble.png^caverealms_moss_side.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {crumbly=1, cracky=3},
|
|
||||||
-- drop = 'default:cobble',
|
|
||||||
sounds = default.node_sound_dirt_defaults({
|
|
||||||
footstep = {name="default_grass_footstep", gain=0.25},
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
|
|
||||||
--cave lichen-covered cobble - purple-ish
|
|
||||||
minetest.register_node("caverealms:stone_with_lichen", {
|
|
||||||
description = "Cave Stone with Lichen",
|
|
||||||
tiles = {"default_cobble.png^caverealms_lichen.png", "default_cobble.png", "default_cobble.png^caverealms_lichen_side.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {crumbly=1, cracky=3},
|
|
||||||
-- drop = 'default:cobble',
|
|
||||||
sounds = default.node_sound_dirt_defaults({
|
|
||||||
footstep = {name="default_grass_footstep", gain=0.25},
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
|
|
||||||
--cave algae-covered cobble - yellow-ish
|
|
||||||
minetest.register_node("caverealms:stone_with_algae", {
|
|
||||||
description = "Cave Stone with Algae",
|
|
||||||
tiles = {"default_cobble.png^caverealms_algae.png", "default_cobble.png", "default_cobble.png^caverealms_algae_side.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {crumbly=1, cracky=3},
|
|
||||||
-- drop = 'default:cobble',
|
|
||||||
sounds = default.node_sound_dirt_defaults({
|
|
||||||
footstep = {name="default_grass_footstep", gain=0.25},
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
|
|
||||||
--tiny-salt-crystal-covered cobble - pink-ish
|
|
||||||
minetest.register_node("caverealms:stone_with_salt", {
|
|
||||||
description = "Salt Crystal",
|
|
||||||
tiles = {"caverealms_salty2.png"},
|
|
||||||
light_source = 9,
|
|
||||||
paramtype = "light",
|
|
||||||
use_texture_alpha = true,
|
|
||||||
drawtype = "glasslike",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=3},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
})
|
|
||||||
|
|
||||||
--Hot Cobble - cobble with lava instead of mortar XD
|
|
||||||
minetest.register_node("caverealms:hot_cobble", {
|
|
||||||
description = "Hot Cobble",
|
|
||||||
tiles = {"caverealms_hot_cobble.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=1, hot=1, cobble = 1, stone = 1},
|
|
||||||
damage_per_second = 1,
|
|
||||||
light_source = 3,
|
|
||||||
paramtype = "light",
|
|
||||||
sounds = default.node_sound_stone_defaults({
|
|
||||||
footstep = {name="default_stone_footstep", gain=0.25},
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
|
|
||||||
--Glow Obsidian
|
|
||||||
minetest.register_node("caverealms:glow_obsidian", {
|
|
||||||
description = "Glowing Obsidian",
|
|
||||||
tiles = {"caverealms_glow_obsidian.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=1, level=2},
|
|
||||||
light_source = 7,
|
|
||||||
paramtype = "light",
|
|
||||||
sounds = default.node_sound_stone_defaults({
|
|
||||||
footstep = {name="default_stone_footstep", gain=0.25},
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
|
|
||||||
--Glow Obsidian 2 - has traces of lava
|
|
||||||
minetest.register_node("caverealms:glow_obsidian_2", {
|
|
||||||
description = "Hot Glowing Obsidian",
|
|
||||||
tiles = {"caverealms_glow_obsidian2.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {cracky=1, hot=1, level=2},
|
|
||||||
light_source = 9,
|
|
||||||
paramtype = "light",
|
|
||||||
sounds = default.node_sound_stone_defaults({
|
|
||||||
footstep = {name="default_stone_footstep", gain=0.25},
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
|
|
||||||
--Glow Obsidian Bricks
|
|
||||||
minetest.register_node("caverealms:glow_obsidian_brick", {
|
|
||||||
description = "Glow Obsidian Brick",
|
|
||||||
tiles = {"caverealms_glow_obsidian_brick.png"},
|
|
||||||
light_source = 7,
|
|
||||||
groups = {cracky = 1, level = 2},
|
|
||||||
sounds = default.node_sound_stone_defaults(),
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("caverealms:glow_obsidian_brick_2", {
|
|
||||||
description = "Glow Obsidian Brick",
|
|
||||||
tiles = {"caverealms_glow_obsidian_brick_2.png"},
|
|
||||||
light_source = 9,
|
|
||||||
groups = {cracky = 1, level = 2},
|
|
||||||
sounds = default.node_sound_stone_defaults(),
|
|
||||||
})
|
|
||||||
|
|
||||||
--Glow Obsidian Stairs/Slabs
|
|
||||||
stairs.register_stair_and_slab(
|
|
||||||
"glow_obsidian_brick",
|
|
||||||
"caverealms:glow_obsidian_brick",
|
|
||||||
{cracky = 1, level = 2},
|
|
||||||
{"caverealms_glow_obsidian_brick.png"},
|
|
||||||
"Glow Obsidian Brick Stair",
|
|
||||||
"Glow Obsidian Brick Slab",
|
|
||||||
default.node_sound_stone_defaults())
|
|
||||||
|
|
||||||
stairs.register_stair_and_slab(
|
|
||||||
"glow_obsidian_brick_2",
|
|
||||||
"caverealms:glow_obsidian_brick_2",
|
|
||||||
{cracky = 1, level = 2},
|
|
||||||
{"caverealms_glow_obsidian_brick_2.png"},
|
|
||||||
"Glow Obsidian Brick Stair",
|
|
||||||
"Glow Obsidian Brick Slab",
|
|
||||||
default.node_sound_stone_defaults())
|
|
||||||
|
|
||||||
--Glow Obsidian Glass
|
|
||||||
minetest.register_node("caverealms:glow_obsidian_glass", {
|
|
||||||
description = "Glow Obsidian Glass",
|
|
||||||
drawtype = "glasslike_framed_optional",
|
|
||||||
tiles = {"caverealms_glow_obsidian_glass.png", "default_obsidian_glass_detail.png"},
|
|
||||||
paramtype = "light",
|
|
||||||
light_source = 13,
|
|
||||||
sunlight_propagates = true,
|
|
||||||
groups = {cracky = 3},
|
|
||||||
sounds = default.node_sound_glass_defaults(),
|
|
||||||
})
|
|
||||||
|
|
||||||
--Coal Dust
|
|
||||||
minetest.register_node("caverealms:coal_dust", {
|
|
||||||
description = "Coal Dust",
|
|
||||||
tiles = {"caverealms_coal_dust.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {crumbly=3, falling_node=1, sand=1},
|
|
||||||
sounds = default.node_sound_sand_defaults(),
|
|
||||||
})
|
|
||||||
|
|
||||||
--glow worms
|
|
||||||
minetest.register_node("caverealms:glow_worm", {
|
|
||||||
description = "Blue Glow Worms",
|
|
||||||
tiles = {"caverealms_glow_worm.png"},
|
|
||||||
inventory_image = "caverealms_glow_worm.png",
|
|
||||||
wield_image = "caverealms_glow_worm.png",
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {oddly_breakable_by_hand=3, },
|
|
||||||
light_source = 9,
|
|
||||||
paramtype = "light",
|
|
||||||
drawtype = "plantlike",
|
|
||||||
walkable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
visual_scale = 1.0,
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {-1/6, -1/2, -1/6, 1/6, 1/2, 1/6},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("caverealms:glow_worm_green", {
|
|
||||||
description = "Green Glow Worms",
|
|
||||||
tiles = {"caverealms_glow_worm_green.png"},
|
|
||||||
inventory_image = "caverealms_glow_worm_green.png",
|
|
||||||
wield_image = "caverealms_glow_worm_green.png",
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {oddly_breakable_by_hand=3, },
|
|
||||||
light_source = 9,
|
|
||||||
paramtype = "light",
|
|
||||||
drawtype = "plantlike",
|
|
||||||
walkable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
visual_scale = 1.0,
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {-1/6, -1/2, -1/6, 1/6, 1/2, 1/6},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("caverealms:glow_worm_red", {
|
|
||||||
description = "Red Glow Worms",
|
|
||||||
tiles = {"caverealms_glow_worm_red.png"},
|
|
||||||
inventory_image = "caverealms_glow_worm_red.png",
|
|
||||||
wield_image = "caverealms_glow_worm_red.png",
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {oddly_breakable_by_hand=3, },
|
|
||||||
light_source = 9,
|
|
||||||
paramtype = "light",
|
|
||||||
drawtype = "plantlike",
|
|
||||||
walkable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
visual_scale = 1.0,
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {-1/6, -1/2, -1/6, 1/6, 1/2, 1/6},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("caverealms:fire_vine", {
|
|
||||||
description = "Fire Vine",
|
|
||||||
tiles = {"caverealms_fire_vine.png"},
|
|
||||||
inventory_image = "caverealms_fire_vine.png",
|
|
||||||
wield_image = "caverealms_fire_vine.png",
|
|
||||||
is_ground_content = true,
|
|
||||||
damage_per_second = 1,
|
|
||||||
groups = {oddly_breakable_by_hand=3, },
|
|
||||||
light_source = 9,
|
|
||||||
paramtype = "light",
|
|
||||||
drawtype = "plantlike",
|
|
||||||
walkable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
visual_scale = 1.0,
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {-1/6, -1/2, -1/6, 1/6, 1/2, 1/6},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
--define special flame so that it does not expire
|
|
||||||
minetest.register_node("caverealms:constant_flame", {
|
|
||||||
description = "Fire",
|
|
||||||
drawtype = "plantlike",
|
|
||||||
tiles = {{
|
|
||||||
name="fire_basic_flame_animated.png",
|
|
||||||
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1},
|
|
||||||
}},
|
|
||||||
inventory_image = "fire_basic_flame.png",
|
|
||||||
light_source = 14,
|
|
||||||
groups = {igniter=2, dig_immediate=3, hot=3, not_in_creative_inventory=1},
|
|
||||||
paramtype = "light",
|
|
||||||
drop = '',
|
|
||||||
walkable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
damage_per_second = 4,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("caverealms:constant_flame_blue", {
|
|
||||||
description = "Blue Fire",
|
|
||||||
drawtype = "plantlike",
|
|
||||||
tiles = {{
|
|
||||||
name="caverealms_blue_flame_animated.png",
|
|
||||||
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1},
|
|
||||||
}},
|
|
||||||
inventory_image = "fire_basic_flame.png",
|
|
||||||
light_source = 14,
|
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1},
|
|
||||||
paramtype = "light",
|
|
||||||
drop = '',
|
|
||||||
walkable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
damage_per_second = 4,
|
|
||||||
})
|
|
||||||
|
|
||||||
--dungeon master statue (nodebox)
|
|
||||||
minetest.register_node("caverealms:dm_statue", {
|
|
||||||
description = "Dungeon Master Statue",
|
|
||||||
tiles = {
|
|
||||||
"caverealms_dm_stone.png",
|
|
||||||
"caverealms_dm_stone.png",
|
|
||||||
"caverealms_dm_stone.png",
|
|
||||||
"caverealms_dm_stone.png",
|
|
||||||
"caverealms_dm_stone.png",
|
|
||||||
"caverealms_stone_eyes.png"
|
|
||||||
},
|
|
||||||
drawtype = "nodebox",
|
|
||||||
paramtype = "light",
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
groups = {cracky=2},
|
|
||||||
node_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{-0.4375, -0.5, -0.4375, 0.4375, -0.3125, 0.4375}, -- NodeBox1
|
|
||||||
{-0.25, -0.125, -0.1875, 0.25, 0.5, 0.1875}, -- NodeBox2
|
|
||||||
{-0.375, 0, -0.125, -0.25, 0.4375, 0.125}, -- NodeBox3
|
|
||||||
{0.25, 0.125, -0.4375, 0.375, 0.375, 0.1875}, -- NodeBox4
|
|
||||||
{-0.25, -0.5, -0.125, -0.125, -0.125, 0.125}, -- NodeBox5
|
|
||||||
{0.125, -0.3125, -0.125, 0.25, 0, 0.125}, -- NodeBox6
|
|
||||||
}
|
|
||||||
},
|
|
||||||
selection_box = {
|
|
||||||
type = "regular"
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node("caverealms:butterfly_blue", {
|
|
||||||
description = desc,
|
|
||||||
drawtype = "plantlike",
|
|
||||||
tiles = {{
|
|
||||||
name = "caverealms_butterfly_blue_animated.png",
|
|
||||||
animation = {
|
|
||||||
type = "vertical_frames",
|
|
||||||
aspect_w = 32,
|
|
||||||
aspect_h = 32,
|
|
||||||
length = 3
|
|
||||||
},
|
|
||||||
}},
|
|
||||||
inventory_image = "caverealms_butterfly_blue.png",
|
|
||||||
wield_image = "caverealms_butterfly_blue.png",
|
|
||||||
waving = 1,
|
|
||||||
paramtype = "light",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
buildable_to = true,
|
|
||||||
walkable = false,
|
|
||||||
groups = {catchable = 1},
|
|
||||||
light_source = 6,
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
|
|
||||||
},
|
|
||||||
floodable = true,
|
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
|
||||||
local player_name = placer:get_player_name()
|
|
||||||
local pos = pointed_thing.above
|
|
||||||
|
|
||||||
if not minetest.is_protected(pos, player_name) and
|
|
||||||
not minetest.is_protected(pointed_thing.under, player_name) and
|
|
||||||
minetest.get_node(pos).name == "air" then
|
|
||||||
minetest.set_node(pos, {name = "caverealms:butterfly_blue"})
|
|
||||||
itemstack:take_item()
|
|
||||||
end
|
|
||||||
return itemstack
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
-- Compatibility
|
|
||||||
minetest.register_alias("caverealms:hanging_thin_ice", "caverealms:thin_ice")
|
|
||||||
|
|
||||||
minetest.register_alias("caverealms:spike_2", "caverealms:spike")
|
|
||||||
minetest.register_alias("caverealms:spike_3", "caverealms:spike")
|
|
||||||
minetest.register_alias("caverealms:spike_4", "caverealms:spike")
|
|
||||||
minetest.register_alias("caverealms:spike_5", "caverealms:spike")
|
|
||||||
|
|
||||||
minetest.register_alias("caverealms:salt_gem_2", "caverealms:salt_gem")
|
|
||||||
minetest.register_alias("caverealms:salt_gem_3", "caverealms:salt_gem")
|
|
||||||
minetest.register_alias("caverealms:salt_gem_4", "caverealms:salt_gem")
|
|
||||||
minetest.register_alias("caverealms:salt_gem_5", "caverealms:salt_gem")
|
|
||||||
|
|
||||||
minetest.register_alias("caverealms:glow_gem_2", "caverealms:glow_gem")
|
|
||||||
minetest.register_alias("caverealms:glow_gem_3", "caverealms:glow_gem")
|
|
||||||
minetest.register_alias("caverealms:glow_gem_4", "caverealms:glow_gem")
|
|
||||||
minetest.register_alias("caverealms:glow_gem_5", "caverealms:glow_gem")
|
|
|
@ -1,277 +0,0 @@
|
||||||
-- Lichen biome
|
|
||||||
|
|
||||||
-- glowing fungi
|
|
||||||
minetest.register_node("caverealms:fungus", {
|
|
||||||
description = "Glowing Fungus",
|
|
||||||
tiles = {"caverealms_fungi.png"},
|
|
||||||
inventory_image = "caverealms_fungi.png",
|
|
||||||
wield_image = "caverealms_fungi.png",
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {oddly_breakable_by_hand = 3, attached_node = 1},
|
|
||||||
light_source = 5,
|
|
||||||
paramtype = "light",
|
|
||||||
drawtype = "plantlike",
|
|
||||||
walkable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
visual_scale = 1.0,
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
-- mycena mushroom
|
|
||||||
minetest.register_node("caverealms:mycena", {
|
|
||||||
description = "Mycena Mushroom",
|
|
||||||
tiles = {"caverealms_mycena.png"},
|
|
||||||
inventory_image = "caverealms_mycena.png",
|
|
||||||
wield_image = "caverealms_mycena.png",
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {oddly_breakable_by_hand = 3, attached_node = 1},
|
|
||||||
light_source = 6,
|
|
||||||
paramtype = "light",
|
|
||||||
drawtype = "plantlike",
|
|
||||||
walkable = false,
|
|
||||||
buildable_to = true,
|
|
||||||
visual_scale = 1.0,
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
-- giant mushroom
|
|
||||||
if minetest.get_modpath("ethereal") then
|
|
||||||
minetest.register_alias("caverealms:mushroom_cap", "ethereal:mushroom")
|
|
||||||
minetest.register_alias("caverealms:mushroom_stem", "ethereal:mushroom_trunk")
|
|
||||||
else
|
|
||||||
-- stem
|
|
||||||
minetest.register_node("caverealms:mushroom_stem", {
|
|
||||||
description = "Giant Mushroom Stem",
|
|
||||||
tiles = {"caverealms_mushroom_stem.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {choppy=2, oddly_breakable_by_hand=1},
|
|
||||||
})
|
|
||||||
|
|
||||||
-- cap
|
|
||||||
minetest.register_node("caverealms:mushroom_cap", {
|
|
||||||
description = "Giant Mushroom Cap",
|
|
||||||
tiles = {"caverealms_mushroom_cap.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {choppy=2, oddly_breakable_by_hand=1,},
|
|
||||||
light_source = 3,
|
|
||||||
drop = {
|
|
||||||
max_items = 1,
|
|
||||||
items = {
|
|
||||||
{items = {"caverealms:mushroom_sapling"}, rarity = 20},
|
|
||||||
{items = {"caverealms:mushroom_cap"}}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
-- sapling
|
|
||||||
minetest.register_node("caverealms:mushroom_sapling", {
|
|
||||||
description = "Mushroom Tree Sapling",
|
|
||||||
drawtype = "plantlike",
|
|
||||||
tiles = {"caverealms_mushroom_sapling.png"},
|
|
||||||
paramtype = "light",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
is_ground_content = false,
|
|
||||||
walkable = false,
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
|
||||||
},
|
|
||||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2},
|
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
-- green mushroom
|
|
||||||
-- cap
|
|
||||||
minetest.register_node("caverealms:mushroom_cap_green", {
|
|
||||||
description = "Giant Mushroom Cap, Green",
|
|
||||||
tiles = {"caverealms_mushroom_cap_green.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {choppy=2, oddly_breakable_by_hand=1,},
|
|
||||||
light_source = 3,
|
|
||||||
drop = {
|
|
||||||
max_items = 1,
|
|
||||||
items = {
|
|
||||||
{items = {"caverealms:mushroom_sapling_green"}, rarity = 20},
|
|
||||||
{items = {"caverealms:mushroom_cap_green"}}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
})
|
|
||||||
minetest.register_node("caverealms:mushroom_cap_green_spots", {
|
|
||||||
description = "Giant Mushroom Cap, Green",
|
|
||||||
tiles = {"caverealms_mushroom_cap_green.png^caverealms_mushroom_cap_spots.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
groups = {choppy=2, oddly_breakable_by_hand=1,},
|
|
||||||
light_source = 3,
|
|
||||||
drop = {
|
|
||||||
max_items = 1,
|
|
||||||
items = {
|
|
||||||
{items = {"caverealms:mushroom_sapling_green_spots"}, rarity = 20},
|
|
||||||
{items = {"caverealms:mushroom_cap_green"}}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
-- sapling
|
|
||||||
minetest.register_node("caverealms:mushroom_sapling_green", {
|
|
||||||
description = "Mushroom Tree Sapling, Green",
|
|
||||||
drawtype = "plantlike",
|
|
||||||
tiles = {"caverealms_mushroom_sapling_green.png"},
|
|
||||||
paramtype = "light",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
is_ground_content = false,
|
|
||||||
walkable = false,
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
|
||||||
},
|
|
||||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2},
|
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
-- gills
|
|
||||||
minetest.register_node("caverealms:mushroom_gills", {
|
|
||||||
description = "Giant Mushroom Gills",
|
|
||||||
tiles = {"caverealms_mushroom_gills.png"},
|
|
||||||
is_ground_content = true,
|
|
||||||
light_source = 10,
|
|
||||||
groups = {choppy=2, oddly_breakable_by_hand=1},
|
|
||||||
drawtype = "plantlike",
|
|
||||||
paramtype = "light",
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
-- Saplings
|
|
||||||
|
|
||||||
-- grow trees
|
|
||||||
local add_tree = function (pos, ofx, ofy, ofz, schem)
|
|
||||||
if not schem then
|
|
||||||
print ("Schematic not found")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
minetest.swap_node(pos, {name = "air"})
|
|
||||||
minetest.place_schematic(
|
|
||||||
{x = pos.x - ofx, y = pos.y - ofy, z = pos.z - ofz},
|
|
||||||
schem, 0, nil, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
local path = minetest.get_modpath("caverealms").."/schematics/"
|
|
||||||
|
|
||||||
-- giant mushrooms
|
|
||||||
function grow_caverealms_mushroom(pos)
|
|
||||||
add_tree(pos, 5, 0, 5, path .. "shroom.mts")
|
|
||||||
end
|
|
||||||
|
|
||||||
-- height check
|
|
||||||
local function enough_height(pos, height)
|
|
||||||
local nod = minetest.line_of_sight(
|
|
||||||
{x = pos.x, y = pos.y + 1, z = pos.z},
|
|
||||||
{x = pos.x, y = pos.y + height, z = pos.z})
|
|
||||||
if not nod then
|
|
||||||
return false
|
|
||||||
else
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.register_abm({
|
|
||||||
label = "Caverealms grow sapling",
|
|
||||||
nodenames = {"ethereal:mushroom_sapling", "caverealms:mushroom_sapling"},
|
|
||||||
interval = 10,
|
|
||||||
chance = 50,
|
|
||||||
catch_up = false,
|
|
||||||
action = function(pos, node)
|
|
||||||
local light_level = minetest.get_node_light(pos)
|
|
||||||
-- check light level
|
|
||||||
if not light_level or light_level > 10 then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
-- get node under sapling
|
|
||||||
local under = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}).name
|
|
||||||
-- check if registered
|
|
||||||
if not minetest.registered_nodes[node.name] then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
-- ethereal sapling on lichen stone
|
|
||||||
if node.name == "ethereal:mushroom_sapling"
|
|
||||||
and under == "caverealms:stone_with_lichen"
|
|
||||||
and enough_height(pos, 10) then
|
|
||||||
grow_caverealms_mushroom(pos)
|
|
||||||
-- caverealms sapling on lichen stone
|
|
||||||
elseif node.name == "caverealms:mushroom_sapling"
|
|
||||||
and under == "caverealms:stone_with_lichen"
|
|
||||||
and enough_height(pos, 10) then
|
|
||||||
grow_caverealms_mushroom(pos)
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
-- green mushroom growth
|
|
||||||
function caverealms:grow_green_mushroom(x,y,z, area, data)
|
|
||||||
local c_stem = minetest.get_content_id("caverealms:mushroom_stem")
|
|
||||||
local c_gills = minetest.get_content_id("caverealms:mushroom_gills")
|
|
||||||
local c_cap = minetest.get_content_id("caverealms:mushroom_cap_green")
|
|
||||||
local c_caps = minetest.get_content_id("caverealms:mushroom_cap_green_spots")
|
|
||||||
|
|
||||||
-- stem
|
|
||||||
local stop = {x=x,y=y+3,z=z}--{x = x+math.random(-1,1), y = y+3, z = z+math.random(-1,1)}
|
|
||||||
|
|
||||||
for i = 1,3 do
|
|
||||||
-- local vi = area:index(x+((stop.x-x) / i), y+i, z+((stop.z-z) / i))
|
|
||||||
local vi = area:index(x, y+i, z)
|
|
||||||
data[vi] = c_stem
|
|
||||||
end
|
|
||||||
|
|
||||||
data[area:index(stop.x+1, y+3, stop.z)] = c_gills
|
|
||||||
data[area:index(stop.x-1, y+3, stop.z)] = c_gills
|
|
||||||
data[area:index(stop.x, y+3, stop.z+1)] = c_gills
|
|
||||||
data[area:index(stop.x, y+3, stop.z-1)] = c_gills
|
|
||||||
|
|
||||||
data[area:index(stop.x+1, y+3, stop.z+1)] = c_cap
|
|
||||||
data[area:index(stop.x-1, y+3, stop.z+1)] = c_cap
|
|
||||||
data[area:index(stop.x+1, y+3, stop.z-1)] = c_cap
|
|
||||||
data[area:index(stop.x-1, y+3, stop.z-1)] = c_caps
|
|
||||||
data[area:index(stop.x+2, y+3, stop.z)] = c_cap
|
|
||||||
data[area:index(stop.x-2, y+3, stop.z)] = c_cap
|
|
||||||
data[area:index(stop.x, y+3, stop.z+2)] = c_caps
|
|
||||||
data[area:index(stop.x, y+3, stop.z-2)] = c_cap
|
|
||||||
data[area:index(stop.x+1, y+4, stop.z)] = c_caps
|
|
||||||
data[area:index(stop.x-1, y+4, stop.z)] = c_cap
|
|
||||||
data[area:index(stop.x, y+4, stop.z+1)] = c_caps
|
|
||||||
data[area:index(stop.x, y+4, stop.z-1)] = c_cap
|
|
||||||
data[area:index(stop.x, y+4, stop.z)] = c_cap
|
|
||||||
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- spread moss/lichen/algae to nearby cobblestone
|
|
||||||
minetest.register_abm({
|
|
||||||
label = "Caverealms stone spread",
|
|
||||||
nodenames = {
|
|
||||||
"caverealms:stone_with_moss",
|
|
||||||
"caverealms:stone_with_lichen",
|
|
||||||
"caverealms:stone_with_algae",
|
|
||||||
},
|
|
||||||
neighbors = {"air"},
|
|
||||||
interval = 16,
|
|
||||||
chance = 50,
|
|
||||||
catch_up = false,
|
|
||||||
action = function(pos, node)
|
|
||||||
local num = minetest.find_nodes_in_area_under_air(
|
|
||||||
{x = pos.x - 1, y = pos.y - 2, z = pos.z - 1},
|
|
||||||
{x = pos.x + 1, y = pos.y + 1, z = pos.z + 1},
|
|
||||||
"default:cobble")
|
|
||||||
if #num > 0 then
|
|
||||||
minetest.set_node(num[math.random(#num)], {name = node.name})
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
Before Width: | Height: | Size: 153 KiB |
Before Width: | Height: | Size: 739 B |
Before Width: | Height: | Size: 446 B |
Before Width: | Height: | Size: 252 B |
Before Width: | Height: | Size: 273 B |
Before Width: | Height: | Size: 260 B |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 152 B |
Before Width: | Height: | Size: 202 B |
Before Width: | Height: | Size: 288 B |
Before Width: | Height: | Size: 590 B |
Before Width: | Height: | Size: 554 B |
Before Width: | Height: | Size: 150 B |
Before Width: | Height: | Size: 325 B |
Before Width: | Height: | Size: 329 B |
Before Width: | Height: | Size: 168 B |
Before Width: | Height: | Size: 755 B |
Before Width: | Height: | Size: 637 B |
Before Width: | Height: | Size: 330 B |
Before Width: | Height: | Size: 330 B |
Before Width: | Height: | Size: 329 B |
Before Width: | Height: | Size: 248 B |
Before Width: | Height: | Size: 330 B |
Before Width: | Height: | Size: 162 B |
Before Width: | Height: | Size: 245 B |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 3 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 276 B |
Before Width: | Height: | Size: 345 B |
Before Width: | Height: | Size: 330 B |
Before Width: | Height: | Size: 329 B |
Before Width: | Height: | Size: 406 B |
Before Width: | Height: | Size: 351 B |
Before Width: | Height: | Size: 574 B |
Before Width: | Height: | Size: 431 B |
Before Width: | Height: | Size: 161 B |
Before Width: | Height: | Size: 158 B |
Before Width: | Height: | Size: 925 B |
Before Width: | Height: | Size: 437 B |
Before Width: | Height: | Size: 754 B |
Before Width: | Height: | Size: 457 B |
Before Width: | Height: | Size: 172 B |
Before Width: | Height: | Size: 316 B |
Before Width: | Height: | Size: 165 B |
Before Width: | Height: | Size: 141 B |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 402 B |
Before Width: | Height: | Size: 240 B |
Before Width: | Height: | Size: 402 B |
Before Width: | Height: | Size: 243 B |
Before Width: | Height: | Size: 330 B |
Before Width: | Height: | Size: 248 B |
Before Width: | Height: | Size: 662 B |
Before Width: | Height: | Size: 679 B |
Before Width: | Height: | Size: 719 B |
Before Width: | Height: | Size: 1.2 KiB |
|
@ -7,8 +7,8 @@ asuna.biomes = {
|
||||||
name = "Mountain",
|
name = "Mountain",
|
||||||
heat = 50,
|
heat = 50,
|
||||||
humidity = 50,
|
humidity = 50,
|
||||||
y_min = -31000,
|
y_min = 31000,
|
||||||
y_max = -31000,
|
y_max = 2450,
|
||||||
nodes = {
|
nodes = {
|
||||||
"default:snow", 1,
|
"default:snow", 1,
|
||||||
"default:snowblock", 2,
|
"default:snowblock", 2,
|
||||||
|
@ -28,7 +28,7 @@ asuna.biomes = {
|
||||||
heat = 51,
|
heat = 51,
|
||||||
humidity = 54,
|
humidity = 54,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
y_blend = 4,
|
y_blend = 4,
|
||||||
nodes = {
|
nodes = {
|
||||||
"default:dirt_with_grass", 1,
|
"default:dirt_with_grass", 1,
|
||||||
|
@ -69,7 +69,7 @@ asuna.biomes = {
|
||||||
heat = 54,
|
heat = 54,
|
||||||
humidity = 32,
|
humidity = 32,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
y_blend = 4,
|
y_blend = 4,
|
||||||
nodes = {
|
nodes = {
|
||||||
"default:dry_dirt_with_dry_grass", 1,
|
"default:dry_dirt_with_dry_grass", 1,
|
||||||
|
@ -91,7 +91,7 @@ asuna.biomes = {
|
||||||
heat = 47,
|
heat = 47,
|
||||||
humidity = 47,
|
humidity = 47,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
y_blend = 4,
|
y_blend = 4,
|
||||||
nodes = {
|
nodes = {
|
||||||
"prairie:prairie_dirt_with_grass", 1,
|
"prairie:prairie_dirt_with_grass", 1,
|
||||||
|
@ -112,7 +112,7 @@ asuna.biomes = {
|
||||||
heat = 51,
|
heat = 51,
|
||||||
humidity = 45,
|
humidity = 45,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"dorwinion:dorwinion_grass", 1,
|
"dorwinion:dorwinion_grass", 1,
|
||||||
"dorwinion:dorwinion", 5,
|
"dorwinion:dorwinion", 5,
|
||||||
|
@ -159,7 +159,7 @@ asuna.biomes = {
|
||||||
heat = 25,
|
heat = 25,
|
||||||
humidity = 35,
|
humidity = 35,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2100,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"naturalbiomes:alpine_litter", 1,
|
"naturalbiomes:alpine_litter", 1,
|
||||||
"naturalbiomes:alpine_rock", 32,
|
"naturalbiomes:alpine_rock", 32,
|
||||||
|
@ -180,7 +180,7 @@ asuna.biomes = {
|
||||||
heat = 52,
|
heat = 52,
|
||||||
humidity = 11,
|
humidity = 11,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
y_blend = 6,
|
y_blend = 6,
|
||||||
nodes = {
|
nodes = {
|
||||||
"default:desert_sand", 1,
|
"default:desert_sand", 1,
|
||||||
|
@ -229,7 +229,7 @@ asuna.biomes = {
|
||||||
heat = 95,
|
heat = 95,
|
||||||
humidity = 25,
|
humidity = 25,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"everness:forsaken_desert_sand", 1,
|
"everness:forsaken_desert_sand", 1,
|
||||||
"everness:forsaken_desert_sand", 1,
|
"everness:forsaken_desert_sand", 1,
|
||||||
|
@ -255,7 +255,7 @@ asuna.biomes = {
|
||||||
heat = 83,
|
heat = 83,
|
||||||
humidity = 35,
|
humidity = 35,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"naturalbiomes:outback_litter", 1,
|
"naturalbiomes:outback_litter", 1,
|
||||||
"naturalbiomes:outback_ground", 32,
|
"naturalbiomes:outback_ground", 32,
|
||||||
|
@ -277,7 +277,7 @@ asuna.biomes = {
|
||||||
heat = 80,
|
heat = 80,
|
||||||
humidity = 46,
|
humidity = 46,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"naturalbiomes:bushland_bushlandlitter", 1,
|
"naturalbiomes:bushland_bushlandlitter", 1,
|
||||||
"default:dirt", 3,
|
"default:dirt", 3,
|
||||||
|
@ -299,7 +299,7 @@ asuna.biomes = {
|
||||||
heat = 46,
|
heat = 46,
|
||||||
humidity = 64,
|
humidity = 64,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"naturalbiomes:heath_litter", 1,
|
"naturalbiomes:heath_litter", 1,
|
||||||
"default:sand", 3,
|
"default:sand", 3,
|
||||||
|
@ -321,7 +321,7 @@ asuna.biomes = {
|
||||||
heat = 74,
|
heat = 74,
|
||||||
humidity = 7,
|
humidity = 7,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"default:sand", 1,
|
"default:sand", 1,
|
||||||
"default:sandstone", 32,
|
"default:sandstone", 32,
|
||||||
|
@ -347,7 +347,7 @@ asuna.biomes = {
|
||||||
heat = 58,
|
heat = 58,
|
||||||
humidity = 24,
|
humidity = 24,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"naturalbiomes:savannalitter", 1,
|
"naturalbiomes:savannalitter", 1,
|
||||||
"default:dirt", 3,
|
"default:dirt", 3,
|
||||||
|
@ -369,7 +369,7 @@ asuna.biomes = {
|
||||||
heat = 82,
|
heat = 82,
|
||||||
humidity = 48,
|
humidity = 48,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"naturalbiomes:mediterran_litter", 1,
|
"naturalbiomes:mediterran_litter", 1,
|
||||||
"naturalbiomes:mediterran_rock", 16,
|
"naturalbiomes:mediterran_rock", 16,
|
||||||
|
@ -390,7 +390,7 @@ asuna.biomes = {
|
||||||
heat = 73,
|
heat = 73,
|
||||||
humidity = 94,
|
humidity = 94,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2100,
|
y_max = 1725,
|
||||||
y_blend = 4,
|
y_blend = 4,
|
||||||
nodes = {
|
nodes = {
|
||||||
"ethereal:mushroom_dirt", 1,
|
"ethereal:mushroom_dirt", 1,
|
||||||
|
@ -412,7 +412,7 @@ asuna.biomes = {
|
||||||
heat = 77,
|
heat = 77,
|
||||||
humidity = 72,
|
humidity = 72,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"default:dirt_with_grass", 1,
|
"default:dirt_with_grass", 1,
|
||||||
"default:dirt", 3,
|
"default:dirt", 3,
|
||||||
|
@ -463,7 +463,7 @@ asuna.biomes = {
|
||||||
heat = 48,
|
heat = 48,
|
||||||
humidity = 99,
|
humidity = 99,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"everness:dirt_with_grass_1", 1,
|
"everness:dirt_with_grass_1", 1,
|
||||||
"everness:dirt_1", 3,
|
"everness:dirt_1", 3,
|
||||||
|
@ -484,7 +484,7 @@ asuna.biomes = {
|
||||||
heat = 39,
|
heat = 39,
|
||||||
humidity = 75,
|
humidity = 75,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"japaneseforest:japanese_dirt_with_grass", 1,
|
"japaneseforest:japanese_dirt_with_grass", 1,
|
||||||
"default:dirt", 3,
|
"default:dirt", 3,
|
||||||
|
@ -505,7 +505,7 @@ asuna.biomes = {
|
||||||
heat = 28,
|
heat = 28,
|
||||||
humidity = 68,
|
humidity = 68,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"nightshade:nightshade_dirt_with_grass", 1,
|
"nightshade:nightshade_dirt_with_grass", 1,
|
||||||
"default:dirt", 3,
|
"default:dirt", 3,
|
||||||
|
@ -526,7 +526,7 @@ asuna.biomes = {
|
||||||
heat = 35,
|
heat = 35,
|
||||||
humidity = 40,
|
humidity = 40,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
y_blend = 4,
|
y_blend = 4,
|
||||||
nodes = {
|
nodes = {
|
||||||
"default:dirt_with_grass", 1,
|
"default:dirt_with_grass", 1,
|
||||||
|
@ -547,7 +547,7 @@ asuna.biomes = {
|
||||||
heat = 36,
|
heat = 36,
|
||||||
humidity = 15,
|
humidity = 15,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"default:dirt_with_dry_grass", 1,
|
"default:dirt_with_dry_grass", 1,
|
||||||
"bakedclay:orange", 15,
|
"bakedclay:orange", 15,
|
||||||
|
@ -573,7 +573,7 @@ asuna.biomes = {
|
||||||
heat = 56,
|
heat = 56,
|
||||||
humidity = 93,
|
humidity = 93,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"default:dirt_with_rainforest_litter", 1,
|
"default:dirt_with_rainforest_litter", 1,
|
||||||
"default:dirt", 3,
|
"default:dirt", 3,
|
||||||
|
@ -618,7 +618,7 @@ asuna.biomes = {
|
||||||
heat = 44,
|
heat = 44,
|
||||||
humidity = 75,
|
humidity = 75,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
y_blend = 6,
|
y_blend = 6,
|
||||||
nodes = {
|
nodes = {
|
||||||
"ethereal:bamboo_dirt", 1,
|
"ethereal:bamboo_dirt", 1,
|
||||||
|
@ -640,7 +640,7 @@ asuna.biomes = {
|
||||||
heat = 89,
|
heat = 89,
|
||||||
humidity = 77,
|
humidity = 77,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"default:dirt_with_rainforest_litter", 1,
|
"default:dirt_with_rainforest_litter", 1,
|
||||||
"default:dirt", 3,
|
"default:dirt", 3,
|
||||||
|
@ -662,7 +662,7 @@ asuna.biomes = {
|
||||||
heat = 90,
|
heat = 90,
|
||||||
humidity = 89,
|
humidity = 89,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"livingjungle:jungleground", 1,
|
"livingjungle:jungleground", 1,
|
||||||
"default:dirt", 6,
|
"default:dirt", 6,
|
||||||
|
@ -683,7 +683,7 @@ asuna.biomes = {
|
||||||
heat = 82,
|
heat = 82,
|
||||||
humidity = 65,
|
humidity = 65,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
y_blend = 2,
|
y_blend = 2,
|
||||||
nodes = {
|
nodes = {
|
||||||
"ethereal:grove_dirt", 1,
|
"ethereal:grove_dirt", 1,
|
||||||
|
@ -705,7 +705,7 @@ asuna.biomes = {
|
||||||
heat = 59,
|
heat = 59,
|
||||||
humidity = 79,
|
humidity = 79,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
y_blend = 4,
|
y_blend = 4,
|
||||||
nodes = {
|
nodes = {
|
||||||
"naturalbiomes:alderswamp_litter", 1,
|
"naturalbiomes:alderswamp_litter", 1,
|
||||||
|
@ -731,7 +731,7 @@ asuna.biomes = {
|
||||||
heat = 19,
|
heat = 19,
|
||||||
humidity = 65,
|
humidity = 65,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"badland:badland_grass", 1,
|
"badland:badland_grass", 1,
|
||||||
"default:dirt", 3,
|
"default:dirt", 3,
|
||||||
|
@ -752,7 +752,28 @@ asuna.biomes = {
|
||||||
heat = 21,
|
heat = 21,
|
||||||
humidity = 12,
|
humidity = 12,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2100,
|
y_max = 1750,
|
||||||
|
nodes = {
|
||||||
|
"ethereal:gray_dirt", 1,
|
||||||
|
"default:silver_sand", 5,
|
||||||
|
},
|
||||||
|
flowers = {"white","cyan"},
|
||||||
|
mushrooms = {"brown"},
|
||||||
|
animals = {"reindeer","turkey","sheep","grizzly_bear"},
|
||||||
|
crops = {},
|
||||||
|
shore = "default:silver_sand",
|
||||||
|
seabed = "default:silver_sand",
|
||||||
|
ocean = "cold",
|
||||||
|
cave = "frosted_icesheet",
|
||||||
|
dungeon = "silver_sandstone",
|
||||||
|
},
|
||||||
|
|
||||||
|
grayness_floatland = {
|
||||||
|
name = "Gray Lands Floatland",
|
||||||
|
heat = 21,
|
||||||
|
humidity = 12,
|
||||||
|
y_min = 2451,
|
||||||
|
y_max = 3175,
|
||||||
nodes = {
|
nodes = {
|
||||||
"ethereal:gray_dirt", 1,
|
"ethereal:gray_dirt", 1,
|
||||||
"default:silver_sand", 5,
|
"default:silver_sand", 5,
|
||||||
|
@ -794,7 +815,7 @@ asuna.biomes = {
|
||||||
heat = 20,
|
heat = 20,
|
||||||
humidity = 41,
|
humidity = 41,
|
||||||
y_min = 49,
|
y_min = 49,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"default:dirt_with_snow", 1,
|
"default:dirt_with_snow", 1,
|
||||||
"default:dirt", 3,
|
"default:dirt", 3,
|
||||||
|
@ -815,7 +836,30 @@ asuna.biomes = {
|
||||||
heat = 2,
|
heat = 2,
|
||||||
humidity = 47,
|
humidity = 47,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
|
nodes = {
|
||||||
|
"default:snowblock", 1,
|
||||||
|
"default:snowblock", 3,
|
||||||
|
"default:stone",
|
||||||
|
"default:snowblock",
|
||||||
|
},
|
||||||
|
flowers = {},
|
||||||
|
mushrooms = {},
|
||||||
|
animals = {"grizzly_bear"},
|
||||||
|
crops = {},
|
||||||
|
shore = "default:cave_ice",
|
||||||
|
seabed = "default:sand",
|
||||||
|
ocean = "frozen",
|
||||||
|
cave = "frosted_icesheet",
|
||||||
|
dungeon = "howlite",
|
||||||
|
},
|
||||||
|
|
||||||
|
glacier_floatlands = {
|
||||||
|
name = "glacier_floatlands",
|
||||||
|
heat = 2,
|
||||||
|
humidity = 47,
|
||||||
|
y_min = 2451,
|
||||||
|
y_max = 31000,
|
||||||
nodes = {
|
nodes = {
|
||||||
"default:snowblock", 1,
|
"default:snowblock", 1,
|
||||||
"default:snowblock", 3,
|
"default:snowblock", 3,
|
||||||
|
@ -838,7 +882,7 @@ asuna.biomes = {
|
||||||
heat = 10,
|
heat = 10,
|
||||||
humidity = 80,
|
humidity = 80,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"frost_land:frost_land_grass", 1,
|
"frost_land:frost_land_grass", 1,
|
||||||
"default:dirt", 3,
|
"default:dirt", 3,
|
||||||
|
@ -906,7 +950,7 @@ asuna.biomes = {
|
||||||
heat = 22,
|
heat = 22,
|
||||||
humidity = 9,
|
humidity = 9,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"everness:forsaken_tundra_dirt", 1,
|
"everness:forsaken_tundra_dirt", 1,
|
||||||
"everness:forsaken_tundra_dirt", 1,
|
"everness:forsaken_tundra_dirt", 1,
|
||||||
|
@ -932,7 +976,7 @@ asuna.biomes = {
|
||||||
heat = 8,
|
heat = 8,
|
||||||
humidity = 91,
|
humidity = 91,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"ethereal:crystal_dirt", 1,
|
"ethereal:crystal_dirt", 1,
|
||||||
"default:dirt", 3,
|
"default:dirt", 3,
|
||||||
|
@ -950,12 +994,38 @@ asuna.biomes = {
|
||||||
dungeon = "granite_blue",
|
dungeon = "granite_blue",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
frost_floatland = {
|
||||||
|
name = "frost_floatland",
|
||||||
|
heat = 8,
|
||||||
|
humidity = 91,
|
||||||
|
y_min = 2451,
|
||||||
|
y_max = 3175,
|
||||||
|
nodes = {
|
||||||
|
"ethereal:crystal_dirt", 1,
|
||||||
|
"default:dirt", 3,
|
||||||
|
"default:cave_ice",
|
||||||
|
"default:snow",
|
||||||
|
},
|
||||||
|
|
||||||
|
flowers = {},
|
||||||
|
mushrooms = {},
|
||||||
|
animals = {"fox","owl","turkey","wolf","reindeer","grizzly_bear"},
|
||||||
|
crops = {},
|
||||||
|
shore = "default:cave_ice",
|
||||||
|
seabed = "default:sand",
|
||||||
|
ocean = "frozen",
|
||||||
|
cave = "crystal_forest",
|
||||||
|
dungeon = "granite_blue",
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
["everness:frosted_icesheet"] = {
|
["everness:frosted_icesheet"] = {
|
||||||
name = "Frosted Icesheet",
|
name = "Frosted Icesheet",
|
||||||
heat = 1,
|
heat = 1,
|
||||||
humidity = 59,
|
humidity = 59,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"everness:frosted_snowblock", 1,
|
"everness:frosted_snowblock", 1,
|
||||||
"everness:frosted_snowblock", 3,
|
"everness:frosted_snowblock", 3,
|
||||||
|
@ -981,7 +1051,7 @@ asuna.biomes = {
|
||||||
heat = 63,
|
heat = 63,
|
||||||
humidity = 81,
|
humidity = 81,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"everness:dirt_with_cursed_grass", 1,
|
"everness:dirt_with_cursed_grass", 1,
|
||||||
"everness:cursed_dirt", 3,
|
"everness:cursed_dirt", 3,
|
||||||
|
@ -1008,7 +1078,7 @@ asuna.biomes = {
|
||||||
heat = 22,
|
heat = 22,
|
||||||
humidity = 98,
|
humidity = 98,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"everness:dirt_with_crystal_grass", 1,
|
"everness:dirt_with_crystal_grass", 1,
|
||||||
"everness:crystal_dirt", 3,
|
"everness:crystal_dirt", 3,
|
||||||
|
@ -1035,7 +1105,7 @@ asuna.biomes = {
|
||||||
heat = 24,
|
heat = 24,
|
||||||
humidity = 74,
|
humidity = 74,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"everness:dirt_with_coral_grass", 1,
|
"everness:dirt_with_coral_grass", 1,
|
||||||
"everness:coral_dirt", 3,
|
"everness:coral_dirt", 3,
|
||||||
|
@ -1062,7 +1132,7 @@ asuna.biomes = {
|
||||||
heat = 98,
|
heat = 98,
|
||||||
humidity = 56,
|
humidity = 56,
|
||||||
y_min = 4,
|
y_min = 4,
|
||||||
y_max = 2048,
|
y_max = 1725,
|
||||||
nodes = {
|
nodes = {
|
||||||
"everness:mineral_sand", 1,
|
"everness:mineral_sand", 1,
|
||||||
"everness:mineral_stone", 1,
|
"everness:mineral_stone", 1,
|
||||||
|
|
|
@ -2557,7 +2557,7 @@ local function init_secrets()
|
||||||
nodeId_bookshelf = interop.find_node_id({mineCloneBookshelfName, "default:bookshelf"})
|
nodeId_bookshelf = interop.find_node_id({mineCloneBookshelfName, "default:bookshelf"})
|
||||||
nodeName_bookshelf = minetest.get_name_from_content_id(nodeId_bookshelf)
|
nodeName_bookshelf = minetest.get_name_from_content_id(nodeId_bookshelf)
|
||||||
isMineCloneBookshelf = nodeName_bookshelf == mineCloneBookshelfName
|
isMineCloneBookshelf = nodeName_bookshelf == mineCloneBookshelfName
|
||||||
|
--[[
|
||||||
if nodeId_cobweb ~= nodeId_ignore then
|
if nodeId_cobweb ~= nodeId_ignore then
|
||||||
-- This game has proper cobwebs, replace any cobwebs this mod may have generated
|
-- This game has proper cobwebs, replace any cobwebs this mod may have generated
|
||||||
-- previously (when a cobweb mod wasn't included) with the proper cobwebs.
|
-- previously (when a cobweb mod wasn't included) with the proper cobwebs.
|
||||||
|
@ -2566,6 +2566,7 @@ local function init_secrets()
|
||||||
-- use a stand-in cobweb created by this mod
|
-- use a stand-in cobweb created by this mod
|
||||||
nodeId_cobweb = minetest.get_content_id(nodeName_standinCobweb)
|
nodeId_cobweb = minetest.get_content_id(nodeName_standinCobweb)
|
||||||
end
|
end
|
||||||
|
]]--
|
||||||
end
|
end
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
-- End of secrets section
|
-- End of secrets section
|
||||||
|
|
|
@ -203,7 +203,7 @@ register_decoration(ethereal.caves, {
|
||||||
|
|
||||||
register_decoration(ethereal.frost, {
|
register_decoration(ethereal.frost, {
|
||||||
place_on = {"ethereal:crystal_dirt"},
|
place_on = {"ethereal:crystal_dirt"},
|
||||||
fill_ratio = 0.02, y_min = 1, y_max = 1750,
|
fill_ratio = 0.02, y_min = 1, y_max = 4000,
|
||||||
biomes = {"frost", "frost_floatland"},
|
biomes = {"frost", "frost_floatland"},
|
||||||
decoration = {"ethereal:crystal_spike", "ethereal:crystalgrass"}})
|
decoration = {"ethereal:crystal_spike", "ethereal:crystalgrass"}})
|
||||||
|
|
||||||
|
|
|
@ -192,6 +192,7 @@ register_decoration(1, {
|
||||||
"frost",
|
"frost",
|
||||||
"taiga",
|
"taiga",
|
||||||
"glacier",
|
"glacier",
|
||||||
|
"frost_floatland",
|
||||||
},
|
},
|
||||||
schematic = ethereal.yellowtree,
|
schematic = ethereal.yellowtree,
|
||||||
flags = "place_center_x,place_center_z",
|
flags = "place_center_x,place_center_z",
|
||||||
|
@ -252,7 +253,7 @@ register_decoration(ethereal.glacier, {
|
||||||
|
|
||||||
register_decoration(ethereal.frost, {
|
register_decoration(ethereal.frost, {
|
||||||
place_on = "ethereal:crystal_dirt",
|
place_on = "ethereal:crystal_dirt",
|
||||||
fill_ratio = 0.01, y_min = 1, y_max = 1750,
|
fill_ratio = 0.01, y_min = 1, y_max = 4000,
|
||||||
biomes = {"frost", "frost_floatland"},
|
biomes = {"frost", "frost_floatland"},
|
||||||
schematic = ethereal.frosttrees,
|
schematic = ethereal.frosttrees,
|
||||||
spawn_by = "ethereal:crystal_dirt", num_spawn_by = 8})
|
spawn_by = "ethereal:crystal_dirt", num_spawn_by = 8})
|
||||||
|
@ -923,6 +924,7 @@ if ethereal.logs == 1 then
|
||||||
end
|
end
|
||||||
|
|
||||||
-- deep see fumerole / vent
|
-- deep see fumerole / vent
|
||||||
|
print("register_decoration for nether:fumarole")
|
||||||
|
|
||||||
register_decoration(minetest.get_modpath("nether") and 1, {
|
register_decoration(minetest.get_modpath("nether") and 1, {
|
||||||
name = "nether:fumarole",
|
name = "nether:fumarole",
|
||||||
|
@ -940,9 +942,10 @@ register_decoration(minetest.get_modpath("nether") and 1, {
|
||||||
},
|
},
|
||||||
place_offset_y = -1,
|
place_offset_y = -1,
|
||||||
spawn_by = {"default:water_source"}, num_spawn_by = 8})
|
spawn_by = {"default:water_source"}, num_spawn_by = 8})
|
||||||
|
print("register_decoration for nether:fumarole done")
|
||||||
|
|
||||||
if minetest.get_modpath("nether") then
|
if minetest.get_modpath("nether") then
|
||||||
|
print("register_lbm for nether:fumarole")
|
||||||
minetest.register_lbm({
|
minetest.register_lbm({
|
||||||
name = ":nether:extra_fumarole_timer",
|
name = ":nether:extra_fumarole_timer",
|
||||||
nodenames = {"nether:fumarole"},
|
nodenames = {"nether:fumarole"},
|
||||||
|
@ -950,4 +953,6 @@ if minetest.get_modpath("nether") then
|
||||||
|
|
||||||
action = function(pos) minetest.get_node_timer(pos):start(10) end
|
action = function(pos) minetest.get_node_timer(pos):start(10) end
|
||||||
})
|
})
|
||||||
|
print("register_lbm for nether:fumarole done ")
|
||||||
end
|
end
|
||||||
|
print("whole nether:fumarole stuff done ")
|
||||||
|
|
|
@ -142,7 +142,7 @@ minetest.register_decoration({
|
||||||
persist = 0.675,
|
persist = 0.675,
|
||||||
lacunarity = 1.36,
|
lacunarity = 1.36,
|
||||||
},
|
},
|
||||||
y_max = 31000,
|
y_max = 3500,
|
||||||
y_min = 80,
|
y_min = 80,
|
||||||
schematic = minetest.get_modpath('everness') .. '/schematics/everness_mese_tree.mts',
|
schematic = minetest.get_modpath('everness') .. '/schematics/everness_mese_tree.mts',
|
||||||
flags = 'place_center_x, place_center_z',
|
flags = 'place_center_x, place_center_z',
|
||||||
|
|
|
@ -16,7 +16,7 @@ minetest.register_biome({
|
||||||
node_dungeon = "default:cobble",
|
node_dungeon = "default:cobble",
|
||||||
node_dungeon_alt = "default:mossycobble",
|
node_dungeon_alt = "default:mossycobble",
|
||||||
node_dungeon_stair = "stairs:stair_cobble",
|
node_dungeon_stair = "stairs:stair_cobble",
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1000,
|
y_min = 1000,
|
||||||
heat_point = 47,
|
heat_point = 47,
|
||||||
humidity_point = 66,
|
humidity_point = 66,
|
||||||
|
@ -203,7 +203,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00235,
|
fill_ratio = 0.00235,
|
||||||
biomes = {"livingfloatlands:coldgiantforest"},
|
biomes = {"livingfloatlands:coldgiantforest"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
schematic = minetest.get_modpath("livingfloatlands").."/schematics/giantforest_paleoredwood_tree.mts",
|
schematic = minetest.get_modpath("livingfloatlands").."/schematics/giantforest_paleoredwood_tree.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -218,7 +218,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00147,
|
fill_ratio = 0.00147,
|
||||||
biomes = {"livingfloatlands:coldgiantforest"},
|
biomes = {"livingfloatlands:coldgiantforest"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 2,
|
y_min = 2,
|
||||||
schematic = minetest.get_modpath("livingfloatlands").."/schematics/giantforest_paleoredwood_treemush.mts",
|
schematic = minetest.get_modpath("livingfloatlands").."/schematics/giantforest_paleoredwood_treemush.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -233,7 +233,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00141,
|
fill_ratio = 0.00141,
|
||||||
biomes = {"livingfloatlands:coldgiantforest"},
|
biomes = {"livingfloatlands:coldgiantforest"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
schematic = minetest.get_modpath("livingfloatlands").."/schematics/giantforest_paleoredwood_tree2.mts",
|
schematic = minetest.get_modpath("livingfloatlands").."/schematics/giantforest_paleoredwood_tree2.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -248,7 +248,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00090,
|
fill_ratio = 0.00090,
|
||||||
biomes = {"livingfloatlands:coldgiantforest"},
|
biomes = {"livingfloatlands:coldgiantforest"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 2,
|
y_min = 2,
|
||||||
schematic = minetest.get_modpath("livingfloatlands").."/schematics/giantforest_paleoredwood_tree2mush.mts",
|
schematic = minetest.get_modpath("livingfloatlands").."/schematics/giantforest_paleoredwood_tree2mush.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -263,7 +263,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00085,
|
fill_ratio = 0.00085,
|
||||||
biomes = {"livingfloatlands:coldgiantforest"},
|
biomes = {"livingfloatlands:coldgiantforest"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
schematic = minetest.get_modpath("livingfloatlands").."/schematics/giantforest_paleoredwood_treegiant.mts",
|
schematic = minetest.get_modpath("livingfloatlands").."/schematics/giantforest_paleoredwood_treegiant.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -278,7 +278,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00028,
|
fill_ratio = 0.00028,
|
||||||
biomes = {"livingfloatlands:coldgiantforest"},
|
biomes = {"livingfloatlands:coldgiantforest"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 2,
|
y_min = 2,
|
||||||
schematic = minetest.get_modpath("livingfloatlands") .. "/schematics/livingfloatlands_giantforest_rottenwood2.mts",
|
schematic = minetest.get_modpath("livingfloatlands") .. "/schematics/livingfloatlands_giantforest_rottenwood2.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -293,7 +293,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00028,
|
fill_ratio = 0.00028,
|
||||||
biomes = {"livingfloatlands:coldgiantforest"},
|
biomes = {"livingfloatlands:coldgiantforest"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 2,
|
y_min = 2,
|
||||||
schematic = minetest.get_modpath("livingfloatlands") .. "/schematics/livingfloatlands_giantforest_rottenwood3.mts",
|
schematic = minetest.get_modpath("livingfloatlands") .. "/schematics/livingfloatlands_giantforest_rottenwood3.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
|
|
@ -27,7 +27,7 @@ minetest.register_biome({
|
||||||
node_dungeon = "default:cobble",
|
node_dungeon = "default:cobble",
|
||||||
node_dungeon_alt = "default:mossycobble",
|
node_dungeon_alt = "default:mossycobble",
|
||||||
node_dungeon_stair = "stairs:stair_cobble",
|
node_dungeon_stair = "stairs:stair_cobble",
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1000,
|
y_min = 1000,
|
||||||
heat_point = 38,
|
heat_point = 38,
|
||||||
humidity_point = 27,
|
humidity_point = 27,
|
||||||
|
@ -82,7 +82,7 @@ minetest.register_node("livingfloatlands:coldsteppe_bulbous_chervil_root", {
|
||||||
octaves = 6,
|
octaves = 6,
|
||||||
persist = 1,
|
persist = 1,
|
||||||
},
|
},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 0,
|
y_min = 0,
|
||||||
decoration = "livingfloatlands:coldsteppe_bulbouschervil_block"
|
decoration = "livingfloatlands:coldsteppe_bulbouschervil_block"
|
||||||
})
|
})
|
||||||
|
@ -100,7 +100,7 @@ minetest.register_node("livingfloatlands:coldsteppe_bulbous_chervil_root", {
|
||||||
octaves = 1,
|
octaves = 1,
|
||||||
persist = 1,
|
persist = 1,
|
||||||
},
|
},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
decoration = "livingfloatlands:coldsteppe_bulbouschervil_plant",
|
decoration = "livingfloatlands:coldsteppe_bulbouschervil_plant",
|
||||||
spawn_by = "livingfloatlands:coldsteppe_bulbouschervil_block"
|
spawn_by = "livingfloatlands:coldsteppe_bulbouschervil_block"
|
||||||
|
@ -139,7 +139,7 @@ minetest.register_node("livingfloatlands:coldsteppe_bulbouschervil_plant", {
|
||||||
octaves = 6,
|
octaves = 6,
|
||||||
persist = 1,
|
persist = 1,
|
||||||
},
|
},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
decoration = "livingfloatlands:coldsteppe_grass1",
|
decoration = "livingfloatlands:coldsteppe_grass1",
|
||||||
spawn_by = "livingfloatlands:coldsteppe_litter"
|
spawn_by = "livingfloatlands:coldsteppe_litter"
|
||||||
|
@ -178,7 +178,7 @@ minetest.register_node("livingfloatlands:coldsteppe_grass1", {
|
||||||
octaves = 8,
|
octaves = 8,
|
||||||
persist = 1,
|
persist = 1,
|
||||||
},
|
},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
decoration = "livingfloatlands:coldsteppe_grass2",
|
decoration = "livingfloatlands:coldsteppe_grass2",
|
||||||
spawn_by = "livingfloatlands:coldsteppe_litter"
|
spawn_by = "livingfloatlands:coldsteppe_litter"
|
||||||
|
@ -217,7 +217,7 @@ minetest.register_node("livingfloatlands:coldsteppe_grass2", {
|
||||||
octaves = 7,
|
octaves = 7,
|
||||||
persist = 1,
|
persist = 1,
|
||||||
},
|
},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
decoration = "livingfloatlands:coldsteppe_grass3",
|
decoration = "livingfloatlands:coldsteppe_grass3",
|
||||||
spawn_by = "livingfloatlands:coldsteppe_litter"
|
spawn_by = "livingfloatlands:coldsteppe_litter"
|
||||||
|
@ -256,7 +256,7 @@ minetest.register_node("livingfloatlands:coldsteppe_grass3", {
|
||||||
octaves = 7,
|
octaves = 7,
|
||||||
persist = 1,
|
persist = 1,
|
||||||
},
|
},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
decoration = "livingfloatlands:coldsteppe_grass4",
|
decoration = "livingfloatlands:coldsteppe_grass4",
|
||||||
spawn_by = "livingfloatlands:coldsteppe_litter"
|
spawn_by = "livingfloatlands:coldsteppe_litter"
|
||||||
|
@ -295,7 +295,7 @@ minetest.register_node("livingfloatlands:coldsteppe_grass4", {
|
||||||
octaves = 7,
|
octaves = 7,
|
||||||
persist = 1,
|
persist = 1,
|
||||||
},
|
},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 2,
|
y_min = 2,
|
||||||
decoration = "livingfloatlands:coldsteppe_shrub",
|
decoration = "livingfloatlands:coldsteppe_shrub",
|
||||||
spawn_by = "livingfloatlands:coldsteppe_litter"
|
spawn_by = "livingfloatlands:coldsteppe_litter"
|
||||||
|
@ -502,7 +502,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00013,
|
fill_ratio = 0.00013,
|
||||||
biomes = {"livingfloatlands:coldsteppe"},
|
biomes = {"livingfloatlands:coldsteppe"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 3,
|
y_min = 3,
|
||||||
schematic = minetest.get_modpath("livingfloatlands").."/schematics/livingfloatlands_coldsteppe_pine.mts",
|
schematic = minetest.get_modpath("livingfloatlands").."/schematics/livingfloatlands_coldsteppe_pine.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -517,7 +517,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00013,
|
fill_ratio = 0.00013,
|
||||||
biomes = {"livingfloatlands:coldsteppe"},
|
biomes = {"livingfloatlands:coldsteppe"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 3,
|
y_min = 3,
|
||||||
schematic = minetest.get_modpath("livingfloatlands").."/schematics/livingfloatlands_coldsteppe_pine11.mts",
|
schematic = minetest.get_modpath("livingfloatlands").."/schematics/livingfloatlands_coldsteppe_pine11.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -749,7 +749,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00017,
|
fill_ratio = 0.00017,
|
||||||
biomes = {"livingfloatlands:coldsteppe"},
|
biomes = {"livingfloatlands:coldsteppe"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 3,
|
y_min = 3,
|
||||||
schematic = minetest.get_modpath("livingfloatlands").."/schematics/livingfloatlands_coldsteppe_pine2.mts",
|
schematic = minetest.get_modpath("livingfloatlands").."/schematics/livingfloatlands_coldsteppe_pine2.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -764,7 +764,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00015,
|
fill_ratio = 0.00015,
|
||||||
biomes = {"livingfloatlands:coldsteppe"},
|
biomes = {"livingfloatlands:coldsteppe"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 3,
|
y_min = 3,
|
||||||
schematic = minetest.get_modpath("livingfloatlands").."/schematics/livingfloatlands_coldsteppe_pine22.mts",
|
schematic = minetest.get_modpath("livingfloatlands").."/schematics/livingfloatlands_coldsteppe_pine22.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -987,7 +987,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00057,
|
fill_ratio = 0.00057,
|
||||||
biomes = {"livingfloatlands:coldsteppe"},
|
biomes = {"livingfloatlands:coldsteppe"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 3,
|
y_min = 3,
|
||||||
schematic = minetest.get_modpath("livingfloatlands").."/schematics/livingfloatlands_coldsteppe_pine3.mts",
|
schematic = minetest.get_modpath("livingfloatlands").."/schematics/livingfloatlands_coldsteppe_pine3.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -1002,7 +1002,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00137,
|
fill_ratio = 0.00137,
|
||||||
biomes = {"livingfloatlands:coldsteppe"},
|
biomes = {"livingfloatlands:coldsteppe"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 3,
|
y_min = 3,
|
||||||
schematic = minetest.get_modpath("livingfloatlands").."/schematics/livingfloatlands_coldsteppe_pine33.mts",
|
schematic = minetest.get_modpath("livingfloatlands").."/schematics/livingfloatlands_coldsteppe_pine33.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -1063,7 +1063,7 @@ minetest.register_node("livingfloatlands:coldsteppe_rock", {
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00007,
|
fill_ratio = 0.00007,
|
||||||
biomes = {"livingfloatlands:coldsteppe"},
|
biomes = {"livingfloatlands:coldsteppe"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
schematic = minetest.get_modpath("livingfloatlands") .. "/schematics/livingfloatlands_rockformation.mts",
|
schematic = minetest.get_modpath("livingfloatlands") .. "/schematics/livingfloatlands_rockformation.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -1079,7 +1079,7 @@ minetest.register_node("livingfloatlands:coldsteppe_rock", {
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00007,
|
fill_ratio = 0.00007,
|
||||||
biomes = {"livingfloatlands:coldsteppe"},
|
biomes = {"livingfloatlands:coldsteppe"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
schematic = minetest.get_modpath("livingfloatlands") .. "/schematics/livingfloatlands_rockformation11.mts",
|
schematic = minetest.get_modpath("livingfloatlands") .. "/schematics/livingfloatlands_rockformation11.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -1103,7 +1103,7 @@ minetest.register_node("livingfloatlands:coldsteppe_rock2", {
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00007,
|
fill_ratio = 0.00007,
|
||||||
biomes = {"livingfloatlands:coldsteppe"},
|
biomes = {"livingfloatlands:coldsteppe"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
schematic = minetest.get_modpath("livingfloatlands") .. "/schematics/livingfloatlands_rockformation2.mts",
|
schematic = minetest.get_modpath("livingfloatlands") .. "/schematics/livingfloatlands_rockformation2.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -1119,7 +1119,7 @@ minetest.register_node("livingfloatlands:coldsteppe_rock2", {
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00007,
|
fill_ratio = 0.00007,
|
||||||
biomes = {"livingfloatlands:coldsteppe"},
|
biomes = {"livingfloatlands:coldsteppe"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
schematic = minetest.get_modpath("livingfloatlands") .. "/schematics/livingfloatlands_rockformation.mts",
|
schematic = minetest.get_modpath("livingfloatlands") .. "/schematics/livingfloatlands_rockformation.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
|
|
@ -27,7 +27,7 @@ minetest.register_biome({
|
||||||
node_dungeon = "default:cobble",
|
node_dungeon = "default:cobble",
|
||||||
node_dungeon_alt = "default:mossycobble",
|
node_dungeon_alt = "default:mossycobble",
|
||||||
node_dungeon_stair = "stairs:stair_cobble",
|
node_dungeon_stair = "stairs:stair_cobble",
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1000,
|
y_min = 1000,
|
||||||
heat_point = 52,
|
heat_point = 52,
|
||||||
humidity_point = 71,
|
humidity_point = 71,
|
||||||
|
@ -64,7 +64,7 @@ minetest.register_node("livingfloatlands:giantforest_litter_with_moss", {
|
||||||
octaves = 7,
|
octaves = 7,
|
||||||
persist = 1,
|
persist = 1,
|
||||||
},
|
},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 0,
|
y_min = 0,
|
||||||
decoration = "livingfloatlands:giantforest_litter_walkway"
|
decoration = "livingfloatlands:giantforest_litter_walkway"
|
||||||
})
|
})
|
||||||
|
@ -83,7 +83,7 @@ minetest.register_node("livingfloatlands:giantforest_litter_with_moss", {
|
||||||
octaves = 8,
|
octaves = 8,
|
||||||
persist = 1,
|
persist = 1,
|
||||||
},
|
},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 0,
|
y_min = 0,
|
||||||
decoration = "livingfloatlands:giantforest_litter_with_moss"
|
decoration = "livingfloatlands:giantforest_litter_with_moss"
|
||||||
})
|
})
|
||||||
|
@ -124,7 +124,7 @@ minetest.register_node("livingfloatlands:giantforest_fern", {
|
||||||
persist = 0.6
|
persist = 0.6
|
||||||
},
|
},
|
||||||
biomes = {"livingfloatlands:giantforest", "livingfloatlands:coldgiantforest", "livingfloatlands:paleojungle"},
|
biomes = {"livingfloatlands:giantforest", "livingfloatlands:coldgiantforest", "livingfloatlands:paleojungle"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 2,
|
y_min = 2,
|
||||||
decoration = "livingfloatlands:giantforest_fern",
|
decoration = "livingfloatlands:giantforest_fern",
|
||||||
param2 = 4,
|
param2 = 4,
|
||||||
|
@ -143,7 +143,7 @@ minetest.register_node("livingfloatlands:giantforest_fern", {
|
||||||
octaves = 5,
|
octaves = 5,
|
||||||
persist = 1,
|
persist = 1,
|
||||||
},
|
},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
decoration = "livingfloatlands:giantforest_grass",
|
decoration = "livingfloatlands:giantforest_grass",
|
||||||
spawn_by = "livingfloatlands:giantforest_litter"
|
spawn_by = "livingfloatlands:giantforest_litter"
|
||||||
|
@ -182,7 +182,7 @@ minetest.register_node("livingfloatlands:giantforest_grass", {
|
||||||
octaves = 7,
|
octaves = 7,
|
||||||
persist = 1,
|
persist = 1,
|
||||||
},
|
},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
decoration = "livingfloatlands:giantforest_grass2",
|
decoration = "livingfloatlands:giantforest_grass2",
|
||||||
spawn_by = "livingfloatlands:giantforest_litter"
|
spawn_by = "livingfloatlands:giantforest_litter"
|
||||||
|
@ -221,7 +221,7 @@ minetest.register_node("livingfloatlands:giantforest_grass2", {
|
||||||
octaves = 4,
|
octaves = 4,
|
||||||
persist = 1,
|
persist = 1,
|
||||||
},
|
},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
decoration = "livingfloatlands:giantforest_grass3",
|
decoration = "livingfloatlands:giantforest_grass3",
|
||||||
spawn_by = "livingfloatlands:giantforest_litter"
|
spawn_by = "livingfloatlands:giantforest_litter"
|
||||||
|
@ -492,7 +492,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00265,
|
fill_ratio = 0.00265,
|
||||||
biomes = {"livingfloatlands:giantforest"},
|
biomes = {"livingfloatlands:giantforest"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
schematic = minetest.get_modpath("livingfloatlands").."/schematics/giantforest_paleooak_tree.mts",
|
schematic = minetest.get_modpath("livingfloatlands").."/schematics/giantforest_paleooak_tree.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -507,7 +507,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00265,
|
fill_ratio = 0.00265,
|
||||||
biomes = {"livingfloatlands:giantforest"},
|
biomes = {"livingfloatlands:giantforest"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
schematic = minetest.get_modpath("livingfloatlands").."/schematics/giantforest_paleooak_tree2.mts",
|
schematic = minetest.get_modpath("livingfloatlands").."/schematics/giantforest_paleooak_tree2.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -522,7 +522,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00265,
|
fill_ratio = 0.00265,
|
||||||
biomes = {"livingfloatlands:giantforest"},
|
biomes = {"livingfloatlands:giantforest"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
schematic = minetest.get_modpath("livingfloatlands").."/schematics/giantforest_paleooak_tree3.mts",
|
schematic = minetest.get_modpath("livingfloatlands").."/schematics/giantforest_paleooak_tree3.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -537,7 +537,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00025,
|
fill_ratio = 0.00025,
|
||||||
biomes = {"livingfloatlands:giantforest"},
|
biomes = {"livingfloatlands:giantforest"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 2,
|
y_min = 2,
|
||||||
schematic = minetest.get_modpath("livingfloatlands") .. "/schematics/livingfloatlands_giantforest_rottenwood.mts",
|
schematic = minetest.get_modpath("livingfloatlands") .. "/schematics/livingfloatlands_giantforest_rottenwood.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
@ -554,7 +554,7 @@ minetest.register_decoration({
|
||||||
sidelen = 16,
|
sidelen = 16,
|
||||||
fill_ratio = 0.00025,
|
fill_ratio = 0.00025,
|
||||||
biomes = {"livingfloatlands:giantforest"},
|
biomes = {"livingfloatlands:giantforest"},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 2,
|
y_min = 2,
|
||||||
schematic = minetest.get_modpath("livingfloatlands") .. "/schematics/livingfloatlands_giantforest_rottenwood4.mts",
|
schematic = minetest.get_modpath("livingfloatlands") .. "/schematics/livingfloatlands_giantforest_rottenwood4.mts",
|
||||||
flags = "place_center_x, place_center_z",
|
flags = "place_center_x, place_center_z",
|
||||||
|
|
|
@ -27,8 +27,8 @@ minetest.register_biome({
|
||||||
node_dungeon = "default:desert_stonebrick",
|
node_dungeon = "default:desert_stonebrick",
|
||||||
node_dungeon_alt = "default:desert_sandstone_brick",
|
node_dungeon_alt = "default:desert_sandstone_brick",
|
||||||
node_dungeon_stair = "stairs:desert_sandstone_stair",
|
node_dungeon_stair = "stairs:desert_sandstone_stair",
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 2048,
|
y_min = 1725,
|
||||||
heat_point = 96,
|
heat_point = 96,
|
||||||
humidity_point = 15,
|
humidity_point = 15,
|
||||||
})
|
})
|
||||||
|
|
|
@ -27,7 +27,7 @@ minetest.register_biome({
|
||||||
node_dungeon = "default:cobble",
|
node_dungeon = "default:cobble",
|
||||||
node_dungeon_alt = "default:mossycobble",
|
node_dungeon_alt = "default:mossycobble",
|
||||||
node_dungeon_stair = "stairs:stair_cobble",
|
node_dungeon_stair = "stairs:stair_cobble",
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 1000,
|
y_min = 1000,
|
||||||
heat_point = 95,
|
heat_point = 95,
|
||||||
humidity_point = 63,
|
humidity_point = 63,
|
||||||
|
@ -813,7 +813,7 @@ minetest.register_node("livingfloatlands:paleojungle_littler_leaves", {
|
||||||
octaves = 7,
|
octaves = 7,
|
||||||
persist = 1,
|
persist = 1,
|
||||||
},
|
},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 0,
|
y_min = 0,
|
||||||
decoration = "livingfloatlands:paleojungle_littler_dirt"
|
decoration = "livingfloatlands:paleojungle_littler_dirt"
|
||||||
})
|
})
|
||||||
|
@ -832,7 +832,7 @@ minetest.register_node("livingfloatlands:paleojungle_littler_leaves", {
|
||||||
octaves = 8,
|
octaves = 8,
|
||||||
persist = 1,
|
persist = 1,
|
||||||
},
|
},
|
||||||
y_max = 3100,
|
y_max = 2450,
|
||||||
y_min = 0,
|
y_min = 0,
|
||||||
decoration = "livingfloatlands:paleojungle_littler_leaves"
|
decoration = "livingfloatlands:paleojungle_littler_leaves"
|
||||||
})
|
})
|
||||||
|
|