many worldgen mods and gonna try technic now
@@ -0,0 +1,26 @@
|
||||
Dwarf Fortress is copyright 2018 by Tarn Adams. This mod uses no assets or other copyrighted materials from Dwarf Fortress.
|
||||
|
||||
Sounds and textures are under various licenses, see the license.txt file in the /sounds and /textures directories for details.
|
||||
|
||||
License for Code
|
||||
----------------
|
||||
|
||||
Copyright (C) 2018 FaceDeer
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,44 @@
|
||||
-- These used to be defined in subterrane, but now dfcaverns handles it.
|
||||
if not minetest.registered_nodes["subterrane:wet_flowstone"] then
|
||||
minetest.register_alias("subterrane:dry_stal_1", "df_mapitems:dry_stal_1")
|
||||
minetest.register_alias("subterrane:dry_stal_2", "df_mapitems:dry_stal_2")
|
||||
minetest.register_alias("subterrane:dry_stal_3", "df_mapitems:dry_stal_3")
|
||||
minetest.register_alias("subterrane:dry_stal_4", "df_mapitems:dry_stal_4")
|
||||
minetest.register_alias("subterrane:wet_stal_1", "df_mapitems:wet_stal_1")
|
||||
minetest.register_alias("subterrane:wet_stal_2", "df_mapitems:wet_stal_2")
|
||||
minetest.register_alias("subterrane:wet_stal_3", "df_mapitems:wet_stal_3")
|
||||
minetest.register_alias("subterrane:wet_stal_4", "df_mapitems:wet_stal_4")
|
||||
minetest.register_alias("subterrane:wet_flowstone", "df_mapitems:wet_flowstone")
|
||||
minetest.register_alias("subterrane:dry_flowstone", "df_mapitems:dry_flowstone")
|
||||
end
|
||||
|
||||
minetest.register_alias("dfcaverns:cave_coral_3" , "df_mapitems:cave_coral_3" )
|
||||
minetest.register_alias("dfcaverns:cave_coral_2" , "df_mapitems:cave_coral_2" )
|
||||
minetest.register_alias("dfcaverns:cave_coral_1" , "df_mapitems:cave_coral_1" )
|
||||
minetest.register_alias("dfcaverns:dry_stal_1" , "df_mapitems:dry_stal_1" )
|
||||
minetest.register_alias("dfcaverns:dry_stal_2" , "df_mapitems:dry_stal_2" )
|
||||
minetest.register_alias("dfcaverns:dry_stal_3" , "df_mapitems:dry_stal_3" )
|
||||
minetest.register_alias("dfcaverns:dry_stal_4" , "df_mapitems:dry_stal_4" )
|
||||
minetest.register_alias("dfcaverns:wet_stal_1" , "df_mapitems:wet_stal_1" )
|
||||
minetest.register_alias("dfcaverns:wet_stal_2" , "df_mapitems:wet_stal_2" )
|
||||
minetest.register_alias("dfcaverns:wet_stal_3" , "df_mapitems:wet_stal_3" )
|
||||
minetest.register_alias("dfcaverns:wet_stal_4" , "df_mapitems:wet_stal_4" )
|
||||
minetest.register_alias("dfcaverns:wet_flowstone" , "df_mapitems:wet_flowstone" )
|
||||
minetest.register_alias("dfcaverns:dry_flowstone" , "df_mapitems:dry_flowstone" )
|
||||
minetest.register_alias("dfcaverns:icicle_1" , "df_mapitems:icicle_1" )
|
||||
minetest.register_alias("dfcaverns:icicle_2" , "df_mapitems:icicle_2" )
|
||||
minetest.register_alias("dfcaverns:icicle_3" , "df_mapitems:icicle_3" )
|
||||
minetest.register_alias("dfcaverns:icicle_4" , "df_mapitems:icicle_4" )
|
||||
minetest.register_alias("dfcaverns:glow_mese" , "df_mapitems:glow_mese" )
|
||||
minetest.register_alias("dfcaverns:glow_ruby_ore" , "df_mapitems:glow_ruby_ore" )
|
||||
minetest.register_alias("dfcaverns:big_crystal" , "df_mapitems:big_crystal" )
|
||||
minetest.register_alias("dfcaverns:med_crystal" , "df_mapitems:med_crystal" )
|
||||
minetest.register_alias("dfcaverns:big_crystal_30" , "df_mapitems:big_crystal_30" )
|
||||
minetest.register_alias("dfcaverns:med_crystal_30" , "df_mapitems:med_crystal_30" )
|
||||
minetest.register_alias("dfcaverns:big_crystal_30_45" , "df_mapitems:big_crystal_30_45" )
|
||||
minetest.register_alias("dfcaverns:med_crystal_30_45" , "df_mapitems:med_crystal_30_45" )
|
||||
minetest.register_alias("dfcaverns:glow_worm" , "df_mapitems:glow_worm" )
|
||||
minetest.register_alias("dfcaverns:dirt_with_cave_moss" , "df_mapitems:dirt_with_cave_moss" )
|
||||
minetest.register_alias("dfcaverns:cobble_with_floor_fungus" , "df_mapitems:cobble_with_floor_fungus" )
|
||||
minetest.register_alias("dfcaverns:cobble_with_floor_fungus_fine", "df_mapitems:cobble_with_floor_fungus_fine")
|
||||
minetest.register_alias("dfcaverns:snareweed" , "df_mapitems:snareweed" )
|
||||
@@ -0,0 +1,98 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
minetest.register_node("df_mapitems:castle_coral", {
|
||||
description = S("Castle Coral"),
|
||||
tiles = {
|
||||
"dfcaverns_castle_coral_gradient.png",
|
||||
"dfcaverns_castle_coral.png",
|
||||
"dfcaverns_castle_coral.png",
|
||||
"dfcaverns_castle_coral.png^[multiply:#888888",
|
||||
},
|
||||
_doc_items_longdesc = df_mapitems.doc.castle_coral_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.castle_coral_usage,
|
||||
drawtype = "mesh",
|
||||
is_ground_content = false,
|
||||
light_source = 2,
|
||||
mesh = "octagonal_coral.obj",
|
||||
drop = "df_mapitems:castle_coral_skeleton",
|
||||
paramtype = "light",
|
||||
groups = {cracky=2, pickaxey = 1, building_block = 1, coral=1, coral_block=1},
|
||||
sounds = df_dependencies.sound_stone(),
|
||||
_mcl_hardness = 1.5,
|
||||
_mcl_blast_resistance = 6,
|
||||
})
|
||||
|
||||
minetest.register_node("df_mapitems:castle_coral_skeleton", {
|
||||
description = S("Castle Coral Skeleton"),
|
||||
_doc_items_longdesc = df_mapitems.doc.castle_coral_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.castle_coral_usage,
|
||||
tiles = {
|
||||
df_dependencies.texture_coral_skeleton
|
||||
},
|
||||
drawtype = "mesh",
|
||||
mesh = "octagonal_coral.obj",
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 3,pickaxey = 1, building_block = 1, coral=2, coral_block=1},
|
||||
sounds = df_dependencies.sound_stone(),
|
||||
_mcl_hardness = 1.5,
|
||||
_mcl_blast_resistance = 6,
|
||||
})
|
||||
|
||||
local c_coral = minetest.get_content_id("df_mapitems:castle_coral")
|
||||
local c_coral_skeleton = minetest.get_content_id("df_mapitems:castle_coral_skeleton")
|
||||
|
||||
local c_stone = minetest.get_content_id(df_dependencies.node_name_stone)
|
||||
local c_water = minetest.get_content_id(df_dependencies.node_name_water_source)
|
||||
|
||||
df_mapitems.spawn_castle_coral = function(area, data, vi, iterations)
|
||||
local run = math.random(2,4)
|
||||
local index = vi
|
||||
local zstride = area.zstride
|
||||
local ystride = area.ystride
|
||||
while run > 0 do
|
||||
-- TODO should this be checking for not-water instead of stone?
|
||||
if math.random() > 0.95 or data[index] == c_stone or not area:containsi(index) then return end
|
||||
data[index] = c_coral
|
||||
if iterations > 2 then
|
||||
data[index + 1] = c_coral
|
||||
data[index - 1] = c_coral
|
||||
data[index + zstride] = c_coral
|
||||
data[index - zstride] = c_coral
|
||||
end
|
||||
if iterations > 3 then
|
||||
data[index + 2] = c_coral
|
||||
data[index - 2] = c_coral
|
||||
data[index + zstride * 2] = c_coral
|
||||
data[index - zstride * 2] = c_coral
|
||||
data[index + 1 + zstride] = c_coral
|
||||
data[index - 1 + zstride] = c_coral
|
||||
data[index + 1 - zstride] = c_coral
|
||||
data[index - 1 - zstride] = c_coral
|
||||
end
|
||||
index = index + ystride
|
||||
run = run - 1
|
||||
end
|
||||
|
||||
local newiterations = iterations - 1
|
||||
if newiterations == 0 then return end
|
||||
|
||||
if math.random() > 0.5 then
|
||||
df_mapitems.spawn_castle_coral(area, data, index + 1 - ystride, newiterations)
|
||||
df_mapitems.spawn_castle_coral(area, data, index - 1 - ystride, newiterations)
|
||||
else
|
||||
df_mapitems.spawn_castle_coral(area, data, index + zstride - ystride, newiterations)
|
||||
df_mapitems.spawn_castle_coral(area, data, index - zstride - ystride, newiterations)
|
||||
end
|
||||
end
|
||||
|
||||
df_mapitems.spawn_coral_pile = function(area, data, vi, radius)
|
||||
local pos = area:position(vi)
|
||||
for li in area:iterp(vector.add(pos, -radius), vector.add(pos, radius)) do
|
||||
local adjacent = li + area.ystride
|
||||
local node_type = data[li]
|
||||
if math.random() < 0.2 and not mapgen_helper.buildable_to(node_type) and data[adjacent] == c_water then
|
||||
data[adjacent] = c_coral_skeleton
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,78 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
local water_source = df_dependencies.node_name_water_source
|
||||
local coral_skeleton = df_dependencies.node_name_coral_skeleton
|
||||
|
||||
minetest.register_node("df_mapitems:cave_coral_3", {
|
||||
description = S("Cave Coral"),
|
||||
_doc_items_longdesc = df_mapitems.doc.cave_coral_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.cave_coral_usage,
|
||||
tiles = {"dfcaverns_cave_coral_end.png", "dfcaverns_cave_coral_end.png", "dfcaverns_cave_coral.png"},
|
||||
drop = coral_skeleton,
|
||||
light_source = 3,
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 3, dfcaverns_cave_coral = 1, pickaxey = 1, building_block = 1, coral=1, coral_block=1},
|
||||
sounds = df_dependencies.sound_stone(),
|
||||
on_timer = function(pos)
|
||||
if minetest.find_node_near(pos, 1, {water_source}) == nil then
|
||||
minetest.set_node(pos, {name=coral_skeleton})
|
||||
end
|
||||
end,
|
||||
_mcl_hardness = 1.5,
|
||||
_mcl_blast_resistance = 6,
|
||||
})
|
||||
|
||||
minetest.register_node("df_mapitems:cave_coral_2", {
|
||||
description = S("Cave Coral"),
|
||||
_doc_items_longdesc = df_mapitems.doc.cave_coral_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.cave_coral_usage,
|
||||
tiles = {"dfcaverns_cave_coral_end.png", "dfcaverns_cave_coral_end.png", "dfcaverns_cave_coral.png"},
|
||||
drop = coral_skeleton,
|
||||
light_source = 2,
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 3, dfcaverns_cave_coral = 1, pickaxey = 1, building_block = 1, coral=1, coral_block=1},
|
||||
sounds = df_dependencies.sound_stone(),
|
||||
on_timer = function(pos)
|
||||
if minetest.find_node_near(pos, 1, {water_source}) == nil then
|
||||
minetest.set_node(pos, {name=coral_skeleton})
|
||||
end
|
||||
end,
|
||||
_mcl_hardness = 1.5,
|
||||
_mcl_blast_resistance = 6,
|
||||
})
|
||||
|
||||
minetest.register_node("df_mapitems:cave_coral_1", {
|
||||
description = S("Cave Coral"),
|
||||
_doc_items_longdesc = df_mapitems.doc.cave_coral_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.cave_coral_usage,
|
||||
tiles = {"dfcaverns_cave_coral_end.png", "dfcaverns_cave_coral_end.png", "dfcaverns_cave_coral.png"},
|
||||
drop = coral_skeleton,
|
||||
light_source = 1,
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 3, dfcaverns_cave_coral = 1, pickaxey = 1, building_block = 1, coral=1, coral_block=1},
|
||||
sounds = df_dependencies.sound_stone(),
|
||||
on_timer = function(pos)
|
||||
if minetest.find_node_near(pos, 1, {water_source}) == nil then
|
||||
minetest.set_node(pos, {name=coral_skeleton})
|
||||
end
|
||||
end,
|
||||
_mcl_hardness = 1.5,
|
||||
_mcl_blast_resistance = 6,
|
||||
})
|
||||
|
||||
local coral_names = {"df_mapitems:cave_coral_1", "df_mapitems:cave_coral_2", "df_mapitems:cave_coral_3"}
|
||||
local water_node = df_dependencies.node_name_water_source
|
||||
minetest.register_abm{
|
||||
label = "df_mapitems:shifting_coral",
|
||||
nodenames = {"group:dfcaverns_cave_coral"},
|
||||
neighbors = {water_node},
|
||||
interval = 2,
|
||||
chance = 10,
|
||||
action = function(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
minetest.swap_node(pos, {name=coral_names[math.random(1,3)], param2=node.param2})
|
||||
end,
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
minetest.register_node("df_mapitems:cave_pearls", {
|
||||
description = S("Cave Pearls"),
|
||||
tiles = {"dfcaverns_cave_pearl.png"},
|
||||
_doc_items_longdesc = df_mapitems.doc.cave_pearls_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.cave_pearls_usage,
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {cracky = 2, pickaxey = 2,},
|
||||
walkable = false,
|
||||
is_ground_content = false,
|
||||
climbable = true,
|
||||
light_source = 4,
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.375, -0.5, -0.375, -0.125, -0.3125, -0.125}, -- NodeBox1
|
||||
{0.125, -0.5, -0.1875, 0.3125, -0.375, 0}, -- NodeBox2
|
||||
{-0.125, -0.5, 0.25, 0.0625, -0.375, 0.4375}, -- NodeBox3
|
||||
}
|
||||
},
|
||||
on_place = df_mapitems.place_against_surface,
|
||||
_mcl_hardness = 1.5,
|
||||
_mcl_blast_resistance = 6,
|
||||
})
|
||||
@@ -0,0 +1,27 @@
|
||||
local CONFIG_FILE_PREFIX = "dfcaverns_"
|
||||
|
||||
df_mapitems.config = {}
|
||||
|
||||
local print_settingtypes = false
|
||||
|
||||
local function setting(stype, name, default, description)
|
||||
local value
|
||||
if stype == "bool" then
|
||||
value = minetest.settings:get_bool(CONFIG_FILE_PREFIX..name, default)
|
||||
elseif stype == "string" then
|
||||
value = minetest.settings:get(CONFIG_FILE_PREFIX..name)
|
||||
elseif stype == "int" or stype == "float" then
|
||||
value = tonumber(minetest.settings:get(CONFIG_FILE_PREFIX..name))
|
||||
end
|
||||
if value == nil then
|
||||
value = default
|
||||
end
|
||||
df_mapitems.config[name] = value
|
||||
|
||||
if print_settingtypes then
|
||||
minetest.debug(CONFIG_FILE_PREFIX..name.." ("..description..") "..stype.." "..tostring(default))
|
||||
end
|
||||
end
|
||||
|
||||
setting("float", "glow_worm_delay_multiplier", 10.0, "glow worm growth delay multiplier")
|
||||
setting("bool", "snareweed_damage", true, "Snareweed causes damage to players")
|
||||
@@ -0,0 +1,62 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
--glowing mese crystal blocks
|
||||
minetest.register_node("df_mapitems:glow_mese", {
|
||||
description = S("Flawless Mese Block"),
|
||||
_doc_items_longdesc = df_mapitems.doc.glow_mese_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.glow_mese_usage,
|
||||
tiles = {"dfcaverns_glow_mese.png"},
|
||||
groups = {cracky=3, pickaxey=4, material_stone=1, enderman_takable=1},
|
||||
sounds = df_dependencies.sound_glass(),
|
||||
is_ground_content = false,
|
||||
light_source = 13,
|
||||
paramtype = "light",
|
||||
use_texture_alpha = "blend",
|
||||
drawtype = "glasslike",
|
||||
sunlight_propagates = true,
|
||||
_mcl_blast_resistance = 1.5,
|
||||
_mcl_hardness = 1.5,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'df_mapitems:mese_crystal 2',
|
||||
recipe = {
|
||||
{'df_mapitems:glow_mese'},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_node("df_mapitems:mese_crystal", {
|
||||
description = S("Flawless Mese Crystal"),
|
||||
_doc_items_longdesc = df_mapitems.doc.glow_mese_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.glow_mese_usage,
|
||||
tiles = {"dfcaverns_glow_mese.png"},
|
||||
groups = {cracky = 2, pickaxey=4, material_stone=1, building_block=1, enderman_takable=1},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "mesh",
|
||||
mesh = "underch_crystal.obj",
|
||||
light_source = 12,
|
||||
is_ground_content = false,
|
||||
sounds = df_dependencies.sound_glass(),
|
||||
use_texture_alpha = "blend",
|
||||
sunlight_propagates = true,
|
||||
on_place = df_mapitems.place_against_surface,
|
||||
_mcl_blast_resistance = 1.5,
|
||||
_mcl_hardness = 1.5,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = df_dependencies.node_name_mese_crystal .. ' 18',
|
||||
recipe = {
|
||||
{'df_mapitems:mese_crystal'},
|
||||
}
|
||||
})
|
||||
|
||||
if minetest.get_modpath("radiant_damage") and radiant_damage.override_radiant_damage and radiant_damage.config.enable_mese_damage then
|
||||
radiant_damage.override_radiant_damage("mese", {
|
||||
emitted_by = {
|
||||
["df_mapitems:glow_mese"] = radiant_damage.config.mese_damage*12,
|
||||
["df_mapitems:mese_crystal"] = radiant_damage.config.mese_damage*9
|
||||
}
|
||||
})
|
||||
end
|
||||
@@ -0,0 +1,329 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
minetest.register_node("df_mapitems:glow_ruby_ore", {
|
||||
description = S("Red Crystal Vein"),
|
||||
_doc_items_longdesc = df_mapitems.doc.glow_ruby_ore_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.glow_ruby_ore_usage,
|
||||
tiles = {"dfcaverns_glow_ruby_ore.png"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky=2, pickaxey=3, material_stone=1},
|
||||
sounds = df_dependencies.sound_glass(),
|
||||
_mcl_blast_resistance = 1.5,
|
||||
_mcl_hardness = 1.5,
|
||||
})
|
||||
|
||||
minetest.register_node("df_mapitems:big_crystal", {
|
||||
description = S("Giant Red Crystal"),
|
||||
_doc_items_longdesc = df_mapitems.doc.big_crystal_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.big_crystal_usage,
|
||||
drawtype = "mesh",
|
||||
mesh = "hex_crystal_big.obj",
|
||||
tiles = {
|
||||
"dfcaverns_glow_ruby4x.png",
|
||||
"dfcaverns_glow_ruby.png",
|
||||
},
|
||||
use_texture_alpha = "blend",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
sunlight_propagates = true,
|
||||
light_source = 12,
|
||||
groups = {cracky=2, dfcaverns_big_crystal = 1, pickaxey=5, material_stone=1, enderman_takable=1},
|
||||
sounds = df_dependencies.sound_glass(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5, -0.5, -0.5, 0.5, 3, 0.5},
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5, -0.5, -0.5, 0.5, 3, 0.5},
|
||||
},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_mapitems:med_crystal", {
|
||||
description = S("Big Red Crystal"),
|
||||
_doc_items_longdesc = df_mapitems.doc.big_crystal_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.big_crystal_usage,
|
||||
drawtype = "mesh",
|
||||
mesh = "hex_crystal_med.obj",
|
||||
tiles = {
|
||||
"dfcaverns_glow_ruby.png",
|
||||
"dfcaverns_glow_ruby_quarter.png",
|
||||
},
|
||||
use_texture_alpha = "blend",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
sunlight_propagates = true,
|
||||
light_source = 12,
|
||||
groups = {cracky=2, dfcaverns_big_crystal = 1, pickaxey=5, material_stone=1},
|
||||
sounds = df_dependencies.sound_glass(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.25, -0.5, -0.25, 0.25, 1.25, 0.25},
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.25, -0.5, -0.25, 0.25, 1.25, 0.25},
|
||||
},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node("df_mapitems:big_crystal_30", {
|
||||
description = S("Giant Red Crystal"),
|
||||
_doc_items_longdesc = df_mapitems.doc.big_crystal_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.big_crystal_usage,
|
||||
drawtype = "mesh",
|
||||
mesh = "hex_crystal_30_big.obj",
|
||||
tiles = {
|
||||
"dfcaverns_glow_ruby4x.png",
|
||||
"dfcaverns_glow_ruby.png",
|
||||
},
|
||||
use_texture_alpha = "blend",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
light_source = 12,
|
||||
drop = "df_mapitems:big_crystal",
|
||||
groups = {cracky=2, dfcaverns_big_crystal = 1, pickaxey=5, material_stone=1, enderman_takable=1},
|
||||
sounds = df_dependencies.sound_glass(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.625, 0.5, 0.5, 0.375},
|
||||
{-0.5, 0.5, -1.25, 0.5, 1.5, -0.25},
|
||||
{-0.5, 1.5, -1.875, 0.5, 2.5, -0.875},
|
||||
--The following is a more accurate set of collision boxes that theoretically
|
||||
--allows the crystal to be climbed like stairs, but in practice the physics
|
||||
--don't seem to work quite right so I'm leaving it "simple" for now.
|
||||
-- {-0.5, -0.5, -0.625, 0.5, 0.0, 0.375},
|
||||
-- {-0.5, 0.0, -0.9375, 0.5, 0.5, 0.0625},
|
||||
-- {-0.5, 0.5, -1.25, 0.5, 1.0, -0.25},
|
||||
-- {-0.5, 1.0, -1.5625, 0.5, 1.5, -0.5625},
|
||||
-- {-0.5, 1.5, -1.875, 0.5, 2.0, -0.875},
|
||||
-- {-0.25, 2.0, -1.625, 0.25, 2.5, -1.125},
|
||||
},
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.625, 0.5, 0.5, 0.375},
|
||||
{-0.5, 0.5, -1.25, 0.5, 1.5, -0.25},
|
||||
{-0.5, 1.5, -1.875, 0.5, 2.5, -0.875},
|
||||
-- {-0.5, -0.5, -0.625, 0.5, 0.0, 0.375},
|
||||
-- {-0.5, 0.0, -0.9375, 0.5, 0.5, 0.0625},
|
||||
-- {-0.5, 0.5, -1.25, 0.5, 1.0, -0.25},
|
||||
-- {-0.5, 1.0, -1.5625, 0.5, 1.5, -0.5625},
|
||||
-- {-0.5, 1.5, -1.875, 0.5, 2.0, -0.875},
|
||||
-- {-0.25, 2.0, -1.625, 0.25, 2.5, -1.125},
|
||||
},
|
||||
},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_mapitems:med_crystal_30", {
|
||||
description = S("Big Red Crystal"),
|
||||
_doc_items_longdesc = df_mapitems.doc.big_crystal_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.big_crystal_usage,
|
||||
drawtype = "mesh",
|
||||
mesh = "hex_crystal_30_med.obj",
|
||||
tiles = {
|
||||
"dfcaverns_glow_ruby.png",
|
||||
"dfcaverns_glow_ruby_quarter.png",
|
||||
},
|
||||
use_texture_alpha = "blend",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
light_source = 12,
|
||||
drop = "df_mapitems:med_crystal",
|
||||
groups = {cracky=2, dfcaverns_big_crystal = 1, pickaxey=5, material_stone=1},
|
||||
sounds = df_dependencies.sound_glass(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.25, -0.5, -0.3125, 0.25, 0.0, 0.1875},
|
||||
{-0.25, 0.0, -0.625, 0.25, 0.5, -0.125},
|
||||
{-0.25, 0.5, -0.9375, 0.25, 1.0, -0.4375},
|
||||
}
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.25, -0.5, -0.3125, 0.25, 0.0, 0.1875},
|
||||
{-0.25, 0.0, -0.625, 0.25, 0.5, -0.125},
|
||||
{-0.25, 0.5, -0.9375, 0.25, 1.0, -0.4375},
|
||||
},
|
||||
},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_mapitems:big_crystal_30_45", {
|
||||
description = S("Giant Red Crystal"),
|
||||
_doc_items_longdesc = df_mapitems.doc.big_crystal_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.big_crystal_usage,
|
||||
drawtype = "mesh",
|
||||
mesh = "hex_crystal_30_45_big.obj",
|
||||
tiles = {
|
||||
"dfcaverns_glow_ruby4x.png",
|
||||
"dfcaverns_glow_ruby.png",
|
||||
},
|
||||
use_texture_alpha = "blend",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
light_source = 12,
|
||||
drop = "df_mapitems:big_crystal",
|
||||
groups = {cracky=2, dfcaverns_big_crystal = 1, pickaxey=5, material_stone=1, enderman_takable=1},
|
||||
sounds = df_dependencies.sound_glass(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.375, -0.5, -0.625, 0.625, 0.5, 0.375},
|
||||
{0.0625, 0.5, -1.0625, 1.0625, 1.5, -0.0625},
|
||||
{0.5, 1.5, -1.5, 1.5, 2.5, -0.5},
|
||||
},
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.375, -0.5, -0.625, 0.625, 0.5, 0.375},
|
||||
{0.0625, 0.5, -1.0625, 1.0625, 1.5, -0.0625},
|
||||
{0.5, 1.5, -1.5, 1.5, 2.5, -0.5},
|
||||
},
|
||||
},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node("df_mapitems:med_crystal_30_45", {
|
||||
description = S("Big Red Crystal"),
|
||||
_doc_items_longdesc = df_mapitems.doc.big_crystal_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.big_crystal_usage,
|
||||
drawtype = "mesh",
|
||||
mesh = "hex_crystal_30_45_med.obj",
|
||||
tiles = {
|
||||
"dfcaverns_glow_ruby4x.png",
|
||||
"dfcaverns_glow_ruby.png",
|
||||
},
|
||||
use_texture_alpha = "blend",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
light_source = 12,
|
||||
drop = "df_mapitems:med_crystal",
|
||||
groups = {cracky=2, dfcaverns_big_crystal = 1, pickaxey=5, material_stone=1},
|
||||
sounds = df_dependencies.sound_glass(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.1875, -0.5, -0.3125, 0.3125, 0.0, 0.1875},
|
||||
{0.03125, 0.0, -0.53125, 0.53125, 0.5, -0.03125},
|
||||
{0.25, 0.5, -0.75, 0.75, 1.0, -0.25},
|
||||
},
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.1875, -0.5, -0.3125, 0.3125, 0.0, 0.1875},
|
||||
{0.03125, 0.0, -0.53125, 0.53125, 0.5, -0.03125},
|
||||
{0.25, 0.5, -0.75, 0.75, 1.0, -0.25},
|
||||
},
|
||||
},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = 'df_mapitems:big_crystal_30',
|
||||
recipe = {'df_mapitems:big_crystal'},
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = 'df_mapitems:big_crystal_30_45',
|
||||
recipe = {'df_mapitems:big_crystal_30'},
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = 'df_mapitems:big_crystal',
|
||||
recipe = {'df_mapitems:big_crystal_30_45'},
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = 'df_mapitems:med_crystal_30',
|
||||
recipe = {'df_mapitems:med_crystal'},
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = 'df_mapitems:med_crystal_30_45',
|
||||
recipe = {'df_mapitems:med_crystal_30'},
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = 'df_mapitems:med_crystal',
|
||||
recipe = {'df_mapitems:med_crystal_30_45'},
|
||||
})
|
||||
|
||||
local c_stone = minetest.get_content_id(df_dependencies.node_name_stone)
|
||||
local c_air = minetest.get_content_id("air")
|
||||
local c_big_crystal = minetest.get_content_id("df_mapitems:big_crystal")
|
||||
local c_med_crystal = minetest.get_content_id("df_mapitems:med_crystal")
|
||||
local c_big_crystal_30 = minetest.get_content_id("df_mapitems:big_crystal_30")
|
||||
local c_med_crystal_30 = minetest.get_content_id("df_mapitems:med_crystal_30")
|
||||
local c_big_crystal_30_45 = minetest.get_content_id("df_mapitems:big_crystal_30_45")
|
||||
local c_med_crystal_30_45 = minetest.get_content_id("df_mapitems:med_crystal_30_45")
|
||||
local c_glow_ore = minetest.get_content_id("df_mapitems:glow_ruby_ore")
|
||||
|
||||
df_mapitems.place_big_crystal = function(data, data_param2, vi, ceiling)
|
||||
local orientation = math.random()
|
||||
if orientation < 0.33 then
|
||||
if math.random() > 0.5 then
|
||||
data[vi] = c_big_crystal
|
||||
else
|
||||
data[vi] = c_med_crystal
|
||||
end
|
||||
elseif orientation < 0.66 then
|
||||
if math.random() > 0.5 then
|
||||
data[vi] = c_big_crystal_30
|
||||
else
|
||||
data[vi] = c_med_crystal_30
|
||||
end
|
||||
else
|
||||
if math.random() > 0.5 then
|
||||
data[vi] = c_big_crystal_30_45
|
||||
else
|
||||
data[vi] = c_med_crystal_30_45
|
||||
end
|
||||
end
|
||||
if ceiling then
|
||||
data_param2[vi] = math.random(20,23)
|
||||
else
|
||||
data_param2[vi] = math.random(0,3)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
df_mapitems.place_big_crystal_cluster = function(area, data, data_param2, vi, radius, ceiling)
|
||||
local y
|
||||
if ceiling then y = -1 else y = 1 end
|
||||
local pos = area:position(vi)
|
||||
for li in area:iterp(vector.add(pos, -radius), vector.add(pos, radius)) do
|
||||
local adjacent = li + y*area.ystride
|
||||
if math.random() > 0.5 and data[li] == c_stone and data[adjacent] == c_air then
|
||||
df_mapitems.place_big_crystal(data, data_param2, adjacent, ceiling)
|
||||
data[li] = c_glow_ore
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,36 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
minetest.register_node("df_mapitems:salt_crystal", {
|
||||
description = S("Luminous Salt Crystal"),
|
||||
_doc_items_longdesc = df_mapitems.doc.salt_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.salt_usage,
|
||||
tiles = {"dfcaverns_salt_crystal.png"},
|
||||
groups = {cracky = 2, pickaxey = 1, shovely=1, material_stone=1},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "mesh",
|
||||
mesh = "underch_crystal.obj",
|
||||
light_source = 6,
|
||||
sounds = df_dependencies.sound_glass(),
|
||||
use_texture_alpha = "blend",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
on_place = df_mapitems.place_against_surface,
|
||||
_mcl_blast_resistance = 1,
|
||||
_mcl_hardness = 1,
|
||||
})
|
||||
|
||||
minetest.register_node("df_mapitems:salty_cobble", {
|
||||
description = S("Salty Cobble"),
|
||||
_doc_items_longdesc = df_mapitems.doc.salty_cobble_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.salty_cobble_desc,
|
||||
tiles = {df_dependencies.texture_cobble .. "^dfcaverns_salty.png"},
|
||||
groups = {cracky = 3, stone = 1, lava_heatable = 1, pickaxey = 1, material_stone=1},
|
||||
_magma_conduits_heats_to = df_dependencies.node_name_cobble,
|
||||
is_ground_content = false,
|
||||
light_source = 2,
|
||||
drop = df_dependencies.node_name_cobble,
|
||||
sounds = df_dependencies.sound_stone(),
|
||||
_mcl_blast_resistance = 6,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
@@ -0,0 +1,69 @@
|
||||
df_mapitems.doc = {}
|
||||
|
||||
if not minetest.get_modpath("doc") then
|
||||
return
|
||||
end
|
||||
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
df_mapitems.doc.cave_moss_desc = S("Cave moss is technically a form of mold, but fortunately a relatively benign one given its ubiquity. Its fibers form a tough but springy mat over the surface of any organic-rich soil that accumulates deep underground.")
|
||||
df_mapitems.doc.cave_moss_usage = S("Cave moss has no known uses aside from the faint glow it emits. It dies when exposed to bright light sources such as the Sun.")
|
||||
df_mapitems.doc.floor_fungus_desc = S("Floor fungus produces a thin, slick film that spreads through the cracks of broken rock. Its ability to subsist on the tiniest traces of nutrients means it's found in relatively harsh underground environments.")
|
||||
df_mapitems.doc.floor_fungus_usage = S("Floor fungus has no known uses. It can penetrate deeply into cobblestone constructions if an infestation gets hold, but it is difficult to transport and is inhibited by light so it hasn't spread beyond the deep caverns.")
|
||||
|
||||
df_mapitems.doc.sand_scum_desc = S("Sand scum is a crust of algae that sometimes accumulates on wet sand deep underground, somehow managing to eke out a meager living from the phosphorescent light emitted by other organisms.")
|
||||
df_mapitems.doc.sand_scum_usage = S("Sand scum is useless. You can get sand out of it, at least.")
|
||||
|
||||
df_mapitems.doc.pebble_fungus_desc = S("Soil that is rich enough to support gigantic mushrooms can support innumerable smaller ones as well. Pebble fungus is a prolific form of mushroom that covers the soil in small spheroidal fruiting bodies.")
|
||||
df_mapitems.doc.pebble_fungus_usage = S("Pebble fungus grows in soil that is rich enough for farming.")
|
||||
|
||||
df_mapitems.doc.stillworm_desc = S("Stillworm is not actually a kind of worm, but a sort of fungus that looks uncannily like pale, motionless earthworms intertwined with the soil.")
|
||||
df_mapitems.doc.stillworm_usage = S("Stillworm grows in soil that is rich enough for farming.")
|
||||
|
||||
df_mapitems.doc.rock_rot_desc = S("A highly aggressive form of lichen that eats into solid rock, turning its upper surfaces rough and a little spongy.")
|
||||
df_mapitems.doc.rock_rot_usage = S("Organic material accumulates in the enlarged pores of rock rot, but not enough to be considered \"soil\" in the usable sense.")
|
||||
|
||||
df_mapitems.doc.spongestone_desc = S("Spongestone is the result of advanced rock rot in its ultimate form. The stone has become so riddled with pores and cavities that it's no longer really stone.")
|
||||
df_mapitems.doc.spongestone_usage = S("Although a strong mineral matrix remains, spongestone has enough organic content that it can be used as soil for farming.")
|
||||
|
||||
|
||||
df_mapitems.doc.hoar_moss_desc = S("Hoar moss is a strange glowing crust that sometimes forms on the surface of water flowing over ice.")
|
||||
df_mapitems.doc.hoar_moss_usage = S("Hoar moss has no known use aside from providing a faint source of light.")
|
||||
|
||||
df_mapitems.doc.glow_worms_desc = S("Glistening strings of silk hang from the ceilings of some of the larger caverns, lit by the millions of tiny bioluminescent worms that spun them. Glow worms prey on the insects they lure and entangle with their faux starry sky - and sometimes the occasional bat or other larger flying beast.")
|
||||
df_mapitems.doc.glow_worms_usage = S("Glow worms can be harvested and used as a source of light but they die when exposed to light significantly brighter than themselves or when immersed in water. A colony of glow worms hung in a hospitable environment will undergo a modest amount of growth, allowing it to be divided and propagated.")
|
||||
|
||||
df_mapitems.doc.snareweed_desc = S("A nasty kelp-like plant that grows in patches on the floor of the Sunless Sea. Its reflective patches draw in the unwary and then its prickly barbs catch and hold small creatures.")
|
||||
df_mapitems.doc.snareweed_usage = S("Snareweed has no practical use, its fibers disintegrate when they dry.")
|
||||
|
||||
df_mapitems.doc.cave_coral_desc = S("A rare form of coral found only deep underground in the Sunless Sea, cave coral grows hanging from the ceilings of flooded caverns.")
|
||||
df_mapitems.doc.cave_coral_usage = S("Aside from their aesthetic beauty, cave corals can be harvested for simple building materials.")
|
||||
|
||||
df_mapitems.doc.flowstone_desc = S("Flowstone is a carbonate-rich rock formation deposited by flowing water. It consists of minerals that the water dissolved earlier as it widens cracks and fissures into caves.")
|
||||
df_mapitems.doc.flowstone_usage = S("Aside from the aesthetic beauty of its formations flowstone has no special properties or uses.")
|
||||
df_mapitems.doc.dripstone_desc = S("The iconic stalactites and stalagmites found in caverns are composed of flowstone (or 'dripstone' in the case of these formations). Moist dripstone is still undergoing growth, whereas dry dripstone is found in 'dead' caverns once the source of water that created them ceases.")
|
||||
df_mapitems.doc.dripstone_usage = S("Although stalagmites are blunter than the stalactites above them, they can cause extra damage to the unwary caver who falls on them.")
|
||||
df_mapitems.doc.icicle_desc = S("Ice formed by water dripping slowly into a cold environment, icicles tend to be exceptionally pure and clear.")
|
||||
df_mapitems.doc.icicle_usage = S("Falling onto an icicle is particularly damaging.")
|
||||
|
||||
|
||||
df_mapitems.doc.glow_mese_desc = S("Deep in the infernal conditions of the magma sea, over the course of millions of years, mese crystals grow into flawless blocks that glow bright with strange energies.")
|
||||
df_mapitems.doc.glow_mese_usage = S("These blocks can be broken down into a large number of mese crystals, but cannot be artificially reassembled.")
|
||||
|
||||
df_mapitems.doc.glow_ruby_ore_desc = S("Large, dry caverns deep underground are well suited to aeons-long processes that concentrate crystalline substances in their walls. This rock is riddled with veins of the stuff.")
|
||||
df_mapitems.doc.glow_ruby_ore_usage = S("Aside from its aesthetic value this rock has no particular use.")
|
||||
|
||||
df_mapitems.doc.big_crystal_desc = S("Monolithic crystals of this size form only over extremely long periods deep underground, in large long-lived cavities that allow them room to grow. Water and the life it hosts tend to disrupt the formation process of these crystals so they're only found in dry environments.")
|
||||
df_mapitems.doc.big_crystal_usage = S("Aside from its aesthetic value this crystal has no particular use.")
|
||||
|
||||
df_mapitems.doc.cave_pearls_desc = S("These nodules are actually calcified bacterial colonies.")
|
||||
df_mapitems.doc.cave_pearls_usage = S("Aside from their soft glow and beauty, cave pearls have no practical use. Except perhaps as handholds for climbing.")
|
||||
|
||||
df_mapitems.doc.castle_coral_desc = S("Deep under the surface of the Sunless Sea are the rare and beautiful Castle Corals, so named due to their resemblance to small undersea castles.")
|
||||
df_mapitems.doc.castle_coral_usage = S("Castle Coral has little practical use aside from perhaps as a distinctive-looking building material.")
|
||||
|
||||
df_mapitems.doc.salt_desc = S("A crystal of salt grown from water that percolated through the depths of the earth, picking up all manner of minerals as it went.")
|
||||
df_mapitems.doc.salt_usage = S("Traces of Mese must have been dissolved by the water as this crystal has an inherent glow to it. Not enough Mese to be useful as a reagent, unfortunately.")
|
||||
|
||||
df_mapitems.doc.salty_cobble_desc = S("Much water has seeped through the cracks in this rock and then quickly evaporated, leaving a crust of salt laced throughout.")
|
||||
df_mapitems.doc.salty_cobble_usage = S("Attemping to mine this rock knocks the salt crust away, leaving only base stone.")
|
||||
@@ -0,0 +1,78 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
-----------------------------------------------
|
||||
|
||||
df_mapitems.dry_stalagmite_ids = subterrane.register_stalagmite_nodes("df_mapitems:dry_stal", {
|
||||
description = S("Dry Dripstone"),
|
||||
_doc_items_longdesc = df_mapitems.doc.dripstone_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.dripstone_usage,
|
||||
tiles = {
|
||||
df_dependencies.texture_stone .. "^[brighten",
|
||||
},
|
||||
groups = {cracky = 3, stone = 2, pickaxey=1, building_block=1, material_stone=1},
|
||||
sounds = df_dependencies.sound_stone(),
|
||||
is_ground_content = false,
|
||||
_mcl_blast_resistance = 6,
|
||||
_mcl_hardness = 1.5,
|
||||
})
|
||||
|
||||
minetest.register_node("df_mapitems:dry_flowstone", {
|
||||
description = S("Dry Flowstone"),
|
||||
_doc_items_longdesc = df_mapitems.doc.flowstone_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.flowstone_usage,
|
||||
tiles = {df_dependencies.texture_stone .. "^[brighten"},
|
||||
groups = {cracky = 3, stone = 1, lava_heatable = 1, pickaxey=1, building_block=1, material_stone=1},
|
||||
_magma_conduits_heats_to = df_dependencies.node_name_cobble,
|
||||
is_ground_content = false,
|
||||
drop = df_dependencies.node_name_cobble,
|
||||
sounds = df_dependencies.sound_stone(),
|
||||
_mcl_blast_resistance = 6,
|
||||
_mcl_hardness = 1.5,
|
||||
})
|
||||
|
||||
-----------------------------------------------
|
||||
|
||||
df_mapitems.wet_stalagmite_ids = subterrane.register_stalagmite_nodes("df_mapitems:wet_stal", {
|
||||
description = S("Wet Dripstone"),
|
||||
_doc_items_longdesc = df_mapitems.doc.dripstone_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.dripstone_usage,
|
||||
tiles = {
|
||||
df_dependencies.texture_stone .. "^[brighten^dfcaverns_dripstone_streaks.png",
|
||||
},
|
||||
groups = {cracky = 3, stone = 2, subterrane_wet_dripstone = 1, pickaxey=1, building_block=1, material_stone=1},
|
||||
sounds = df_dependencies.sound_stone(),
|
||||
is_ground_content = false,
|
||||
_mcl_blast_resistance = 6,
|
||||
_mcl_hardness = 1.5,
|
||||
}, "df_mapitems:dry_stal")
|
||||
|
||||
|
||||
minetest.register_node("df_mapitems:wet_flowstone", {
|
||||
description = S("Wet Flowstone"),
|
||||
_doc_items_longdesc = df_mapitems.doc.flowstone_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.flowstone_usage,
|
||||
tiles = {df_dependencies.texture_stone .. "^[brighten^dfcaverns_dripstone_streaks.png"},
|
||||
groups = {cracky = 3, stone = 1, subterrane_wet_dripstone = 1, lava_heatable = 1, pickaxey=1, building_block=1, material_stone=1},
|
||||
_magma_conduits_heats_to = "df_mapitems:dry_flowstone",
|
||||
is_ground_content = false,
|
||||
drop = df_dependencies.node_name_cobble,
|
||||
sounds = df_dependencies.sound_stone(),
|
||||
_mcl_blast_resistance = 6,
|
||||
_mcl_hardness = 1.5,
|
||||
})
|
||||
|
||||
-----------------------------------------------
|
||||
|
||||
df_mapitems.icicle_ids = subterrane.register_stalagmite_nodes("df_mapitems:icicle", {
|
||||
description = S("Icicle"),
|
||||
_doc_items_longdesc = df_mapitems.doc.icicle_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.icicle_usage,
|
||||
tiles = {
|
||||
df_dependencies.texture_ice,
|
||||
},
|
||||
groups = {cracky = 3, puts_out_fire = 1, cools_lava = 1, slippery = 3, pickaxey=1, building_block=1, handy=1, slippery=3, building_block=1, ice=1},
|
||||
sounds = df_dependencies.sound_glass(),
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.5,
|
||||
})
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
local growth_multiplier = 1
|
||||
if minetest.get_modpath("df_farming") then
|
||||
growth_multiplier = df_farming.config.plant_growth_time
|
||||
end
|
||||
|
||||
minetest.register_node("df_mapitems:glow_worm", {
|
||||
description = S("Glow Worms"),
|
||||
_doc_items_longdesc = df_mapitems.doc.glow_worms_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.glow_worms_usage,
|
||||
tiles = {
|
||||
{
|
||||
name = "dfcaverns_glow_worm_animated.png",
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 4.0,
|
||||
},
|
||||
},
|
||||
},
|
||||
inventory_image = "dfcaverns_glow_worm.png",
|
||||
wield_image = "dfcaverns_glow_worm.png",
|
||||
is_ground_content = false,
|
||||
groups = {oddly_breakable_by_hand=3, light_sensitive_fungus = 12, shearsy=1, swordy=1, destroy_by_lava_flow=1},
|
||||
_dfcaverns_dead_node = "air",
|
||||
light_source = 9,
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
walkable = false,
|
||||
buildable_to = true,
|
||||
floodable = true,
|
||||
visual_scale = 1.0,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
after_place_node = function(pos, placer)
|
||||
if df_mapitems.config.glow_worm_delay_multiplier > 0 then
|
||||
minetest.get_node_timer(pos):start(math.random(
|
||||
df_mapitems.config.glow_worm_delay_multiplier * growth_multiplier * 0.75,
|
||||
df_mapitems.config.glow_worm_delay_multiplier * growth_multiplier * 1.25))
|
||||
end
|
||||
end,
|
||||
on_timer = function(pos, elapsed)
|
||||
local below = {x=pos.x, y=pos.y-1, z=pos.z}
|
||||
if minetest.get_node(below).name == "air" then
|
||||
minetest.set_node(below, {name="df_mapitems:glow_worm"})
|
||||
if math.random() > 0.5 then
|
||||
minetest.get_node_timer(below):start(math.random(
|
||||
df_mapitems.config.glow_worm_delay_multiplier * growth_multiplier * 0.75,
|
||||
df_mapitems.config.glow_worm_delay_multiplier * growth_multiplier * 1.25))
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
local c_air = minetest.get_content_id("air")
|
||||
local c_worm = minetest.get_content_id("df_mapitems:glow_worm")
|
||||
|
||||
df_mapitems.glow_worm_ceiling = function(area, data, vi)
|
||||
local ystride = area.ystride
|
||||
local bi = vi - ystride
|
||||
if data[vi] == c_air and data[bi] == c_air then
|
||||
data[vi] = c_worm
|
||||
data[bi] = c_worm
|
||||
if math.random(2) == 1 then
|
||||
bi = bi - ystride
|
||||
if data[bi] == c_air then
|
||||
data[bi] = c_worm
|
||||
if math.random(2) == 1 then
|
||||
bi = bi - ystride
|
||||
if data[bi] == c_air then
|
||||
data[bi] = c_worm
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -0,0 +1,310 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
|
||||
local function soil_type_spread(label, node_to_spread, target_node)
|
||||
minetest.register_abm{
|
||||
label = label,
|
||||
nodenames = {target_node},
|
||||
neighbors = {node_to_spread},
|
||||
interval = 60,
|
||||
chance = 15,
|
||||
catch_up = true,
|
||||
action = function(pos)
|
||||
local above_def = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name]
|
||||
if above_def and (above_def.buildable_to == true or above_def.walkable == false) then
|
||||
minetest.swap_node(pos, {name=node_to_spread})
|
||||
end
|
||||
end,
|
||||
}
|
||||
end
|
||||
|
||||
local farming_soil = df_dependencies.node_name_dirt_furrowed
|
||||
local farming_soil_wet = df_dependencies.node_name_dirt_wet
|
||||
|
||||
--------------------------------------------------
|
||||
-- Cave moss
|
||||
|
||||
-- cyan/dark cyan
|
||||
|
||||
local dirt_texture = df_dependencies.texture_dirt
|
||||
local sand_texture = df_dependencies.texture_sand
|
||||
|
||||
local dirt_node = df_dependencies.node_name_dirt
|
||||
local sand_node = df_dependencies.node_name_sand
|
||||
local stone_node = df_dependencies.node_name_stone
|
||||
local cobble_node = df_dependencies.node_name_cobble
|
||||
|
||||
minetest.register_node("df_mapitems:dirt_with_cave_moss", {
|
||||
description = S("Dirt with Cave Moss"),
|
||||
_doc_items_longdesc = df_mapitems.doc.cave_moss_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.cave_moss_usage,
|
||||
tiles = {dirt_texture .. "^dfcaverns_cave_moss.png", dirt_texture,
|
||||
{name = dirt_texture .. "^(dfcaverns_cave_moss.png^[mask:dfcaverns_ground_cover_side_mask.png)",
|
||||
tileable_vertical = false}},
|
||||
drop = dirt_node,
|
||||
is_ground_content = false,
|
||||
light_source = 2,
|
||||
paramtype = "light",
|
||||
groups = {crumbly = 3, soil = 1, light_sensitive_fungus = 8, handy=1,shovely=1,dirt=2, soil_sapling=2, soil_sugarcane=1, cultivatable=1, enderman_takable=1, building_block=1, compostability=30, opaque=1},
|
||||
sounds = df_dependencies.sound_dirt({footstep = {name = df_dependencies.soundfile_grass_footstep, gain = 0.25},}),
|
||||
soil = {
|
||||
base = "df_mapitems:dirt_with_cave_moss",
|
||||
dry = farming_soil,
|
||||
wet = farming_soil_wet
|
||||
},
|
||||
_dfcaverns_dead_node = dirt_node,
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.6,
|
||||
})
|
||||
|
||||
soil_type_spread("df_mapitems:cave_moss_spread", "df_mapitems:dirt_with_cave_moss", dirt_node)
|
||||
|
||||
---------------------------------------------------------------
|
||||
-- Sand scum
|
||||
|
||||
minetest.register_node("df_mapitems:sand_scum", {
|
||||
description = S("Sand Scum"),
|
||||
_doc_items_longdesc = df_mapitems.doc.sand_scum_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.sand_scum_usage,
|
||||
tiles = {"dfcaverns_ground_cover_sand_scum.png", sand_texture,
|
||||
{name = sand_texture .. "^(dfcaverns_ground_cover_sand_scum.png^[mask:dfcaverns_ground_cover_side_mask.png)",
|
||||
tileable_vertical = false}},
|
||||
drop = sand_node,
|
||||
is_ground_content = false,
|
||||
light_source = 2,
|
||||
paramtype = "light",
|
||||
groups = {crumbly = 3, soil = 1, light_sensitive_fungus = 8, handy=1,shovely=1, falling_node=1, sand=1, soil_sugarcane=1, enderman_takable=1, building_block=1, material_sand=1, opaque=1},
|
||||
sounds = df_dependencies.sound_sand({footstep = {name = "dfcaverns_squish", gain = 0.25},}),
|
||||
_dfcaverns_dead_node = sand_node,
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.5,
|
||||
})
|
||||
|
||||
soil_type_spread("df_mapitems:sand_scum_spread", "df_mapitems:sand_scum", sand_node)
|
||||
|
||||
---------------------------------------------------------------
|
||||
-- Pebble fungus
|
||||
|
||||
minetest.register_node("df_mapitems:dirt_with_pebble_fungus", {
|
||||
description = S("Dirt with Pebble Fungus"),
|
||||
_doc_items_longdesc = df_mapitems.doc.pebble_fungus_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.pebble_fungus_usage,
|
||||
tiles = {"dfcaverns_ground_cover_pebble_fungus.png", dirt_texture,
|
||||
{name = dirt_texture .. "^(dfcaverns_ground_cover_pebble_fungus.png^[mask:dfcaverns_ground_cover_side_mask.png)",
|
||||
tileable_vertical = false}},
|
||||
drop = dirt_node,
|
||||
is_ground_content = false,
|
||||
light_source = 2,
|
||||
paramtype = "light",
|
||||
groups = {crumbly = 3, soil = 1, light_sensitive_fungus = 8, handy=1,shovely=1,dirt=2, soil_sapling=2, soil_sugarcane=1, cultivatable=1, enderman_takable=1, building_block=1, compostability=30, opaque=1},
|
||||
sounds = df_dependencies.sound_dirt(),
|
||||
soil = {
|
||||
base = "df_mapitems:dirt_with_pebble_fungus",
|
||||
dry = farming_soil,
|
||||
wet = farming_soil_wet
|
||||
},
|
||||
_dfcaverns_dead_node = dirt_node,
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.6,
|
||||
})
|
||||
|
||||
soil_type_spread("df_mapitems:pebble_fungus_spread", "df_mapitems:dirt_with_pebble_fungus", dirt_node)
|
||||
|
||||
---------------------------------------------------------------
|
||||
-- Stillworm
|
||||
|
||||
minetest.register_node("df_mapitems:dirt_with_stillworm", {
|
||||
description = S("Dirt with Stillworm"),
|
||||
_doc_items_longdesc = df_mapitems.doc.stillworm_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.stillworm_usage,
|
||||
tiles = {dirt_texture .. "^dfcaverns_ground_cover_stillworm.png", dirt_texture,
|
||||
{name = dirt_texture .. "^(dfcaverns_ground_cover_stillworm.png^[mask:dfcaverns_ground_cover_side_mask.png)",
|
||||
tileable_vertical = false}},
|
||||
drop = dirt_node,
|
||||
is_ground_content = false,
|
||||
light_source = 2,
|
||||
paramtype = "light",
|
||||
groups = {crumbly = 3, soil = 1, light_sensitive_fungus = 8, handy=1,shovely=1,dirt=2, soil_sapling=2, soil_sugarcane=1, cultivatable=1, enderman_takable=1, building_block=1, compostability=30, opaque=1},
|
||||
sounds = df_dependencies.sound_dirt({footstep = {name = df_dependencies.soundfile_grass_footstep, gain = 0.25},}),
|
||||
soil = {
|
||||
base = "df_mapitems:dirt_with_stillworm",
|
||||
dry = farming_soil,
|
||||
wet = farming_soil_wet
|
||||
},
|
||||
_dfcaverns_dead_node = dirt_node,
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.6,
|
||||
})
|
||||
|
||||
soil_type_spread("df_mapitems:stillworm_spread", "df_mapitems:dirt_with_stillworm", dirt_node)
|
||||
|
||||
---------------------------------------------------------------
|
||||
-- Spongestone / Rock rot
|
||||
|
||||
minetest.register_node("df_mapitems:spongestone", {
|
||||
description = S("Spongestone"),
|
||||
_doc_items_longdesc = df_mapitems.doc.sponge_stone_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.sponge_stone_usage,
|
||||
tiles = {"dfcaverns_ground_cover_sponge_stone.png"},
|
||||
drop = dirt_node,
|
||||
is_ground_content = false,
|
||||
paramtype = "light",
|
||||
groups = {crumbly = 3, soil = 1, light_sensitive_fungus = 8, shovely=1,dirt=2, enderman_takable=1, building_block=1, compostability=10, opaque=1},
|
||||
sounds = df_dependencies.sound_dirt(),
|
||||
soil = {
|
||||
base = "df_mapitems:spongestone",
|
||||
dry = farming_soil,
|
||||
wet = farming_soil_wet
|
||||
},
|
||||
_dfcaverns_dead_node = dirt_node,
|
||||
_mcl_blast_resistance = 0.6,
|
||||
_mcl_hardness = 0.6,
|
||||
})
|
||||
|
||||
minetest.register_node("df_mapitems:rock_rot", {
|
||||
description = S("Rock Rot"),
|
||||
_doc_items_longdesc = df_mapitems.doc.rock_rot_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.rock_rot_usage,
|
||||
tiles = {df_dependencies.texture_stone .. "^dfcaverns_ground_cover_rock_rot.png", df_dependencies.texture_stone,
|
||||
{name = df_dependencies.texture_stone .. "^(dfcaverns_ground_cover_rock_rot.png^[mask:dfcaverns_ground_cover_side_mask.png)",
|
||||
tileable_vertical = false}},
|
||||
drop = df_dependencies.node_name_cobble,
|
||||
is_ground_content = false,
|
||||
light_source = 2,
|
||||
paramtype = "light",
|
||||
groups = {crumbly = 3, soil = 1, light_sensitive_fungus = 8, shovely=1,dirt=2, enderman_takable=1, building_block=1, compostability=5, opaque=1},
|
||||
sounds = df_dependencies.sound_dirt(),
|
||||
_dfcaverns_dead_node = stone_node,
|
||||
_mcl_blast_resistance = 3,
|
||||
_mcl_hardness = 1,
|
||||
})
|
||||
|
||||
soil_type_spread("df_mapitems:rock_rot_spread", "df_mapitems:rock_rot", stone_node)
|
||||
soil_type_spread("df_mapitems:spongestone_spread", "df_mapitems:spongestone", "df_mapitems:rock_rot")
|
||||
|
||||
--------------------------------------------------
|
||||
-- floor fungus
|
||||
|
||||
-- white/yellow
|
||||
|
||||
minetest.register_node("df_mapitems:cobble_with_floor_fungus", {
|
||||
description = S("Cobblestone with Floor Fungus"),
|
||||
_doc_items_longdesc = df_mapitems.doc.floor_fungus_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.floor_fungus_usage,
|
||||
tiles = {df_dependencies.texture_cobble .. "^dfcaverns_floor_fungus.png"},
|
||||
drop = cobble_node,
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 3, stone = 2, slippery = 1, light_sensitive_fungus = 8, df_caverns_floor_fungus = 1, pickaxey=1, building_block=1, material_stone=1, opaque=1},
|
||||
_dfcaverns_dead_node = df_dependencies.node_name_cobble,
|
||||
sounds = df_dependencies.sound_stone({footstep = {name = "dfcaverns_squish", gain = 0.25},}),
|
||||
_mcl_blast_resistance = 6,
|
||||
_mcl_hardness = 1.5,
|
||||
})
|
||||
|
||||
minetest.register_node("df_mapitems:cobble_with_floor_fungus_fine", {
|
||||
description = S("Cobblestone with Floor Fungus"),
|
||||
_doc_items_longdesc = df_mapitems.doc.floor_fungus_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.floor_fungus_usage,
|
||||
tiles = {df_dependencies.texture_cobble .. "^dfcaverns_floor_fungus_fine.png"},
|
||||
drop = cobble_node,
|
||||
is_ground_content = false,
|
||||
paramtype = "light",
|
||||
groups = {cracky = 3, stone = 2, slippery = 1, light_sensitive_fungus = 8, df_caverns_floor_fungus = 1, pickaxey=1, building_block=1, material_stone=1, opaque=1},
|
||||
_dfcaverns_dead_node = df_dependencies.node_name_cobble,
|
||||
sounds = df_dependencies.sound_stone({footstep = {name = "dfcaverns_squish", gain = 0.25},}),
|
||||
_mcl_blast_resistance = 6,
|
||||
_mcl_hardness = 1.5,
|
||||
on_timer = function(pos, elapsed)
|
||||
minetest.swap_node(pos, {name="df_mapitems:cobble_with_floor_fungus"})
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_abm{
|
||||
label = "df_mapitems:floor_fungus_spread",
|
||||
nodenames = {cobble_node},
|
||||
neighbors = {"group:df_caverns_floor_fungus"},
|
||||
interval = 60,
|
||||
chance = 10,
|
||||
catch_up = true,
|
||||
action = function(pos)
|
||||
local above_def = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name]
|
||||
if above_def and (above_def.buildable_to == true or above_def.walkable == false) then
|
||||
minetest.swap_node(pos, {name="df_mapitems:cobble_with_floor_fungus_fine"})
|
||||
if math.random() > 0.5 then
|
||||
minetest.get_node_timer(pos):start(math.random(1000, 10000))
|
||||
end
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
||||
------------------------------------------------------
|
||||
-- Hoar moss
|
||||
|
||||
minetest.register_node("df_mapitems:ice_with_hoar_moss", {
|
||||
description = S("Ice with Hoar Moss"),
|
||||
_doc_items_longdesc = df_mapitems.doc.hoar_moss_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.hoar_moss_usage,
|
||||
tiles = {df_dependencies.texture_ice .. "^dfcaverns_hoar_moss.png"},
|
||||
drop = df_dependencies.node_name_ice,
|
||||
paramtype = "light",
|
||||
light_source = 2,
|
||||
is_ground_content = false,
|
||||
groups = {cracky = 3, puts_out_fire = 1, cools_lava = 1, slippery = 2, light_sensitive_fungus = 8, handy=1,pickaxey=1, building_block=1, ice=1, opaque=1},
|
||||
sounds = df_dependencies.sound_glass(),
|
||||
_dfcaverns_dead_node = df_dependencies.node_name_ice,
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.5,
|
||||
})
|
||||
|
||||
|
||||
----------------------------------------------------------------
|
||||
-- Footprint-capable nodes
|
||||
|
||||
if minetest.get_modpath("footprints") then
|
||||
local HARDPACK_PROBABILITY = tonumber(minetest.settings:get("footprints_hardpack_probability")) or 0.9 -- Chance walked dirt/grass is worn and compacted to footprints:trail.
|
||||
local HARDPACK_COUNT = tonumber(minetest.settings:get("footprints_hardpack_count")) or 10 -- Number of times the above chance needs to be passed for soil to compact.
|
||||
|
||||
footprints.register_trample_node("df_mapitems:dirt_with_cave_moss", {
|
||||
trampled_node_def_override = {description = S("Dirt with Cave Moss and Footprint"),},
|
||||
hard_pack_node_name = "footprints:trail",
|
||||
footprint_opacity = 128,
|
||||
hard_pack_probability = HARDPACK_PROBABILITY,
|
||||
hard_pack_count = HARDPACK_COUNT,
|
||||
})
|
||||
|
||||
footprints.register_trample_node("df_mapitems:sand_scum", {
|
||||
trampled_node_def_override = {description = S("Sand Scum with Footprint"),},
|
||||
hard_pack_node_name = df_dependencies.node_name_sand,
|
||||
footprint_opacity = 128,
|
||||
hard_pack_probability = HARDPACK_PROBABILITY,
|
||||
hard_pack_count = HARDPACK_COUNT * 0.5,
|
||||
})
|
||||
|
||||
footprints.register_trample_node("df_mapitems:spongestone", {
|
||||
trampled_node_def_override = {description = S("Spongestone with Footprint"),},
|
||||
hard_pack_node_name = "footprints:trail",
|
||||
footprint_opacity = 128,
|
||||
hard_pack_probability = HARDPACK_PROBABILITY,
|
||||
hard_pack_count = HARDPACK_COUNT * 2,
|
||||
})
|
||||
|
||||
footprints.register_trample_node("df_mapitems:dirt_with_pebble_fungus", {
|
||||
trampled_node_def_override = {description = S("Dirt with Pebble Fungus and Footprint"),},
|
||||
hard_pack_node_name = "footprints:trail",
|
||||
footprint_opacity = 128,
|
||||
hard_pack_probability = HARDPACK_PROBABILITY,
|
||||
hard_pack_count = HARDPACK_COUNT,
|
||||
})
|
||||
|
||||
footprints.register_trample_node("df_mapitems:dirt_with_stillworm", {
|
||||
trampled_node_def_override = {description = S("Dirt with Stillworm and Footprint"),},
|
||||
hard_pack_node_name = "footprints:trail",
|
||||
footprint_opacity = 192,
|
||||
hard_pack_probability = HARDPACK_PROBABILITY,
|
||||
hard_pack_count = HARDPACK_COUNT,
|
||||
})
|
||||
end
|
||||
@@ -0,0 +1,24 @@
|
||||
df_mapitems = {}
|
||||
|
||||
local modname = minetest.get_current_modname()
|
||||
local modpath = minetest.get_modpath(modname)
|
||||
|
||||
--load companion lua files
|
||||
dofile(modpath.."/config.lua")
|
||||
dofile(modpath.."/doc.lua")
|
||||
dofile(modpath.."/aliases.lua")
|
||||
dofile(modpath.."/util.lua")
|
||||
|
||||
dofile(modpath.."/ground_cover.lua")
|
||||
dofile(modpath.."/glow_worms.lua")
|
||||
dofile(modpath.."/flowstone.lua")
|
||||
dofile(modpath.."/snareweed.lua")
|
||||
dofile(modpath.."/cave_coral.lua")
|
||||
|
||||
dofile(modpath.."/crystals_mese.lua")
|
||||
dofile(modpath.."/crystals_ruby.lua")
|
||||
dofile(modpath.."/crystals_salt.lua")
|
||||
|
||||
dofile(modpath.."/veinstone.lua")
|
||||
dofile(modpath.."/cave_pearls.lua")
|
||||
dofile(modpath.."/castle_coral.lua")
|
||||
@@ -0,0 +1,221 @@
|
||||
# textdomain: df_mapitems
|
||||
|
||||
|
||||
### castle_coral.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Castle Coral=Schlosskoralle
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Castle Coral Skeleton=Schlosskorallenskelett
|
||||
|
||||
### cave_coral.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Cave Coral=Höhlenkoralle
|
||||
|
||||
### cave_pearls.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Cave Pearls=Höhlenperlen
|
||||
|
||||
### crystals_mese.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Flawless Mese Block=Makelloser Mese Block
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Flawless Mese Crystal=Makelloser Mese-Kristall
|
||||
|
||||
### crystals_ruby.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Big Red Crystal=Großer roter Kristall
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Giant Red Crystal=Riesiger roter Kristall
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Red Crystal Vein=Rote Kristallader
|
||||
|
||||
### crystals_salt.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Luminous Salt Crystal=Leuchtender Salzkristall
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Salty Cobble=Salziges Kopfsteinpflaster
|
||||
|
||||
### doc.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
A crystal of salt grown from water that percolated through the depths of the earth, picking up all manner of minerals as it went.=Ein Salzkristall aus Wasser, das durch die Tiefen der Erde sickerte und dabei alle möglichen Mineralien aufnahm.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
A highly aggressive form of lichen that eats into solid rock, turning its upper surfaces rough and a little spongy.=Eine sehr aggressive Form von Flechten, die sich in festes Gestein frisst und ihre oberen Oberflächen rau und ein wenig schwammig macht.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
A nasty kelp-like plant that grows in patches on the floor of the Sunless Sea. Its reflective patches draw in the unwary and then its prickly barbs catch and hold small creatures.=Eine böse Seetang-ähnliche Pflanze, die in Flecken auf dem Boden des sonnenlosen Meeres wächst. Seine reflektierenden Flecken ziehen Unachtsame an und dann fangen und halten seine stacheligen Widerhaken kleine Kreaturen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
A rare form of coral found only deep underground in the Sunless Sea, cave coral grows hanging from the ceilings of flooded caverns.=Eine seltene Form von Korallen, die nur tief unter der Erde im sonnenlosen Meer zu finden ist. Höhlenkorallen wachsen an den Decken überfluteter Höhlen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Although a strong mineral matrix remains, spongestone has enough organic content that it can be used as soil for farming.=Obwohl eine starke Mineralmatrix verbleibt, hat Schwammstein einen ausreichenden organischen Gehalt, um als Boden für die Landwirtschaft verwendet zu werden.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Although stalagmites are blunter than the stalactites above them, they can cause extra damage to the unwary caver who falls on them.=Obwohl Stalagmiten stumpfer sind als die Stalaktiten über ihnen, können sie dem unachtsamen Höhlenforscher, der auf sie fällt, zusätzlichen Schaden zufügen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Aside from its aesthetic value this crystal has no particular use.=Abgesehen von seinem ästhetischen Wert hat dieser Kristall keine besondere Verwendung.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Aside from its aesthetic value this rock has no particular use.=Abgesehen von seinem ästhetischen Wert hat dieser Stein keine besondere Verwendung.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Aside from the aesthetic beauty of its formations flowstone has no special properties or uses.=Abgesehen von der ästhetischen Schönheit seiner Formationen hat Flowstone keine besonderen Eigenschaften oder Verwendungen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Aside from their aesthetic beauty, cave corals can be harvested for simple building materials.=Neben ihrer ästhetischen Schönheit können Höhlenkorallen für einfache Baumaterialien geerntet werden.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Aside from their soft glow and beauty, cave pearls have no practical use. Except perhaps as handholds for climbing.=Abgesehen von ihrem weichen Glanz und ihrer Schönheit haben Höhlenperlen keinen praktischen Nutzen. Außer vielleicht als Haltegriffe zum Klettern.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Attemping to mine this rock knocks the salt crust away, leaving only base stone.=Der Versuch, diesen Stein abzubauen, stößt die Salzkruste weg und hinterlässt nur Grundstein.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Castle Coral has little practical use aside from perhaps as a distinctive-looking building material.=Castle Coral hat wenig praktischen Nutzen, außer vielleicht als unverwechselbar aussehendes Baumaterial.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Cave moss has no known uses aside from the faint glow it emits. It dies when exposed to bright light sources such as the Sun.=Höhlenmoos hat keine bekannten Verwendungszwecke, abgesehen von dem schwachen Schein, den es ausstrahlt. Es stirbt, wenn es hellen Lichtquellen wie der Sonne ausgesetzt wird.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Cave moss is technically a form of mold, but fortunately a relatively benign one given its ubiquity. Its fibers form a tough but springy mat over the surface of any organic-rich soil that accumulates deep underground.=Höhlenmoos ist technisch gesehen eine Form von Schimmel, aber glücklicherweise eine relativ harmlose Form aufgrund seiner Allgegenwart. Seine Fasern bilden eine zähe, aber federnde Matte über der Oberfläche eines organisch reichen Bodens, der sich tief unter der Erde ansammelt.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Deep in the infernal conditions of the magma sea, over the course of millions of years, mese crystals grow into flawless blocks that glow bright with strange energies.=Tief in den höllischen Bedingungen des Magma-Meeres wachsen diese Kristalle im Laufe von Millionen von Jahren zu makellosen Blöcken, die vor seltsamen Energien hell leuchten.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Deep under the surface of the Sunless Sea are the rare and beautiful Castle Corals, so named due to their resemblance to small undersea castles.=Tief unter der Oberfläche des sonnenlosen Meeres befinden sich die seltenen und wunderschönen Burgkorallen, die aufgrund ihrer Ähnlichkeit mit kleinen Unterwasserschlössern so benannt wurden.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Falling onto an icicle is particularly damaging.=Das Fallen auf einen Eiszapfen ist besonders schädlich.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Floor fungus has no known uses. It can penetrate deeply into cobblestone constructions if an infestation gets hold, but it is difficult to transport and is inhibited by light so it hasn't spread beyond the deep caverns.=Bodenpilz hat keine bekannten Verwendungen. Es kann tief in Kopfsteinpflaster eindringen, wenn sich ein Befall festsetzt, ist jedoch schwer zu transportieren und wird durch Licht gehemmt, sodass es sich nicht über die tiefen Höhlen hinaus ausbreitet.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Floor fungus produces a thin, slick film that spreads through the cracks of broken rock. Its ability to subsist on the tiniest traces of nutrients means it's found in relatively harsh underground environments.=Bodenpilz erzeugt einen dünnen, glatten Film, der sich durch die Risse von gebrochenem Gestein ausbreitet. Aufgrund seiner Fähigkeit, sich von kleinsten Nährstoffspuren zu ernähren, ist es in relativ rauen unterirdischen Umgebungen anzutreffen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Flowstone is a carbonate-rich rock formation deposited by flowing water. It consists of minerals that the water dissolved earlier as it widens cracks and fissures into caves.=Flowstone ist eine karbonatreiche Gesteinsformation, die sich durch fließendes Wasser ablagert. Es besteht aus Mineralien, die das Wasser früher aufgelöst hat, als es Risse und Risse in Höhlen weitete.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Glistening strings of silk hang from the ceilings of some of the larger caverns, lit by the millions of tiny bioluminescent worms that spun them. Glow worms prey on the insects they lure and entangle with their faux starry sky - and sometimes the occasional bat or other larger flying beast.=Von den Decken einiger der größeren Höhlen hängen glitzernde Seidenfäden, die von den Millionen winziger biolumineszierender Würmer beleuchtet werden, die sie gesponnen haben. Glühwürmchen jagen den Insekten nach, die sie locken und mit ihrem künstlichen Sternenhimmel verwickeln - und manchmal auch gelegentlich Fledermäuse oder andere größere fliegende Tiere.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Glow worms can be harvested and used as a source of light but they die when exposed to light significantly brighter than themselves or when immersed in water. A colony of glow worms hung in a hospitable environment will undergo a modest amount of growth, allowing it to be divided and propagated.=Glühwürmchen können geerntet und als Lichtquelle verwendet werden. Sie sterben jedoch ab, wenn sie Licht ausgesetzt werden, das deutlich heller ist als sie selbst oder wenn sie in Wasser getaucht sind. Eine Kolonie von Glühwürmchen, die in einer gastfreundlichen Umgebung aufgehängt ist, wird ein bescheidenes Wachstum erfahren, so dass sie geteilt und vermehrt werden kann.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Hoar moss has no known use aside from providing a faint source of light.=Hoarmoos hat keine bekannte Verwendung, abgesehen von der Bereitstellung einer schwachen Lichtquelle.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Hoar moss is a strange glowing crust that sometimes forms on the surface of water flowing over ice.=Raureif ist eine seltsam leuchtende Kruste, die sich manchmal auf der Oberfläche von Wasser bildet, das über Eis fließt.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Ice formed by water dripping slowly into a cold environment, icicles tend to be exceptionally pure and clear.=Eis, das durch Wasser gebildet wird, das langsam in eine kalte Umgebung tropft. Eiszapfen sind in der Regel außergewöhnlich rein und klar.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Large, dry caverns deep underground are well suited to aeons-long processes that concentrate crystalline substances in their walls. This rock is riddled with veins of the stuff.=Große, trockene Kavernen tief unter der Erde eignen sich gut für Äonen lange Prozesse, bei denen kristalline Substanzen in ihren Wänden konzentriert werden. Dieser Felsen ist voller Adern.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Monolithic crystals of this size form only over extremely long periods deep underground, in large long-lived cavities that allow them room to grow. Water and the life it hosts tend to disrupt the formation process of these crystals so they're only found in dry environments.=Monolithische Kristalle dieser Größe bilden sich nur über extrem lange Zeiträume tief unter der Erde in großen, langlebigen Hohlräumen, in denen sie wachsen können. Wasser und das Leben, das es beherbergt, neigen dazu, den Bildungsprozess dieser Kristalle zu stören, sodass sie nur in trockenen Umgebungen vorkommen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Much water has seeped through the cracks in this rock and then quickly evaporated, leaving a crust of salt laced throughout.=Viel Wasser ist durch die Risse in diesem Felsen gesickert und dann schnell verdunstet, wobei eine Salzkruste zurückbleibt.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Organic material accumulates in the enlarged pores of rock rot, but not enough to be considered "soil" in the usable sense.=Organisches Material reichert sich in den vergrößerten Poren der Gesteinsfäule an, reicht jedoch nicht aus, um im verwendbaren Sinne als "Boden" betrachtet zu werden.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Pebble fungus grows in soil that is rich enough for farming.=Kieselpilz wächst in Böden, die reich genug für die Landwirtschaft sind.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Sand scum is a crust of algae that sometimes accumulates on wet sand deep underground, somehow managing to eke out a meager living from the phosphorescent light emitted by other organisms.=Sandschaum ist eine Algenkruste, die sich manchmal tief im Untergrund auf nassem Sand ansammelt und es irgendwie schafft, einen mageren Lebensunterhalt mit dem phosphoreszierenden Licht anderer Organismen zu verdienen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Sand scum is useless. You can get sand out of it, at least.=Sandschaum ist nutzlos. Zumindest kann man Sand herausholen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Snareweed has no practical use, its fibers disintegrate when they dry.=Snareweed hat keinen praktischen Nutzen, seine Fasern zerfallen beim Trocknen.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Soil that is rich enough to support gigantic mushrooms can support innumerable smaller ones as well. Pebble fungus is a prolific form of mushroom that covers the soil in small spheroidal fruiting bodies.=Böden, die reich genug sind, um gigantische Pilze zu unterstützen, können auch unzählige kleinere Pilze unterstützen. Kieselpilz ist eine fruchtbare Form von Pilzen, die den Boden in kleinen kugelförmigen Fruchtkörpern bedeckt.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Spongestone is the result of advanced rock rot in its ultimate form. The stone has become so riddled with pores and cavities that it's no longer really stone.=Schwammstein ist das Ergebnis der fortgeschrittenen Steinfäule in ihrer ultimativen Form. Der Stein ist so voller Poren und Hohlräume, dass er nicht mehr wirklich Stein ist.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Stillworm grows in soil that is rich enough for farming.=Stillworm wächst auf Böden, die reich genug für die Landwirtschaft sind.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Stillworm is not actually a kind of worm, but a sort of fungus that looks uncannily like pale, motionless earthworms intertwined with the soil.=Stillworm ist eigentlich keine Art Wurm, sondern eine Art Pilz, der unheimlich aussieht wie blasse, bewegungslose Regenwürmer, die mit dem Boden verflochten sind.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The iconic stalactites and stalagmites found in caverns are composed of flowstone (or 'dripstone' in the case of these formations). Moist dripstone is still undergoing growth, whereas dry dripstone is found in 'dead' caverns once the source of water that created them ceases.=Die in Kavernen gefundenen ikonischen Stalaktiten und Stalagmiten bestehen aus Flussstein (oder bei diesen Formationen „Tropfstein“). Feuchter Tropfstein wächst immer noch, während trockener Tropfstein in „toten“ Höhlen gefunden wird, sobald die Wasserquelle, aus der sie entstanden sind, aufhört.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
These blocks can be broken down into a large number of mese crystals, but cannot be artificially reassembled.=Diese Blöcke können in eine große Anzahl dieser Kristalle zerlegt, aber nicht künstlich wieder zusammengesetzt werden.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
These nodules are actually calcified bacterial colonies.=Diese Knötchen sind tatsächlich verkalkte Bakterienkolonien.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Traces of Mese must have been dissolved by the water as this crystal has an inherent glow to it. Not enough Mese to be useful as a reagent, unfortunately.=Spuren von Mese müssen vom Wasser aufgelöst worden sein, da dieser Kristall einen inhärenten Glanz hat. Leider nicht genug, um als Reagenz nützlich zu sein.
|
||||
|
||||
|
||||
### flowstone.lua ###
|
||||
|
||||
Dry Dripstone=Trockener Tropfstein
|
||||
Dry Flowstone=Trockener Fließstein
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Icicle=Eiszapfen
|
||||
Wet Dripstone=Nasser Tropfstein
|
||||
Wet Flowstone=Nasser Fließstein
|
||||
|
||||
### glow_worms.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Glow Worms=Glühwürmchen
|
||||
|
||||
### ground_cover.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Cobblestone with Floor Fungus=Kopfsteinpflaster mit Bodenpilz
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt with Cave Moss=Dreck mit Höhlenmoos
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt with Cave Moss and Footprint=Schmutz mit Höhlenmoos und Fußabdruck
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt with Pebble Fungus=Schmutz mit Kieselpilz
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt with Pebble Fungus and Footprint=Schmutz mit Kieselpilz und Fußabdruck
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt with Stillworm=Dreck mit Stillworm
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt with Stillworm and Footprint=Schmutz mit Stillworm und Footprint
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Ice with Hoar Moss=Eis mit Hoar Moss
|
||||
Rock Rot=
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Sand Scum=Sandschaum
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Sand Scum with Footprint=Sandschaum mit Fußabdruck
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Spongestone=Schwammstein
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Spongestone with Footprint=Schwammstein mit Fußabdruck
|
||||
|
||||
### snareweed.lua ###
|
||||
|
||||
Snareweed=
|
||||
|
||||
### veinstone.lua ###
|
||||
|
||||
Veinstone=
|
||||
@@ -0,0 +1,219 @@
|
||||
# textdomain: df_mapitems
|
||||
|
||||
|
||||
### castle_coral.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Castle Coral=Castello di Coral
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Castle Coral Skeleton=Scheletro di corallo del castello
|
||||
|
||||
### cave_coral.lua ###
|
||||
|
||||
Cave Coral=Grano di caverna
|
||||
|
||||
### cave_pearls.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Cave Pearls=Perle di caverna
|
||||
|
||||
### crystals_mese.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Flawless Mese Block=Impeccabile Mese Block
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Flawless Mese Crystal=Cristallo di Mese impeccabile
|
||||
|
||||
### crystals_ruby.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Big Red Crystal=Grande cristallo rosso
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Giant Red Crystal=Cristallo rosso gigante
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Red Crystal Vein=Vena di cristallo rossa
|
||||
|
||||
### crystals_salt.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Luminous Salt Crystal=Cristallo di sale luminoso
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Salty Cobble=Ciottoli salati
|
||||
|
||||
### doc.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
A crystal of salt grown from water that percolated through the depths of the earth, picking up all manner of minerals as it went.=Un cristallo di sale cresciuto dall'acqua che filtrava attraverso le profondità della terra, raccogliendo ogni sorta di minerali mentre procedeva.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
A highly aggressive form of lichen that eats into solid rock, turning its upper surfaces rough and a little spongy.=Una forma molto aggressiva di lichene che mangia la roccia solida, rendendo le sue superfici superiori ruvide e un po 'spugnose.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
A nasty kelp-like plant that grows in patches on the floor of the Sunless Sea. Its reflective patches draw in the unwary and then its prickly barbs catch and hold small creatures.=Una brutta pianta simile ad alghe che cresce a chiazze sul fondo del Mare senza sole. Le sue macchie riflettenti attirano gli incauti e poi le sue punte spinose catturano e trattengono piccole creature.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
A rare form of coral found only deep underground in the Sunless Sea, cave coral grows hanging from the ceilings of flooded caverns.=Una rara forma di corallo che si trova solo nel sottosuolo del Mare senza sole, il corallo delle caverne cresce appeso ai soffitti delle caverne allagate.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Although a strong mineral matrix remains, spongestone has enough organic content that it can be used as soil for farming.=Sebbene rimanga una forte matrice minerale, la spongestone ha un contenuto organico sufficiente da poter essere utilizzata come terreno per l'agricoltura.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Although stalagmites are blunter than the stalactites above them, they can cause extra damage to the unwary caver who falls on them.=Sebbene le stalagmiti siano più smussate delle stalattiti sopra di loro, possono causare danni extra allo speleologo incauto che cade su di loro.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Aside from its aesthetic value this crystal has no particular use.=A parte il suo valore estetico questo cristallo non ha particolari utilizzi.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Aside from its aesthetic value this rock has no particular use.=A parte il suo valore estetico questa roccia non ha particolari utilizzi.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Aside from the aesthetic beauty of its formations flowstone has no special properties or uses.=A parte la bellezza estetica delle sue formazioni, il flowstone non ha proprietà o usi particolari.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Aside from their aesthetic beauty, cave corals can be harvested for simple building materials.=A parte la loro bellezza estetica, i coralli delle caverne possono essere raccolti per semplici materiali da costruzione.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Aside from their soft glow and beauty, cave pearls have no practical use. Except perhaps as handholds for climbing.=A parte il loro bagliore tenue e la loro bellezza, le perle delle caverne non hanno alcun uso pratico. Tranne forse come appigli per arrampicarsi.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Attemping to mine this rock knocks the salt crust away, leaving only base stone.=Il tentativo di estrarre questa roccia spazza via la crosta di sale, lasciando solo la pietra di base.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Castle Coral has little practical use aside from perhaps as a distinctive-looking building material.=Castle Coral ha poco uso pratico a parte forse come materiale da costruzione dall'aspetto distintivo.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Cave moss has no known uses aside from the faint glow it emits. It dies when exposed to bright light sources such as the Sun.=Il muschio delle caverne non ha usi conosciuti a parte il debole bagliore che emette. Muore se esposto a sorgenti luminose intense come il sole.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Cave moss is technically a form of mold, but fortunately a relatively benign one given its ubiquity. Its fibers form a tough but springy mat over the surface of any organic-rich soil that accumulates deep underground.=Il muschio delle caverne è tecnicamente una forma di muffa, ma fortunatamente relativamente benigna data la sua ubiquità. Le sue fibre formano un tappeto resistente ma elastico sulla superficie di qualsiasi terreno ricco di sostanze organiche che si accumula in profondità nel sottosuolo.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Deep in the infernal conditions of the magma sea, over the course of millions of years, mese crystals grow into flawless blocks that glow bright with strange energies.=Nelle profondità delle condizioni infernali del mare di magma, nel corso di milioni di anni, i cristalli di mese crescono in blocchi impeccabili che brillano luminosi di strane energie.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Deep under the surface of the Sunless Sea are the rare and beautiful Castle Corals, so named due to their resemblance to small undersea castles.=In profondità sotto la superficie del Mare senza sole si trovano i rari e bellissimi Castle Corals, così chiamati per la loro somiglianza con i piccoli castelli sottomarini.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Falling onto an icicle is particularly damaging.=Cadere su un ghiacciolo è particolarmente dannoso.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Floor fungus has no known uses. It can penetrate deeply into cobblestone constructions if an infestation gets hold, but it is difficult to transport and is inhibited by light so it hasn't spread beyond the deep caverns.=Il fungo del pavimento non ha usi conosciuti. Può penetrare in profondità nelle costruzioni di ciottoli se un'infestazione si impadronisce, ma è difficile da trasportare ed è inibito dalla luce, quindi non si è diffuso oltre le profonde caverne.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Floor fungus produces a thin, slick film that spreads through the cracks of broken rock. Its ability to subsist on the tiniest traces of nutrients means it's found in relatively harsh underground environments.=Il fungo del pavimento produce una pellicola sottile e liscia che si diffonde attraverso le fessure della roccia frantumata. La sua capacità di sopravvivere alle più piccole tracce di sostanze nutritive significa che si trova in ambienti sotterranei relativamente difficili.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Flowstone is a carbonate-rich rock formation deposited by flowing water. It consists of minerals that the water dissolved earlier as it widens cracks and fissures into caves.=Flowstone è una formazione rocciosa ricca di carbonati depositata dall'acqua corrente. È costituito da minerali che l'acqua ha sciolto in precedenza mentre allarga crepe e fessure in grotte.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Glistening strings of silk hang from the ceilings of some of the larger caverns, lit by the millions of tiny bioluminescent worms that spun them. Glow worms prey on the insects they lure and entangle with their faux starry sky - and sometimes the occasional bat or other larger flying beast.=Luccicanti fili di seta pendono dai soffitti di alcune delle caverne più grandi, illuminati dai milioni di minuscoli vermi bioluminescenti che li fanno girare. I vermi luminosi predano gli insetti che attirano e intrappolano con il loro finto cielo stellato, e talvolta il pipistrello occasionale o altre bestie volanti più grandi.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Glow worms can be harvested and used as a source of light but they die when exposed to light significantly brighter than themselves or when immersed in water. A colony of glow worms hung in a hospitable environment will undergo a modest amount of growth, allowing it to be divided and propagated.=I lombrichi possono essere raccolti e usati come fonte di luce, ma muoiono se esposti a una luce significativamente più brillante di loro o quando vengono immersi nell'acqua. Una colonia di lucciole appese in un ambiente ospitale subirà una modesta crescita, che ne consentirà la divisione e la propagazione.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Hoar moss has no known use aside from providing a faint source of light.=Il muschio di Hoar non ha alcun uso noto a parte fornire una debole fonte di luce.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Hoar moss is a strange glowing crust that sometimes forms on the surface of water flowing over ice.=Il muschio è una strana crosta luminosa che a volte si forma sulla superficie dell'acqua che scorre sul ghiaccio.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Ice formed by water dripping slowly into a cold environment, icicles tend to be exceptionally pure and clear.=Ghiaccio formato dall'acqua che gocciola lentamente in un ambiente freddo, i ghiaccioli tendono ad essere eccezionalmente puri e limpidi.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Large, dry caverns deep underground are well suited to aeons-long processes that concentrate crystalline substances in their walls. This rock is riddled with veins of the stuff.=Grandi caverne asciutte nel sottosuolo ben si adattano a processi lunghi eoni che concentrano sostanze cristalline nelle loro pareti. Questa roccia è crivellata di vene del materiale.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Monolithic crystals of this size form only over extremely long periods deep underground, in large long-lived cavities that allow them room to grow. Water and the life it hosts tend to disrupt the formation process of these crystals so they're only found in dry environments.=Cristalli monolitici di queste dimensioni si formano solo per periodi estremamente lunghi nel sottosuolo, in grandi cavità longeve che consentono loro di crescere. L'acqua e la vita che ospita tendono a interrompere il processo di formazione di questi cristalli, quindi si trovano solo in ambienti asciutti.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Much water has seeped through the cracks in this rock and then quickly evaporated, leaving a crust of salt laced throughout.=Molta acqua è filtrata attraverso le fessure di questa roccia e poi è evaporata rapidamente, lasciando una crosta di sale allacciata.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Organic material accumulates in the enlarged pores of rock rot, but not enough to be considered "soil" in the usable sense.=Il materiale organico si accumula nei pori dilatati della putrefazione della roccia, ma non abbastanza per essere considerato "suolo" nel senso utilizzabile.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Pebble fungus grows in soil that is rich enough for farming.=Il fungo di ghiaia cresce in un terreno abbastanza ricco per l'agricoltura.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Sand scum is a crust of algae that sometimes accumulates on wet sand deep underground, somehow managing to eke out a meager living from the phosphorescent light emitted by other organisms.=La schiuma di sabbia è una crosta di alghe che a volte si accumula sulla sabbia bagnata in profondità nel sottosuolo, riuscendo in qualche modo a sopravvivere a una misera vita dalla luce fosforescente emessa da altri organismi.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Sand scum is useless. You can get sand out of it, at least.=La schiuma di sabbia è inutile. Almeno puoi tirar fuori la sabbia.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Snareweed has no practical use, its fibers disintegrate when they dry.=Snareweed non ha alcun uso pratico, le sue fibre si disintegrano quando si asciugano.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Soil that is rich enough to support gigantic mushrooms can support innumerable smaller ones as well. Pebble fungus is a prolific form of mushroom that covers the soil in small spheroidal fruiting bodies.=Un terreno abbastanza ricco da supportare funghi giganteschi può supportare anche innumerevoli funghi più piccoli. Il fungo di ghiaia è una forma prolifica di fungo che copre il terreno in piccoli corpi fruttiferi sferoidali.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Spongestone is the result of advanced rock rot in its ultimate form. The stone has become so riddled with pores and cavities that it's no longer really stone.=Spongestone è il risultato del marciume roccioso avanzato nella sua forma definitiva. La pietra è diventata così piena di pori e cavità che non è più veramente pietra.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Stillworm grows in soil that is rich enough for farming.=Il verme selvatico cresce in un terreno abbastanza ricco per l'agricoltura.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Stillworm is not actually a kind of worm, but a sort of fungus that looks uncannily like pale, motionless earthworms intertwined with the soil.=Il verme morto non è in realtà una specie di verme, ma una specie di fungo che assomiglia stranamente a lombrichi pallidi e immobili intrecciati con il terreno.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
The iconic stalactites and stalagmites found in caverns are composed of flowstone (or 'dripstone' in the case of these formations). Moist dripstone is still undergoing growth, whereas dry dripstone is found in 'dead' caverns once the source of water that created them ceases.=Le iconiche stalattiti e stalagmiti trovate nelle caverne sono composte da pietrisco (o "gocciolatoio" nel caso di queste formazioni). La pietra gocciolante umida è ancora in fase di crescita, mentre la pietra gocciolante secca si trova nelle caverne "morte" una volta che la fonte d'acqua che le ha create cessa.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
These blocks can be broken down into a large number of mese crystals, but cannot be artificially reassembled.=Questi blocchi possono essere scomposti in un gran numero di cristalli mese, ma non possono essere riassemblati artificialmente.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
These nodules are actually calcified bacterial colonies.=Questi noduli sono in realtà colonie batteriche calcificate.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Traces of Mese must have been dissolved by the water as this crystal has an inherent glow to it. Not enough Mese to be useful as a reagent, unfortunately.=Tracce di Mese devono essere state sciolte dall'acqua poiché questo cristallo ha un bagliore intrinseco. Sfortunatamente, non abbastanza Mese per essere utile come reagente.
|
||||
|
||||
|
||||
### flowstone.lua ###
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dry Dripstone=Pietra gocciolante secca
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dry Flowstone=Flowstone secco
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Icicle=Ghiacciolo
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Wet Dripstone=Dripstone bagnato
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Wet Flowstone=Flowstone bagnato
|
||||
|
||||
### glow_worms.lua ###
|
||||
|
||||
Glow Worms=Vermi luminosi
|
||||
|
||||
### ground_cover.lua ###
|
||||
|
||||
Cobblestone with Floor Fungus=Ciottoli con funghi del terreno
|
||||
Dirt with Cave Moss=Terra con muschio di caverna
|
||||
Dirt with Cave Moss and Footprint=Terra con muschio di caverna
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt with Pebble Fungus=Sporcizia con funghi di ghiaia
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt with Pebble Fungus and Footprint=Sporcizia con funghi di ghiaia e impronta
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt with Stillworm=Sporcizia con Stillworm
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Dirt with Stillworm and Footprint=Sporcizia con Stillworm e Footprint
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Ice with Hoar Moss=Ghiaccio con Hoar Moss
|
||||
Rock Rot=
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Sand Scum=Feccia di sabbia
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Sand Scum with Footprint=Feccia di sabbia con impronta
|
||||
Spongestone=
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Spongestone with Footprint=Pietra spugnosa con impronta
|
||||
|
||||
### snareweed.lua ###
|
||||
|
||||
Snareweed=
|
||||
|
||||
### veinstone.lua ###
|
||||
|
||||
Veinstone=
|
||||
@@ -0,0 +1,154 @@
|
||||
# textdomain: df_mapitems
|
||||
|
||||
|
||||
### castle_coral.lua ###
|
||||
|
||||
Castle Coral=
|
||||
Castle Coral Skeleton=
|
||||
|
||||
### cave_coral.lua ###
|
||||
|
||||
Cave Coral=
|
||||
|
||||
### cave_pearls.lua ###
|
||||
|
||||
Cave Pearls=
|
||||
|
||||
### crystals_mese.lua ###
|
||||
|
||||
Flawless Mese Block=
|
||||
Flawless Mese Crystal=
|
||||
|
||||
### crystals_ruby.lua ###
|
||||
|
||||
Big Red Crystal=
|
||||
Giant Red Crystal=
|
||||
Red Crystal Vein=
|
||||
|
||||
### crystals_salt.lua ###
|
||||
|
||||
Luminous Salt Crystal=
|
||||
Salty Cobble=
|
||||
|
||||
### doc.lua ###
|
||||
|
||||
A crystal of salt grown from water that percolated through the depths of the earth, picking up all manner of minerals as it went.=
|
||||
|
||||
A highly aggressive form of lichen that eats into solid rock, turning its upper surfaces rough and a little spongy.=
|
||||
|
||||
A nasty kelp-like plant that grows in patches on the floor of the Sunless Sea. Its reflective patches draw in the unwary and then its prickly barbs catch and hold small creatures.=
|
||||
|
||||
A rare form of coral found only deep underground in the Sunless Sea, cave coral grows hanging from the ceilings of flooded caverns.=
|
||||
|
||||
Although a strong mineral matrix remains, spongestone has enough organic content that it can be used as soil for farming.=
|
||||
|
||||
Although stalagmites are blunter than the stalactites above them, they can cause extra damage to the unwary caver who falls on them.=
|
||||
|
||||
Aside from its aesthetic value this crystal has no particular use.=
|
||||
|
||||
Aside from its aesthetic value this rock has no particular use.=
|
||||
|
||||
Aside from the aesthetic beauty of its formations flowstone has no special properties or uses.=
|
||||
|
||||
Aside from their aesthetic beauty, cave corals can be harvested for simple building materials.=
|
||||
|
||||
Aside from their soft glow and beauty, cave pearls have no practical use. Except perhaps as handholds for climbing.=
|
||||
|
||||
Attemping to mine this rock knocks the salt crust away, leaving only base stone.=
|
||||
|
||||
Castle Coral has little practical use aside from perhaps as a distinctive-looking building material.=
|
||||
|
||||
Cave moss has no known uses aside from the faint glow it emits. It dies when exposed to bright light sources such as the Sun.=
|
||||
|
||||
Cave moss is technically a form of mold, but fortunately a relatively benign one given its ubiquity. Its fibers form a tough but springy mat over the surface of any organic-rich soil that accumulates deep underground.=
|
||||
|
||||
Deep in the infernal conditions of the magma sea, over the course of millions of years, mese crystals grow into flawless blocks that glow bright with strange energies.=
|
||||
|
||||
Deep under the surface of the Sunless Sea are the rare and beautiful Castle Corals, so named due to their resemblance to small undersea castles.=
|
||||
|
||||
Falling onto an icicle is particularly damaging.=
|
||||
|
||||
Floor fungus has no known uses. It can penetrate deeply into cobblestone constructions if an infestation gets hold, but it is difficult to transport and is inhibited by light so it hasn't spread beyond the deep caverns.=
|
||||
|
||||
Floor fungus produces a thin, slick film that spreads through the cracks of broken rock. Its ability to subsist on the tiniest traces of nutrients means it's found in relatively harsh underground environments.=
|
||||
|
||||
Flowstone is a carbonate-rich rock formation deposited by flowing water. It consists of minerals that the water dissolved earlier as it widens cracks and fissures into caves.=
|
||||
|
||||
Glistening strings of silk hang from the ceilings of some of the larger caverns, lit by the millions of tiny bioluminescent worms that spun them. Glow worms prey on the insects they lure and entangle with their faux starry sky - and sometimes the occasional bat or other larger flying beast.=
|
||||
|
||||
Glow worms can be harvested and used as a source of light but they die when exposed to light significantly brighter than themselves or when immersed in water. A colony of glow worms hung in a hospitable environment will undergo a modest amount of growth, allowing it to be divided and propagated.=
|
||||
|
||||
Hoar moss has no known use aside from providing a faint source of light.=
|
||||
|
||||
Hoar moss is a strange glowing crust that sometimes forms on the surface of water flowing over ice.=
|
||||
|
||||
Ice formed by water dripping slowly into a cold environment, icicles tend to be exceptionally pure and clear.=
|
||||
|
||||
Large, dry caverns deep underground are well suited to aeons-long processes that concentrate crystalline substances in their walls. This rock is riddled with veins of the stuff.=
|
||||
|
||||
Monolithic crystals of this size form only over extremely long periods deep underground, in large long-lived cavities that allow them room to grow. Water and the life it hosts tend to disrupt the formation process of these crystals so they're only found in dry environments.=
|
||||
|
||||
Much water has seeped through the cracks in this rock and then quickly evaporated, leaving a crust of salt laced throughout.=
|
||||
|
||||
Organic material accumulates in the enlarged pores of rock rot, but not enough to be considered "soil" in the usable sense.=
|
||||
|
||||
Pebble fungus grows in soil that is rich enough for farming.=
|
||||
|
||||
Sand scum is a crust of algae that sometimes accumulates on wet sand deep underground, somehow managing to eke out a meager living from the phosphorescent light emitted by other organisms.=
|
||||
|
||||
Sand scum is useless. You can get sand out of it, at least.=
|
||||
|
||||
Snareweed has no practical use, its fibers disintegrate when they dry.=
|
||||
|
||||
Soil that is rich enough to support gigantic mushrooms can support innumerable smaller ones as well. Pebble fungus is a prolific form of mushroom that covers the soil in small spheroidal fruiting bodies.=
|
||||
|
||||
Spongestone is the result of advanced rock rot in its ultimate form. The stone has become so riddled with pores and cavities that it's no longer really stone.=
|
||||
|
||||
Stillworm grows in soil that is rich enough for farming.=
|
||||
|
||||
Stillworm is not actually a kind of worm, but a sort of fungus that looks uncannily like pale, motionless earthworms intertwined with the soil.=
|
||||
|
||||
The iconic stalactites and stalagmites found in caverns are composed of flowstone (or 'dripstone' in the case of these formations). Moist dripstone is still undergoing growth, whereas dry dripstone is found in 'dead' caverns once the source of water that created them ceases.=
|
||||
|
||||
These blocks can be broken down into a large number of mese crystals, but cannot be artificially reassembled.=
|
||||
|
||||
These nodules are actually calcified bacterial colonies.=
|
||||
|
||||
Traces of Mese must have been dissolved by the water as this crystal has an inherent glow to it. Not enough Mese to be useful as a reagent, unfortunately.=
|
||||
|
||||
|
||||
### flowstone.lua ###
|
||||
|
||||
Dry Dripstone=
|
||||
Dry Flowstone=
|
||||
Icicle=
|
||||
Wet Dripstone=
|
||||
Wet Flowstone=
|
||||
|
||||
### glow_worms.lua ###
|
||||
|
||||
Glow Worms=
|
||||
|
||||
### ground_cover.lua ###
|
||||
|
||||
Cobblestone with Floor Fungus=
|
||||
Dirt with Cave Moss=
|
||||
Dirt with Cave Moss and Footprint=
|
||||
Dirt with Pebble Fungus=
|
||||
Dirt with Pebble Fungus and Footprint=
|
||||
Dirt with Stillworm=
|
||||
Dirt with Stillworm and Footprint=
|
||||
Ice with Hoar Moss=
|
||||
Rock Rot=
|
||||
Sand Scum=
|
||||
Sand Scum with Footprint=
|
||||
Spongestone=
|
||||
Spongestone with Footprint=
|
||||
|
||||
### snareweed.lua ###
|
||||
|
||||
Snareweed=
|
||||
|
||||
### veinstone.lua ###
|
||||
|
||||
Veinstone=
|
||||
@@ -0,0 +1,4 @@
|
||||
name = df_mapitems
|
||||
description = Various node types used by the dfcaverns mapgen mod. Includes cave coral, flowstone, glowing crystals, glow worms, moss and fungi ground cover, and snare weed.
|
||||
depends = df_dependencies, subterrane
|
||||
optional_depends = df_farming, doc, radiant_damage, footprints
|
||||
@@ -0,0 +1,22 @@
|
||||
# Blender MTL File: 'hex crystal 30.blend'
|
||||
# Material Count: 2
|
||||
|
||||
newmtl End_Mat
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.640000 0.640000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
|
||||
newmtl Side_Mat
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.371605 0.494084
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
@@ -0,0 +1,114 @@
|
||||
# Blender v2.77 (sub 0) OBJ File: 'hex crystal 30.blend'
|
||||
# www.blender.org
|
||||
mtllib hex_crystal_30_45.mtl
|
||||
o Cylinder
|
||||
v 0.135341 -0.831516 0.135341
|
||||
v -1.192872 2.421927 -1.192872
|
||||
v -0.353661 -0.499737 0.353446
|
||||
v -1.410977 2.090148 -0.703870
|
||||
v -0.442049 -0.716243 -0.088496
|
||||
v -1.499365 1.873641 -1.145812
|
||||
v -0.088496 -0.716243 -0.442049
|
||||
v -1.145812 1.873641 -1.499365
|
||||
v 0.353446 -0.499737 -0.353661
|
||||
v -0.703870 2.090148 -1.410977
|
||||
v 0.441834 -0.283230 0.088281
|
||||
v -0.615482 2.306654 -0.969035
|
||||
v 0.088281 -0.283230 0.441834
|
||||
v -0.969035 2.306654 -0.615482
|
||||
vt 0.4999 0.0000
|
||||
vt 0.4999 1.0000
|
||||
vt 0.3332 1.0000
|
||||
vt 0.3332 0.0000
|
||||
vt 0.1665 1.0000
|
||||
vt 0.1665 0.0000
|
||||
vt 0.0000 1.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 1.0000 -0.0000
|
||||
vt 1.0000 1.0000
|
||||
vt 0.8333 1.0000
|
||||
vt 0.8333 -0.0000
|
||||
vt 0.6666 1.0000
|
||||
vt 0.6666 -0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.5000 0.5000
|
||||
vt 0.9313 0.7490
|
||||
vt 0.5000 0.9980
|
||||
vt 0.5000 0.5000
|
||||
vt 0.5000 0.0020
|
||||
vt 0.9313 0.2510
|
||||
vt 0.0687 0.7490
|
||||
vt 0.0687 0.2510
|
||||
vt 0.0687 0.2510
|
||||
vt 0.0687 0.7490
|
||||
vt 0.5000 0.0020
|
||||
vt 0.5000 0.9980
|
||||
vt 0.9313 0.2510
|
||||
vt 0.9313 0.7490
|
||||
vn -0.9186 -0.2500 0.3062
|
||||
vn -0.6124 -0.5000 -0.6124
|
||||
vn 0.3062 -0.2500 -0.9186
|
||||
vn 0.9186 0.2500 -0.3062
|
||||
vn 0.6124 0.5000 0.6124
|
||||
vn -0.3062 0.2500 0.9186
|
||||
vn -0.3536 0.8660 -0.3536
|
||||
vn 0.3990 0.4733 -0.7854
|
||||
vn 0.7854 -0.4733 -0.3990
|
||||
vn -0.3439 -0.8143 0.4677
|
||||
vn -0.8735 0.4830 -0.0619
|
||||
vn -0.1410 -0.9799 -0.1410
|
||||
vn -0.6706 0.3173 -0.6706
|
||||
vn 0.4677 -0.8143 -0.3439
|
||||
vn -0.0619 0.4830 -0.8735
|
||||
vn 0.8735 -0.4830 0.0619
|
||||
vn 0.3439 0.8143 -0.4677
|
||||
vn 0.6706 -0.3173 0.6706
|
||||
vn 0.1410 0.9799 0.1410
|
||||
vn 0.0619 -0.4830 0.8735
|
||||
vn -0.4677 0.8143 0.3439
|
||||
g Cylinder_Cylinder_Side_Mat
|
||||
usemtl Side_Mat
|
||||
s off
|
||||
f 3/1/1 4/2/1 6/3/1 5/4/1
|
||||
f 5/4/2 6/3/2 8/5/2 7/6/2
|
||||
f 7/6/3 8/5/3 10/7/3 9/8/3
|
||||
f 9/9/4 10/10/4 12/11/4 11/12/4
|
||||
f 11/12/5 12/11/5 14/13/5 13/14/5
|
||||
f 13/14/6 14/13/6 4/2/6 3/1/6
|
||||
f 10/15/7 8/16/7 12/17/7
|
||||
f 12/17/8 8/16/8 2/18/8
|
||||
f 2/18/1 8/16/1 14/19/1
|
||||
f 14/19/7 8/16/7 6/20/7
|
||||
f 14/19/9 6/20/9 2/18/9
|
||||
f 11/21/9 1/22/9 7/23/9
|
||||
f 7/23/1 1/22/1 13/24/1
|
||||
f 13/24/8 1/22/8 5/25/8
|
||||
f 9/8/7 7/23/7 11/21/7
|
||||
f 11/21/7 7/23/7 13/24/7
|
||||
f 13/24/7 7/23/7 5/25/7
|
||||
f 13/24/7 5/25/7 3/26/7
|
||||
g Cylinder_Cylinder_End_Mat
|
||||
usemtl End_Mat
|
||||
f 1/27/10 3/28/10 5/29/10
|
||||
f 2/30/11 6/31/11 4/32/11
|
||||
f 1/27/12 5/29/12 7/33/12
|
||||
f 2/30/13 8/34/13 6/31/13
|
||||
f 1/27/14 7/33/14 9/35/14
|
||||
f 2/30/15 10/36/15 8/34/15
|
||||
f 1/27/16 9/35/16 11/37/16
|
||||
f 2/30/17 12/38/17 10/36/17
|
||||
f 1/27/18 11/37/18 13/39/18
|
||||
f 2/30/19 14/40/19 12/38/19
|
||||
f 1/27/20 13/39/20 3/28/20
|
||||
f 2/30/21 4/32/21 14/40/21
|
||||
@@ -0,0 +1,22 @@
|
||||
# Blender MTL File: 'hex crystal 30 45.blend'
|
||||
# Material Count: 2
|
||||
|
||||
newmtl End_Mat
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.640000 0.640000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
|
||||
newmtl Side_Mat
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.371605 0.494084
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
@@ -0,0 +1,114 @@
|
||||
# Blender v2.77 (sub 0) OBJ File: 'hex crystal 30 45.blend'
|
||||
# www.blender.org
|
||||
mtllib hex_crystal_30_45_med.mtl
|
||||
o Cylinder
|
||||
v 0.067670 -0.665758 0.067670
|
||||
v -0.596436 0.960964 -0.596436
|
||||
v -0.176830 -0.499868 0.176723
|
||||
v -0.705489 0.795074 -0.351935
|
||||
v -0.221025 -0.608121 -0.044248
|
||||
v -0.749683 0.686821 -0.572906
|
||||
v -0.044248 -0.608121 -0.221025
|
||||
v -0.572906 0.686821 -0.749683
|
||||
v 0.176723 -0.499868 -0.176830
|
||||
v -0.351935 0.795074 -0.705489
|
||||
v 0.220917 -0.391615 0.044140
|
||||
v -0.307741 0.903327 -0.484518
|
||||
v 0.044140 -0.391615 0.220917
|
||||
v -0.484518 0.903327 -0.307741
|
||||
vt 0.4999 0.0000
|
||||
vt 0.4999 1.0000
|
||||
vt 0.3332 1.0000
|
||||
vt 0.3332 0.0000
|
||||
vt 0.1665 1.0000
|
||||
vt 0.1665 0.0000
|
||||
vt 0.0000 1.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 1.0000 -0.0000
|
||||
vt 1.0000 1.0000
|
||||
vt 0.8333 1.0000
|
||||
vt 0.8333 -0.0000
|
||||
vt 0.6666 1.0000
|
||||
vt 0.6666 -0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.5000 0.5000
|
||||
vt 0.9313 0.7490
|
||||
vt 0.5000 0.9980
|
||||
vt 0.5000 0.5000
|
||||
vt 0.5000 0.0020
|
||||
vt 0.9313 0.2510
|
||||
vt 0.0687 0.7490
|
||||
vt 0.0687 0.2510
|
||||
vt 0.0687 0.2510
|
||||
vt 0.0687 0.7490
|
||||
vt 0.5000 0.0020
|
||||
vt 0.5000 0.9980
|
||||
vt 0.9313 0.2510
|
||||
vt 0.9313 0.7490
|
||||
vn -0.9186 -0.2500 0.3062
|
||||
vn -0.6124 -0.5000 -0.6124
|
||||
vn 0.3062 -0.2500 -0.9186
|
||||
vn 0.9186 0.2500 -0.3062
|
||||
vn 0.6124 0.5000 0.6124
|
||||
vn -0.3062 0.2500 0.9186
|
||||
vn -0.3536 0.8660 -0.3536
|
||||
vn 0.3990 0.4733 -0.7854
|
||||
vn 0.7854 -0.4733 -0.3990
|
||||
vn -0.3439 -0.8143 0.4677
|
||||
vn -0.8735 0.4830 -0.0619
|
||||
vn -0.1410 -0.9799 -0.1410
|
||||
vn -0.6706 0.3173 -0.6706
|
||||
vn 0.4677 -0.8143 -0.3439
|
||||
vn -0.0619 0.4830 -0.8735
|
||||
vn 0.8735 -0.4830 0.0619
|
||||
vn 0.3439 0.8143 -0.4677
|
||||
vn 0.6706 -0.3173 0.6706
|
||||
vn 0.1410 0.9799 0.1410
|
||||
vn 0.0619 -0.4830 0.8735
|
||||
vn -0.4677 0.8143 0.3439
|
||||
g Cylinder_Cylinder_Side_Mat
|
||||
usemtl Side_Mat
|
||||
s off
|
||||
f 3/1/1 4/2/1 6/3/1 5/4/1
|
||||
f 5/4/2 6/3/2 8/5/2 7/6/2
|
||||
f 7/6/3 8/5/3 10/7/3 9/8/3
|
||||
f 9/9/4 10/10/4 12/11/4 11/12/4
|
||||
f 11/12/5 12/11/5 14/13/5 13/14/5
|
||||
f 13/14/6 14/13/6 4/2/6 3/1/6
|
||||
f 10/15/7 8/16/7 12/17/7
|
||||
f 12/17/8 8/16/8 2/18/8
|
||||
f 2/18/1 8/16/1 14/19/1
|
||||
f 14/19/7 8/16/7 6/20/7
|
||||
f 14/19/9 6/20/9 2/18/9
|
||||
f 11/21/9 1/22/9 7/23/9
|
||||
f 7/23/1 1/22/1 13/24/1
|
||||
f 13/24/8 1/22/8 5/25/8
|
||||
f 9/8/7 7/23/7 11/21/7
|
||||
f 11/21/7 7/23/7 13/24/7
|
||||
f 13/24/7 7/23/7 5/25/7
|
||||
f 13/24/7 5/25/7 3/26/7
|
||||
g Cylinder_Cylinder_End_Mat
|
||||
usemtl End_Mat
|
||||
f 1/27/10 3/28/10 5/29/10
|
||||
f 2/30/11 6/31/11 4/32/11
|
||||
f 1/27/12 5/29/12 7/33/12
|
||||
f 2/30/13 8/34/13 6/31/13
|
||||
f 1/27/14 7/33/14 9/35/14
|
||||
f 2/30/15 10/36/15 8/34/15
|
||||
f 1/27/16 9/35/16 11/37/16
|
||||
f 2/30/17 12/38/17 10/36/17
|
||||
f 1/27/18 11/37/18 13/39/18
|
||||
f 2/30/19 14/40/19 12/38/19
|
||||
f 1/27/20 13/39/20 3/28/20
|
||||
f 2/30/21 4/32/21 14/40/21
|
||||
@@ -0,0 +1,22 @@
|
||||
# Blender MTL File: 'hex crystal 30.blend'
|
||||
# Material Count: 2
|
||||
|
||||
newmtl End_Mat
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.640000 0.640000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
|
||||
newmtl Side_Mat
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.371605 0.494084
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
@@ -0,0 +1,114 @@
|
||||
# Blender v2.77 (sub 0) OBJ File: 'hex crystal 30.blend'
|
||||
# www.blender.org
|
||||
mtllib hex_crystal_30.mtl
|
||||
o Cylinder
|
||||
v -0.000000 -0.831516 0.191401
|
||||
v 0.000000 2.421927 -1.686976
|
||||
v -0.500000 -0.499737 -0.000152
|
||||
v -0.500000 2.090148 -1.495423
|
||||
v -0.250000 -0.716243 -0.375152
|
||||
v -0.250000 1.873641 -1.870423
|
||||
v 0.250000 -0.716243 -0.375152
|
||||
v 0.250000 1.873641 -1.870423
|
||||
v 0.500000 -0.499737 -0.000152
|
||||
v 0.500000 2.090148 -1.495423
|
||||
v 0.250000 -0.283230 0.374848
|
||||
v 0.250000 2.306654 -1.120423
|
||||
v -0.250000 -0.283230 0.374848
|
||||
v -0.250000 2.306654 -1.120423
|
||||
vt 0.4999 0.0000
|
||||
vt 0.4999 1.0000
|
||||
vt 0.3332 1.0000
|
||||
vt 0.3332 0.0000
|
||||
vt 0.1665 1.0000
|
||||
vt 0.1665 0.0000
|
||||
vt 0.0000 1.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 1.0000 -0.0000
|
||||
vt 1.0000 1.0000
|
||||
vt 0.8333 1.0000
|
||||
vt 0.8333 -0.0000
|
||||
vt 0.6666 1.0000
|
||||
vt 0.6666 -0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.5000 0.5000
|
||||
vt 0.9313 0.7490
|
||||
vt 0.5000 0.9980
|
||||
vt 0.5000 0.5000
|
||||
vt 0.5000 0.0020
|
||||
vt 0.9313 0.2510
|
||||
vt 0.0687 0.7490
|
||||
vt 0.0687 0.2510
|
||||
vt 0.0687 0.2510
|
||||
vt 0.0687 0.7490
|
||||
vt 0.5000 0.0020
|
||||
vt 0.5000 0.9980
|
||||
vt 0.9313 0.2510
|
||||
vt 0.9313 0.7490
|
||||
vn -0.8660 -0.2500 -0.4330
|
||||
vn 0.0000 -0.5000 -0.8660
|
||||
vn 0.8660 -0.2500 -0.4330
|
||||
vn 0.8660 0.2500 0.4330
|
||||
vn 0.0000 0.5000 0.8660
|
||||
vn -0.8660 0.2500 0.4330
|
||||
vn 0.0000 0.8660 -0.5000
|
||||
vn 0.8375 0.4733 -0.2732
|
||||
vn 0.8375 -0.4733 0.2732
|
||||
vn -0.5739 -0.8143 0.0875
|
||||
vn -0.5739 0.4830 -0.6614
|
||||
vn 0.0000 -0.9799 -0.1994
|
||||
vn -0.0000 0.3173 -0.9483
|
||||
vn 0.5739 -0.8143 0.0875
|
||||
vn 0.5739 0.4830 -0.6614
|
||||
vn 0.5739 -0.4830 0.6614
|
||||
vn 0.5739 0.8143 -0.0875
|
||||
vn 0.0000 -0.3173 0.9483
|
||||
vn 0.0000 0.9799 0.1994
|
||||
vn -0.5739 -0.4830 0.6614
|
||||
vn -0.5739 0.8143 -0.0875
|
||||
g Cylinder_Cylinder_Side_Mat
|
||||
usemtl Side_Mat
|
||||
s off
|
||||
f 3/1/1 4/2/1 6/3/1 5/4/1
|
||||
f 5/4/2 6/3/2 8/5/2 7/6/2
|
||||
f 7/6/3 8/5/3 10/7/3 9/8/3
|
||||
f 9/9/4 10/10/4 12/11/4 11/12/4
|
||||
f 11/12/5 12/11/5 14/13/5 13/14/5
|
||||
f 13/14/6 14/13/6 4/2/6 3/1/6
|
||||
f 10/15/7 8/16/7 12/17/7
|
||||
f 12/17/8 8/16/8 2/18/8
|
||||
f 2/18/1 8/16/1 14/19/1
|
||||
f 14/19/7 8/16/7 6/20/7
|
||||
f 14/19/9 6/20/9 2/18/9
|
||||
f 11/21/9 1/22/9 7/23/9
|
||||
f 7/23/1 1/22/1 13/24/1
|
||||
f 13/24/8 1/22/8 5/25/8
|
||||
f 9/8/7 7/23/7 11/21/7
|
||||
f 11/21/7 7/23/7 13/24/7
|
||||
f 13/24/7 7/23/7 5/25/7
|
||||
f 13/24/7 5/25/7 3/26/7
|
||||
g Cylinder_Cylinder_End_Mat
|
||||
usemtl End_Mat
|
||||
f 1/27/10 3/28/10 5/29/10
|
||||
f 2/30/11 6/31/11 4/32/11
|
||||
f 1/27/12 5/29/12 7/33/12
|
||||
f 2/30/13 8/34/13 6/31/13
|
||||
f 1/27/14 7/33/14 9/35/14
|
||||
f 2/30/15 10/36/15 8/34/15
|
||||
f 1/27/16 9/35/16 11/37/16
|
||||
f 2/30/17 12/38/17 10/36/17
|
||||
f 1/27/18 11/37/18 13/39/18
|
||||
f 2/30/19 14/40/19 12/38/19
|
||||
f 1/27/20 13/39/20 3/28/20
|
||||
f 2/30/21 4/32/21 14/40/21
|
||||
@@ -0,0 +1,22 @@
|
||||
# Blender MTL File: 'hex crystal 30.blend'
|
||||
# Material Count: 2
|
||||
|
||||
newmtl End_Mat
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.640000 0.640000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
|
||||
newmtl Side_Mat
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.371605 0.494084
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
@@ -0,0 +1,114 @@
|
||||
# Blender v2.77 (sub 0) OBJ File: 'hex crystal 30.blend'
|
||||
# www.blender.org
|
||||
mtllib hex_crystal_30_med.mtl
|
||||
o Cylinder
|
||||
v -0.000000 -0.665758 0.095701
|
||||
v 0.000000 0.960964 -0.843488
|
||||
v -0.250000 -0.499868 -0.000076
|
||||
v -0.250000 0.795074 -0.747711
|
||||
v -0.125000 -0.608121 -0.187576
|
||||
v -0.125000 0.686821 -0.935211
|
||||
v 0.125000 -0.608121 -0.187576
|
||||
v 0.125000 0.686821 -0.935212
|
||||
v 0.250000 -0.499868 -0.000076
|
||||
v 0.250000 0.795074 -0.747711
|
||||
v 0.125000 -0.391615 0.187424
|
||||
v 0.125000 0.903327 -0.560211
|
||||
v -0.125000 -0.391615 0.187424
|
||||
v -0.125000 0.903327 -0.560211
|
||||
vt 0.4999 0.0000
|
||||
vt 0.4999 1.0000
|
||||
vt 0.3332 1.0000
|
||||
vt 0.3332 0.0000
|
||||
vt 0.1665 1.0000
|
||||
vt 0.1665 0.0000
|
||||
vt 0.0000 1.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 1.0000 -0.0000
|
||||
vt 1.0000 1.0000
|
||||
vt 0.8333 1.0000
|
||||
vt 0.8333 -0.0000
|
||||
vt 0.6666 1.0000
|
||||
vt 0.6666 -0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.5000 0.5000
|
||||
vt 0.9313 0.7490
|
||||
vt 0.5000 0.9980
|
||||
vt 0.5000 0.5000
|
||||
vt 0.5000 0.0020
|
||||
vt 0.9313 0.2510
|
||||
vt 0.0687 0.7490
|
||||
vt 0.0687 0.2510
|
||||
vt 0.0687 0.2510
|
||||
vt 0.0687 0.7490
|
||||
vt 0.5000 0.0020
|
||||
vt 0.5000 0.9980
|
||||
vt 0.9313 0.2510
|
||||
vt 0.9313 0.7490
|
||||
vn -0.8660 -0.2500 -0.4330
|
||||
vn 0.0000 -0.5000 -0.8660
|
||||
vn 0.8660 -0.2500 -0.4330
|
||||
vn 0.8660 0.2500 0.4330
|
||||
vn 0.0000 0.5000 0.8660
|
||||
vn -0.8660 0.2500 0.4330
|
||||
vn 0.0000 0.8660 -0.5000
|
||||
vn 0.8375 0.4733 -0.2732
|
||||
vn 0.8375 -0.4733 0.2732
|
||||
vn -0.5739 -0.8143 0.0875
|
||||
vn -0.5739 0.4830 -0.6614
|
||||
vn 0.0000 -0.9799 -0.1994
|
||||
vn -0.0000 0.3173 -0.9483
|
||||
vn 0.5739 -0.8143 0.0875
|
||||
vn 0.5739 0.4830 -0.6614
|
||||
vn 0.5739 -0.4830 0.6614
|
||||
vn 0.5739 0.8143 -0.0875
|
||||
vn 0.0000 -0.3173 0.9483
|
||||
vn 0.0000 0.9799 0.1994
|
||||
vn -0.5739 -0.4830 0.6614
|
||||
vn -0.5739 0.8143 -0.0875
|
||||
g Cylinder_Cylinder_Side_Mat
|
||||
usemtl Side_Mat
|
||||
s off
|
||||
f 3/1/1 4/2/1 6/3/1 5/4/1
|
||||
f 5/4/2 6/3/2 8/5/2 7/6/2
|
||||
f 7/6/3 8/5/3 10/7/3 9/8/3
|
||||
f 9/9/4 10/10/4 12/11/4 11/12/4
|
||||
f 11/12/5 12/11/5 14/13/5 13/14/5
|
||||
f 13/14/6 14/13/6 4/2/6 3/1/6
|
||||
f 10/15/7 8/16/7 12/17/7
|
||||
f 12/17/8 8/16/8 2/18/8
|
||||
f 2/18/1 8/16/1 14/19/1
|
||||
f 14/19/7 8/16/7 6/20/7
|
||||
f 14/19/9 6/20/9 2/18/9
|
||||
f 11/21/9 1/22/9 7/23/9
|
||||
f 7/23/1 1/22/1 13/24/1
|
||||
f 13/24/8 1/22/8 5/25/8
|
||||
f 9/8/7 7/23/7 11/21/7
|
||||
f 11/21/7 7/23/7 13/24/7
|
||||
f 13/24/7 7/23/7 5/25/7
|
||||
f 13/24/7 5/25/7 3/26/7
|
||||
g Cylinder_Cylinder_End_Mat
|
||||
usemtl End_Mat
|
||||
f 1/27/10 3/28/10 5/29/10
|
||||
f 2/30/11 6/31/11 4/32/11
|
||||
f 1/27/12 5/29/12 7/33/12
|
||||
f 2/30/13 8/34/13 6/31/13
|
||||
f 1/27/14 7/33/14 9/35/14
|
||||
f 2/30/15 10/36/15 8/34/15
|
||||
f 1/27/16 9/35/16 11/37/16
|
||||
f 2/30/17 12/38/17 10/36/17
|
||||
f 1/27/18 11/37/18 13/39/18
|
||||
f 2/30/19 14/40/19 12/38/19
|
||||
f 1/27/20 13/39/20 3/28/20
|
||||
f 2/30/21 4/32/21 14/40/21
|
||||
@@ -0,0 +1,22 @@
|
||||
# Blender MTL File: 'hex crystal.blend'
|
||||
# Material Count: 2
|
||||
|
||||
newmtl End_Mat
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.640000 0.640000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
|
||||
newmtl Side_Mat
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.371605 0.494084
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
@@ -0,0 +1,114 @@
|
||||
# Blender v2.77 (sub 0) OBJ File: 'hex crystal.blend'
|
||||
# www.blender.org
|
||||
mtllib hex_crystal.mtl
|
||||
o Cylinder
|
||||
v 0.000000 -0.882802 0.000000
|
||||
v 0.000000 2.873951 0.000000
|
||||
v 0.000000 -0.499696 -0.500000
|
||||
v 0.000000 2.490845 -0.500000
|
||||
v 0.433013 -0.499696 -0.250000
|
||||
v 0.433013 2.490845 -0.250000
|
||||
v 0.433013 -0.499696 0.250000
|
||||
v 0.433013 2.490845 0.250000
|
||||
v -0.000000 -0.499696 0.500000
|
||||
v -0.000000 2.490845 0.500000
|
||||
v -0.433013 -0.499696 0.250000
|
||||
v -0.433013 2.490845 0.250000
|
||||
v -0.433013 -0.499696 -0.250000
|
||||
v -0.433013 2.490845 -0.250000
|
||||
vt 0.4999 0.0000
|
||||
vt 0.4999 1.0000
|
||||
vt 0.3332 1.0000
|
||||
vt 0.3332 0.0000
|
||||
vt 0.1665 1.0000
|
||||
vt 0.1665 0.0000
|
||||
vt 0.0000 1.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 1.0000 -0.0000
|
||||
vt 1.0000 1.0000
|
||||
vt 0.8333 1.0000
|
||||
vt 0.8333 -0.0000
|
||||
vt 0.6666 1.0000
|
||||
vt 0.6666 -0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.5000 0.5000
|
||||
vt 0.9313 0.7490
|
||||
vt 0.5000 0.9980
|
||||
vt 0.5000 0.5000
|
||||
vt 0.5000 0.0020
|
||||
vt 0.9313 0.2510
|
||||
vt 0.0687 0.7490
|
||||
vt 0.0687 0.2510
|
||||
vt 0.0687 0.2510
|
||||
vt 0.0687 0.7490
|
||||
vt 0.5000 0.0020
|
||||
vt 0.5000 0.9980
|
||||
vt 0.9313 0.2510
|
||||
vt 0.9313 0.7490
|
||||
vn 0.5000 0.0000 -0.8660
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.5000 0.0000 0.8660
|
||||
vn -0.5000 0.0000 0.8660
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn -0.5000 0.0000 -0.8660
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn -0.0000 0.5465 0.8375
|
||||
vn 0.0000 -0.5465 0.8375
|
||||
vn 0.3313 -0.7489 -0.5739
|
||||
vn 0.3313 0.7489 -0.5739
|
||||
vn 0.6626 -0.7489 0.0000
|
||||
vn 0.6626 0.7489 0.0000
|
||||
vn 0.3313 -0.7489 0.5739
|
||||
vn 0.3313 0.7489 0.5739
|
||||
vn -0.3313 -0.7489 0.5739
|
||||
vn -0.3313 0.7489 0.5739
|
||||
vn -0.6626 -0.7489 0.0000
|
||||
vn -0.6626 0.7489 0.0000
|
||||
vn -0.3313 -0.7489 -0.5739
|
||||
vn -0.3313 0.7489 -0.5739
|
||||
g Cylinder_Cylinder_Side_Mat
|
||||
usemtl Side_Mat
|
||||
s off
|
||||
f 3/1/1 4/2/1 6/3/1 5/4/1
|
||||
f 5/4/2 6/3/2 8/5/2 7/6/2
|
||||
f 7/6/3 8/5/3 10/7/3 9/8/3
|
||||
f 9/9/4 10/10/4 12/11/4 11/12/4
|
||||
f 11/12/5 12/11/5 14/13/5 13/14/5
|
||||
f 13/14/6 14/13/6 4/2/6 3/1/6
|
||||
f 10/15/7 8/16/7 12/17/7
|
||||
f 12/17/8 8/16/8 2/18/8
|
||||
f 2/18/1 8/16/1 14/19/1
|
||||
f 14/19/7 8/16/7 6/20/7
|
||||
f 14/19/9 6/20/9 2/18/9
|
||||
f 11/21/9 1/22/9 7/23/9
|
||||
f 7/23/1 1/22/1 13/24/1
|
||||
f 13/24/8 1/22/8 5/25/8
|
||||
f 9/8/7 7/23/7 11/21/7
|
||||
f 11/21/7 7/23/7 13/24/7
|
||||
f 13/24/7 7/23/7 5/25/7
|
||||
f 13/24/7 5/25/7 3/26/7
|
||||
g Cylinder_Cylinder_End_Mat
|
||||
usemtl End_Mat
|
||||
f 1/27/10 3/28/10 5/29/10
|
||||
f 2/30/11 6/31/11 4/32/11
|
||||
f 1/27/12 5/29/12 7/33/12
|
||||
f 2/30/13 8/34/13 6/31/13
|
||||
f 1/27/14 7/33/14 9/35/14
|
||||
f 2/30/15 10/36/15 8/34/15
|
||||
f 1/27/16 9/35/16 11/37/16
|
||||
f 2/30/17 12/38/17 10/36/17
|
||||
f 1/27/18 11/37/18 13/39/18
|
||||
f 2/30/19 14/40/19 12/38/19
|
||||
f 1/27/20 13/39/20 3/28/20
|
||||
f 2/30/21 4/32/21 14/40/21
|
||||
@@ -0,0 +1,22 @@
|
||||
# Blender MTL File: 'hex crystal.blend'
|
||||
# Material Count: 2
|
||||
|
||||
newmtl End_Mat
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.640000 0.640000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
|
||||
newmtl Side_Mat
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.371605 0.494084
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
@@ -0,0 +1,114 @@
|
||||
# Blender v2.77 (sub 0) OBJ File: 'hex crystal.blend'
|
||||
# www.blender.org
|
||||
mtllib hex_crystal_med.mtl
|
||||
o Cylinder
|
||||
v 0.000000 -0.691401 0.000000
|
||||
v 0.000000 1.186976 0.000000
|
||||
v 0.000000 -0.499848 -0.250000
|
||||
v 0.000000 0.995423 -0.250000
|
||||
v 0.216506 -0.499848 -0.125000
|
||||
v 0.216506 0.995423 -0.125000
|
||||
v 0.216506 -0.499848 0.125000
|
||||
v 0.216506 0.995423 0.125000
|
||||
v -0.000000 -0.499848 0.250000
|
||||
v -0.000000 0.995423 0.250000
|
||||
v -0.216506 -0.499848 0.125000
|
||||
v -0.216506 0.995423 0.125000
|
||||
v -0.216506 -0.499848 -0.125000
|
||||
v -0.216506 0.995423 -0.125000
|
||||
vt 0.4999 0.0000
|
||||
vt 0.4999 1.0000
|
||||
vt 0.3332 1.0000
|
||||
vt 0.3332 0.0000
|
||||
vt 0.1665 1.0000
|
||||
vt 0.1665 0.0000
|
||||
vt 0.0000 1.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 1.0000 -0.0000
|
||||
vt 1.0000 1.0000
|
||||
vt 0.8333 1.0000
|
||||
vt 0.8333 -0.0000
|
||||
vt 0.6666 1.0000
|
||||
vt 0.6666 -0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.5000 0.5000
|
||||
vt 0.9313 0.7490
|
||||
vt 0.5000 0.9980
|
||||
vt 0.5000 0.5000
|
||||
vt 0.5000 0.0020
|
||||
vt 0.9313 0.2510
|
||||
vt 0.0687 0.7490
|
||||
vt 0.0687 0.2510
|
||||
vt 0.0687 0.2510
|
||||
vt 0.0687 0.7490
|
||||
vt 0.5000 0.0020
|
||||
vt 0.5000 0.9980
|
||||
vt 0.9313 0.2510
|
||||
vt 0.9313 0.7490
|
||||
vn 0.5000 0.0000 -0.8660
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.5000 0.0000 0.8660
|
||||
vn -0.5000 0.0000 0.8660
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn -0.5000 0.0000 -0.8660
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn -0.0000 0.5465 0.8375
|
||||
vn 0.0000 -0.5465 0.8375
|
||||
vn 0.3313 -0.7489 -0.5739
|
||||
vn 0.3313 0.7489 -0.5739
|
||||
vn 0.6626 -0.7489 0.0000
|
||||
vn 0.6626 0.7489 0.0000
|
||||
vn 0.3313 -0.7489 0.5739
|
||||
vn 0.3313 0.7489 0.5739
|
||||
vn -0.3313 -0.7489 0.5739
|
||||
vn -0.3313 0.7489 0.5739
|
||||
vn -0.6626 -0.7489 0.0000
|
||||
vn -0.6626 0.7489 0.0000
|
||||
vn -0.3313 -0.7489 -0.5739
|
||||
vn -0.3313 0.7489 -0.5739
|
||||
g Cylinder_Cylinder_Side_Mat
|
||||
usemtl Side_Mat
|
||||
s off
|
||||
f 3/1/1 4/2/1 6/3/1 5/4/1
|
||||
f 5/4/2 6/3/2 8/5/2 7/6/2
|
||||
f 7/6/3 8/5/3 10/7/3 9/8/3
|
||||
f 9/9/4 10/10/4 12/11/4 11/12/4
|
||||
f 11/12/5 12/11/5 14/13/5 13/14/5
|
||||
f 13/14/6 14/13/6 4/2/6 3/1/6
|
||||
f 10/15/7 8/16/7 12/17/7
|
||||
f 12/17/8 8/16/8 2/18/8
|
||||
f 2/18/1 8/16/1 14/19/1
|
||||
f 14/19/7 8/16/7 6/20/7
|
||||
f 14/19/9 6/20/9 2/18/9
|
||||
f 11/21/9 1/22/9 7/23/9
|
||||
f 7/23/1 1/22/1 13/24/1
|
||||
f 13/24/8 1/22/8 5/25/8
|
||||
f 9/8/7 7/23/7 11/21/7
|
||||
f 11/21/7 7/23/7 13/24/7
|
||||
f 13/24/7 7/23/7 5/25/7
|
||||
f 13/24/7 5/25/7 3/26/7
|
||||
g Cylinder_Cylinder_End_Mat
|
||||
usemtl End_Mat
|
||||
f 1/27/10 3/28/10 5/29/10
|
||||
f 2/30/11 6/31/11 4/32/11
|
||||
f 1/27/12 5/29/12 7/33/12
|
||||
f 2/30/13 8/34/13 6/31/13
|
||||
f 1/27/14 7/33/14 9/35/14
|
||||
f 2/30/15 10/36/15 8/34/15
|
||||
f 1/27/16 9/35/16 11/37/16
|
||||
f 2/30/17 12/38/17 10/36/17
|
||||
f 1/27/18 11/37/18 13/39/18
|
||||
f 2/30/19 14/40/19 12/38/19
|
||||
f 1/27/20 13/39/20 3/28/20
|
||||
f 2/30/21 4/32/21 14/40/21
|
||||
@@ -0,0 +1,3 @@
|
||||
All hex crystal models and the octagonal_coral model were created by FaceDeer and released under both the MIT license and under the Creative Commons CC0 license.
|
||||
|
||||
underch_crystal is from the [underch] (Underground Challenge) mod by Hume2 (https://gitlab.com/h2mm/underch) under the WTFPL license, relicened here to the MIT license
|
||||
@@ -0,0 +1,181 @@
|
||||
# Blender v2.79 (sub 0) OBJ File: 'octagonal_coral.blend'
|
||||
# www.blender.org
|
||||
g Cylinder.003_Cylinder.004
|
||||
v -0.120061 0.505000 -0.289852
|
||||
v 0.120061 0.505000 -0.289852
|
||||
v 0.289852 0.505000 -0.120061
|
||||
v 0.289852 0.505000 0.120061
|
||||
v 0.120060 0.505000 0.289852
|
||||
v -0.120061 0.505000 0.289852
|
||||
v -0.289852 0.505000 0.120061
|
||||
v -0.289852 0.505000 -0.120060
|
||||
v -0.120061 -0.250000 -0.289852
|
||||
v 0.120061 -0.250000 -0.289852
|
||||
v 0.289852 -0.250000 -0.120061
|
||||
v 0.289852 -0.250000 0.120061
|
||||
v 0.120060 -0.250000 0.289852
|
||||
v -0.120061 -0.250000 0.289852
|
||||
v -0.289852 -0.250000 0.120061
|
||||
v -0.289852 -0.250000 -0.120060
|
||||
vt 0.500000 1.000024
|
||||
vt 0.250000 1.000024
|
||||
vt 0.250000 -0.000024
|
||||
vt 0.500000 -0.000024
|
||||
vt 0.750000 1.000024
|
||||
vt 0.500000 1.000024
|
||||
vt 0.500000 -0.000024
|
||||
vt 0.750000 -0.000024
|
||||
vt 0.750000 1.000024
|
||||
vt 0.500000 1.000024
|
||||
vt 0.500000 -0.000024
|
||||
vt 0.750000 -0.000024
|
||||
vt 0.750000 1.000024
|
||||
vt 0.500000 1.000024
|
||||
vt 0.500000 -0.000024
|
||||
vt 0.750000 -0.000024
|
||||
vt 0.250000 1.000024
|
||||
vt 0.250000 -0.000024
|
||||
vt 0.750000 1.000024
|
||||
vt 0.750000 -0.000024
|
||||
vt 0.250000 1.000024
|
||||
vt 0.250000 -0.000024
|
||||
vt 0.250000 1.000024
|
||||
vt 0.250000 -0.000024
|
||||
s off
|
||||
f 3/1 2/2 10/3 11/4
|
||||
f 8/5 7/6 15/7 16/8
|
||||
f 6/9 5/10 13/11 14/12
|
||||
f 2/13 1/14 9/15 10/16
|
||||
f 5/10 4/17 12/18 13/11
|
||||
f 4/19 3/1 11/4 12/20
|
||||
f 1/14 8/21 16/22 9/15
|
||||
f 7/6 6/23 14/24 15/7
|
||||
g Cylinder.002_Cylinder.003
|
||||
v -0.120061 0.505000 -0.289852
|
||||
v -0.292831 -0.505000 -0.706955
|
||||
v -0.292831 0.505000 -0.706955
|
||||
v 0.292830 -0.505000 -0.706955
|
||||
v 0.292830 0.505000 -0.706955
|
||||
v 0.706955 -0.505000 -0.292831
|
||||
v 0.706955 0.505000 -0.292831
|
||||
v 0.706955 -0.505000 0.292830
|
||||
v 0.706955 0.505000 0.292830
|
||||
v 0.292830 -0.505000 0.706955
|
||||
v 0.292830 0.505000 0.706955
|
||||
v -0.292831 -0.505000 0.706955
|
||||
v -0.292831 0.505000 0.706955
|
||||
v -0.706955 -0.505000 0.292831
|
||||
v -0.706955 0.505000 0.292831
|
||||
v -0.706955 -0.505000 -0.292830
|
||||
v -0.706955 0.505000 -0.292830
|
||||
v 0.120061 0.505000 -0.289852
|
||||
v 0.289852 0.505000 -0.120061
|
||||
v 0.289852 0.505000 0.120061
|
||||
v 0.120060 0.505000 0.289852
|
||||
v -0.120061 0.505000 0.289852
|
||||
v -0.289852 0.505000 0.120061
|
||||
v -0.289852 0.505000 -0.120060
|
||||
vt -0.207066 0.792876
|
||||
vt -0.207066 0.207124
|
||||
vt 0.210103 0.379921
|
||||
vt 0.210103 0.620079
|
||||
vt 0.500000 -0.000000
|
||||
vt 0.500000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 1.207066 0.207124
|
||||
vt 1.207066 0.792876
|
||||
vt 0.789897 0.620079
|
||||
vt 0.789897 0.379921
|
||||
vt 1.000000 -0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.500000 1.000000
|
||||
vt 0.500000 -0.000000
|
||||
vt 0.792876 1.207066
|
||||
vt 0.207124 1.207066
|
||||
vt 0.379921 0.789897
|
||||
vt 0.620079 0.789897
|
||||
vt -0.000000 1.000000
|
||||
vt -0.000000 0.000000
|
||||
vt 0.207124 -0.207066
|
||||
vt 0.379921 0.210103
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.500000 1.000000
|
||||
vt 0.500000 0.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.792876 -0.207066
|
||||
vt 0.620079 0.210103
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.500000 1.000000
|
||||
vt 0.500000 0.000000
|
||||
vt -0.000000 1.000000
|
||||
vt -0.000000 0.000000
|
||||
vt 1.000000 -0.000000
|
||||
vt 1.000000 1.000000
|
||||
s off
|
||||
f 33/25 31/26 39/27 40/28
|
||||
f 18/29 19/30 21/31 20/32
|
||||
f 25/33 23/34 35/35 36/36
|
||||
f 20/37 21/38 23/39 22/40
|
||||
f 21/41 19/42 17/43 34/44
|
||||
f 22/40 23/39 25/45 24/46
|
||||
f 31/26 29/47 38/48 39/27
|
||||
f 24/49 25/50 27/51 26/52
|
||||
f 23/34 21/41 34/44 35/35
|
||||
f 26/52 27/51 29/53 28/54
|
||||
f 29/47 27/55 37/56 38/48
|
||||
f 28/57 29/58 31/59 30/60
|
||||
f 30/60 31/59 33/61 32/62
|
||||
f 27/55 25/33 36/36 37/56
|
||||
f 32/63 33/64 19/30 18/29
|
||||
f 19/42 33/25 40/28 17/43
|
||||
g Cylinder.001_Cylinder.002
|
||||
v 0.000000 -0.505000 0.000000
|
||||
v -0.292831 -0.505000 -0.706955
|
||||
v 0.292830 -0.505000 -0.706955
|
||||
v 0.706955 -0.505000 -0.292831
|
||||
v 0.706955 -0.505000 0.292830
|
||||
v 0.292830 -0.505000 0.706955
|
||||
v -0.292831 -0.505000 0.706955
|
||||
v -0.706955 -0.505000 0.292831
|
||||
v -0.706955 -0.505000 -0.292830
|
||||
vt 0.500000 0.500000
|
||||
vt 0.207147 1.207009
|
||||
vt 0.792853 1.207009
|
||||
vt 1.207009 0.792853
|
||||
vt 1.207009 0.207147
|
||||
vt 0.792853 -0.207009
|
||||
vt 0.207147 -0.207009
|
||||
vt -0.207009 0.207147
|
||||
vt -0.207009 0.792853
|
||||
s off
|
||||
f 41/65 42/66 43/67
|
||||
f 41/65 43/67 44/68
|
||||
f 41/65 44/68 45/69
|
||||
f 41/65 45/69 46/70
|
||||
f 41/65 46/70 47/71
|
||||
f 41/65 47/71 48/72
|
||||
f 41/65 48/72 49/73
|
||||
f 41/65 49/73 42/66
|
||||
g Cylinder
|
||||
v -0.120061 -0.250000 -0.289852
|
||||
v 0.120061 -0.250000 -0.289852
|
||||
v 0.289852 -0.250000 -0.120061
|
||||
v 0.289852 -0.250000 0.120061
|
||||
v 0.120060 -0.250000 0.289852
|
||||
v -0.120061 -0.250000 0.289852
|
||||
v -0.289852 -0.250000 0.120061
|
||||
v -0.289852 -0.250000 -0.120060
|
||||
vt 0.707087 0.999951
|
||||
vt 0.292913 0.999951
|
||||
vt 0.000049 0.707087
|
||||
vt 0.000049 0.292913
|
||||
vt 0.292913 0.000049
|
||||
vt 0.707087 0.000049
|
||||
vt 0.999951 0.292913
|
||||
vt 0.999951 0.707087
|
||||
s off
|
||||
f 51/74 50/75 57/76 56/77 55/78 54/79 53/80 52/81
|
||||
@@ -0,0 +1,32 @@
|
||||
# Blender MTL File: 'crystal.blend'
|
||||
# Material Count: 3
|
||||
|
||||
newmtl Material
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.640000 0.640000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
|
||||
newmtl Material.001
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.640000 0.640000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
|
||||
newmtl Material.002
|
||||
Ns 96.078431
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.640000 0.640000 0.640000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.000000
|
||||
d 1.000000
|
||||
illum 2
|
||||
@@ -0,0 +1,107 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: 'crystal.blend'
|
||||
# www.blender.org
|
||||
mtllib underch_crystal.mtl
|
||||
o Cube.001
|
||||
v 0.172286 -0.548977 -0.222058
|
||||
v 0.165892 -0.528919 0.010751
|
||||
v -0.065309 -0.563236 0.007358
|
||||
v -0.058916 -0.583294 -0.225451
|
||||
v 0.179327 0.201377 -0.503659
|
||||
v 0.171710 0.225272 -0.226315
|
||||
v -0.103720 0.184391 -0.230357
|
||||
v -0.096103 0.160496 -0.507701
|
||||
v 0.007959 0.394590 -0.413866
|
||||
v -0.238829 -0.557870 -0.066808
|
||||
v -0.011182 -0.528529 -0.111069
|
||||
v 0.036394 -0.554673 0.116299
|
||||
v -0.191253 -0.584014 0.160560
|
||||
v -0.549483 0.180196 -0.033148
|
||||
v -0.278287 0.215150 -0.085875
|
||||
v -0.221610 0.184005 0.184988
|
||||
v -0.492806 0.149051 0.237716
|
||||
v -0.434139 0.382762 0.109765
|
||||
v 0.032617 -0.584181 0.104827
|
||||
v -0.156722 -0.543012 -0.025937
|
||||
v -0.021474 -0.523372 -0.215584
|
||||
v 0.167865 -0.564541 -0.084819
|
||||
v 0.215590 0.116995 0.447251
|
||||
v -0.009969 0.166039 0.291472
|
||||
v 0.151151 0.189436 0.065547
|
||||
v 0.376709 0.140392 0.221326
|
||||
v 0.226702 0.351514 0.307113
|
||||
vt 0.500000 0.250000
|
||||
vt 0.250000 0.250000
|
||||
vt 0.250000 -0.000000
|
||||
vt 0.500000 -0.000000
|
||||
vt 0.750000 0.750000
|
||||
vt 1.000000 0.750000
|
||||
vt 0.875000 1.000000
|
||||
vt 1.000000 -0.000000
|
||||
vt 0.750000 0.000000
|
||||
vt 0.500000 0.750000
|
||||
vt 0.250000 0.750000
|
||||
vt 0.000000 0.750000
|
||||
vt 0.000000 -0.000000
|
||||
vt 0.125000 1.000000
|
||||
vt 0.375000 1.000000
|
||||
vt 0.625000 1.000000
|
||||
vt 0.000000 0.250000
|
||||
vt 0.750000 0.250000
|
||||
vn 0.100900 -0.985800 -0.134500
|
||||
vn -0.225200 0.644000 -0.731100
|
||||
vn -0.186600 -0.033700 -0.981900
|
||||
vn 0.928000 0.338600 -0.155300
|
||||
vn 0.193700 -0.023500 0.980800
|
||||
vn -0.909500 -0.389400 0.145500
|
||||
vn -0.906600 0.353700 0.230400
|
||||
vn 0.113100 0.455200 0.883200
|
||||
vn 0.693400 0.717800 -0.062600
|
||||
vn 0.145000 -0.985400 0.088900
|
||||
vn 0.738800 0.672800 -0.037700
|
||||
vn 0.999600 0.000900 0.027400
|
||||
vn -0.058500 0.299800 0.952200
|
||||
vn -0.998000 -0.058400 -0.022400
|
||||
vn 0.065800 -0.351100 -0.934000
|
||||
vn -0.044200 0.388600 -0.920400
|
||||
vn -0.902700 0.425900 -0.061500
|
||||
vn -0.112500 0.686700 0.718200
|
||||
vn -0.095900 -0.980800 -0.169900
|
||||
vn -0.426000 0.478900 0.767600
|
||||
vn -0.586400 -0.226800 0.777700
|
||||
vn -0.769200 0.386900 -0.508500
|
||||
vn 0.584800 0.171100 -0.792900
|
||||
vn 0.753200 -0.436800 0.491900
|
||||
vn 0.759600 0.306700 0.573500
|
||||
vn 0.534200 0.615200 -0.579800
|
||||
vn -0.569200 0.754000 -0.327900
|
||||
usemtl Material.001
|
||||
s off
|
||||
f 10/1/1 11/2/1 12/3/1 13/4/1
|
||||
f 15/5/2 14/6/2 18/7/2
|
||||
f 10/8/3 14/6/3 15/5/3 11/9/3
|
||||
f 11/9/4 15/5/4 16/10/4 12/4/4
|
||||
f 12/4/5 16/10/5 17/11/5 13/3/5
|
||||
f 14/12/6 10/13/6 13/3/6 17/11/6
|
||||
f 14/12/7 17/11/7 18/14/7
|
||||
f 17/11/8 16/10/8 18/15/8
|
||||
f 16/10/9 15/5/9 18/16/9
|
||||
usemtl Material
|
||||
f 1/17/10 2/13/10 3/3/10 4/2/10
|
||||
f 6/10/11 5/5/11 9/16/11
|
||||
f 1/9/12 5/5/12 6/10/12 2/4/12
|
||||
f 2/4/13 6/10/13 7/11/13 3/3/13
|
||||
f 3/3/14 7/11/14 8/12/14 4/13/14
|
||||
f 5/5/15 1/9/15 4/8/15 8/6/15
|
||||
f 5/5/16 8/6/16 9/7/16
|
||||
f 8/12/17 7/11/17 9/14/17
|
||||
f 7/11/18 6/10/18 9/15/18
|
||||
usemtl Material.002
|
||||
f 19/4/19 20/9/19 21/18/19 22/1/19
|
||||
f 24/5/20 23/6/20 27/7/20
|
||||
f 19/8/21 23/6/21 24/5/21 20/9/21
|
||||
f 20/9/22 24/5/22 25/10/22 21/4/22
|
||||
f 21/4/23 25/10/23 26/11/23 22/3/23
|
||||
f 23/12/24 19/13/24 22/3/24 26/11/24
|
||||
f 23/12/25 26/11/25 27/14/25
|
||||
f 26/11/26 25/10/26 27/15/26
|
||||
f 25/10/27 24/5/27 27/16/27
|
||||
@@ -0,0 +1,5 @@
|
||||
#To disable glow worm growth, set this to 0.
|
||||
dfcaverns_glow_worm_delay_multiplier (glow worm growth delay multiplier) float 10
|
||||
dfcaverns_snareweed_damage (Snareweed causes damage to player) bool true
|
||||
dfcaverns_invulnerable_slade (Slade cannot be damaged) bool true
|
||||
dfcaverns_destructive_pit_plasma (Pit plasma destroys adjacent nodes) bool false
|
||||
@@ -0,0 +1,75 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
minetest.register_node("df_mapitems:snareweed", {
|
||||
description = S("Snareweed"),
|
||||
_doc_items_longdesc = df_mapitems.doc.snareweed_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.snareweed_usage,
|
||||
tiles = {df_dependencies.texture_dirt .. "^dfcaverns_snareweed_roots.png", df_dependencies.texture_dirt},
|
||||
drawtype="plantlike_rooted",
|
||||
paramtype2 = "leveled",
|
||||
special_tiles = {{name = "dfcaverns_snareweed.png", tileable_vertical = true}},
|
||||
is_ground_content = false,
|
||||
drop = df_dependencies.node_name_dirt,
|
||||
light_source = 6,
|
||||
groups = {crumbly = 3, soil = 1, handy=1,shovely=1, dirt=1,},
|
||||
sounds = df_dependencies.sound_dirt(),
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.6,
|
||||
})
|
||||
|
||||
if df_mapitems.config.snareweed_damage then
|
||||
local timer = 0
|
||||
|
||||
minetest.register_globalstep(function(dtime)
|
||||
timer = timer + dtime
|
||||
if timer >= 1 then
|
||||
timer = timer - 1
|
||||
for _, player in pairs(minetest.get_connected_players()) do
|
||||
local player_pos = player:get_pos() -- node player's feet are in this location.
|
||||
local rounded_pos = vector.round(player_pos)
|
||||
local nearby_nodes = minetest.find_nodes_in_area(vector.add(rounded_pos, {x=0, y= -8, z=0}), rounded_pos, {"df_mapitems:snareweed"})
|
||||
for _, node_pos in ipairs(nearby_nodes) do
|
||||
local node = minetest.get_node(node_pos)
|
||||
local distance = player_pos.y - node_pos.y
|
||||
if distance <= node.param2/16 then
|
||||
minetest.log("action", player:get_player_name() .. " takes 2 damage from snareweed at " .. minetest.pos_to_string(node_pos))
|
||||
player:set_hp(player:get_hp() - 2)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
local c_water = minetest.get_content_id(df_dependencies.node_name_water_source)
|
||||
local c_dirt = minetest.get_content_id(df_dependencies.node_name_dirt)
|
||||
local c_stone = minetest.get_content_id(df_dependencies.node_name_stone)
|
||||
local c_snareweed = minetest.get_content_id("df_mapitems:snareweed")
|
||||
|
||||
df_mapitems.place_snareweed = function(area, data, bi, param2_data)
|
||||
local max_height = 0
|
||||
local index = bi + area.ystride
|
||||
while area:containsi(index) and data[index] == c_water and max_height <= 8*16 do
|
||||
index = index + area.ystride
|
||||
max_height = max_height + 16
|
||||
end
|
||||
if max_height > 0 then
|
||||
data[bi] = c_snareweed
|
||||
param2_data[bi] = math.min(math.random(3*16, 8*16), max_height)
|
||||
else
|
||||
data[bi] = c_dirt
|
||||
end
|
||||
end
|
||||
|
||||
df_mapitems.place_snareweed_patch = function(area, data, bi, param2_data, radius)
|
||||
local pos = area:position(bi)
|
||||
for li in area:iterp(vector.add(pos, -radius), vector.add(pos, radius)) do
|
||||
local adjacent = li + area.ystride
|
||||
local node_type = data[li]
|
||||
if math.random() < 0.1 and (node_type == c_stone or node_type == c_dirt) and data[adjacent] == c_water then
|
||||
df_mapitems.place_snareweed(area, data, li, param2_data)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,5 @@
|
||||
dfcaverns_squish.1.ogg - from https://freesound.org/people/DrMinky/sounds/167074/ by DrMinky under Creative Commons BY 3.0
|
||||
dfcaverns_squish.2.ogg - from https://freesound.org/people/DrMinky/sounds/167075/ by DrMinky under Creative Commons BY 3.0
|
||||
dfcaverns_squish.3.ogg - from https://freesound.org/people/DrMinky/sounds/167073/ by DrMinky under Creative Commons BY 3.0
|
||||
|
||||
slow heartbeat - https://freesound.org/people/daandraait/sounds/249716/ under CC0
|
||||
|
After Width: | Height: | Size: 477 B |
|
After Width: | Height: | Size: 964 B |
|
After Width: | Height: | Size: 760 B |
|
After Width: | Height: | Size: 762 B |
|
After Width: | Height: | Size: 784 B |
|
After Width: | Height: | Size: 489 B |
|
After Width: | Height: | Size: 421 B |
|
After Width: | Height: | Size: 902 B |
|
After Width: | Height: | Size: 937 B |
|
After Width: | Height: | Size: 328 B |
|
After Width: | Height: | Size: 328 B |
|
After Width: | Height: | Size: 363 B |
|
After Width: | Height: | Size: 322 B |
|
After Width: | Height: | Size: 361 B |
|
After Width: | Height: | Size: 190 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 748 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 765 B |
|
After Width: | Height: | Size: 275 B |
|
After Width: | Height: | Size: 780 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 400 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 192 B |
|
After Width: | Height: | Size: 661 B |
|
After Width: | Height: | Size: 957 B |
@@ -0,0 +1,9 @@
|
||||
All textures not specifically listed here are created by FaceDeer and released under both the MIT license and under the Creative Commons CC0 license.
|
||||
|
||||
dfcaverns_glow_worm - copied from caverealms
|
||||
dfcaverns_glow_worm_animated - glow worm texture overlaid with rippling animation derived from default mod's water texture
|
||||
dfcaverns_glow_mese - from caverealms glow_mese
|
||||
dfcaverns_glow_ruby, dfcaverns_glow_ruby4x, dfcaverns_glow_ruby_quarter - from caverealms glow_ruby
|
||||
dfcaverns_glow_ruby_ore - from caverealms glow_ruby_ore
|
||||
dfcaverns_salt_crystal - from caverealms
|
||||
dfcaverns_salty - from caverealms with modified alpha channel
|
||||
@@ -0,0 +1,132 @@
|
||||
-- Used by cave pearls and crystal clusters
|
||||
-- These methods simulate "wallmounted" nodes using regular facedir, randomizing the rotation around the wallmounted direction.
|
||||
-- Useful for naturalistic objects you want to have look irregular
|
||||
|
||||
df_mapitems.place_against_surface = function(itemstack, placer, pointed_thing)
|
||||
-- check if pointing at a node
|
||||
if not pointed_thing then
|
||||
return itemstack
|
||||
end
|
||||
if pointed_thing.type ~= "node" then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local under_pos = pointed_thing.under
|
||||
local above_pos = pointed_thing.above
|
||||
|
||||
local under_node = minetest.get_node(under_pos)
|
||||
local above_node = minetest.get_node(above_pos)
|
||||
|
||||
if minetest.is_protected(above_pos, placer:get_player_name()) then
|
||||
minetest.record_protection_violation(above_pos, placer:get_player_name())
|
||||
return
|
||||
end
|
||||
|
||||
local under_name = under_node.name
|
||||
local above_name = above_node.name
|
||||
local under_def = minetest.registered_nodes[under_name]
|
||||
local above_def = minetest.registered_nodes[above_name]
|
||||
|
||||
-- return if any of the nodes is not registered
|
||||
if not under_def or not above_def then
|
||||
return itemstack
|
||||
end
|
||||
-- check if you can replace the node above the pointed node
|
||||
if not above_def.buildable_to then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local dir = vector.subtract(under_pos, above_pos)
|
||||
local param2
|
||||
if dir.x > 0 then
|
||||
--facing +x: 16, 17, 18, 19,
|
||||
param2 = 15 + math.random(1,4)
|
||||
elseif dir.x < 0 then
|
||||
--facing -x: 12, 13, 14, 15
|
||||
param2 = 11 + math.random(1,4)
|
||||
elseif dir.z > 0 then
|
||||
--facing +z: 8, 9, 10, 11
|
||||
param2 = 7 + math.random(1,4)
|
||||
elseif dir.z < 0 then
|
||||
--facing -z: 4, 5, 6, 7
|
||||
param2 = 3 + math.random(1,4)
|
||||
elseif dir.y > 0 then
|
||||
--facing -y: 20, 21, 22, 23 (ceiling)
|
||||
param2 = 19 + math.random(1,4)
|
||||
else
|
||||
--facing +y: 0, 1, 2, 3 (floor)
|
||||
param2 = math.random(1,4) - 1
|
||||
end
|
||||
-- add the node and remove 1 item from the itemstack
|
||||
minetest.add_node(above_pos, {name = itemstack:get_name(), param2 = param2})
|
||||
if not minetest.is_creative_enabled(placer:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
|
||||
-- Mapgen version of the above
|
||||
|
||||
local add_to_table = function(dest, source)
|
||||
for _, val in ipairs(source) do
|
||||
table.insert(dest, val)
|
||||
end
|
||||
end
|
||||
|
||||
local valid_nodes = {} -- cache values
|
||||
local is_valid_mounting_node = function(c_node)
|
||||
if valid_nodes[c_node] ~= nil then
|
||||
return valid_nodes[c_node]
|
||||
end
|
||||
local def = minetest.registered_nodes[minetest.get_name_from_content_id(c_node)]
|
||||
if def ~= nil
|
||||
and (def.drawtype == "normal" or def.drawtype == nil)
|
||||
and not def.buildable_to
|
||||
and not (def.groups and def.groups.falling_node) then
|
||||
valid_nodes[c_node] = true
|
||||
return true
|
||||
end
|
||||
valid_nodes[c_node] = false
|
||||
return false
|
||||
end
|
||||
|
||||
--facing +x: 16, 17, 18, 19,
|
||||
--facing -x: 12, 13, 14, 15
|
||||
--facing +z: 8, 9, 10, 11
|
||||
--facing -z: 4, 5, 6, 7
|
||||
--facing -y: 20, 21, 22, 23, (ceiling)
|
||||
--facing +y: 0, 1, 2, 3
|
||||
|
||||
local get_valid_facedirs_vm = function(vi, area, data)
|
||||
local dirs = {}
|
||||
local ystride = area.ystride
|
||||
local zstride = area.zstride
|
||||
if is_valid_mounting_node(data[vi+1]) then
|
||||
add_to_table(dirs, {16, 17, 18, 19})
|
||||
end
|
||||
if is_valid_mounting_node(data[vi-1]) then
|
||||
add_to_table(dirs, {12, 13, 14, 15})
|
||||
end
|
||||
if is_valid_mounting_node(data[vi-ystride]) then
|
||||
add_to_table(dirs, {0, 1, 2, 3})
|
||||
end
|
||||
if is_valid_mounting_node(data[vi+ystride]) then
|
||||
add_to_table(dirs, {20, 21, 22, 23})
|
||||
end
|
||||
if is_valid_mounting_node(data[vi+zstride]) then
|
||||
add_to_table(dirs, {8, 9, 10, 11})
|
||||
end
|
||||
if is_valid_mounting_node(data[vi-zstride]) then
|
||||
add_to_table(dirs, {4, 5, 6, 7})
|
||||
end
|
||||
return dirs
|
||||
end
|
||||
|
||||
df_mapitems.place_against_surface_vm = function(c_node, vi, area, data, data_param2)
|
||||
local facedirs = get_valid_facedirs_vm(vi, area, data)
|
||||
local count = #facedirs
|
||||
if count > 0 then
|
||||
data[vi] = c_node
|
||||
data_param2[vi] = facedirs[math.random(1, count)]
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,81 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
-- overridden to trigger an achievement, without making achievements a dependency of this mod
|
||||
df_mapitems.on_veinstone_punched = function()
|
||||
end
|
||||
|
||||
minetest.register_node("df_mapitems:veinstone", {
|
||||
description = S("Veinstone"),
|
||||
_doc_items_longdesc = df_mapitems.doc.veinstone_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.veinstone_usage,
|
||||
tiles = {df_dependencies.texture_stone .. "^dfcaverns_veins.png"},
|
||||
groups = {cracky = 3, stone = 1, lava_heatable = 1, pickaxey=1, building_block=1, material_stone=1},
|
||||
_magma_conduits_heats_to = df_dependencies.node_name_cobble,
|
||||
is_ground_content = false,
|
||||
light_source = 2,
|
||||
drop = "df_mapitems:veinstone",
|
||||
sounds = df_dependencies.sound_stone(),
|
||||
on_punch = function(pos, node, puncher, pointed_thing)
|
||||
minetest.node_punch(pos, node, puncher, pointed_thing)
|
||||
minetest.swap_node(pos, {name="df_mapitems:veinstone_pulse"})
|
||||
minetest.get_node_timer(pos):start(2)
|
||||
minetest.sound_play({name="dfcaverns_slow_heartbeat", gain=0.5}, {pos = pos})
|
||||
df_mapitems.on_veinstone_punched(pos, node, puncher, pointed_thing)
|
||||
end,
|
||||
_mcl_blast_resistance = 10,
|
||||
_mcl_hardness = 3,
|
||||
})
|
||||
|
||||
minetest.register_node("df_mapitems:veinstone_pulse", {
|
||||
description = S("Veinstone"),
|
||||
_doc_items_longdesc = df_mapitems.doc.veinstone_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.veinstone_usage,
|
||||
tiles = {df_dependencies.texture_stone .. "^dfcaverns_veins.png"},
|
||||
groups = {cracky = 3, stone = 1, lava_heatable = 1, not_in_creative_inventory = 1, pickaxey=1, building_block=1, material_stone=1},
|
||||
_magma_conduits_heats_to = df_dependencies.node_name_cobble,
|
||||
is_ground_content = false,
|
||||
light_source = 8,
|
||||
drop = "df_mapitems:veinstone",
|
||||
sounds = df_dependencies.sound_stone(),
|
||||
on_timer = function(pos, elapsed)
|
||||
local positions, count = minetest.find_nodes_in_area(vector.add(pos,1), vector.subtract(pos,1), "df_mapitems:veinstone")
|
||||
if count["df_mapitems:veinstone"] == 0 then
|
||||
positions, count = minetest.find_nodes_in_area(vector.add(pos,2), vector.subtract(pos,2), "df_mapitems:veinstone")
|
||||
end
|
||||
if count["df_mapitems:veinstone"] == 0 then
|
||||
positions = {[1] = minetest.find_node_near(pos, 3, "df_mapitems:veinstone")}
|
||||
end
|
||||
if positions[1] == nil then
|
||||
positions = {[1] = minetest.find_node_near(pos, 4, "df_mapitems:veinstone")}
|
||||
end
|
||||
if (positions[1] ~= nil) then
|
||||
minetest.sound_play({name="dfcaverns_slow_heartbeat", gain=0.5}, {pos = pos})
|
||||
end
|
||||
for _, neighbor_pos in pairs(positions) do
|
||||
minetest.swap_node(neighbor_pos, {name="df_mapitems:veinstone_pulse"})
|
||||
minetest.get_node_timer(neighbor_pos):start(2)
|
||||
end
|
||||
minetest.swap_node(pos, {name="df_mapitems:veinstone_refractory"})
|
||||
minetest.get_node_timer(pos):start(12)
|
||||
end,
|
||||
_mcl_blast_resistance = 10,
|
||||
_mcl_hardness = 3,
|
||||
})
|
||||
|
||||
minetest.register_node("df_mapitems:veinstone_refractory", {
|
||||
description = S("Veinstone"),
|
||||
_doc_items_longdesc = df_mapitems.doc.veinstone_desc,
|
||||
_doc_items_usagehelp = df_mapitems.doc.veinstone_usage,
|
||||
tiles = {df_dependencies.texture_stone .. "^dfcaverns_veins.png"},
|
||||
groups = {cracky = 3, stone = 1, lava_heatable = 1, not_in_creative_inventory = 1, pickaxey=1, building_block=1, material_stone=1},
|
||||
_magma_conduits_heats_to = df_dependencies.node_name_cobble,
|
||||
is_ground_content = false,
|
||||
light_source = 1,
|
||||
drop = "df_mapitems:veinstone",
|
||||
sounds = df_dependencies.sound_stone(),
|
||||
on_timer = function(pos, elapsed)
|
||||
minetest.swap_node(pos, {name="df_mapitems:veinstone"})
|
||||
end,
|
||||
_mcl_blast_resistance = 10,
|
||||
_mcl_hardness = 3,
|
||||
})
|
||||